Search in sources :

Example 1 with Enumerator

use of org.eclipse.emf.common.util.Enumerator 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 2 with Enumerator

use of org.eclipse.emf.common.util.Enumerator in project mechanoid by robotoworks.

the class InternalSqliteModelParser method ruleColumnType.

// $ANTLR end "ruleSqliteDataType"
// $ANTLR start "ruleColumnType"
// ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6327:1: ruleColumnType returns [Enumerator current=null] : ( (enumLiteral_0= 'text' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'real' ) | (enumLiteral_3= 'blob' ) | (enumLiteral_4= 'boolean' ) ) ;
public final Enumerator ruleColumnType() throws RecognitionException {
    Enumerator current = null;
    Token enumLiteral_0 = null;
    Token enumLiteral_1 = null;
    Token enumLiteral_2 = null;
    Token enumLiteral_3 = null;
    Token enumLiteral_4 = null;
    enterRule();
    try {
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6329:28: ( ( (enumLiteral_0= 'text' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'real' ) | (enumLiteral_3= 'blob' ) | (enumLiteral_4= 'boolean' ) ) )
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6330:1: ( (enumLiteral_0= 'text' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'real' ) | (enumLiteral_3= 'blob' ) | (enumLiteral_4= 'boolean' ) )
        {
            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6330:1: ( (enumLiteral_0= 'text' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'real' ) | (enumLiteral_3= 'blob' ) | (enumLiteral_4= 'boolean' ) )
            int alt116 = 5;
            switch(input.LA(1)) {
                case 130:
                    {
                        alt116 = 1;
                    }
                    break;
                case 131:
                    {
                        alt116 = 2;
                    }
                    break;
                case 132:
                    {
                        alt116 = 3;
                    }
                    break;
                case 133:
                    {
                        alt116 = 4;
                    }
                    break;
                case 136:
                    {
                        alt116 = 5;
                    }
                    break;
                default:
                    if (state.backtracking > 0) {
                        state.failed = true;
                        return current;
                    }
                    NoViableAltException nvae = new NoViableAltException("", 116, 0, input);
                    throw nvae;
            }
            switch(alt116) {
                case 1:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6330:2: (enumLiteral_0= 'text' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6330:2: (enumLiteral_0= 'text' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6330:4: enumLiteral_0= 'text'
                        {
                            enumLiteral_0 = (Token) match(input, 130, FOLLOW_130_in_ruleColumnType13928);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getColumnTypeAccess().getTextEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_0, grammarAccess.getColumnTypeAccess().getTextEnumLiteralDeclaration_0());
                            }
                        }
                    }
                    break;
                case 2:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6336:6: (enumLiteral_1= 'integer' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6336:6: (enumLiteral_1= 'integer' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6336:8: enumLiteral_1= 'integer'
                        {
                            enumLiteral_1 = (Token) match(input, 131, FOLLOW_131_in_ruleColumnType13945);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getColumnTypeAccess().getIntegerEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_1, grammarAccess.getColumnTypeAccess().getIntegerEnumLiteralDeclaration_1());
                            }
                        }
                    }
                    break;
                case 3:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6342:6: (enumLiteral_2= 'real' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6342:6: (enumLiteral_2= 'real' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6342:8: enumLiteral_2= 'real'
                        {
                            enumLiteral_2 = (Token) match(input, 132, FOLLOW_132_in_ruleColumnType13962);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getColumnTypeAccess().getRealEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_2, grammarAccess.getColumnTypeAccess().getRealEnumLiteralDeclaration_2());
                            }
                        }
                    }
                    break;
                case 4:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6348:6: (enumLiteral_3= 'blob' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6348:6: (enumLiteral_3= 'blob' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6348:8: enumLiteral_3= 'blob'
                        {
                            enumLiteral_3 = (Token) match(input, 133, FOLLOW_133_in_ruleColumnType13979);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getColumnTypeAccess().getBlobEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_3, grammarAccess.getColumnTypeAccess().getBlobEnumLiteralDeclaration_3());
                            }
                        }
                    }
                    break;
                case 5:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6354:6: (enumLiteral_4= 'boolean' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6354:6: (enumLiteral_4= 'boolean' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6354:8: enumLiteral_4= 'boolean'
                        {
                            enumLiteral_4 = (Token) match(input, 136, FOLLOW_136_in_ruleColumnType13996);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getColumnTypeAccess().getBooleanEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_4, grammarAccess.getColumnTypeAccess().getBooleanEnumLiteralDeclaration_4());
                            }
                        }
                    }
                    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) AntlrDatatypeRuleToken(org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken)

