MCPcopy Create free account
hub / github.com/cel-rust/cel-rust / listInit

Method listInit

cel/src/parser/gen/celparser.rs:4441–4510  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

4439 I: TokenStream<'input, TF = LocalTokenFactory<'input>> + TidAble<'input>,
4440{
4441 pub fn listInit(&mut self) -> Result<Rc<ListInitContextAll<'input>>, ANTLRError> {
4442 let mut recog = self;
4443 let _parentctx = recog.ctx.take();
4444 let mut _localctx = ListInitContextExt::new(_parentctx.clone(), recog.base.get_state());
4445 recog.base.enter_rule(_localctx.clone(), 20, RULE_listInit);
4446 let mut _localctx: Rc<ListInitContextAll> = _localctx;
4447 let result: Result<(), ANTLRError> = (|| {
4448 let mut _alt: i32;
4449 //recog.base.enter_outer_alt(_localctx.clone(), 1)?;
4450 recog.base.enter_outer_alt(None, 1)?;
4451 {
4452 /*InvokeRule optExpr*/
4453 recog.base.set_state(194);
4454 let tmp = recog.optExpr()?;
4455 cast_mut::<_, ListInitContext>(&mut _localctx).optExpr = Some(tmp.clone());
4456
4457 let temp = cast_mut::<_, ListInitContext>(&mut _localctx)
4458 .optExpr
4459 .clone()
4460 .unwrap();
4461 cast_mut::<_, ListInitContext>(&mut _localctx)
4462 .elems
4463 .push(temp);
4464
4465 recog.base.set_state(199);
4466 recog.err_handler.sync(&mut recog.base)?;
4467 _alt = recog.interpreter.adaptive_predict(27, &mut recog.base)?;
4468 while { _alt != 2 && _alt != INVALID_ALT } {
4469 if _alt == 1 {
4470 {
4471 {
4472 recog.base.set_state(195);
4473 recog.base.match_token(CEL_COMMA, &mut recog.err_handler)?;
4474
4475 /*InvokeRule optExpr*/
4476 recog.base.set_state(196);
4477 let tmp = recog.optExpr()?;
4478 cast_mut::<_, ListInitContext>(&mut _localctx).optExpr =
4479 Some(tmp.clone());
4480
4481 let temp = cast_mut::<_, ListInitContext>(&mut _localctx)
4482 .optExpr
4483 .clone()
4484 .unwrap();
4485 cast_mut::<_, ListInitContext>(&mut _localctx)
4486 .elems
4487 .push(temp);
4488 }
4489 }
4490 }
4491 recog.base.set_state(201);
4492 recog.err_handler.sync(&mut recog.base)?;
4493 _alt = recog.interpreter.adaptive_predict(27, &mut recog.base)?;
4494 }
4495 }
4496 Ok(())
4497 })();
4498 match result {

Callers 1

primaryMethod · 0.45

Calls 4

cloneMethod · 0.80
pushMethod · 0.80
report_errorMethod · 0.80
optExprMethod · 0.45

Tested by

no test coverage detected