Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java')
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java678
1 files changed, 348 insertions, 330 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
index 41b85c47625..b480dbab101 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
@@ -17,19 +17,28 @@ import lpg.lpgjavaruntime.*;
import java.util.*;
import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
-public class C99NoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression >
+public class C99NoCastExpressionParser extends PrsStream implements RuleAction, ITokenStream,
+ ITokenCollector, IParser< IASTExpression >
+ , ISecondaryParser< IASTExpression >
{
private static ParseTable prs = new C99NoCastExpressionParserprs();
private FixedBacktrackingParser btParser;
@@ -167,7 +176,11 @@ public class C99NoCastExpressionParser extends PrsStream implements RuleAction ,
private C99BuildASTParserAction action;
private IASTCompletionNode compNode;
-public C99NoCastExpressionParser() { // constructor
+
+public C99NoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Set<IParser.Options> options) {
+ initActions(options);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
}
private void initActions(Set<IParser.Options> options) {
@@ -186,10 +199,9 @@ public void addToken(IToken token) {
}
-public IASTExpression parse(Set<IParser.Options> options) {
+public IASTExpression parse() {
// this has to be done, or... kaboom!
setStreamLength(getSize());
- initActions(options);
final int errorRepairCount = -1; // -1 means full error handling
parser(null, errorRepairCount); // do the actual parse
@@ -232,12 +244,12 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, C99NoCastExpressionParsersym.TK_EOF_TOKEN));
}
-public C99NoCastExpressionParser(IParserActionTokenProvider parser) { // constructor
+public C99NoCastExpressionParser(ITokenStream parser, Set<IParser.Options> options) { // constructor for creating secondary parser
+ initActions(options);
tokenMap = new TokenMap(C99NoCastExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
-
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
@@ -250,1005 +262,1011 @@ public C99NoCastExpressionParser(IParserActionTokenProvider parser) { // constr
}
//
- // Rule 12: literal ::= integer
+ // Rule 2: <empty> ::= $Empty
//
- case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ case 2: { action. consumeEmpty(); break;
}
//
- // Rule 13: literal ::= floating
+ // Rule 13: literal ::= integer
//
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
}
//
- // Rule 14: literal ::= charconst
+ // Rule 14: literal ::= floating
//
- case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
}
//
- // Rule 15: literal ::= stringlit
+ // Rule 15: literal ::= charconst
//
- case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
}
//
- // Rule 17: primary_expression ::= primary_expression_id
+ // Rule 16: literal ::= stringlit
//
- case 17: { action. consumeExpressionID(); break;
+ case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
}
//
- // Rule 18: primary_expression ::= ( expression )
+ // Rule 18: primary_expression ::= primary_expression_id
//
- case 18: { action. consumeExpressionBracketed(); break;
+ case 18: { action. consumeExpressionID(); break;
}
//
- // Rule 21: postfix_expression ::= postfix_expression [ expression ]
+ // Rule 19: primary_expression ::= ( expression )
//
- case 21: { action. consumeExpressionArraySubscript(); break;
+ case 19: { action. consumeExpressionBracketed(); break;
}
//
- // Rule 22: postfix_expression ::= postfix_expression ( expression_list_opt )
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
//
- case 22: { action. consumeExpressionFunctionCall(); break;
+ case 22: { action. consumeExpressionArraySubscript(); break;
}
//
- // Rule 23: postfix_expression ::= postfix_expression . member_name
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
//
- case 23: { action. consumeExpressionFieldReference(false); break;
+ case 23: { action. consumeExpressionFunctionCall(); break;
}
//
- // Rule 24: postfix_expression ::= postfix_expression -> member_name
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
//
- case 24: { action. consumeExpressionFieldReference(true); break;
+ case 24: { action. consumeExpressionFieldReference(false); break;
}
//
- // Rule 25: postfix_expression ::= postfix_expression ++
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
//
- case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ case 25: { action. consumeExpressionFieldReference(true); break;
}
//
- // Rule 26: postfix_expression ::= postfix_expression --
+ // Rule 26: postfix_expression ::= postfix_expression ++
//
- case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
}
//
- // Rule 27: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 27: postfix_expression ::= postfix_expression --
//
- case 27: { action. consumeExpressionTypeIdInitializer(); break;
+ case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
}
//
- // Rule 32: unary_expression ::= ++ unary_expression
+ // Rule 28: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
//
- case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ case 28: { action. consumeExpressionTypeIdInitializer(); break;
}
//
- // Rule 33: unary_expression ::= -- unary_expression
+ // Rule 33: unary_expression ::= ++ unary_expression
//
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
}
//
- // Rule 34: unary_expression ::= & cast_expression
+ // Rule 34: unary_expression ::= -- unary_expression
//
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
}
//
- // Rule 35: unary_expression ::= * cast_expression
+ // Rule 35: unary_expression ::= & cast_expression
//
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
}
//
- // Rule 36: unary_expression ::= + cast_expression
+ // Rule 36: unary_expression ::= * cast_expression
//
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
}
//
- // Rule 37: unary_expression ::= - cast_expression
+ // Rule 37: unary_expression ::= + cast_expression
//
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
}
//
- // Rule 38: unary_expression ::= ~ cast_expression
+ // Rule 38: unary_expression ::= - cast_expression
//
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
}
//
- // Rule 39: unary_expression ::= ! cast_expression
+ // Rule 39: unary_expression ::= ~ cast_expression
//
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
}
//
- // Rule 40: unary_expression ::= sizeof unary_expression
+ // Rule 40: unary_expression ::= ! cast_expression
//
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
}
//
- // Rule 41: unary_expression ::= sizeof ( type_id )
+ // Rule 41: unary_expression ::= sizeof unary_expression
//
- case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
+ case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
}
//
- // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression
+ // Rule 42: unary_expression ::= sizeof ( type_id )
//
- case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression
+ // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
//
- case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
}
//
- // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression
+ // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
//
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
}
//
- // Rule 48: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
//
- case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
}
//
- // Rule 49: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
//
- case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
}
//
- // Rule 51: shift_expression ::= shift_expression << additive_expression
+ // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
//
- case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
}
//
- // Rule 52: shift_expression ::= shift_expression >> additive_expression
+ // Rule 52: shift_expression ::= shift_expression << additive_expression
//
- case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 54: relational_expression ::= relational_expression < shift_expression
+ // Rule 53: shift_expression ::= shift_expression >> additive_expression
//
- case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 55: relational_expression ::= relational_expression > shift_expression
+ // Rule 55: relational_expression ::= relational_expression < shift_expression
//
- case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 56: relational_expression ::= relational_expression <= shift_expression
+ // Rule 56: relational_expression ::= relational_expression > shift_expression
//
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 57: relational_expression ::= relational_expression >= shift_expression
+ // Rule 57: relational_expression ::= relational_expression <= shift_expression
//
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 59: equality_expression ::= equality_expression == relational_expression
+ // Rule 58: relational_expression ::= relational_expression >= shift_expression
//
- case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 60: equality_expression ::= equality_expression != relational_expression
+ // Rule 60: equality_expression ::= equality_expression == relational_expression
//
- case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
}
//
- // Rule 62: AND_expression ::= AND_expression & equality_expression
+ // Rule 61: equality_expression ::= equality_expression != relational_expression
//
- case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
}
//
- // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ // Rule 63: and_expression ::= and_expression & equality_expression
//
- case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ // Rule 65: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
//
- case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ // Rule 67: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
//
- case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ // Rule 69: logical_and_expression ::= logical_and_expression && inclusive_or_expression
//
- case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ // Rule 71: logical_or_expression ::= logical_or_expression || logical_and_expression
//
- case 72: { action. consumeExpressionConditional(); break;
+ case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 74: assignment_expression ::= unary_expression = assignment_expression
+ // Rule 73: conditional_expression ::= logical_or_expression ? expression : assignment_expression
//
- case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ case 73: { action. consumeExpressionConditional(); break;
}
//
- // Rule 75: assignment_expression ::= unary_expression *= assignment_expression
+ // Rule 75: assignment_expression ::= unary_expression = assignment_expression
//
- case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
- // Rule 76: assignment_expression ::= unary_expression /= assignment_expression
+ // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
//
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 77: assignment_expression ::= unary_expression %= assignment_expression
+ // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
//
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 78: assignment_expression ::= unary_expression += assignment_expression
+ // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
//
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 79: assignment_expression ::= unary_expression -= assignment_expression
+ // Rule 79: assignment_expression ::= unary_expression += assignment_expression
//
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression
+ // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
//
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression
+ // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
//
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 82: assignment_expression ::= unary_expression &= assignment_expression
+ // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
//
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression
+ // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
//
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 84: assignment_expression ::= unary_expression |= assignment_expression
+ // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
//
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 87: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
//
- case 87: { action. consumeExpressionList(); break;
+ case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 89: expression_list_opt ::= $Empty
+ // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
//
- case 89: { action. consumeEmpty(); break;
+ case 88: { action. consumeExpressionList(); break;
}
//
- // Rule 99: statement ::= ERROR_TOKEN
+ // Rule 90: expression_list_opt ::= $Empty
//
- case 99: { action. consumeStatementProblem(); break;
+ case 90: { action. consumeEmpty(); break;
}
//
- // Rule 100: labeled_statement ::= identifier_token : statement
+ // Rule 100: statement ::= ERROR_TOKEN
//
- case 100: { action. consumeStatementLabeled(); break;
+ case 100: { action. consumeStatementProblem(); break;
}
//
- // Rule 101: labeled_statement ::= case constant_expression : statement
+ // Rule 101: labeled_statement ::= identifier_token : statement
//
- case 101: { action. consumeStatementCase(); break;
+ case 101: { action. consumeStatementLabeled(); break;
}
//
- // Rule 102: labeled_statement ::= default : statement
+ // Rule 102: labeled_statement ::= case constant_expression : statement
//
- case 102: { action. consumeStatementDefault(); break;
+ case 102: { action. consumeStatementCase(); break;
}
//
- // Rule 103: compound_statement ::= { }
+ // Rule 103: labeled_statement ::= default : statement
//
- case 103: { action. consumeStatementCompoundStatement(false); break;
+ case 103: { action. consumeStatementDefault(); break;
}
//
- // Rule 104: compound_statement ::= { <openscope-ast> block_item_list }
+ // Rule 104: compound_statement ::= { }
//
- case 104: { action. consumeStatementCompoundStatement(true); break;
+ case 104: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 108: block_item ::= declaration
+ // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
//
- case 108: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 105: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 109: expression_statement ::= ;
+ // Rule 109: block_item ::= declaration
//
- case 109: { action. consumeStatementNull(); break;
+ case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 110: expression_statement ::= expression_in_statement ;
+ // Rule 110: expression_statement ::= ;
//
- case 110: { action. consumeStatementExpression(); break;
+ case 110: { action. consumeStatementNull(); break;
}
//
- // Rule 111: selection_statement ::= if ( expression ) statement
+ // Rule 111: expression_statement ::= expression_in_statement ;
//
- case 111: { action. consumeStatementIf(false); break;
+ case 111: { action. consumeStatementExpression(); break;
}
//
- // Rule 112: selection_statement ::= if ( expression ) statement else statement
+ // Rule 112: selection_statement ::= if ( expression ) statement
//
- case 112: { action. consumeStatementIf(true); break;
+ case 112: { action. consumeStatementIf(false); break;
}
//
- // Rule 113: selection_statement ::= switch ( expression ) statement
+ // Rule 113: selection_statement ::= if ( expression ) statement else statement
//
- case 113: { action. consumeStatementSwitch(); break;
+ case 113: { action. consumeStatementIf(true); break;
}
//
- // Rule 115: expression_opt ::= $Empty
+ // Rule 114: selection_statement ::= switch ( expression ) statement
//
- case 115: { action. consumeEmpty(); break;
+ case 114: { action. consumeStatementSwitch(); break;
}
//
- // Rule 116: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 116: expression_opt ::= $Empty
//
- case 116: { action. consumeStatementDoLoop(); break;
+ case 116: { action. consumeEmpty(); break;
}
//
- // Rule 117: iteration_statement ::= while ( expression ) statement
+ // Rule 117: iteration_statement ::= do statement while ( expression ) ;
//
- case 117: { action. consumeStatementWhileLoop(); break;
+ case 117: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ // Rule 118: iteration_statement ::= while ( expression ) statement
//
- case 118: { action. consumeStatementForLoop(); break;
+ case 118: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
//
case 119: { action. consumeStatementForLoop(); break;
}
//
- // Rule 120: jump_statement ::= goto identifier_token ;
+ // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
//
- case 120: { action. consumeStatementGoto(); break;
+ case 120: { action. consumeStatementForLoop(); break;
}
//
- // Rule 121: jump_statement ::= continue ;
+ // Rule 121: jump_statement ::= goto identifier_token ;
//
- case 121: { action. consumeStatementContinue(); break;
+ case 121: { action. consumeStatementGoto(); break;
}
//
- // Rule 122: jump_statement ::= break ;
+ // Rule 122: jump_statement ::= continue ;
//
- case 122: { action. consumeStatementBreak(); break;
+ case 122: { action. consumeStatementContinue(); break;
}
//
- // Rule 123: jump_statement ::= return ;
+ // Rule 123: jump_statement ::= break ;
//
- case 123: { action. consumeStatementReturn(false); break;
+ case 123: { action. consumeStatementBreak(); break;
}
//
- // Rule 124: jump_statement ::= return expression ;
+ // Rule 124: jump_statement ::= return ;
//
- case 124: { action. consumeStatementReturn(true); break;
+ case 124: { action. consumeStatementReturn(false); break;
}
//
- // Rule 125: declaration ::= declaration_specifiers ;
+ // Rule 125: jump_statement ::= return expression ;
//
- case 125: { action. consumeDeclarationSimple(false); break;
+ case 125: { action. consumeStatementReturn(true); break;
}
//
- // Rule 126: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ // Rule 126: declaration ::= declaration_specifiers ;
//
- case 126: { action. consumeDeclarationSimple(true); break;
+ case 126: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 127: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
//
- case 127: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 127: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 128: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ case 128: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 129: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
//
case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 130: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 131: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 131: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 156: init_declarator ::= complete_declarator = initializer
+ // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
//
- case 156: { action. consumeDeclaratorWithInitializer(true); break;
+ case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
}
//
- // Rule 158: storage_class_specifier ::= storage_class_specifier_token
+ // Rule 157: init_declarator ::= complete_declarator = initializer
//
- case 158: { action. consumeToken(); break;
+ case 157: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 164: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 164: { action. consumeToken(); break;
+ case 159: { action. consumeToken(); break;
}
//
- // Rule 177: type_name_specifier ::= identifier_token
+ // Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 177: { action. consumeToken(); break;
+ case 165: { action. consumeToken(); break;
}
//
- // Rule 178: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 178: type_name_specifier ::= identifier_token
//
- case 178: { action. consumeTypeSpecifierComposite(false); break;
+ case 178: { action. consumeToken(); break;
}
//
- // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 179: { action. consumeTypeSpecifierComposite(true); break;
+ case 179: { action. consumeTypeSpecifierComposite(false); break;
}
//
- // Rule 184: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
+ // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 184: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ case 180: { action. consumeTypeSpecifierComposite(true); break;
}
//
- // Rule 185: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
+ // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
//
- case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
}
//
- // Rule 186: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
+ // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
//
- case 186: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
}
//
- // Rule 192: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
//
- case 192: { action. consumeStructDeclaration(true); break;
+ case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
}
//
- // Rule 193: struct_declaration ::= specifier_qualifier_list ;
+ // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
//
- case 193: { action. consumeStructDeclaration(false); break;
+ case 193: { action. consumeStructDeclaration(true); break;
}
//
- // Rule 194: struct_declaration ::= ERROR_TOKEN
+ // Rule 194: struct_declaration ::= specifier_qualifier_list ;
//
- case 194: { action. consumeDeclarationProblem(); break;
+ case 194: { action. consumeStructDeclaration(false); break;
}
//
- // Rule 200: struct_declarator ::= : constant_expression
+ // Rule 195: struct_declaration ::= ERROR_TOKEN
//
- case 200: { action. consumeBitField(false); break;
+ case 195: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 201: struct_declarator ::= declarator : constant_expression
+ // Rule 201: struct_declarator ::= : constant_expression
//
- case 201: { action. consumeBitField(true); break;
+ case 201: { action. consumeBitField(false); break;
}
//
- // Rule 202: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 202: struct_declarator ::= declarator : constant_expression
//
- case 202: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 202: { action. consumeBitField(true); break;
}
//
- // Rule 203: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 203: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 203: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 203: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 209: enumerator ::= identifier_token
+ // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 209: { action. consumeEnumerator(false); break;
+ case 204: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 210: enumerator ::= identifier_token = constant_expression
+ // Rule 210: enumerator ::= identifier_token
//
- case 210: { action. consumeEnumerator(true); break;
+ case 210: { action. consumeEnumerator(false); break;
}
//
- // Rule 211: type_qualifier ::= type_qualifier_token
+ // Rule 211: enumerator ::= identifier_token = constant_expression
//
- case 211: { action. consumeToken(); break;
+ case 211: { action. consumeEnumerator(true); break;
}
//
- // Rule 215: function_specifier ::= inline
+ // Rule 212: type_qualifier ::= type_qualifier_token
//
- case 215: { action. consumeToken(); break;
+ case 212: { action. consumeToken(); break;
}
//
- // Rule 217: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ // Rule 216: function_specifier ::= inline
//
- case 217: { action. consumeDeclaratorWithPointer(true); break;
+ case 216: { action. consumeToken(); break;
}
//
- // Rule 222: basic_direct_declarator ::= declarator_id_name
+ // Rule 218: declarator ::= <openscope-ast> pointer_seq direct_declarator
//
- case 222: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 218: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 223: basic_direct_declarator ::= ( declarator )
+ // Rule 223: basic_direct_declarator ::= declarator_id_name
//
- case 223: { action. consumeDirectDeclaratorBracketed(); break;
+ case 223: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 224: declarator_id_name ::= identifier
+ // Rule 224: basic_direct_declarator ::= ( declarator )
//
- case 224: { action. consumeIdentifierName(); break;
+ case 224: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 225: declarator_id_name ::= identifier
//
- case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 225: { action. consumeIdentifierName(); break;
}
//
- // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier
//
case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 228: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 229: function_direct_declarator ::= basic_direct_declarator ( )
+ // Rule 229: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
//
- case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 231: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ // Rule 230: function_direct_declarator ::= basic_direct_declarator ( )
//
- case 231: { action. consumeDeclaratorWithPointer(true); break;
+ case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ // Rule 232: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
//
- case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ case 232: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 234: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
//
- case 234: { action. consumeDeclaratorWithPointer(true); break;
+ case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
}
//
- // Rule 235: identifier_list ::= identifier
+ // Rule 235: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
//
- case 235: { action. consumeIdentifierKnR(); break;
+ case 235: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 236: identifier_list ::= identifier_list , identifier
+ // Rule 236: identifier_list ::= identifier
//
case 236: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 237: array_modifier ::= [ ]
+ // Rule 237: identifier_list ::= identifier_list , identifier
//
- case 237: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 237: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 238: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ // Rule 238: array_modifier ::= [ ]
//
- case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ case 238: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 239: array_modifier ::= [ assignment_expression ]
+ // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
//
- case 239: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
}
//
- // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 240: array_modifier ::= [ assignment_expression ]
//
- case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ case 240: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 241: array_modifier ::= [ static assignment_expression ]
+ // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
}
//
- // Rule 242: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 242: array_modifier ::= [ static assignment_expression ]
//
- case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
}
//
- // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ // Rule 243: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 244: array_modifier ::= [ * ]
+ // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
//
- case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ // Rule 245: array_modifier ::= [ * ]
//
- case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
}
//
- // Rule 247: pointer_seq ::= pointer_hook *
+ // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
//
- case 247: { action. consumePointer(); break;
+ case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
}
//
- // Rule 248: pointer_seq ::= pointer_seq pointer_hook *
+ // Rule 248: pointer_seq ::= pointer_hook * pointer_hook
//
case 248: { action. consumePointer(); break;
}
//
- // Rule 249: pointer_seq ::= pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 249: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
//
- case 249: { action. consumePointerTypeQualifierList(); break;
+ case 249: { action. consumePointer(); break;
}
//
- // Rule 250: pointer_seq ::= pointer_seq pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 250: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
case 250: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 254: parameter_type_list ::= parameter_list
+ // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 254: { action. consumeEmpty(); break;
+ case 251: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 255: parameter_type_list ::= parameter_list , ...
+ // Rule 255: parameter_type_list ::= parameter_list
//
- case 255: { action. consumePlaceHolder(); break;
+ case 255: { action. consumeEmpty(); break;
}
//
- // Rule 256: parameter_type_list ::= ...
+ // Rule 256: parameter_type_list ::= parameter_list , ...
//
case 256: { action. consumePlaceHolder(); break;
}
//
- // Rule 259: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ // Rule 257: parameter_type_list ::= ...
//
- case 259: { action. consumeParameterDeclaration(); break;
+ case 257: { action. consumePlaceHolder(); break;
}
//
- // Rule 260: parameter_declaration ::= declaration_specifiers
+ // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
//
- case 260: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 260: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 263: type_id ::= specifier_qualifier_list
+ // Rule 261: parameter_declaration ::= declaration_specifiers
//
- case 263: { action. consumeTypeId(false); break;
+ case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 264: type_id ::= specifier_qualifier_list abstract_declarator
+ // Rule 264: type_id ::= specifier_qualifier_list
//
- case 264: { action. consumeTypeId(true); break;
+ case 264: { action. consumeTypeId(false); break;
}
//
- // Rule 266: abstract_declarator ::= <openscope-ast> pointer_seq
+ // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator
//
- case 266: { action. consumeDeclaratorWithPointer(false); break;
+ case 265: { action. consumeTypeId(true); break;
}
//
- // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq
//
case 267: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 271: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
//
- case 271: { action. consumeDirectDeclaratorBracketed(); break;
+ case 268: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 272: array_direct_abstract_declarator ::= array_modifier
+ // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 272: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 272: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 273: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 273: array_direct_abstract_declarator ::= array_modifier
//
- case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 274: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 275: function_direct_abstract_declarator ::= ( )
+ // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 275: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 276: function_direct_abstract_declarator ::= ( )
+ //
+ case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
}
//
- // Rule 276: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
//
- case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 277: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ // Rule 278: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
//
- case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
}
//
- // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
//
- case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 279: initializer ::= assignment_expression
+ // Rule 280: initializer ::= assignment_expression
//
- case 279: { action. consumeInitializer(); break;
+ case 280: { action. consumeInitializer(); break;
}
//
- // Rule 280: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
+ // Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
//
- case 280: { action. consumeInitializerList(); break;
+ case 281: { action. consumeInitializerList(); break;
}
//
- // Rule 281: initializer ::= { <openscope-ast> }
+ // Rule 282: initializer ::= { <openscope-ast> }
//
- case 281: { action. consumeInitializerList(); break;
+ case 282: { action. consumeInitializerList(); break;
}
//
- // Rule 282: start_initializer_list ::= $Empty
+ // Rule 283: start_initializer_list ::= $Empty
//
- case 282: { action. initializerListStart(); break;
+ case 283: { action. initializerListStart(); break;
}
//
- // Rule 283: end_initializer_list ::= $Empty
+ // Rule 284: end_initializer_list ::= $Empty
//
- case 283: { action. initializerListEnd(); break;
+ case 284: { action. initializerListEnd(); break;
}
//
- // Rule 288: designated_initializer ::= <openscope-ast> designation = initializer
+ // Rule 289: designated_initializer ::= <openscope-ast> designation = initializer
//
- case 288: { action. consumeInitializerDesignated(); break;
+ case 289: { action. consumeInitializerDesignated(); break;
}
//
- // Rule 292: designator_base ::= [ constant_expression ]
+ // Rule 293: designator_base ::= [ constant_expression ]
//
- case 292: { action. consumeDesignatorArray(); break;
+ case 293: { action. consumeDesignatorArray(); break;
}
//
- // Rule 293: designator_base ::= . identifier_token
+ // Rule 294: designator_base ::= . identifier_token
//
- case 293: { action. consumeDesignatorField(); break;
+ case 294: { action. consumeDesignatorField(); break;
}
//
- // Rule 294: designator ::= [ constant_expression ]
+ // Rule 295: designator ::= [ constant_expression ]
//
- case 294: { action. consumeDesignatorArray(); break;
+ case 295: { action. consumeDesignatorArray(); break;
}
//
- // Rule 295: designator ::= . identifier_token
+ // Rule 296: designator ::= . identifier_token
//
- case 295: { action. consumeDesignatorField(); break;
+ case 296: { action. consumeDesignatorField(); break;
}
//
- // Rule 296: translation_unit ::= external_declaration_list
+ // Rule 297: translation_unit ::= external_declaration_list
//
- case 296: { action. consumeTranslationUnit(); break;
+ case 297: { action. consumeTranslationUnit(); break;
}
//
- // Rule 297: translation_unit ::= $Empty
+ // Rule 298: translation_unit ::= $Empty
//
- case 297: { action. consumeTranslationUnit(); break;
+ case 298: { action. consumeTranslationUnit(); break;
}
//
- // Rule 302: external_declaration ::= ;
+ // Rule 303: external_declaration ::= ;
//
- case 302: { action. consumeDeclarationEmpty(); break;
+ case 303: { action. consumeDeclarationEmpty(); break;
}
//
- // Rule 303: external_declaration ::= ERROR_TOKEN
+ // Rule 304: external_declaration ::= ERROR_TOKEN
//
- case 303: { action. consumeDeclarationProblem(); break;
+ case 304: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 306: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
//
- case 306: { action. consumeFunctionDefinition(true); break;
+ case 307: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 307: function_definition ::= <openscope-ast> function_declarator function_body
+ // Rule 308: function_definition ::= <openscope-ast> function_declarator function_body
//
- case 307: { action. consumeFunctionDefinition(false); break;
+ case 308: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 308: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
//
- case 308: { action. consumeFunctionDefinitionKnR(); break;
+ case 309: { action. consumeFunctionDefinitionKnR(); break;
}
//
- // Rule 309: function_body ::= { }
+ // Rule 310: function_body ::= { }
//
- case 309: { action. consumeStatementCompoundStatement(false); break;
+ case 310: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 310: function_body ::= { <openscope-ast> block_item_list }
+ // Rule 311: function_body ::= { <openscope-ast> block_item_list }
//
- case 310: { action. consumeStatementCompoundStatement(true); break;
+ case 311: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 312: no_cast_start ::= ERROR_TOKEN
+ // Rule 313: no_cast_start ::= ERROR_TOKEN
//
- case 312: { action. consumeEmpty(); break;
+ case 313: { action. consumeEmpty(); break;
}

Back to the top