コード例 #1
0
	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;
	}
コード例 #2
0
    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);
    }