Example 3 with Enumerator

use of org.eclipse.emf.common.util.Enumerator in project mechanoid by robotoworks.

the class InternalSqliteModelParser method ruleCompoundOperator.

// $ANTLR end "ruleQualifiedName"
// $ANTLR start "ruleCompoundOperator"
// ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6253:1: ruleCompoundOperator returns [Enumerator current=null] : ( (enumLiteral_0= 'union all' ) | (enumLiteral_1= 'union' ) | (enumLiteral_2= 'intersect' ) | (enumLiteral_3= 'except' ) ) ;
public final Enumerator ruleCompoundOperator() throws RecognitionException {
    Enumerator current = null;
    Token enumLiteral_0 = null;
    Token enumLiteral_1 = null;
    Token enumLiteral_2 = null;
    Token enumLiteral_3 = null;
    enterRule();
    try {
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6255:28: ( ( (enumLiteral_0= 'union all' ) | (enumLiteral_1= 'union' ) | (enumLiteral_2= 'intersect' ) | (enumLiteral_3= 'except' ) ) )
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6256:1: ( (enumLiteral_0= 'union all' ) | (enumLiteral_1= 'union' ) | (enumLiteral_2= 'intersect' ) | (enumLiteral_3= 'except' ) )
        {
            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6256:1: ( (enumLiteral_0= 'union all' ) | (enumLiteral_1= 'union' ) | (enumLiteral_2= 'intersect' ) | (enumLiteral_3= 'except' ) )
            int alt114 = 4;
            switch(input.LA(1)) {
                case 126:
                    {
                        alt114 = 1;
                    }
                    break;
                case 127:
                    {
                        alt114 = 2;
                    }
                    break;
                case 128:
                    {
                        alt114 = 3;
                    }
                    break;
                case 129:
                    {
                        alt114 = 4;
                    }
                    break;
                default:
                    if (state.backtracking > 0) {
                        state.failed = true;
                        return current;
                    }
                    NoViableAltException nvae = new NoViableAltException("", 114, 0, input);
                    throw nvae;
            }
            switch(alt114) {
                case 1:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6256:2: (enumLiteral_0= 'union all' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6256:2: (enumLiteral_0= 'union all' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6256:4: enumLiteral_0= 'union all'
                        {
                            enumLiteral_0 = (Token) match(input, 126, FOLLOW_126_in_ruleCompoundOperator13702);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getCompoundOperatorAccess().getUnionallEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_0, grammarAccess.getCompoundOperatorAccess().getUnionallEnumLiteralDeclaration_0());
                            }
                        }
                    }
                    break;
                case 2:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6262:6: (enumLiteral_1= 'union' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6262:6: (enumLiteral_1= 'union' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6262:8: enumLiteral_1= 'union'
                        {
                            enumLiteral_1 = (Token) match(input, 127, FOLLOW_127_in_ruleCompoundOperator13719);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getCompoundOperatorAccess().getUnionEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_1, grammarAccess.getCompoundOperatorAccess().getUnionEnumLiteralDeclaration_1());
                            }
                        }
                    }
                    break;
                case 3:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6268:6: (enumLiteral_2= 'intersect' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6268:6: (enumLiteral_2= 'intersect' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6268:8: enumLiteral_2= 'intersect'
                        {
                            enumLiteral_2 = (Token) match(input, 128, FOLLOW_128_in_ruleCompoundOperator13736);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getCompoundOperatorAccess().getIntersectEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_2, grammarAccess.getCompoundOperatorAccess().getIntersectEnumLiteralDeclaration_2());
                            }
                        }
                    }
                    break;
                case 4:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6274:6: (enumLiteral_3= 'except' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6274:6: (enumLiteral_3= 'except' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6274:8: enumLiteral_3= 'except'
                        {
                            enumLiteral_3 = (Token) match(input, 129, FOLLOW_129_in_ruleCompoundOperator13753);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getCompoundOperatorAccess().getExceptEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_3, grammarAccess.getCompoundOperatorAccess().getExceptEnumLiteralDeclaration_3());
                            }
                        }
                    }
                    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) AntlrDatatypeRuleToken(org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken)

