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

Method unary

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

Source from the content-addressed store, hash-verified

1964 I: TokenStream<'input, TF = LocalTokenFactory<'input>> + TidAble<'input>,
1965{
1966 pub fn unary(&mut self) -> Result<Rc<UnaryContextAll<'input>>, ANTLRError> {
1967 let mut recog = self;
1968 let _parentctx = recog.ctx.take();
1969 let mut _localctx = UnaryContextExt::new(_parentctx.clone(), recog.base.get_state());
1970 recog.base.enter_rule(_localctx.clone(), 12, RULE_unary);
1971 let mut _localctx: Rc<UnaryContextAll> = _localctx;
1972 let mut _la: i32 = -1;
1973 let result: Result<(), ANTLRError> = (|| {
1974 let mut _alt: i32;
1975 recog.base.set_state(99);
1976 recog.err_handler.sync(&mut recog.base)?;
1977 match recog.interpreter.adaptive_predict(8, &mut recog.base)? {
1978 1 => {
1979 let tmp = MemberExprContextExt::new(&**_localctx);
1980 recog.base.enter_outer_alt(Some(tmp.clone()), 1)?;
1981 _localctx = tmp;
1982 {
1983 /*InvokeRule member*/
1984 recog.base.set_state(86);
1985 recog.member_rec(0)?;
1986 }
1987 }
1988 2 => {
1989 let tmp = LogicalNotContextExt::new(&**_localctx);
1990 recog.base.enter_outer_alt(Some(tmp.clone()), 2)?;
1991 _localctx = tmp;
1992 {
1993 recog.base.set_state(88);
1994 recog.err_handler.sync(&mut recog.base)?;
1995 _la = recog.base.input.la(1);
1996 loop {
1997 {
1998 {
1999 recog.base.set_state(87);
2000 let tmp = recog
2001 .base
2002 .match_token(CEL_EXCLAM, &mut recog.err_handler)?;
2003 if let UnaryContextAll::LogicalNotContext(ctx) =
2004 cast_mut::<_, UnaryContextAll>(&mut _localctx)
2005 {
2006 ctx.s19 = Some(tmp.clone());
2007 } else {
2008 unreachable!("cant cast");
2009 }
2010
2011 let temp = if let UnaryContextAll::LogicalNotContext(ctx) =
2012 cast_mut::<_, UnaryContextAll>(&mut _localctx)
2013 {
2014 ctx.s19.clone().unwrap()
2015 } else {
2016 unreachable!("cant cast");
2017 };
2018 if let UnaryContextAll::LogicalNotContext(ctx) =
2019 cast_mut::<_, UnaryContextAll>(&mut _localctx)
2020 {
2021 ctx.ops.push(temp);
2022 } else {
2023 unreachable!("cant cast");

Callers 2

visit_calcMethod · 0.45
calc_recMethod · 0.45

Calls 4

cloneMethod · 0.80
member_recMethod · 0.80
pushMethod · 0.80
report_errorMethod · 0.80

Tested by

no test coverage detected