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

Method expr

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

Source from the content-addressed store, hash-verified

654 I: TokenStream<'input, TF = LocalTokenFactory<'input>> + TidAble<'input>,
655{
656 pub fn expr(&mut self) -> Result<Rc<ExprContextAll<'input>>, ANTLRError> {
657 let mut recog = self;
658 let _parentctx = recog.ctx.take();
659 let mut _localctx = ExprContextExt::new(_parentctx.clone(), recog.base.get_state());
660 recog.base.enter_rule(_localctx.clone(), 2, RULE_expr);
661 let mut _localctx: Rc<ExprContextAll> = _localctx;
662 let mut _la: i32 = -1;
663 let result: Result<(), ANTLRError> = (|| {
664 //recog.base.enter_outer_alt(_localctx.clone(), 1)?;
665 recog.base.enter_outer_alt(None, 1)?;
666 {
667 /*InvokeRule conditionalOr*/
668 recog.base.set_state(37);
669 let tmp = recog.conditionalOr()?;
670 cast_mut::<_, ExprContext>(&mut _localctx).e = Some(tmp.clone());
671
672 recog.base.set_state(43);
673 recog.err_handler.sync(&mut recog.base)?;
674 _la = recog.base.input.la(1);
675 if _la == CEL_QUESTIONMARK {
676 {
677 recog.base.set_state(38);
678 let tmp = recog
679 .base
680 .match_token(CEL_QUESTIONMARK, &mut recog.err_handler)?;
681 cast_mut::<_, ExprContext>(&mut _localctx).op = Some(tmp.clone());
682
683 /*InvokeRule conditionalOr*/
684 recog.base.set_state(39);
685 let tmp = recog.conditionalOr()?;
686 cast_mut::<_, ExprContext>(&mut _localctx).e1 = Some(tmp.clone());
687
688 recog.base.set_state(40);
689 recog.base.match_token(CEL_COLON, &mut recog.err_handler)?;
690
691 /*InvokeRule expr*/
692 recog.base.set_state(41);
693 let tmp = recog.expr()?;
694 cast_mut::<_, ExprContext>(&mut _localctx).e2 = Some(tmp.clone());
695 }
696 }
697 }
698 Ok(())
699 })();
700 match result {
701 Ok(_) => {}
702 Err(e @ ANTLRError::FallThrough(_)) => return Err(e),
703 Err(ref re) => {
704 //_localctx.exception = re;
705 recog.err_handler.report_error(&mut recog.base, re);
706 recog.err_handler.recover(&mut recog.base, re)?;
707 }
708 }
709 recog.base.exit_rule()?;
710
711 Ok(_localctx)
712 }
713}

Callers 7

startMethod · 0.45
member_recMethod · 0.45
primaryMethod · 0.45
exprListMethod · 0.45
mapInitializerListMethod · 0.45
optExprMethod · 0.45

Calls 3

cloneMethod · 0.80
report_errorMethod · 0.80
conditionalOrMethod · 0.45

Tested by

no test coverage detected