Example 4 with Enumerator

use of org.eclipse.emf.common.util.Enumerator in project mechanoid by robotoworks.

the class InternalSqliteModelParser method ruleConflictResolution.

// $ANTLR end "ruleColumnType"
// $ANTLR start "ruleConflictResolution"
// ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6364:1: ruleConflictResolution returns [Enumerator current=null] : ( (enumLiteral_0= 'rollback' ) | (enumLiteral_1= 'abort' ) | (enumLiteral_2= 'fail' ) | (enumLiteral_3= 'ignore' ) | (enumLiteral_4= 'replace' ) ) ;
public final Enumerator ruleConflictResolution() throws RecognitionException {
    Enumerator current = null;
    Token enumLiteral_0 = null;
    Token enumLiteral_1 = null;
    Token enumLiteral_2 = null;
    Token enumLiteral_3 = null;
    Token enumLiteral_4 = null;
    enterRule();
    try {
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6366:28: ( ( (enumLiteral_0= 'rollback' ) | (enumLiteral_1= 'abort' ) | (enumLiteral_2= 'fail' ) | (enumLiteral_3= 'ignore' ) | (enumLiteral_4= 'replace' ) ) )
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6367:1: ( (enumLiteral_0= 'rollback' ) | (enumLiteral_1= 'abort' ) | (enumLiteral_2= 'fail' ) | (enumLiteral_3= 'ignore' ) | (enumLiteral_4= 'replace' ) )
        {
            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6367:1: ( (enumLiteral_0= 'rollback' ) | (enumLiteral_1= 'abort' ) | (enumLiteral_2= 'fail' ) | (enumLiteral_3= 'ignore' ) | (enumLiteral_4= 'replace' ) )
            int alt117 = 5;
            switch(input.LA(1)) {
                case 137:
                    {
                        alt117 = 1;
                    }
                    break;
                case 138:
                    {
                        alt117 = 2;
                    }
                    break;
                case 139:
                    {
                        alt117 = 3;
                    }
                    break;
                case 140:
                    {
                        alt117 = 4;
                    }
                    break;
                case 122:
                    {
                        alt117 = 5;
                    }
                    break;
                default:
                    if (state.backtracking > 0) {
                        state.failed = true;
                        return current;
                    }
                    NoViableAltException nvae = new NoViableAltException("", 117, 0, input);
                    throw nvae;
            }
            switch(alt117) {
                case 1:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6367:2: (enumLiteral_0= 'rollback' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6367:2: (enumLiteral_0= 'rollback' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6367:4: enumLiteral_0= 'rollback'
                        {
                            enumLiteral_0 = (Token) match(input, 137, FOLLOW_137_in_ruleConflictResolution14041);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getConflictResolutionAccess().getRollbackEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_0, grammarAccess.getConflictResolutionAccess().getRollbackEnumLiteralDeclaration_0());
                            }
                        }
                    }
                    break;
                case 2:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6373:6: (enumLiteral_1= 'abort' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6373:6: (enumLiteral_1= 'abort' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6373:8: enumLiteral_1= 'abort'
                        {
                            enumLiteral_1 = (Token) match(input, 138, FOLLOW_138_in_ruleConflictResolution14058);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getConflictResolutionAccess().getAbortEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_1, grammarAccess.getConflictResolutionAccess().getAbortEnumLiteralDeclaration_1());
                            }
                        }
                    }
                    break;
                case 3:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6379:6: (enumLiteral_2= 'fail' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6379:6: (enumLiteral_2= 'fail' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6379:8: enumLiteral_2= 'fail'
                        {
                            enumLiteral_2 = (Token) match(input, 139, FOLLOW_139_in_ruleConflictResolution14075);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getConflictResolutionAccess().getFailEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_2, grammarAccess.getConflictResolutionAccess().getFailEnumLiteralDeclaration_2());
                            }
                        }
                    }
                    break;
                case 4:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6385:6: (enumLiteral_3= 'ignore' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6385:6: (enumLiteral_3= 'ignore' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6385:8: enumLiteral_3= 'ignore'
                        {
                            enumLiteral_3 = (Token) match(input, 140, FOLLOW_140_in_ruleConflictResolution14092);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getConflictResolutionAccess().getIgnoreEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_3, grammarAccess.getConflictResolutionAccess().getIgnoreEnumLiteralDeclaration_3());
                            }
                        }
                    }
                    break;
                case 5:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6391:6: (enumLiteral_4= 'replace' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6391:6: (enumLiteral_4= 'replace' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6391:8: enumLiteral_4= 'replace'
                        {
                            enumLiteral_4 = (Token) match(input, 122, FOLLOW_122_in_ruleConflictResolution14109);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getConflictResolutionAccess().getReplaceEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_4, grammarAccess.getConflictResolutionAccess().getReplaceEnumLiteralDeclaration_4());
                            }
                        }
                    }
                    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) AntlrDatatypeRuleToken(org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken)

