Search in sources :

Example 11 with EObject

use of org.eclipse.emf.ecore.EObject in project mechanoid by robotoworks.

the class InternalSqliteModelParser method ruleDMLStatement.

// $ANTLR end "entryRuleDMLStatement"
// $ANTLR start "ruleDMLStatement"
// ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:5694:1: ruleDMLStatement returns [EObject current=null] : (this_SelectStatement_0= ruleSelectStatement | this_InsertStatement_1= ruleInsertStatement | this_UpdateStatement_2= ruleUpdateStatement | this_DeleteStatement_3= ruleDeleteStatement ) ;
public final EObject ruleDMLStatement() throws RecognitionException {
    EObject current = null;
    EObject this_SelectStatement_0 = null;
    EObject this_InsertStatement_1 = null;
    EObject this_UpdateStatement_2 = null;
    EObject this_DeleteStatement_3 = null;
    enterRule();
    try {
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:5697:28: ( (this_SelectStatement_0= ruleSelectStatement | this_InsertStatement_1= ruleInsertStatement | this_UpdateStatement_2= ruleUpdateStatement | this_DeleteStatement_3= ruleDeleteStatement ) )
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:5698:1: (this_SelectStatement_0= ruleSelectStatement | this_InsertStatement_1= ruleInsertStatement | this_UpdateStatement_2= ruleUpdateStatement | this_DeleteStatement_3= ruleDeleteStatement )
        {
            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:5698:1: (this_SelectStatement_0= ruleSelectStatement | this_InsertStatement_1= ruleInsertStatement | this_UpdateStatement_2= ruleUpdateStatement | this_DeleteStatement_3= ruleDeleteStatement )
            int alt100 = 4;
            switch(input.LA(1)) {
                case 74:
                    {
                        alt100 = 1;
                    }
                    break;
                case 103:
                case 122:
                    {
                        alt100 = 2;
                    }
                    break;
                case 104:
                    {
                        alt100 = 3;
                    }
                    break;
                case 102:
                    {
                        alt100 = 4;
                    }
                    break;
                default:
                    if (state.backtracking > 0) {
                        state.failed = true;
                        return current;
                    }
                    NoViableAltException nvae = new NoViableAltException("", 100, 0, input);
                    throw nvae;
            }
            switch(alt100) {
                case 1:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:5699:5: this_SelectStatement_0= ruleSelectStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDMLStatementAccess().getSelectStatementParserRuleCall_0());
                        }
                        pushFollow(FOLLOW_ruleSelectStatement_in_ruleDMLStatement12394);
                        this_SelectStatement_0 = ruleSelectStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_SelectStatement_0;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 2:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:5709:5: this_InsertStatement_1= ruleInsertStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDMLStatementAccess().getInsertStatementParserRuleCall_1());
                        }
                        pushFollow(FOLLOW_ruleInsertStatement_in_ruleDMLStatement12421);
                        this_InsertStatement_1 = ruleInsertStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_InsertStatement_1;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 3:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:5719:5: this_UpdateStatement_2= ruleUpdateStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDMLStatementAccess().getUpdateStatementParserRuleCall_2());
                        }
                        pushFollow(FOLLOW_ruleUpdateStatement_in_ruleDMLStatement12448);
                        this_UpdateStatement_2 = ruleUpdateStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_UpdateStatement_2;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 4:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:5729:5: this_DeleteStatement_3= ruleDeleteStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDMLStatementAccess().getDeleteStatementParserRuleCall_3());
                        }
                        pushFollow(FOLLOW_ruleDeleteStatement_in_ruleDMLStatement12475);
                        this_DeleteStatement_3 = ruleDeleteStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_DeleteStatement_3;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
            }
        }
        if (state.backtracking == 0) {
            leaveRule();
        }
    } catch (RecognitionException re) {
        recover(input, re);
        appendSkippedTokens();
    } finally {
    }
    return current;
}
Also used : EObject(org.eclipse.emf.ecore.EObject)

Example 12 with EObject

use of org.eclipse.emf.ecore.EObject in project mechanoid by robotoworks.

the class InternalSqliteModelParser method entryRuleSelectList.

// $ANTLR end "ruleSelectExpression"
// $ANTLR start "entryRuleSelectList"
// ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2770:1: entryRuleSelectList returns [EObject current=null] : iv_ruleSelectList= ruleSelectList EOF ;
public final EObject entryRuleSelectList() throws RecognitionException {
    EObject current = null;
    EObject iv_ruleSelectList = null;
    try {
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2771:2: (iv_ruleSelectList= ruleSelectList EOF )
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2772:2: iv_ruleSelectList= ruleSelectList EOF
        {
            if (state.backtracking == 0) {
                newCompositeNode(grammarAccess.getSelectListRule());
            }
            pushFollow(FOLLOW_ruleSelectList_in_entryRuleSelectList5888);
            iv_ruleSelectList = ruleSelectList();
            state._fsp--;
            if (state.failed)
                return current;
            if (state.backtracking == 0) {
                current = iv_ruleSelectList;
            }
            match(input, EOF, FOLLOW_EOF_in_entryRuleSelectList5898);
            if (state.failed)
                return current;
        }
    } catch (RecognitionException re) {
        recover(input, re);
        appendSkippedTokens();
    } finally {
    }
    return current;
}
Also used : EObject(org.eclipse.emf.ecore.EObject)

Example 13 with EObject

use of org.eclipse.emf.ecore.EObject in project mechanoid by robotoworks.

the class InternalSqliteModelParser method rulePrimaryExpression.

