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

Method literal

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

Source from the content-addressed store, hash-verified

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)

Callers 2

visit_ConstantLiteralMethod · 0.45
primaryMethod · 0.45

Calls 2

cloneMethod · 0.80
report_errorMethod · 0.80

Tested by

no test coverage detected