public Condition_hContext condition_h() { Condition_hContext _localctx = new Condition_hContext(Context, State); EnterRule(_localctx, 14, RULE_condition_h); try { State = 156; switch ( Interpreter.AdaptivePredict(TokenStream,5,Context) ) { case 1: EnterOuterAlt(_localctx, 1); { State = 118; _localctx.atom = atomic_condition(); _localctx.value = _localctx.atom.value; } break; case 2: EnterOuterAlt(_localctx, 2); { State = 121; Match(LPAREN); State = 122; _localctx.sub = condition_h(); State = 123; Match(RPAREN); _localctx.value = _localctx.sub.value; } break; case 3: EnterOuterAlt(_localctx, 3); { State = 126; _localctx.atom = atomic_condition(); State = 127; Match(AND); State = 128; _localctx.sub2 = condition_h(); _localctx.value = PumpingLemma.LogicalExpression.And(_localctx.atom.value, _localctx.sub2.value); } break; case 4: EnterOuterAlt(_localctx, 4); { State = 131; Match(LPAREN); State = 132; _localctx.sub1 = condition_h(); State = 133; Match(RPAREN); State = 134; Match(AND); State = 135; _localctx.sub2 = condition_h(); _localctx.value = PumpingLemma.LogicalExpression.And(_localctx.sub1.value, _localctx.sub2.value); } break; case 5: EnterOuterAlt(_localctx, 5); { State = 138; _localctx.atom = atomic_condition(); State = 139; Match(OR); State = 140; _localctx.sub2 = condition_h(); _localctx.value = PumpingLemma.LogicalExpression.Or(_localctx.atom.value, _localctx.sub2.value); } break; case 6: EnterOuterAlt(_localctx, 6); { State = 143; Match(LPAREN); State = 144; _localctx.sub1 = condition_h(); State = 145; Match(RPAREN); State = 146; Match(OR); State = 147; _localctx.sub2 = condition_h(); _localctx.value = PumpingLemma.LogicalExpression.Or(_localctx.sub1.value, _localctx.sub2.value); } break; case 7: EnterOuterAlt(_localctx, 7); { State = 150; Match(NOT); State = 151; Match(LPAREN); State = 152; _localctx.sub = condition_h(); State = 153; Match(RPAREN); _localctx.value = PumpingLemma.LogicalExpression.Not(_localctx.sub.value); } break; } } catch (RecognitionException re) { _localctx.exception = re; ErrorHandler.ReportError(this, re); ErrorHandler.Recover(this, re); } finally { ExitRule(); } return _localctx; }
public Condition_hContext condition_h() { Condition_hContext _localctx = new Condition_hContext(Context, State); EnterRule(_localctx, 14, RULE_condition_h); try { State = 156; switch (Interpreter.AdaptivePredict(TokenStream, 5, Context)) { case 1: EnterOuterAlt(_localctx, 1); { State = 118; _localctx.atom = atomic_condition(); _localctx.value = _localctx.atom.value; } break; case 2: EnterOuterAlt(_localctx, 2); { State = 121; Match(LPAREN); State = 122; _localctx.sub = condition_h(); State = 123; Match(RPAREN); _localctx.value = _localctx.sub.value; } break; case 3: EnterOuterAlt(_localctx, 3); { State = 126; _localctx.atom = atomic_condition(); State = 127; Match(AND); State = 128; _localctx.sub2 = condition_h(); _localctx.value = PumpingLemma.LogicalExpression.And(_localctx.atom.value, _localctx.sub2.value); } break; case 4: EnterOuterAlt(_localctx, 4); { State = 131; Match(LPAREN); State = 132; _localctx.sub1 = condition_h(); State = 133; Match(RPAREN); State = 134; Match(AND); State = 135; _localctx.sub2 = condition_h(); _localctx.value = PumpingLemma.LogicalExpression.And(_localctx.sub1.value, _localctx.sub2.value); } break; case 5: EnterOuterAlt(_localctx, 5); { State = 138; _localctx.atom = atomic_condition(); State = 139; Match(OR); State = 140; _localctx.sub2 = condition_h(); _localctx.value = PumpingLemma.LogicalExpression.Or(_localctx.atom.value, _localctx.sub2.value); } break; case 6: EnterOuterAlt(_localctx, 6); { State = 143; Match(LPAREN); State = 144; _localctx.sub1 = condition_h(); State = 145; Match(RPAREN); State = 146; Match(OR); State = 147; _localctx.sub2 = condition_h(); _localctx.value = PumpingLemma.LogicalExpression.Or(_localctx.sub1.value, _localctx.sub2.value); } break; case 7: EnterOuterAlt(_localctx, 7); { State = 150; Match(NOT); State = 151; Match(LPAREN); State = 152; _localctx.sub = condition_h(); State = 153; Match(RPAREN); _localctx.value = PumpingLemma.LogicalExpression.Not(_localctx.sub.value); } break; } } catch (RecognitionException re) { _localctx.exception = re; ErrorHandler.ReportError(this, re); ErrorHandler.Recover(this, re); } finally { ExitRule(); } return(_localctx); }