public final AntlrDatatypeRuleToken ruleMethodCallLiteral() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token kw=null;
        AntlrDatatypeRuleToken this_FQN_0 = null;

        AntlrDatatypeRuleToken this_Argument_2 = null;

        AntlrDatatypeRuleToken this_Argument_4 = null;

        AntlrDatatypeRuleToken this_MethodCallLiteral_7 = null;


         enterRule(); 
            
        try {
            // InternalSimpleExpressions.g:643:28: ( (this_FQN_0= ruleFQN (kw= '(' (this_Argument_2= ruleArgument (kw= ',' this_Argument_4= ruleArgument )* )? kw= ')' (kw= '.' this_MethodCallLiteral_7= ruleMethodCallLiteral )? )? ) )
            // InternalSimpleExpressions.g:644:1: (this_FQN_0= ruleFQN (kw= '(' (this_Argument_2= ruleArgument (kw= ',' this_Argument_4= ruleArgument )* )? kw= ')' (kw= '.' this_MethodCallLiteral_7= ruleMethodCallLiteral )? )? )
            {
            // InternalSimpleExpressions.g:644:1: (this_FQN_0= ruleFQN (kw= '(' (this_Argument_2= ruleArgument (kw= ',' this_Argument_4= ruleArgument )* )? kw= ')' (kw= '.' this_MethodCallLiteral_7= ruleMethodCallLiteral )? )? )
            // InternalSimpleExpressions.g:645:5: this_FQN_0= ruleFQN (kw= '(' (this_Argument_2= ruleArgument (kw= ',' this_Argument_4= ruleArgument )* )? kw= ')' (kw= '.' this_MethodCallLiteral_7= ruleMethodCallLiteral )? )?
            {
             
                    newCompositeNode(grammarAccess.getMethodCallLiteralAccess().getFQNParserRuleCall_0()); 
                
            pushFollow(FOLLOW_11);
            this_FQN_0=ruleFQN();

            state._fsp--;


            		current.merge(this_FQN_0);
                
             
                    afterParserOrEnumRuleCall();
                
            // InternalSimpleExpressions.g:655:1: (kw= '(' (this_Argument_2= ruleArgument (kw= ',' this_Argument_4= ruleArgument )* )? kw= ')' (kw= '.' this_MethodCallLiteral_7= ruleMethodCallLiteral )? )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==13) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // InternalSimpleExpressions.g:656:2: kw= '(' (this_Argument_2= ruleArgument (kw= ',' this_Argument_4= ruleArgument )* )? kw= ')' (kw= '.' this_MethodCallLiteral_7= ruleMethodCallLiteral )?
                    {
                    kw=(Token)match(input,13,FOLLOW_12); 

                            current.merge(kw);
                            newLeafNode(kw, grammarAccess.getMethodCallLiteralAccess().getLeftParenthesisKeyword_1_0()); 
                        
                    // InternalSimpleExpressions.g:661:1: (this_Argument_2= ruleArgument (kw= ',' this_Argument_4= ruleArgument )* )?
                    int alt10=2;
                    int LA10_0 = input.LA(1);

                    if ( ((LA10_0>=RULE_INT && LA10_0<=RULE_ID)) ) {
                        alt10=1;
                    }
                    switch (alt10) {
                        case 1 :
                            // InternalSimpleExpressions.g:662:5: this_Argument_2= ruleArgument (kw= ',' this_Argument_4= ruleArgument )*
                            {
                             
                                    newCompositeNode(grammarAccess.getMethodCallLiteralAccess().getArgumentParserRuleCall_1_1_0()); 
                                
                            pushFollow(FOLLOW_13);
                            this_Argument_2=ruleArgument();

                            state._fsp--;


                            		current.merge(this_Argument_2);
                                
                             
                                    afterParserOrEnumRuleCall();
                                
                            // InternalSimpleExpressions.g:672:1: (kw= ',' this_Argument_4= ruleArgument )*
                            loop9:
                            do {
                                int alt9=2;
                                int LA9_0 = input.LA(1);

                                if ( (LA9_0==24) ) {
                                    alt9=1;
                                }


                                switch (alt9) {
                            	case 1 :
                            	    // InternalSimpleExpressions.g:673:2: kw= ',' this_Argument_4= ruleArgument
                            	    {
                            	    kw=(Token)match(input,24,FOLLOW_14); 

                            	            current.merge(kw);
                            	            newLeafNode(kw, grammarAccess.getMethodCallLiteralAccess().getCommaKeyword_1_1_1_0()); 
                            	        
                            	     
                            	            newCompositeNode(grammarAccess.getMethodCallLiteralAccess().getArgumentParserRuleCall_1_1_1_1()); 
                            	        
                            	    pushFollow(FOLLOW_13);
                            	    this_Argument_4=ruleArgument();

                            	    state._fsp--;


                            	    		current.merge(this_Argument_4);
                            	        
                            	     
                            	            afterParserOrEnumRuleCall();
                            	        

                            	    }
                            	    break;

                            	default :
                            	    break loop9;
                                }
                            } while (true);


                            }
                            break;

                    }

                    kw=(Token)match(input,14,FOLLOW_15); 

                            current.merge(kw);
                            newLeafNode(kw, grammarAccess.getMethodCallLiteralAccess().getRightParenthesisKeyword_1_2()); 
                        
                    // InternalSimpleExpressions.g:695:1: (kw= '.' this_MethodCallLiteral_7= ruleMethodCallLiteral )?
                    int alt11=2;
                    int LA11_0 = input.LA(1);

                    if ( (LA11_0==25) ) {
                        alt11=1;
                    }
                    switch (alt11) {
                        case 1 :
                            // InternalSimpleExpressions.g:696:2: kw= '.' this_MethodCallLiteral_7= ruleMethodCallLiteral
                            {
                            kw=(Token)match(input,25,FOLLOW_16); 

                                    current.merge(kw);
                                    newLeafNode(kw, grammarAccess.getMethodCallLiteralAccess().getFullStopKeyword_1_3_0()); 
                                
                             
                                    newCompositeNode(grammarAccess.getMethodCallLiteralAccess().getMethodCallLiteralParserRuleCall_1_3_1()); 
                                
                            pushFollow(FOLLOW_2);
                            this_MethodCallLiteral_7=ruleMethodCallLiteral();

                            state._fsp--;


                            		current.merge(this_MethodCallLiteral_7);
                                
                             
                                    afterParserOrEnumRuleCall();
                                

                            }
                            break;

                    }


                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
public final AntlrDatatypeRuleToken ruleMethodCallLiteral ( ) throws RecognitionException { AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken ( ) ; Token kw = null ; AntlrDatatypeRuleToken this_FQN_0 = null ; AntlrDatatypeRuleToken this_Argument_2 = null ; AntlrDatatypeRuleToken this_Argument_4 = null ; AntlrDatatypeRuleToken this_MethodCallLiteral_7 = null ; enterRule ( ) ; try { { { newCompositeNode ( grammarAccess . getMethodCallLiteralAccess ( ) . getFQNParserRuleCall_0 ( ) ) ; pushFollow ( FOLLOW_11 ) ; this_FQN_0 = ruleFQN ( ) ; state . _fsp -- ; current . merge ( this_FQN_0 ) ; afterParserOrEnumRuleCall ( ) ; int alt12 = 2 ; int LA12_0 = input . LA ( 1 ) ; if ( ( LA12_0 == 13 ) ) { alt12 = 1 ; } switch ( alt12 ) { case 1 : { kw = ( Token ) match ( input , 13 , FOLLOW_12 ) ; current . merge ( kw ) ; newLeafNode ( kw , grammarAccess . getMethodCallLiteralAccess ( ) . getLeftParenthesisKeyword_1_0 ( ) ) ; int alt10 = 2 ; int LA10_0 = input . LA ( 1 ) ; if ( ( ( LA10_0 >= RULE_INT && LA10_0 <= RULE_ID ) ) ) { alt10 = 1 ; } switch ( alt10 ) { case 1 : { newCompositeNode ( grammarAccess . getMethodCallLiteralAccess ( ) . getArgumentParserRuleCall_1_1_0 ( ) ) ; pushFollow ( FOLLOW_13 ) ; this_Argument_2 = ruleArgument ( ) ; state . _fsp -- ; current . merge ( this_Argument_2 ) ; afterParserOrEnumRuleCall ( ) ; loop9 : do { int alt9 = 2 ; int LA9_0 = input . LA ( 1 ) ; if ( ( LA9_0 == 24 ) ) { alt9 = 1 ; } switch ( alt9 ) { case 1 : { kw = ( Token ) match ( input , 24 , FOLLOW_14 ) ; current . merge ( kw ) ; newLeafNode ( kw , grammarAccess . getMethodCallLiteralAccess ( ) . getCommaKeyword_1_1_1_0 ( ) ) ; newCompositeNode ( grammarAccess . getMethodCallLiteralAccess ( ) . getArgumentParserRuleCall_1_1_1_1 ( ) ) ; pushFollow ( FOLLOW_13 ) ; this_Argument_4 = ruleArgument ( ) ; state . _fsp -- ; current . merge ( this_Argument_4 ) ; afterParserOrEnumRuleCall ( ) ; } break ; default : break loop9 ; } } while ( true ) ; } break ; } kw = ( Token ) match ( input , 14 , FOLLOW_15 ) ; current . merge ( kw ) ; newLeafNode ( kw , grammarAccess . getMethodCallLiteralAccess ( ) . getRightParenthesisKeyword_1_2 ( ) ) ; int alt11 = 2 ; int LA11_0 = input . LA ( 1 ) ; if ( ( LA11_0 == 25 ) ) { alt11 = 1 ; } switch ( alt11 ) { case 1 : { kw = ( Token ) match ( input , 25 , FOLLOW_16 ) ; current . merge ( kw ) ; newLeafNode ( kw , grammarAccess . getMethodCallLiteralAccess ( ) . getFullStopKeyword_1_3_0 ( ) ) ; newCompositeNode ( grammarAccess . getMethodCallLiteralAccess ( ) . getMethodCallLiteralParserRuleCall_1_3_1 ( ) ) ; pushFollow ( FOLLOW_2 ) ; this_MethodCallLiteral_7 = ruleMethodCallLiteral ( ) ; state . _fsp -- ; current . merge ( this_MethodCallLiteral_7 ) ; afterParserOrEnumRuleCall ( ) ; } break ; } } break ; } } } leaveRule ( ) ; } catch ( RecognitionException re ) { recover ( input , re ) ; appendSkippedTokens ( ) ; } finally { } return current ; }
InternalSimpleExpressions.g:640:1: ruleMethodCallLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FQN_0= ruleFQN (kw= '(' (this_Argument_2= ruleArgument (kw= ',' this_Argument_4= ruleArgument )* )? kw= ')' (kw= '.' this_MethodCallLiteral_7= ruleMethodCallLiteral )? )? ) ;