// $ANTLR end "entryRulePrimaryExpression"
// $ANTLR start "rulePrimaryExpression"
// ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1763:1: rulePrimaryExpression returns [EObject current=null] : ( ( () otherlv_1= 'new.' ( (otherlv_2= RULE_ID ) ) ) | ( () otherlv_4= 'old.' ( (otherlv_5= RULE_ID ) ) ) | ( () ( ( ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.' ) | ( ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) ) ) | ( (otherlv_13= RULE_ID ) ) ) ) | ( () ( (lv_literalValue_15_0= ruleLiteralValue ) ) ) | ( () otherlv_17= '(' ( (lv_expression_18_0= ruleSqlExpression ) ) otherlv_19= ')' ) | ( () ( (lv_not_21_0= 'not' ) )? ( (lv_exists_22_0= 'exists' ) )? otherlv_23= '(' ( (lv_select_24_0= ruleSelectStatement ) ) otherlv_25= ')' ) | ( () otherlv_27= 'case' ( (lv_caseExpression_28_0= ruleSqlExpression ) )? ( (lv_cases_29_0= ruleCase ) )+ (otherlv_30= 'else' ( (lv_elseExpression_31_0= ruleSqlExpression ) ) )? otherlv_32= 'end' ) | ( () ( (lv_name_34_0= RULE_ID ) ) otherlv_35= '(' ( ( (lv_all_36_0= '*' ) ) | ( ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )* ) ) otherlv_40= ')' ) | ( () otherlv_42= 'cast' otherlv_43= '(' ( (lv_expression_44_0= ruleSqlExpression ) ) otherlv_45= 'as' ( (lv_type_46_0= ruleSqliteDataType ) ) otherlv_47= ')' ) | ( () otherlv_49= '$' ( (otherlv_50= RULE_ID ) ) ) ) ;
public final EObject rulePrimaryExpression() throws RecognitionException {
    EObject current = null;
    Token otherlv_1 = null;
    Token otherlv_2 = null;
    Token otherlv_4 = null;
    Token otherlv_5 = null;
    Token otherlv_7 = null;
    Token otherlv_8 = null;
    Token otherlv_9 = null;
    Token otherlv_10 = null;
    Token lv_all_11_0 = null;
    Token otherlv_12 = null;
    Token otherlv_13 = null;
    Token otherlv_17 = null;
    Token otherlv_19 = null;
    Token lv_not_21_0 = null;
    Token lv_exists_22_0 = null;
    Token otherlv_23 = null;
    Token otherlv_25 = null;
    Token otherlv_27 = null;
    Token otherlv_30 = null;
    Token otherlv_32 = null;
    Token lv_name_34_0 = null;
    Token otherlv_35 = null;
    Token lv_all_36_0 = null;
    Token otherlv_38 = null;
    Token otherlv_40 = null;
    Token otherlv_42 = null;
    Token otherlv_43 = null;
    Token otherlv_45 = null;
    Token otherlv_47 = null;
    Token otherlv_49 = null;
    Token otherlv_50 = null;
    EObject lv_literalValue_15_0 = null;
    EObject lv_expression_18_0 = null;
    EObject lv_select_24_0 = null;
    EObject lv_caseExpression_28_0 = null;
    EObject lv_cases_29_0 = null;
    EObject lv_elseExpression_31_0 = null;
    EObject lv_arguments_37_0 = null;
    EObject lv_arguments_39_0 = null;
    EObject lv_expression_44_0 = null;
    Enumerator lv_type_46_0 = null;
    enterRule();
    try {
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1766:28: ( ( ( () otherlv_1= 'new.' ( (otherlv_2= RULE_ID ) ) ) | ( () otherlv_4= 'old.' ( (otherlv_5= RULE_ID ) ) ) | ( () ( ( ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.' ) | ( ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) ) ) | ( (otherlv_13= RULE_ID ) ) ) ) | ( () ( (lv_literalValue_15_0= ruleLiteralValue ) ) ) | ( () otherlv_17= '(' ( (lv_expression_18_0= ruleSqlExpression ) ) otherlv_19= ')' ) | ( () ( (lv_not_21_0= 'not' ) )? ( (lv_exists_22_0= 'exists' ) )? otherlv_23= '(' ( (lv_select_24_0= ruleSelectStatement ) ) otherlv_25= ')' ) | ( () otherlv_27= 'case' ( (lv_caseExpression_28_0= ruleSqlExpression ) )? ( (lv_cases_29_0= ruleCase ) )+ (otherlv_30= 'else' ( (lv_elseExpression_31_0= ruleSqlExpression ) ) )? otherlv_32= 'end' ) | ( () ( (lv_name_34_0= RULE_ID ) ) otherlv_35= '(' ( ( (lv_all_36_0= '*' ) ) | ( ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )* ) ) otherlv_40= ')' ) | ( () otherlv_42= 'cast' otherlv_43= '(' ( (lv_expression_44_0= ruleSqlExpression ) ) otherlv_45= 'as' ( (lv_type_46_0= ruleSqliteDataType ) ) otherlv_47= ')' ) | ( () otherlv_49= '$' ( (otherlv_50= RULE_ID ) ) ) ) )
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1767:1: ( ( () otherlv_1= 'new.' ( (otherlv_2= RULE_ID ) ) ) | ( () otherlv_4= 'old.' ( (otherlv_5= RULE_ID ) ) ) | ( () ( ( ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.' ) | ( ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) ) ) | ( (otherlv_13= RULE_ID ) ) ) ) | ( () ( (lv_literalValue_15_0= ruleLiteralValue ) ) ) | ( () otherlv_17= '(' ( (lv_expression_18_0= ruleSqlExpression ) ) otherlv_19= ')' ) | ( () ( (lv_not_21_0= 'not' ) )? ( (lv_exists_22_0= 'exists' ) )? otherlv_23= '(' ( (lv_select_24_0= ruleSelectStatement ) ) otherlv_25= ')' ) | ( () otherlv_27= 'case' ( (lv_caseExpression_28_0= ruleSqlExpression ) )? ( (lv_cases_29_0= ruleCase ) )+ (otherlv_30= 'else' ( (lv_elseExpression_31_0= ruleSqlExpression ) ) )? otherlv_32= 'end' ) | ( () ( (lv_name_34_0= RULE_ID ) ) otherlv_35= '(' ( ( (lv_all_36_0= '*' ) ) | ( ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )* ) ) otherlv_40= ')' ) | ( () otherlv_42= 'cast' otherlv_43= '(' ( (lv_expression_44_0= ruleSqlExpression ) ) otherlv_45= 'as' ( (lv_type_46_0= ruleSqliteDataType ) ) otherlv_47= ')' ) | ( () otherlv_49= '$' ( (otherlv_50= RULE_ID ) ) ) )
        {
            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1767:1: ( ( () otherlv_1= 'new.' ( (otherlv_2= RULE_ID ) ) ) | ( () otherlv_4= 'old.' ( (otherlv_5= RULE_ID ) ) ) | ( () ( ( ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.' ) | ( ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) ) ) | ( (otherlv_13= RULE_ID ) ) ) ) | ( () ( (lv_literalValue_15_0= ruleLiteralValue ) ) ) | ( () otherlv_17= '(' ( (lv_expression_18_0= ruleSqlExpression ) ) otherlv_19= ')' ) | ( () ( (lv_not_21_0= 'not' ) )? ( (lv_exists_22_0= 'exists' ) )? otherlv_23= '(' ( (lv_select_24_0= ruleSelectStatement ) ) otherlv_25= ')' ) | ( () otherlv_27= 'case' ( (lv_caseExpression_28_0= ruleSqlExpression ) )? ( (lv_cases_29_0= ruleCase ) )+ (otherlv_30= 'else' ( (lv_elseExpression_31_0= ruleSqlExpression ) ) )? otherlv_32= 'end' ) | ( () ( (lv_name_34_0= RULE_ID ) ) otherlv_35= '(' ( ( (lv_all_36_0= '*' ) ) | ( ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )* ) ) otherlv_40= ')' ) | ( () otherlv_42= 'cast' otherlv_43= '(' ( (lv_expression_44_0= ruleSqlExpression ) ) otherlv_45= 'as' ( (lv_type_46_0= ruleSqliteDataType ) ) otherlv_47= ')' ) | ( () otherlv_49= '$' ( (otherlv_50= RULE_ID ) ) ) )
            int alt39 = 10;
            alt39 = dfa39.predict(input);
            switch(alt39) {
                case 1:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1767:2: ( () otherlv_1= 'new.' ( (otherlv_2= RULE_ID ) ) )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1767:2: ( () otherlv_1= 'new.' ( (otherlv_2= RULE_ID ) ) )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1767:3: () otherlv_1= 'new.' ( (otherlv_2= RULE_ID ) )
                        {
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1767:3: ()
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1768:5: 
                            {
                                if (state.backtracking == 0) {
                                    current = forceCreateModelElement(grammarAccess.getPrimaryExpressionAccess().getNewColumnAction_0_0(), current);
                                }
                            }
                            otherlv_1 = (Token) match(input, 58, FOLLOW_58_in_rulePrimaryExpression3930);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_1, grammarAccess.getPrimaryExpressionAccess().getNewKeyword_0_1());
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1777:1: ( (otherlv_2= RULE_ID ) )
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1778:1: (otherlv_2= RULE_ID )
                            {
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1778:1: (otherlv_2= RULE_ID )
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1779:3: otherlv_2= RULE_ID
                                {
                                    if (state.backtracking == 0) {
                                        if (current == null) {
                                            current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                        }
                                    }
                                    otherlv_2 = (Token) match(input, RULE_ID, FOLLOW_RULE_ID_in_rulePrimaryExpression3950);
                                    if (state.failed)
                                        return current;
                                    if (state.backtracking == 0) {
                                        newLeafNode(otherlv_2, grammarAccess.getPrimaryExpressionAccess().getColumnColumnSourceCrossReference_0_2_0());
                                    }
                                }
                            }
                        }
                    }
                    break;
                case 2:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1791:6: ( () otherlv_4= 'old.' ( (otherlv_5= RULE_ID ) ) )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1791:6: ( () otherlv_4= 'old.' ( (otherlv_5= RULE_ID ) ) )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1791:7: () otherlv_4= 'old.' ( (otherlv_5= RULE_ID ) )
                        {
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1791:7: ()
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1792:5: 
                            {
                                if (state.backtracking == 0) {
                                    current = forceCreateModelElement(grammarAccess.getPrimaryExpressionAccess().getOldColumnAction_1_0(), current);
                                }
                            }
                            otherlv_4 = (Token) match(input, 59, FOLLOW_59_in_rulePrimaryExpression3979);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_4, grammarAccess.getPrimaryExpressionAccess().getOldKeyword_1_1());
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1801:1: ( (otherlv_5= RULE_ID ) )
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1802:1: (otherlv_5= RULE_ID )
                            {
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1802:1: (otherlv_5= RULE_ID )
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1803:3: otherlv_5= RULE_ID
                                {
                                    if (state.backtracking == 0) {
                                        if (current == null) {
                                            current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                        }
                                    }
                                    otherlv_5 = (Token) match(input, RULE_ID, FOLLOW_RULE_ID_in_rulePrimaryExpression3999);
                                    if (state.failed)
                                        return current;
                                    if (state.backtracking == 0) {
                                        newLeafNode(otherlv_5, grammarAccess.getPrimaryExpressionAccess().getColumnColumnSourceCrossReference_1_2_0());
                                    }
                                }
                            }
                        }
                    }
                    break;
                case 3:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1815:6: ( () ( ( ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.' ) | ( ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) ) ) | ( (otherlv_13= RULE_ID ) ) ) )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1815:6: ( () ( ( ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.' ) | ( ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) ) ) | ( (otherlv_13= RULE_ID ) ) ) )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1815:7: () ( ( ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.' ) | ( ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) ) ) | ( (otherlv_13= RULE_ID ) ) )
                        {
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1815:7: ()
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1816:5: 
                            {
                                if (state.backtracking == 0) {
                                    current = forceCreateModelElement(grammarAccess.getPrimaryExpressionAccess().getColumnSourceRefAction_2_0(), current);
                                }
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1821:2: ( ( ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.' ) | ( ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) ) ) | ( (otherlv_13= RULE_ID ) ) )
                            int alt31 = 3;
                            alt31 = dfa31.predict(input);
                            switch(alt31) {
                                case 1:
                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1821:3: ( ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.' )
                                    {
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1821:3: ( ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.' )
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1821:4: ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) ) otherlv_8= '.'
                                        {
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1821:4: ( ( ( RULE_ID ) )=> (otherlv_7= RULE_ID ) )
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1821:5: ( ( RULE_ID ) )=> (otherlv_7= RULE_ID )
                                            {
                                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1827:1: (otherlv_7= RULE_ID )
                                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1828:3: otherlv_7= RULE_ID
                                                {
                                                    if (state.backtracking == 0) {
                                                        if (current == null) {
                                                            current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                                        }
                                                    }
                                                    otherlv_7 = (Token) match(input, RULE_ID, FOLLOW_RULE_ID_in_rulePrimaryExpression4050);
                                                    if (state.failed)
                                                        return current;
                                                    if (state.backtracking == 0) {
                                                        newLeafNode(otherlv_7, grammarAccess.getPrimaryExpressionAccess().getSourceSelectSourceCrossReference_2_1_0_0_0());
                                                    }
                                                }
                                            }
                                            otherlv_8 = (Token) match(input, 60, FOLLOW_60_in_rulePrimaryExpression4062);
                                            if (state.failed)
                                                return current;
                                            if (state.backtracking == 0) {
                                                newLeafNode(otherlv_8, grammarAccess.getPrimaryExpressionAccess().getFullStopKeyword_2_1_0_1());
                                            }
                                        }
                                    }
                                    break;
                                case 2:
                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1844:6: ( ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) ) )
                                    {
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1844:6: ( ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) ) )
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1844:7: ( (otherlv_9= RULE_ID ) ) otherlv_10= '.' ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) )
                                        {
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1844:7: ( (otherlv_9= RULE_ID ) )
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1845:1: (otherlv_9= RULE_ID )
                                            {
                                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1845:1: (otherlv_9= RULE_ID )
                                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1846:3: otherlv_9= RULE_ID
                                                {
                                                    if (state.backtracking == 0) {
                                                        if (current == null) {
                                                            current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                                        }
                                                    }
                                                    otherlv_9 = (Token) match(input, RULE_ID, FOLLOW_RULE_ID_in_rulePrimaryExpression4090);
                                                    if (state.failed)
                                                        return current;
                                                    if (state.backtracking == 0) {
                                                        newLeafNode(otherlv_9, grammarAccess.getPrimaryExpressionAccess().getSourceSelectSourceCrossReference_2_1_1_0_0());
                                                    }
                                                }
                                            }
                                            otherlv_10 = (Token) match(input, 60, FOLLOW_60_in_rulePrimaryExpression4102);
                                            if (state.failed)
                                                return current;
                                            if (state.backtracking == 0) {
                                                newLeafNode(otherlv_10, grammarAccess.getPrimaryExpressionAccess().getFullStopKeyword_2_1_1_1());
                                            }
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1861:1: ( ( (lv_all_11_0= '*' ) ) | ( (otherlv_12= RULE_ID ) ) )
                                            int alt30 = 2;
                                            int LA30_0 = input.LA(1);
                                            if ((LA30_0 == 27)) {
                                                alt30 = 1;
                                            } else if ((LA30_0 == RULE_ID)) {
                                                alt30 = 2;
                                            } else {
                                                if (state.backtracking > 0) {
                                                    state.failed = true;
                                                    return current;
                                                }
                                                NoViableAltException nvae = new NoViableAltException("", 30, 0, input);
                                                throw nvae;
                                            }
                                            switch(alt30) {
                                                case 1:
                                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1861:2: ( (lv_all_11_0= '*' ) )
                                                    {
                                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1861:2: ( (lv_all_11_0= '*' ) )
                                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1862:1: (lv_all_11_0= '*' )
                                                        {
                                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1862:1: (lv_all_11_0= '*' )
                                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1863:3: lv_all_11_0= '*'
                                                            {
                                                                lv_all_11_0 = (Token) match(input, 27, FOLLOW_27_in_rulePrimaryExpression4121);
                                                                if (state.failed)
                                                                    return current;
                                                                if (state.backtracking == 0) {
                                                                    newLeafNode(lv_all_11_0, grammarAccess.getPrimaryExpressionAccess().getAllAsteriskKeyword_2_1_1_2_0_0());
                                                                }
                                                                if (state.backtracking == 0) {
                                                                    if (current == null) {
                                                                        current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                                                    }
                                                                    setWithLastConsumed(current, "all", true, "*");
                                                                }
                                                            }
                                                        }
                                                    }
                                                    break;
                                                case 2:
                                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1877:6: ( (otherlv_12= RULE_ID ) )
                                                    {
                                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1877:6: ( (otherlv_12= RULE_ID ) )
                                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1878:1: (otherlv_12= RULE_ID )
                                                        {
                                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1878:1: (otherlv_12= RULE_ID )
                                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1879:3: otherlv_12= RULE_ID
                                                            {
                                                                if (state.backtracking == 0) {
                                                                    if (current == null) {
                                                                        current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                                                    }
                                                                }
                                                                otherlv_12 = (Token) match(input, RULE_ID, FOLLOW_RULE_ID_in_rulePrimaryExpression4160);
                                                                if (state.failed)
                                                                    return current;
                                                                if (state.backtracking == 0) {
                                                                    newLeafNode(otherlv_12, grammarAccess.getPrimaryExpressionAccess().getColumnColumnSourceCrossReference_2_1_1_2_1_0());
                                                                }
                                                            }
                                                        }
                                                    }
                                                    break;
                                            }
                                        }
                                    }
                                    break;
                                case 3:
                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1891:6: ( (otherlv_13= RULE_ID ) )
                                    {
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1891:6: ( (otherlv_13= RULE_ID ) )
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1892:1: (otherlv_13= RULE_ID )
                                        {
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1892:1: (otherlv_13= RULE_ID )
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1893:3: otherlv_13= RULE_ID
                                            {
                                                if (state.backtracking == 0) {
                                                    if (current == null) {
                                                        current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                                    }
                                                }
                                                otherlv_13 = (Token) match(input, RULE_ID, FOLLOW_RULE_ID_in_rulePrimaryExpression4188);
                                                if (state.failed)
                                                    return current;
                                                if (state.backtracking == 0) {
                                                    newLeafNode(otherlv_13, grammarAccess.getPrimaryExpressionAccess().getColumnColumnSourceCrossReference_2_1_2_0());
                                                }
                                            }
                                        }
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case 4:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1905:6: ( () ( (lv_literalValue_15_0= ruleLiteralValue ) ) )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1905:6: ( () ( (lv_literalValue_15_0= ruleLiteralValue ) ) )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1905:7: () ( (lv_literalValue_15_0= ruleLiteralValue ) )
                        {
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1905:7: ()
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1906:5: 
                            {
                                if (state.backtracking == 0) {
                                    current = forceCreateModelElement(grammarAccess.getPrimaryExpressionAccess().getLiteralAction_3_0(), current);
                                }
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1911:2: ( (lv_literalValue_15_0= ruleLiteralValue ) )
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1912:1: (lv_literalValue_15_0= ruleLiteralValue )
                            {
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1912:1: (lv_literalValue_15_0= ruleLiteralValue )
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1913:3: lv_literalValue_15_0= ruleLiteralValue
                                {
                                    if (state.backtracking == 0) {
                                        newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLiteralValueLiteralValueParserRuleCall_3_1_0());
                                    }
                                    pushFollow(FOLLOW_ruleLiteralValue_in_rulePrimaryExpression4227);
                                    lv_literalValue_15_0 = ruleLiteralValue();
                                    state._fsp--;
                                    if (state.failed)
                                        return current;
                                    if (state.backtracking == 0) {
                                        if (current == null) {
                                            current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
                                        }
                                        set(current, "literalValue", lv_literalValue_15_0, "LiteralValue");
                                        afterParserOrEnumRuleCall();
                                    }
                                }
                            }
                        }
                    }
                    break;
                case 5:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1930:6: ( () otherlv_17= '(' ( (lv_expression_18_0= ruleSqlExpression ) ) otherlv_19= ')' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1930:6: ( () otherlv_17= '(' ( (lv_expression_18_0= ruleSqlExpression ) ) otherlv_19= ')' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1930:7: () otherlv_17= '(' ( (lv_expression_18_0= ruleSqlExpression ) ) otherlv_19= ')'
                        {
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1930:7: ()
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1931:5: 
                            {
                                if (state.backtracking == 0) {
                                    current = forceCreateModelElement(grammarAccess.getPrimaryExpressionAccess().getNestedExpressionAction_4_0(), current);
                                }
                            }
                            otherlv_17 = (Token) match(input, 21, FOLLOW_21_in_rulePrimaryExpression4256);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_17, grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_4_1());
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1940:1: ( (lv_expression_18_0= ruleSqlExpression ) )
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1941:1: (lv_expression_18_0= ruleSqlExpression )
                            {
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1941:1: (lv_expression_18_0= ruleSqlExpression )
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1942:3: lv_expression_18_0= ruleSqlExpression
                                {
                                    if (state.backtracking == 0) {
                                        newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getExpressionSqlExpressionParserRuleCall_4_2_0());
                                    }
                                    pushFollow(FOLLOW_ruleSqlExpression_in_rulePrimaryExpression4277);
                                    lv_expression_18_0 = ruleSqlExpression();
                                    state._fsp--;
                                    if (state.failed)
                                        return current;
                                    if (state.backtracking == 0) {
                                        if (current == null) {
                                            current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
                                        }
                                        set(current, "expression", lv_expression_18_0, "SqlExpression");
                                        afterParserOrEnumRuleCall();
                                    }
                                }
                            }
                            otherlv_19 = (Token) match(input, 23, FOLLOW_23_in_rulePrimaryExpression4289);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_19, grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_4_3());
                            }
                        }
                    }
                    break;
                case 6:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1963:6: ( () ( (lv_not_21_0= 'not' ) )? ( (lv_exists_22_0= 'exists' ) )? otherlv_23= '(' ( (lv_select_24_0= ruleSelectStatement ) ) otherlv_25= ')' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1963:6: ( () ( (lv_not_21_0= 'not' ) )? ( (lv_exists_22_0= 'exists' ) )? otherlv_23= '(' ( (lv_select_24_0= ruleSelectStatement ) ) otherlv_25= ')' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1963:7: () ( (lv_not_21_0= 'not' ) )? ( (lv_exists_22_0= 'exists' ) )? otherlv_23= '(' ( (lv_select_24_0= ruleSelectStatement ) ) otherlv_25= ')'
                        {
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1963:7: ()
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1964:5: 
                            {
                                if (state.backtracking == 0) {
                                    current = forceCreateModelElement(grammarAccess.getPrimaryExpressionAccess().getSelectStatementExpressionAction_5_0(), current);
                                }
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1969:2: ( (lv_not_21_0= 'not' ) )?
                            int alt32 = 2;
                            int LA32_0 = input.LA(1);
                            if ((LA32_0 == 61)) {
                                alt32 = 1;
                            }
                            switch(alt32) {
                                case 1:
                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1970:1: (lv_not_21_0= 'not' )
                                    {
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1970:1: (lv_not_21_0= 'not' )
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1971:3: lv_not_21_0= 'not'
                                        {
                                            lv_not_21_0 = (Token) match(input, 61, FOLLOW_61_in_rulePrimaryExpression4324);
                                            if (state.failed)
                                                return current;
                                            if (state.backtracking == 0) {
                                                newLeafNode(lv_not_21_0, grammarAccess.getPrimaryExpressionAccess().getNotNotKeyword_5_1_0());
                                            }
                                            if (state.backtracking == 0) {
                                                if (current == null) {
                                                    current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                                }
                                                setWithLastConsumed(current, "not", true, "not");
                                            }
                                        }
                                    }
                                    break;
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1984:3: ( (lv_exists_22_0= 'exists' ) )?
                            int alt33 = 2;
                            int LA33_0 = input.LA(1);
                            if ((LA33_0 == 62)) {
                                alt33 = 1;
                            }
                            switch(alt33) {
                                case 1:
                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1985:1: (lv_exists_22_0= 'exists' )
                                    {
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1985:1: (lv_exists_22_0= 'exists' )
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:1986:3: lv_exists_22_0= 'exists'
                                        {
                                            lv_exists_22_0 = (Token) match(input, 62, FOLLOW_62_in_rulePrimaryExpression4356);
                                            if (state.failed)
                                                return current;
                                            if (state.backtracking == 0) {
                                                newLeafNode(lv_exists_22_0, grammarAccess.getPrimaryExpressionAccess().getExistsExistsKeyword_5_2_0());
                                            }
                                            if (state.backtracking == 0) {
                                                if (current == null) {
                                                    current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                                }
                                                setWithLastConsumed(current, "exists", true, "exists");
                                            }
                                        }
                                    }
                                    break;
                            }
                            otherlv_23 = (Token) match(input, 21, FOLLOW_21_in_rulePrimaryExpression4382);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_23, grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_5_3());
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2003:1: ( (lv_select_24_0= ruleSelectStatement ) )
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2004:1: (lv_select_24_0= ruleSelectStatement )
                            {
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2004:1: (lv_select_24_0= ruleSelectStatement )
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2005:3: lv_select_24_0= ruleSelectStatement
                                {
                                    if (state.backtracking == 0) {
                                        newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getSelectSelectStatementParserRuleCall_5_4_0());
                                    }
                                    pushFollow(FOLLOW_ruleSelectStatement_in_rulePrimaryExpression4403);
                                    lv_select_24_0 = ruleSelectStatement();
                                    state._fsp--;
                                    if (state.failed)
                                        return current;
                                    if (state.backtracking == 0) {
                                        if (current == null) {
                                            current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
                                        }
                                        set(current, "select", lv_select_24_0, "SelectStatement");
                                        afterParserOrEnumRuleCall();
                                    }
                                }
                            }
                            otherlv_25 = (Token) match(input, 23, FOLLOW_23_in_rulePrimaryExpression4415);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_25, grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_5_5());
                            }
                        }
                    }
                    break;
                case 7:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2026:6: ( () otherlv_27= 'case' ( (lv_caseExpression_28_0= ruleSqlExpression ) )? ( (lv_cases_29_0= ruleCase ) )+ (otherlv_30= 'else' ( (lv_elseExpression_31_0= ruleSqlExpression ) ) )? otherlv_32= 'end' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2026:6: ( () otherlv_27= 'case' ( (lv_caseExpression_28_0= ruleSqlExpression ) )? ( (lv_cases_29_0= ruleCase ) )+ (otherlv_30= 'else' ( (lv_elseExpression_31_0= ruleSqlExpression ) ) )? otherlv_32= 'end' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2026:7: () otherlv_27= 'case' ( (lv_caseExpression_28_0= ruleSqlExpression ) )? ( (lv_cases_29_0= ruleCase ) )+ (otherlv_30= 'else' ( (lv_elseExpression_31_0= ruleSqlExpression ) ) )? otherlv_32= 'end'
                        {
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2026:7: ()
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2027:5: 
                            {
                                if (state.backtracking == 0) {
                                    current = forceCreateModelElement(grammarAccess.getPrimaryExpressionAccess().getCaseExpressionAction_6_0(), current);
                                }
                            }
                            otherlv_27 = (Token) match(input, 63, FOLLOW_63_in_rulePrimaryExpression4444);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_27, grammarAccess.getPrimaryExpressionAccess().getCaseKeyword_6_1());
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2036:1: ( (lv_caseExpression_28_0= ruleSqlExpression ) )?
                            int alt34 = 2;
                            int LA34_0 = input.LA(1);
                            if (((LA34_0 >= RULE_ID && LA34_0 <= RULE_NUMBER) || LA34_0 == 21 || LA34_0 == 32 || (LA34_0 >= 58 && LA34_0 <= 59) || (LA34_0 >= 61 && LA34_0 <= 63) || LA34_0 == 66 || LA34_0 == 68 || (LA34_0 >= 90 && LA34_0 <= 93))) {
                                alt34 = 1;
                            }
                            switch(alt34) {
                                case 1:
                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2037:1: (lv_caseExpression_28_0= ruleSqlExpression )
                                    {
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2037:1: (lv_caseExpression_28_0= ruleSqlExpression )
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2038:3: lv_caseExpression_28_0= ruleSqlExpression
                                        {
                                            if (state.backtracking == 0) {
                                                newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getCaseExpressionSqlExpressionParserRuleCall_6_2_0());
                                            }
                                            pushFollow(FOLLOW_ruleSqlExpression_in_rulePrimaryExpression4465);
                                            lv_caseExpression_28_0 = ruleSqlExpression();
                                            state._fsp--;
                                            if (state.failed)
                                                return current;
                                            if (state.backtracking == 0) {
                                                if (current == null) {
                                                    current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
                                                }
                                                set(current, "caseExpression", lv_caseExpression_28_0, "SqlExpression");
                                                afterParserOrEnumRuleCall();
                                            }
                                        }
                                    }
                                    break;
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2054:3: ( (lv_cases_29_0= ruleCase ) )+
                            int cnt35 = 0;
                            loop35: do {
                                int alt35 = 2;
                                int LA35_0 = input.LA(1);
                                if ((LA35_0 == 69)) {
                                    alt35 = 1;
                                }
                                switch(alt35) {
                                    case 1:
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2055:1: (lv_cases_29_0= ruleCase )
                                        {
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2055:1: (lv_cases_29_0= ruleCase )
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2056:3: lv_cases_29_0= ruleCase
                                            {
                                                if (state.backtracking == 0) {
                                                    newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getCasesCaseParserRuleCall_6_3_0());
                                                }
                                                pushFollow(FOLLOW_ruleCase_in_rulePrimaryExpression4487);
                                                lv_cases_29_0 = ruleCase();
                                                state._fsp--;
                                                if (state.failed)
                                                    return current;
                                                if (state.backtracking == 0) {
                                                    if (current == null) {
                                                        current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
                                                    }
                                                    add(current, "cases", lv_cases_29_0, "Case");
                                                    afterParserOrEnumRuleCall();
                                                }
                                            }
                                        }
                                        break;
                                    default:
                                        if (cnt35 >= 1)
                                            break loop35;
                                        if (state.backtracking > 0) {
                                            state.failed = true;
                                            return current;
                                        }
                                        EarlyExitException eee = new EarlyExitException(35, input);
                                        throw eee;
                                }
                                cnt35++;
                            } while (true);
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2072:3: (otherlv_30= 'else' ( (lv_elseExpression_31_0= ruleSqlExpression ) ) )?
                            int alt36 = 2;
                            int LA36_0 = input.LA(1);
                            if ((LA36_0 == 64)) {
                                alt36 = 1;
                            }
                            switch(alt36) {
                                case 1:
                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2072:5: otherlv_30= 'else' ( (lv_elseExpression_31_0= ruleSqlExpression ) )
                                    {
                                        otherlv_30 = (Token) match(input, 64, FOLLOW_64_in_rulePrimaryExpression4501);
                                        if (state.failed)
                                            return current;
                                        if (state.backtracking == 0) {
                                            newLeafNode(otherlv_30, grammarAccess.getPrimaryExpressionAccess().getElseKeyword_6_4_0());
                                        }
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2076:1: ( (lv_elseExpression_31_0= ruleSqlExpression ) )
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2077:1: (lv_elseExpression_31_0= ruleSqlExpression )
                                        {
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2077:1: (lv_elseExpression_31_0= ruleSqlExpression )
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2078:3: lv_elseExpression_31_0= ruleSqlExpression
                                            {
                                                if (state.backtracking == 0) {
                                                    newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getElseExpressionSqlExpressionParserRuleCall_6_4_1_0());
                                                }
                                                pushFollow(FOLLOW_ruleSqlExpression_in_rulePrimaryExpression4522);
                                                lv_elseExpression_31_0 = ruleSqlExpression();
                                                state._fsp--;
                                                if (state.failed)
                                                    return current;
                                                if (state.backtracking == 0) {
                                                    if (current == null) {
                                                        current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
                                                    }
                                                    set(current, "elseExpression", lv_elseExpression_31_0, "SqlExpression");
                                                    afterParserOrEnumRuleCall();
                                                }
                                            }
                                        }
                                    }
                                    break;
                            }
                            otherlv_32 = (Token) match(input, 65, FOLLOW_65_in_rulePrimaryExpression4536);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_32, grammarAccess.getPrimaryExpressionAccess().getEndKeyword_6_5());
                            }
                        }
                    }
                    break;
                case 8:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2099:6: ( () ( (lv_name_34_0= RULE_ID ) ) otherlv_35= '(' ( ( (lv_all_36_0= '*' ) ) | ( ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )* ) ) otherlv_40= ')' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2099:6: ( () ( (lv_name_34_0= RULE_ID ) ) otherlv_35= '(' ( ( (lv_all_36_0= '*' ) ) | ( ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )* ) ) otherlv_40= ')' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2099:7: () ( (lv_name_34_0= RULE_ID ) ) otherlv_35= '(' ( ( (lv_all_36_0= '*' ) ) | ( ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )* ) ) otherlv_40= ')'
                        {
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2099:7: ()
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2100:5: 
                            {
                                if (state.backtracking == 0) {
                                    current = forceCreateModelElement(grammarAccess.getPrimaryExpressionAccess().getFunctionAction_7_0(), current);
                                }
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2105:2: ( (lv_name_34_0= RULE_ID ) )
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2106:1: (lv_name_34_0= RULE_ID )
                            {
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2106:1: (lv_name_34_0= RULE_ID )
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2107:3: lv_name_34_0= RULE_ID
                                {
                                    lv_name_34_0 = (Token) match(input, RULE_ID, FOLLOW_RULE_ID_in_rulePrimaryExpression4570);
                                    if (state.failed)
                                        return current;
                                    if (state.backtracking == 0) {
                                        newLeafNode(lv_name_34_0, grammarAccess.getPrimaryExpressionAccess().getNameIDTerminalRuleCall_7_1_0());
                                    }
                                    if (state.backtracking == 0) {
                                        if (current == null) {
                                            current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                        }
                                        setWithLastConsumed(current, "name", lv_name_34_0, "ID");
                                    }
                                }
                            }
                            otherlv_35 = (Token) match(input, 21, FOLLOW_21_in_rulePrimaryExpression4587);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_35, grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_7_2());
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2127:1: ( ( (lv_all_36_0= '*' ) ) | ( ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )* ) )
                            int alt38 = 2;
                            int LA38_0 = input.LA(1);
                            if ((LA38_0 == 27)) {
                                alt38 = 1;
                            } else if (((LA38_0 >= RULE_ID && LA38_0 <= RULE_NUMBER) || LA38_0 == 21 || LA38_0 == 32 || (LA38_0 >= 58 && LA38_0 <= 59) || (LA38_0 >= 61 && LA38_0 <= 63) || LA38_0 == 66 || LA38_0 == 68 || (LA38_0 >= 90 && LA38_0 <= 93))) {
                                alt38 = 2;
                            } else {
                                if (state.backtracking > 0) {
                                    state.failed = true;
                                    return current;
                                }
                                NoViableAltException nvae = new NoViableAltException("", 38, 0, input);
                                throw nvae;
                            }
                            switch(alt38) {
                                case 1:
                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2127:2: ( (lv_all_36_0= '*' ) )
                                    {
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2127:2: ( (lv_all_36_0= '*' ) )
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2128:1: (lv_all_36_0= '*' )
                                        {
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2128:1: (lv_all_36_0= '*' )
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2129:3: lv_all_36_0= '*'
                                            {
                                                lv_all_36_0 = (Token) match(input, 27, FOLLOW_27_in_rulePrimaryExpression4606);
                                                if (state.failed)
                                                    return current;
                                                if (state.backtracking == 0) {
                                                    newLeafNode(lv_all_36_0, grammarAccess.getPrimaryExpressionAccess().getAllAsteriskKeyword_7_3_0_0());
                                                }
                                                if (state.backtracking == 0) {
                                                    if (current == null) {
                                                        current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                                    }
                                                    setWithLastConsumed(current, "all", true, "*");
                                                }
                                            }
                                        }
                                    }
                                    break;
                                case 2:
                                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2143:6: ( ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )* )
                                    {
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2143:6: ( ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )* )
                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2143:7: ( (lv_arguments_37_0= ruleSqlExpression ) ) (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )*
                                        {
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2143:7: ( (lv_arguments_37_0= ruleSqlExpression ) )
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2144:1: (lv_arguments_37_0= ruleSqlExpression )
                                            {
                                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2144:1: (lv_arguments_37_0= ruleSqlExpression )
                                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2145:3: lv_arguments_37_0= ruleSqlExpression
                                                {
                                                    if (state.backtracking == 0) {
                                                        newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getArgumentsSqlExpressionParserRuleCall_7_3_1_0_0());
                                                    }
                                                    pushFollow(FOLLOW_ruleSqlExpression_in_rulePrimaryExpression4647);
                                                    lv_arguments_37_0 = ruleSqlExpression();
                                                    state._fsp--;
                                                    if (state.failed)
                                                        return current;
                                                    if (state.backtracking == 0) {
                                                        if (current == null) {
                                                            current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
                                                        }
                                                        add(current, "arguments", lv_arguments_37_0, "SqlExpression");
                                                        afterParserOrEnumRuleCall();
                                                    }
                                                }
                                            }
                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2161:2: (otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) ) )*
                                            loop37: do {
                                                int alt37 = 2;
                                                int LA37_0 = input.LA(1);
                                                if ((LA37_0 == 22)) {
                                                    alt37 = 1;
                                                }
                                                switch(alt37) {
                                                    case 1:
                                                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2161:4: otherlv_38= ',' ( (lv_arguments_39_0= ruleSqlExpression ) )
                                                        {
                                                            otherlv_38 = (Token) match(input, 22, FOLLOW_22_in_rulePrimaryExpression4660);
                                                            if (state.failed)
                                                                return current;
                                                            if (state.backtracking == 0) {
                                                                newLeafNode(otherlv_38, grammarAccess.getPrimaryExpressionAccess().getCommaKeyword_7_3_1_1_0());
                                                            }
                                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2165:1: ( (lv_arguments_39_0= ruleSqlExpression ) )
                                                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2166:1: (lv_arguments_39_0= ruleSqlExpression )
                                                            {
                                                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2166:1: (lv_arguments_39_0= ruleSqlExpression )
                                                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2167:3: lv_arguments_39_0= ruleSqlExpression
                                                                {
                                                                    if (state.backtracking == 0) {
                                                                        newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getArgumentsSqlExpressionParserRuleCall_7_3_1_1_1_0());
                                                                    }
                                                                    pushFollow(FOLLOW_ruleSqlExpression_in_rulePrimaryExpression4681);
                                                                    lv_arguments_39_0 = ruleSqlExpression();
                                                                    state._fsp--;
                                                                    if (state.failed)
                                                                        return current;
                                                                    if (state.backtracking == 0) {
                                                                        if (current == null) {
                                                                            current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
                                                                        }
                                                                        add(current, "arguments", lv_arguments_39_0, "SqlExpression");
                                                                        afterParserOrEnumRuleCall();
                                                                    }
                                                                }
                                                            }
                                                        }
                                                        break;
                                                    default:
                                                        break loop37;
                                                }
                                            } while (true);
                                        }
                                    }
                                    break;
                            }
                            otherlv_40 = (Token) match(input, 23, FOLLOW_23_in_rulePrimaryExpression4697);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_40, grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_7_4());
                            }
                        }
                    }
                    break;
                case 9:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2188:6: ( () otherlv_42= 'cast' otherlv_43= '(' ( (lv_expression_44_0= ruleSqlExpression ) ) otherlv_45= 'as' ( (lv_type_46_0= ruleSqliteDataType ) ) otherlv_47= ')' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2188:6: ( () otherlv_42= 'cast' otherlv_43= '(' ( (lv_expression_44_0= ruleSqlExpression ) ) otherlv_45= 'as' ( (lv_type_46_0= ruleSqliteDataType ) ) otherlv_47= ')' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2188:7: () otherlv_42= 'cast' otherlv_43= '(' ( (lv_expression_44_0= ruleSqlExpression ) ) otherlv_45= 'as' ( (lv_type_46_0= ruleSqliteDataType ) ) otherlv_47= ')'
                        {
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2188:7: ()
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2189:5: 
                            {
                                if (state.backtracking == 0) {
                                    current = forceCreateModelElement(grammarAccess.getPrimaryExpressionAccess().getCastExpressionAction_8_0(), current);
                                }
                            }
                            otherlv_42 = (Token) match(input, 66, FOLLOW_66_in_rulePrimaryExpression4726);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_42, grammarAccess.getPrimaryExpressionAccess().getCastKeyword_8_1());
                            }
                            otherlv_43 = (Token) match(input, 21, FOLLOW_21_in_rulePrimaryExpression4738);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_43, grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_8_2());
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2202:1: ( (lv_expression_44_0= ruleSqlExpression ) )
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2203:1: (lv_expression_44_0= ruleSqlExpression )
                            {
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2203:1: (lv_expression_44_0= ruleSqlExpression )
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2204:3: lv_expression_44_0= ruleSqlExpression
                                {
                                    if (state.backtracking == 0) {
                                        newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getExpressionSqlExpressionParserRuleCall_8_3_0());
                                    }
                                    pushFollow(FOLLOW_ruleSqlExpression_in_rulePrimaryExpression4759);
                                    lv_expression_44_0 = ruleSqlExpression();
                                    state._fsp--;
                                    if (state.failed)
                                        return current;
                                    if (state.backtracking == 0) {
                                        if (current == null) {
                                            current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
                                        }
                                        set(current, "expression", lv_expression_44_0, "SqlExpression");
                                        afterParserOrEnumRuleCall();
                                    }
                                }
                            }
                            otherlv_45 = (Token) match(input, 67, FOLLOW_67_in_rulePrimaryExpression4771);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_45, grammarAccess.getPrimaryExpressionAccess().getAsKeyword_8_4());
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2224:1: ( (lv_type_46_0= ruleSqliteDataType ) )
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2225:1: (lv_type_46_0= ruleSqliteDataType )
                            {
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2225:1: (lv_type_46_0= ruleSqliteDataType )
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2226:3: lv_type_46_0= ruleSqliteDataType
                                {
                                    if (state.backtracking == 0) {
                                        newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getTypeSqliteDataTypeEnumRuleCall_8_5_0());
                                    }
                                    pushFollow(FOLLOW_ruleSqliteDataType_in_rulePrimaryExpression4792);
                                    lv_type_46_0 = ruleSqliteDataType();
                                    state._fsp--;
                                    if (state.failed)
                                        return current;
                                    if (state.backtracking == 0) {
                                        if (current == null) {
                                            current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
                                        }
                                        set(current, "type", lv_type_46_0, "SqliteDataType");
                                        afterParserOrEnumRuleCall();
                                    }
                                }
                            }
                            otherlv_47 = (Token) match(input, 23, FOLLOW_23_in_rulePrimaryExpression4804);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_47, grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_8_6());
                            }
                        }
                    }
                    break;
                case 10:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2247:6: ( () otherlv_49= '$' ( (otherlv_50= RULE_ID ) ) )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2247:6: ( () otherlv_49= '$' ( (otherlv_50= RULE_ID ) ) )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2247:7: () otherlv_49= '$' ( (otherlv_50= RULE_ID ) )
                        {
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2247:7: ()
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2248:5: 
                            {
                                if (state.backtracking == 0) {
                                    current = forceCreateModelElement(grammarAccess.getPrimaryExpressionAccess().getFunctionArgumentAction_9_0(), current);
                                }
                            }
                            otherlv_49 = (Token) match(input, 68, FOLLOW_68_in_rulePrimaryExpression4833);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_49, grammarAccess.getPrimaryExpressionAccess().getDollarSignKeyword_9_1());
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2257:1: ( (otherlv_50= RULE_ID ) )
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2258:1: (otherlv_50= RULE_ID )
                            {
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2258:1: (otherlv_50= RULE_ID )
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:2259:3: otherlv_50= RULE_ID
                                {
                                    if (state.backtracking == 0) {
                                        if (current == null) {
                                            current = createModelElement(grammarAccess.getPrimaryExpressionRule());
                                        }
                                    }
                                    otherlv_50 = (Token) match(input, RULE_ID, FOLLOW_RULE_ID_in_rulePrimaryExpression4853);
                                    if (state.failed)
                                        return current;
                                    if (state.backtracking == 0) {
                                        newLeafNode(otherlv_50, grammarAccess.getPrimaryExpressionAccess().getArgFunctionArgCrossReference_9_2_0());
                                    }
                                }
                            }
                        }
                    }
                    break;
            }
        }
        if (state.backtracking == 0) {
            leaveRule();
        }
    } catch (RecognitionException re) {
        recover(input, re);
        appendSkippedTokens();
    } finally {
    }
    return current;
}
Also used : Enumerator(org.eclipse.emf.common.util.Enumerator) EObject(org.eclipse.emf.ecore.EObject) AntlrDatatypeRuleToken(org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken)

