public final EObject ruleGuarded() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        EObject lv_guard_1_0 = null;

        EObject lv_guarded_5_0 = null;


         enterRule(); 
            
        try {
            // InternalSimpleAntlr.g:888:28: ( (otherlv_0= '{' ( (lv_guard_1_0= ruleOrExpression ) ) otherlv_2= '}' otherlv_3= '?' otherlv_4= '=>' ( (lv_guarded_5_0= ruleParenthesized ) ) ) )
            // InternalSimpleAntlr.g:889:1: (otherlv_0= '{' ( (lv_guard_1_0= ruleOrExpression ) ) otherlv_2= '}' otherlv_3= '?' otherlv_4= '=>' ( (lv_guarded_5_0= ruleParenthesized ) ) )
            {
            // InternalSimpleAntlr.g:889:1: (otherlv_0= '{' ( (lv_guard_1_0= ruleOrExpression ) ) otherlv_2= '}' otherlv_3= '?' otherlv_4= '=>' ( (lv_guarded_5_0= ruleParenthesized ) ) )
            // InternalSimpleAntlr.g:889:3: otherlv_0= '{' ( (lv_guard_1_0= ruleOrExpression ) ) otherlv_2= '}' otherlv_3= '?' otherlv_4= '=>' ( (lv_guarded_5_0= ruleParenthesized ) )
            {
            otherlv_0=(Token)match(input,16,FOLLOW_20); if (state.failed) return current;
            if ( state.backtracking==0 ) {

                  	newLeafNode(otherlv_0, grammarAccess.getGuardedAccess().getLeftCurlyBracketKeyword_0());
                  
            }
            // InternalSimpleAntlr.g:893:1: ( (lv_guard_1_0= ruleOrExpression ) )
            // InternalSimpleAntlr.g:894:1: (lv_guard_1_0= ruleOrExpression )
            {
            // InternalSimpleAntlr.g:894:1: (lv_guard_1_0= ruleOrExpression )
            // InternalSimpleAntlr.g:895:3: lv_guard_1_0= ruleOrExpression
            {
            if ( state.backtracking==0 ) {
               
              	        newCompositeNode(grammarAccess.getGuardedAccess().getGuardOrExpressionParserRuleCall_1_0()); 
              	    
            }
            pushFollow(FOLLOW_21);
            lv_guard_1_0=ruleOrExpression();

            state._fsp--;
            if (state.failed) return current;
            if ( state.backtracking==0 ) {

              	        if (current==null) {
              	            current = createModelElementForParent(grammarAccess.getGuardedRule());
              	        }
                     		set(
                     			current, 
                     			"guard",
                      		lv_guard_1_0, 
                      		"org.eclipse.xtext.generator.parser.antlr.debug.SimpleAntlr.OrExpression");
              	        afterParserOrEnumRuleCall();
              	    
            }

            }


            }

            otherlv_2=(Token)match(input,17,FOLLOW_22); if (state.failed) return current;
            if ( state.backtracking==0 ) {

                  	newLeafNode(otherlv_2, grammarAccess.getGuardedAccess().getRightCurlyBracketKeyword_2());
                  
            }
            otherlv_3=(Token)match(input,27,FOLLOW_23); if (state.failed) return current;
            if ( state.backtracking==0 ) {

                  	newLeafNode(otherlv_3, grammarAccess.getGuardedAccess().getQuestionMarkKeyword_3());
                  
            }
            otherlv_4=(Token)match(input,30,FOLLOW_24); if (state.failed) return current;
            if ( state.backtracking==0 ) {

                  	newLeafNode(otherlv_4, grammarAccess.getGuardedAccess().getEqualsSignGreaterThanSignKeyword_4());
                  
            }
            // InternalSimpleAntlr.g:923:1: ( (lv_guarded_5_0= ruleParenthesized ) )
            // InternalSimpleAntlr.g:924:1: (lv_guarded_5_0= ruleParenthesized )
            {
            // InternalSimpleAntlr.g:924:1: (lv_guarded_5_0= ruleParenthesized )
            // InternalSimpleAntlr.g:925:3: lv_guarded_5_0= ruleParenthesized
            {
            if ( state.backtracking==0 ) {
               
              	        newCompositeNode(grammarAccess.getGuardedAccess().getGuardedParenthesizedParserRuleCall_5_0()); 
              	    
            }
            pushFollow(FOLLOW_2);
            lv_guarded_5_0=ruleParenthesized();

            state._fsp--;
            if (state.failed) return current;
            if ( state.backtracking==0 ) {

              	        if (current==null) {
              	            current = createModelElementForParent(grammarAccess.getGuardedRule());
              	        }
                     		set(
                     			current, 
                     			"guarded",
                      		lv_guarded_5_0, 
                      		"org.eclipse.xtext.generator.parser.antlr.debug.SimpleAntlr.Parenthesized");
              	        afterParserOrEnumRuleCall();
              	    
            }

            }


            }


            }


            }

            if ( state.backtracking==0 ) {
               leaveRule(); 
            }
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
public final EObject ruleGuarded ( ) throws RecognitionException { EObject current = null ; Token otherlv_0 = null ; Token otherlv_2 = null ; Token otherlv_3 = null ; Token otherlv_4 = null ; EObject lv_guard_1_0 = null ; EObject lv_guarded_5_0 = null ; enterRule ( ) ; try { { { otherlv_0 = ( Token ) match ( input , 16 , FOLLOW_20 ) ; if ( state . failed ) return current ; if ( state . backtracking == 0 ) { newLeafNode ( otherlv_0 , grammarAccess . getGuardedAccess ( ) . getLeftCurlyBracketKeyword_0 ( ) ) ; } { { if ( state . backtracking == 0 ) { newCompositeNode ( grammarAccess . getGuardedAccess ( ) . getGuardOrExpressionParserRuleCall_1_0 ( ) ) ; } pushFollow ( FOLLOW_21 ) ; lv_guard_1_0 = ruleOrExpression ( ) ; state . _fsp -- ; if ( state . failed ) return current ; if ( state . backtracking == 0 ) { if ( current == null ) { current = createModelElementForParent ( grammarAccess . getGuardedRule ( ) ) ; } set ( current , "guard" , lv_guard_1_0 , "org.eclipse.xtext.generator.parser.antlr.debug.SimpleAntlr.OrExpression" ) ; afterParserOrEnumRuleCall ( ) ; } } } otherlv_2 = ( Token ) match ( input , 17 , FOLLOW_22 ) ; if ( state . failed ) return current ; if ( state . backtracking == 0 ) { newLeafNode ( otherlv_2 , grammarAccess . getGuardedAccess ( ) . getRightCurlyBracketKeyword_2 ( ) ) ; } otherlv_3 = ( Token ) match ( input , 27 , FOLLOW_23 ) ; if ( state . failed ) return current ; if ( state . backtracking == 0 ) { newLeafNode ( otherlv_3 , grammarAccess . getGuardedAccess ( ) . getQuestionMarkKeyword_3 ( ) ) ; } otherlv_4 = ( Token ) match ( input , 30 , FOLLOW_24 ) ; if ( state . failed ) return current ; if ( state . backtracking == 0 ) { newLeafNode ( otherlv_4 , grammarAccess . getGuardedAccess ( ) . getEqualsSignGreaterThanSignKeyword_4 ( ) ) ; } { { if ( state . backtracking == 0 ) { newCompositeNode ( grammarAccess . getGuardedAccess ( ) . getGuardedParenthesizedParserRuleCall_5_0 ( ) ) ; } pushFollow ( FOLLOW_2 ) ; lv_guarded_5_0 = ruleParenthesized ( ) ; state . _fsp -- ; if ( state . failed ) return current ; if ( state . backtracking == 0 ) { if ( current == null ) { current = createModelElementForParent ( grammarAccess . getGuardedRule ( ) ) ; } set ( current , "guarded" , lv_guarded_5_0 , "org.eclipse.xtext.generator.parser.antlr.debug.SimpleAntlr.Parenthesized" ) ; afterParserOrEnumRuleCall ( ) ; } } } } } if ( state . backtracking == 0 ) { leaveRule ( ) ; } } catch ( RecognitionException re ) { recover ( input , re ) ; appendSkippedTokens ( ) ; } finally { } return current ; }
InternalSimpleAntlr.g:885:1: ruleGuarded returns [EObject current=null] : (otherlv_0= '{' ( (lv_guard_1_0= ruleOrExpression ) ) otherlv_2= '}' otherlv_3= '?' otherlv_4= '=>' ( (lv_guarded_5_0= ruleParenthesized ) ) ) ;