(&mut self)
| 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)] |
no test coverage detected