Example 14 with EObject

use of org.eclipse.emf.ecore.EObject in project mechanoid by robotoworks.

the class InternalSqliteModelParser method ruleDDLStatement.

// $ANTLR end "entryRuleDDLStatement"
// $ANTLR start "ruleDDLStatement"
// ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3713:1: ruleDDLStatement returns [EObject current=null] : (this_CreateTableStatement_0= ruleCreateTableStatement | this_CreateViewStatement_1= ruleCreateViewStatement | this_CreateTriggerStatement_2= ruleCreateTriggerStatement | this_CreateIndexStatement_3= ruleCreateIndexStatement | this_AlterTableRenameStatement_4= ruleAlterTableRenameStatement | this_AlterTableAddColumnStatement_5= ruleAlterTableAddColumnStatement | this_DropTableStatement_6= ruleDropTableStatement | this_DropTriggerStatement_7= ruleDropTriggerStatement | this_DropViewStatement_8= ruleDropViewStatement | this_DropIndexStatement_9= ruleDropIndexStatement ) ;
public final EObject ruleDDLStatement() throws RecognitionException {
    EObject current = null;
    EObject this_CreateTableStatement_0 = null;
    EObject this_CreateViewStatement_1 = null;
    EObject this_CreateTriggerStatement_2 = null;
    EObject this_CreateIndexStatement_3 = null;
    EObject this_AlterTableRenameStatement_4 = null;
    EObject this_AlterTableAddColumnStatement_5 = null;
    EObject this_DropTableStatement_6 = null;
    EObject this_DropTriggerStatement_7 = null;
    EObject this_DropViewStatement_8 = null;
    EObject this_DropIndexStatement_9 = null;
    enterRule();
    try {
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3716:28: ( (this_CreateTableStatement_0= ruleCreateTableStatement | this_CreateViewStatement_1= ruleCreateViewStatement | this_CreateTriggerStatement_2= ruleCreateTriggerStatement | this_CreateIndexStatement_3= ruleCreateIndexStatement | this_AlterTableRenameStatement_4= ruleAlterTableRenameStatement | this_AlterTableAddColumnStatement_5= ruleAlterTableAddColumnStatement | this_DropTableStatement_6= ruleDropTableStatement | this_DropTriggerStatement_7= ruleDropTriggerStatement | this_DropViewStatement_8= ruleDropViewStatement | this_DropIndexStatement_9= ruleDropIndexStatement ) )
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3717:1: (this_CreateTableStatement_0= ruleCreateTableStatement | this_CreateViewStatement_1= ruleCreateViewStatement | this_CreateTriggerStatement_2= ruleCreateTriggerStatement | this_CreateIndexStatement_3= ruleCreateIndexStatement | this_AlterTableRenameStatement_4= ruleAlterTableRenameStatement | this_AlterTableAddColumnStatement_5= ruleAlterTableAddColumnStatement | this_DropTableStatement_6= ruleDropTableStatement | this_DropTriggerStatement_7= ruleDropTriggerStatement | this_DropViewStatement_8= ruleDropViewStatement | this_DropIndexStatement_9= ruleDropIndexStatement )
        {
            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3717:1: (this_CreateTableStatement_0= ruleCreateTableStatement | this_CreateViewStatement_1= ruleCreateViewStatement | this_CreateTriggerStatement_2= ruleCreateTriggerStatement | this_CreateIndexStatement_3= ruleCreateIndexStatement | this_AlterTableRenameStatement_4= ruleAlterTableRenameStatement | this_AlterTableAddColumnStatement_5= ruleAlterTableAddColumnStatement | this_DropTableStatement_6= ruleDropTableStatement | this_DropTriggerStatement_7= ruleDropTriggerStatement | this_DropViewStatement_8= ruleDropViewStatement | this_DropIndexStatement_9= ruleDropIndexStatement )
            int alt64 = 10;
            alt64 = dfa64.predict(input);
            switch(alt64) {
                case 1:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3718:5: this_CreateTableStatement_0= ruleCreateTableStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDDLStatementAccess().getCreateTableStatementParserRuleCall_0());
                        }
                        pushFollow(FOLLOW_ruleCreateTableStatement_in_ruleDDLStatement8011);
                        this_CreateTableStatement_0 = ruleCreateTableStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_CreateTableStatement_0;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 2:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3728:5: this_CreateViewStatement_1= ruleCreateViewStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDDLStatementAccess().getCreateViewStatementParserRuleCall_1());
                        }
                        pushFollow(FOLLOW_ruleCreateViewStatement_in_ruleDDLStatement8038);
                        this_CreateViewStatement_1 = ruleCreateViewStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_CreateViewStatement_1;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 3:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3738:5: this_CreateTriggerStatement_2= ruleCreateTriggerStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDDLStatementAccess().getCreateTriggerStatementParserRuleCall_2());
                        }
                        pushFollow(FOLLOW_ruleCreateTriggerStatement_in_ruleDDLStatement8065);
                        this_CreateTriggerStatement_2 = ruleCreateTriggerStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_CreateTriggerStatement_2;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 4:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3748:5: this_CreateIndexStatement_3= ruleCreateIndexStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDDLStatementAccess().getCreateIndexStatementParserRuleCall_3());
                        }
                        pushFollow(FOLLOW_ruleCreateIndexStatement_in_ruleDDLStatement8092);
                        this_CreateIndexStatement_3 = ruleCreateIndexStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_CreateIndexStatement_3;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 5:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3758:5: this_AlterTableRenameStatement_4= ruleAlterTableRenameStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDDLStatementAccess().getAlterTableRenameStatementParserRuleCall_4());
                        }
                        pushFollow(FOLLOW_ruleAlterTableRenameStatement_in_ruleDDLStatement8119);
                        this_AlterTableRenameStatement_4 = ruleAlterTableRenameStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_AlterTableRenameStatement_4;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 6:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3768:5: this_AlterTableAddColumnStatement_5= ruleAlterTableAddColumnStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDDLStatementAccess().getAlterTableAddColumnStatementParserRuleCall_5());
                        }
                        pushFollow(FOLLOW_ruleAlterTableAddColumnStatement_in_ruleDDLStatement8146);
                        this_AlterTableAddColumnStatement_5 = ruleAlterTableAddColumnStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_AlterTableAddColumnStatement_5;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 7:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3778:5: this_DropTableStatement_6= ruleDropTableStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDDLStatementAccess().getDropTableStatementParserRuleCall_6());
                        }
                        pushFollow(FOLLOW_ruleDropTableStatement_in_ruleDDLStatement8173);
                        this_DropTableStatement_6 = ruleDropTableStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_DropTableStatement_6;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 8:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3788:5: this_DropTriggerStatement_7= ruleDropTriggerStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDDLStatementAccess().getDropTriggerStatementParserRuleCall_7());
                        }
                        pushFollow(FOLLOW_ruleDropTriggerStatement_in_ruleDDLStatement8200);
                        this_DropTriggerStatement_7 = ruleDropTriggerStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_DropTriggerStatement_7;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 9:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3798:5: this_DropViewStatement_8= ruleDropViewStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDDLStatementAccess().getDropViewStatementParserRuleCall_8());
                        }
                        pushFollow(FOLLOW_ruleDropViewStatement_in_ruleDDLStatement8227);
                        this_DropViewStatement_8 = ruleDropViewStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_DropViewStatement_8;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
                case 10:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3808:5: this_DropIndexStatement_9= ruleDropIndexStatement
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getDDLStatementAccess().getDropIndexStatementParserRuleCall_9());
                        }
                        pushFollow(FOLLOW_ruleDropIndexStatement_in_ruleDDLStatement8254);
                        this_DropIndexStatement_9 = ruleDropIndexStatement();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            current = this_DropIndexStatement_9;
                            afterParserOrEnumRuleCall();
                        }
                    }
                    break;
            }
        }
        if (state.backtracking == 0) {
            leaveRule();
        }
    } catch (RecognitionException re) {
        recover(input, re);
        appendSkippedTokens();
    } finally {
    }
    return current;
}
Also used : EObject(org.eclipse.emf.ecore.EObject)

