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

Method optExpr

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

Source from the content-addressed store, hash-verified

5582 I: TokenStream<'input, TF = LocalTokenFactory<'input>> + TidAble<'input>,
5583{
5584 pub fn optExpr(&mut self) -> Result<Rc<OptExprContextAll<'input>>, ANTLRError> {
5585 let mut recog = self;
5586 let _parentctx = recog.ctx.take();
5587 let mut _localctx = OptExprContextExt::new(_parentctx.clone(), recog.base.get_state());
5588 recog.base.enter_rule(_localctx.clone(), 30, RULE_optExpr);
5589 let mut _localctx: Rc<OptExprContextAll> = _localctx;
5590 let mut _la: i32 = -1;
5591 let result: Result<(), ANTLRError> = (|| {
5592 //recog.base.enter_outer_alt(_localctx.clone(), 1)?;
5593 recog.base.enter_outer_alt(None, 1)?;
5594 {
5595 recog.base.set_state(238);
5596 recog.err_handler.sync(&mut recog.base)?;
5597 _la = recog.base.input.la(1);
5598 if _la == CEL_QUESTIONMARK {
5599 {
5600 recog.base.set_state(237);
5601 let tmp = recog
5602 .base
5603 .match_token(CEL_QUESTIONMARK, &mut recog.err_handler)?;
5604 cast_mut::<_, OptExprContext>(&mut _localctx).opt = Some(tmp.clone());
5605 }
5606 }
5607
5608 /*InvokeRule expr*/
5609 recog.base.set_state(240);
5610 let tmp = recog.expr()?;
5611 cast_mut::<_, OptExprContext>(&mut _localctx).e = Some(tmp.clone());
5612 }
5613 Ok(())
5614 })();
5615 match result {
5616 Ok(_) => {}
5617 Err(e @ ANTLRError::FallThrough(_)) => return Err(e),
5618 Err(ref re) => {
5619 //_localctx.exception = re;
5620 recog.err_handler.report_error(&mut recog.base, re);
5621 recog.err_handler.recover(&mut recog.base, re)?;
5622 }
5623 }
5624 recog.base.exit_rule()?;
5625
5626 Ok(_localctx)
5627 }
5628}
5629//------------------- literal ----------------
5630#[derive(Debug)]

Callers 2

listInitMethod · 0.45
mapInitializerListMethod · 0.45

Calls 3

cloneMethod · 0.80
report_errorMethod · 0.80
exprMethod · 0.45

Tested by

no test coverage detected