(&mut self)
| 6394 | I: TokenStream<'input, TF = LocalTokenFactory<'input>> + TidAble<'input>, |
| 6395 | { |
| 6396 | pub fn literal(&mut self) -> Result<Rc<LiteralContextAll<'input>>, ANTLRError> { |
| 6397 | let mut recog = self; |
| 6398 | let _parentctx = recog.ctx.take(); |
| 6399 | let mut _localctx = LiteralContextExt::new(_parentctx.clone(), recog.base.get_state()); |
| 6400 | recog.base.enter_rule(_localctx.clone(), 32, RULE_literal); |
| 6401 | let mut _localctx: Rc<LiteralContextAll> = _localctx; |
| 6402 | let mut _la: i32 = -1; |
| 6403 | let result: Result<(), ANTLRError> = (|| { |
| 6404 | recog.base.set_state(256); |
| 6405 | recog.err_handler.sync(&mut recog.base)?; |
| 6406 | match recog.interpreter.adaptive_predict(35, &mut recog.base)? { |
| 6407 | 1 => { |
| 6408 | let tmp = IntContextExt::new(&**_localctx); |
| 6409 | recog.base.enter_outer_alt(Some(tmp.clone()), 1)?; |
| 6410 | _localctx = tmp; |
| 6411 | { |
| 6412 | recog.base.set_state(243); |
| 6413 | recog.err_handler.sync(&mut recog.base)?; |
| 6414 | _la = recog.base.input.la(1); |
| 6415 | if _la == CEL_MINUS { |
| 6416 | { |
| 6417 | recog.base.set_state(242); |
| 6418 | let tmp = |
| 6419 | recog.base.match_token(CEL_MINUS, &mut recog.err_handler)?; |
| 6420 | if let LiteralContextAll::IntContext(ctx) = |
| 6421 | cast_mut::<_, LiteralContextAll>(&mut _localctx) |
| 6422 | { |
| 6423 | ctx.sign = Some(tmp.clone()); |
| 6424 | } else { |
| 6425 | unreachable!("cant cast"); |
| 6426 | } |
| 6427 | } |
| 6428 | } |
| 6429 | |
| 6430 | recog.base.set_state(245); |
| 6431 | let tmp = recog |
| 6432 | .base |
| 6433 | .match_token(CEL_NUM_INT, &mut recog.err_handler)?; |
| 6434 | if let LiteralContextAll::IntContext(ctx) = |
| 6435 | cast_mut::<_, LiteralContextAll>(&mut _localctx) |
| 6436 | { |
| 6437 | ctx.tok = Some(tmp.clone()); |
| 6438 | } else { |
| 6439 | unreachable!("cant cast"); |
| 6440 | } |
| 6441 | } |
| 6442 | } |
| 6443 | 2 => { |
| 6444 | let tmp = UintContextExt::new(&**_localctx); |
| 6445 | recog.base.enter_outer_alt(Some(tmp.clone()), 2)?; |
| 6446 | _localctx = tmp; |
| 6447 | { |
| 6448 | recog.base.set_state(246); |
| 6449 | let tmp = recog |
| 6450 | .base |
| 6451 | .match_token(CEL_NUM_UINT, &mut recog.err_handler)?; |
| 6452 | if let LiteralContextAll::UintContext(ctx) = |
| 6453 | cast_mut::<_, LiteralContextAll>(&mut _localctx) |
no test coverage detected