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

Method calc_rec

cel/src/parser/gen/celparser.rs:1454–1606  ·  view source on GitHub ↗
(&mut self, _p: i32)

Source from the content-addressed store, hash-verified

1452 }
1453
1454 fn calc_rec(&mut self, _p: i32) -> Result<Rc<CalcContextAll<'input>>, ANTLRError> {
1455 let recog = self;
1456 let _parentctx = recog.ctx.take();
1457 let _parentState = recog.base.get_state();
1458 let mut _localctx = CalcContextExt::new(_parentctx.clone(), recog.base.get_state());
1459 recog
1460 .base
1461 .enter_recursion_rule(_localctx.clone(), 10, RULE_calc, _p);
1462 let mut _localctx: Rc<CalcContextAll> = _localctx;
1463 let mut _prevctx = _localctx.clone();
1464 let _startState = 10;
1465 let mut _la: i32 = -1;
1466 let result: Result<(), ANTLRError> = (|| {
1467 let mut _alt: i32;
1468 //recog.base.enter_outer_alt(_localctx.clone(), 1)?;
1469 recog.base.enter_outer_alt(None, 1)?;
1470 {
1471 {
1472 /*InvokeRule unary*/
1473 recog.base.set_state(73);
1474 recog.unary()?;
1475 }
1476 let tmp = recog.input.lt(-1).cloned();
1477 recog.ctx.as_ref().unwrap().set_stop(tmp);
1478 recog.base.set_state(83);
1479 recog.err_handler.sync(&mut recog.base)?;
1480 _alt = recog.interpreter.adaptive_predict(5, &mut recog.base)?;
1481 while { _alt != 2 && _alt != INVALID_ALT } {
1482 if _alt == 1 {
1483 recog.trigger_exit_rule_event()?;
1484 _prevctx = _localctx.clone();
1485 {
1486 recog.base.set_state(81);
1487 recog.err_handler.sync(&mut recog.base)?;
1488 match recog.interpreter.adaptive_predict(4, &mut recog.base)? {
1489 1 => {
1490 {
1491 /*recRuleAltStartAction*/
1492 let mut tmp =
1493 CalcContextExt::new(_parentctx.clone(), _parentState);
1494 recog.push_new_recursion_context(
1495 tmp.clone(),
1496 _startState,
1497 RULE_calc,
1498 )?;
1499 _localctx = tmp;
1500 recog.base.set_state(75);
1501 if !({
1502 let _localctx = Some(_localctx.clone());
1503 recog.precpred(None, 2)
1504 }) {
1505 Err(FailedPredicateError::new(
1506 &mut recog.base,
1507 Some("recog.precpred(None, 2)".to_owned()),
1508 None,
1509 ))?;
1510 }
1511 recog.base.set_state(76);

Callers 2

relation_recMethod · 0.80
calcMethod · 0.80

Calls 4

cloneMethod · 0.80
report_errorMethod · 0.80
unaryMethod · 0.45
to_ownedMethod · 0.45

Tested by

no test coverage detected