Example 15 with EObject

use of org.eclipse.emf.ecore.EObject in project mechanoid by robotoworks.

the class InternalSqliteModelParser method ruleResultColumn.

// $ANTLR end "entryRuleResultColumn"
// $ANTLR start "ruleResultColumn"
// ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3488:1: ruleResultColumn returns [EObject current=null] : ( () ( (lv_expression_1_0= ruleSqlExpression ) ) (otherlv_2= 'as' ( (lv_name_3_0= RULE_ID ) ) )? ) ;
public final EObject ruleResultColumn() throws RecognitionException {
    EObject current = null;
    Token otherlv_2 = null;
    Token lv_name_3_0 = null;
    EObject lv_expression_1_0 = null;
    enterRule();
    try {
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3491:28: ( ( () ( (lv_expression_1_0= ruleSqlExpression ) ) (otherlv_2= 'as' ( (lv_name_3_0= RULE_ID ) ) )? ) )
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3492:1: ( () ( (lv_expression_1_0= ruleSqlExpression ) ) (otherlv_2= 'as' ( (lv_name_3_0= RULE_ID ) ) )? )
        {
            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3492:1: ( () ( (lv_expression_1_0= ruleSqlExpression ) ) (otherlv_2= 'as' ( (lv_name_3_0= RULE_ID ) ) )? )
            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3492:2: () ( (lv_expression_1_0= ruleSqlExpression ) ) (otherlv_2= 'as' ( (lv_name_3_0= RULE_ID ) ) )?
            {
                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3492:2: ()
                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3493:5: 
                {
                    if (state.backtracking == 0) {
                        current = forceCreateModelElement(grammarAccess.getResultColumnAccess().getResultColumnAction_0(), current);
                    }
                }
                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3498:2: ( (lv_expression_1_0= ruleSqlExpression ) )
                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3499:1: (lv_expression_1_0= ruleSqlExpression )
                {
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3499:1: (lv_expression_1_0= ruleSqlExpression )
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3500:3: lv_expression_1_0= ruleSqlExpression
                    {
                        if (state.backtracking == 0) {
                            newCompositeNode(grammarAccess.getResultColumnAccess().getExpressionSqlExpressionParserRuleCall_1_0());
                        }
                        pushFollow(FOLLOW_ruleSqlExpression_in_ruleResultColumn7547);
                        lv_expression_1_0 = ruleSqlExpression();
                        state._fsp--;
                        if (state.failed)
                            return current;
                        if (state.backtracking == 0) {
                            if (current == null) {
                                current = createModelElementForParent(grammarAccess.getResultColumnRule());
                            }
                            set(current, "expression", lv_expression_1_0, "SqlExpression");
                            afterParserOrEnumRuleCall();
                        }
                    }
                }
                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3516:2: (otherlv_2= 'as' ( (lv_name_3_0= RULE_ID ) ) )?
                int alt62 = 2;
                int LA62_0 = input.LA(1);
                if ((LA62_0 == 67)) {
                    alt62 = 1;
                }
                switch(alt62) {
                    case 1:
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3516:4: otherlv_2= 'as' ( (lv_name_3_0= RULE_ID ) )
                        {
                            otherlv_2 = (Token) match(input, 67, FOLLOW_67_in_ruleResultColumn7560);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                newLeafNode(otherlv_2, grammarAccess.getResultColumnAccess().getAsKeyword_2_0());
                            }
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3520:1: ( (lv_name_3_0= RULE_ID ) )
                            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3521:1: (lv_name_3_0= RULE_ID )
                            {
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3521:1: (lv_name_3_0= RULE_ID )
                                // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:3522:3: lv_name_3_0= RULE_ID
                                {
                                    lv_name_3_0 = (Token) match(input, RULE_ID, FOLLOW_RULE_ID_in_ruleResultColumn7577);
                                    if (state.failed)
                                        return current;
                                    if (state.backtracking == 0) {
                                        newLeafNode(lv_name_3_0, grammarAccess.getResultColumnAccess().getNameIDTerminalRuleCall_2_1_0());
                                    }
                                    if (state.backtracking == 0) {
                                        if (current == null) {
                                            current = createModelElement(grammarAccess.getResultColumnRule());
                                        }
                                        setWithLastConsumed(current, "name", lv_name_3_0, "ID");
                                    }
                                }
                            }
                        }
                        break;
                }
            }
        }
        if (state.backtracking == 0) {
            leaveRule();
        }
    } catch (RecognitionException re) {
        recover(input, re);
        appendSkippedTokens();
    } finally {
    }
    return current;
}
Also used : EObject(org.eclipse.emf.ecore.EObject) AntlrDatatypeRuleToken(org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken)

Aggregations

EObject (org.eclipse.emf.ecore.EObject)416 AntlrDatatypeRuleToken (org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken)121 TableDefinition (com.robotoworks.mechanoid.db.sqliteModel.TableDefinition)16 Enumerator (org.eclipse.emf.common.util.Enumerator)16 Point (org.eclipse.draw2d.geometry.Point)14 IParser (org.eclipse.gmf.runtime.common.ui.services.parser.IParser)14 IParserEditStatus (org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus)14 EObjectAdapter (org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter)14 ISemanticParser (org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser)14 ICellEditorValidator (org.eclipse.jface.viewers.ICellEditorValidator)14 Resource (org.eclipse.emf.ecore.resource.Resource)9 DDLStatement (com.robotoworks.mechanoid.db.sqliteModel.DDLStatement)8 ArrayList (java.util.ArrayList)8 List (java.util.List)8 HashMap (java.util.HashMap)7 Iterator (java.util.Iterator)7 BusinessItem (org.talend.designer.business.model.business.BusinessItem)7 IOException (java.io.IOException)6 URI (org.eclipse.emf.common.util.URI)6 View (org.eclipse.gmf.runtime.notation.View)6