Example 5 with Enumerator

use of org.eclipse.emf.common.util.Enumerator in project mechanoid by robotoworks.

the class InternalSqliteModelParser method ruleSqliteDataType.

// $ANTLR end "ruleCompoundOperator"
// $ANTLR start "ruleSqliteDataType"
// ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6284:1: ruleSqliteDataType returns [Enumerator current=null] : ( (enumLiteral_0= 'text' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'real' ) | (enumLiteral_3= 'blob' ) | (enumLiteral_4= 'none' ) | (enumLiteral_5= 'numeric' ) ) ;
public final Enumerator ruleSqliteDataType() throws RecognitionException {
    Enumerator current = null;
    Token enumLiteral_0 = null;
    Token enumLiteral_1 = null;
    Token enumLiteral_2 = null;
    Token enumLiteral_3 = null;
    Token enumLiteral_4 = null;
    Token enumLiteral_5 = null;
    enterRule();
    try {
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6286:28: ( ( (enumLiteral_0= 'text' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'real' ) | (enumLiteral_3= 'blob' ) | (enumLiteral_4= 'none' ) | (enumLiteral_5= 'numeric' ) ) )
        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6287:1: ( (enumLiteral_0= 'text' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'real' ) | (enumLiteral_3= 'blob' ) | (enumLiteral_4= 'none' ) | (enumLiteral_5= 'numeric' ) )
        {
            // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6287:1: ( (enumLiteral_0= 'text' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'real' ) | (enumLiteral_3= 'blob' ) | (enumLiteral_4= 'none' ) | (enumLiteral_5= 'numeric' ) )
            int alt115 = 6;
            switch(input.LA(1)) {
                case 130:
                    {
                        alt115 = 1;
                    }
                    break;
                case 131:
                    {
                        alt115 = 2;
                    }
                    break;
                case 132:
                    {
                        alt115 = 3;
                    }
                    break;
                case 133:
                    {
                        alt115 = 4;
                    }
                    break;
                case 134:
                    {
                        alt115 = 5;
                    }
                    break;
                case 135:
                    {
                        alt115 = 6;
                    }
                    break;
                default:
                    if (state.backtracking > 0) {
                        state.failed = true;
                        return current;
                    }
                    NoViableAltException nvae = new NoViableAltException("", 115, 0, input);
                    throw nvae;
            }
            switch(alt115) {
                case 1:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6287:2: (enumLiteral_0= 'text' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6287:2: (enumLiteral_0= 'text' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6287:4: enumLiteral_0= 'text'
                        {
                            enumLiteral_0 = (Token) match(input, 130, FOLLOW_130_in_ruleSqliteDataType13798);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getSqliteDataTypeAccess().getTextEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_0, grammarAccess.getSqliteDataTypeAccess().getTextEnumLiteralDeclaration_0());
                            }
                        }
                    }
                    break;
                case 2:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6293:6: (enumLiteral_1= 'integer' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6293:6: (enumLiteral_1= 'integer' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6293:8: enumLiteral_1= 'integer'
                        {
                            enumLiteral_1 = (Token) match(input, 131, FOLLOW_131_in_ruleSqliteDataType13815);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getSqliteDataTypeAccess().getIntegerEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_1, grammarAccess.getSqliteDataTypeAccess().getIntegerEnumLiteralDeclaration_1());
                            }
                        }
                    }
                    break;
                case 3:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6299:6: (enumLiteral_2= 'real' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6299:6: (enumLiteral_2= 'real' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6299:8: enumLiteral_2= 'real'
                        {
                            enumLiteral_2 = (Token) match(input, 132, FOLLOW_132_in_ruleSqliteDataType13832);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getSqliteDataTypeAccess().getRealEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_2, grammarAccess.getSqliteDataTypeAccess().getRealEnumLiteralDeclaration_2());
                            }
                        }
                    }
                    break;
                case 4:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6305:6: (enumLiteral_3= 'blob' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6305:6: (enumLiteral_3= 'blob' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6305:8: enumLiteral_3= 'blob'
                        {
                            enumLiteral_3 = (Token) match(input, 133, FOLLOW_133_in_ruleSqliteDataType13849);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getSqliteDataTypeAccess().getBlobEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_3, grammarAccess.getSqliteDataTypeAccess().getBlobEnumLiteralDeclaration_3());
                            }
                        }
                    }
                    break;
                case 5:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6311:6: (enumLiteral_4= 'none' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6311:6: (enumLiteral_4= 'none' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6311:8: enumLiteral_4= 'none'
                        {
                            enumLiteral_4 = (Token) match(input, 134, FOLLOW_134_in_ruleSqliteDataType13866);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getSqliteDataTypeAccess().getNoneEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_4, grammarAccess.getSqliteDataTypeAccess().getNoneEnumLiteralDeclaration_4());
                            }
                        }
                    }
                    break;
                case 6:
                    // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6317:6: (enumLiteral_5= 'numeric' )
                    {
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6317:6: (enumLiteral_5= 'numeric' )
                        // ../com.robotoworks.mechanoid.db/src-gen/com/robotoworks/mechanoid/db/parser/antlr/internal/InternalSqliteModel.g:6317:8: enumLiteral_5= 'numeric'
                        {
                            enumLiteral_5 = (Token) match(input, 135, FOLLOW_135_in_ruleSqliteDataType13883);
                            if (state.failed)
                                return current;
                            if (state.backtracking == 0) {
                                current = grammarAccess.getSqliteDataTypeAccess().getNumericEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                                newLeafNode(enumLiteral_5, grammarAccess.getSqliteDataTypeAccess().getNumericEnumLiteralDeclaration_5());
                            }
                        }
                    }
                    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) AntlrDatatypeRuleToken(org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken)

Aggregations

Enumerator (org.eclipse.emf.common.util.Enumerator)29 AntlrDatatypeRuleToken (org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken)28 EObject (org.eclipse.emf.ecore.EObject)16