diff options
author | Mike Kucera | 2009-02-04 21:58:18 +0000 |
---|---|---|
committer | Mike Kucera | 2009-02-04 21:58:18 +0000 |
commit | c9b3182198be50b2aa80d612d16ccc35402adb54 (patch) | |
tree | 2218a93bf91b4208f87c138a06067d3f9a8b5ad1 /upc | |
parent | b1f0b681d3be562f5ff5a35e2c7de71feea0de60 (diff) | |
download | org.eclipse.cdt-c9b3182198be50b2aa80d612d16ccc35402adb54.tar.gz org.eclipse.cdt-c9b3182198be50b2aa80d612d16ccc35402adb54.tar.xz org.eclipse.cdt-c9b3182198be50b2aa80d612d16ccc35402adb54.zip |
cleaning up the architecture of the LR parsers
Diffstat (limited to 'upc')
15 files changed, 4694 insertions, 4641 deletions
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g index 5aebaa7dbc6..b7be58100af 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g +++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.parser.upc -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g index c17364f890d..635c9aee76c 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g +++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.parser.upc -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g index ea1e78c3a89..8f4d84d2563 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g +++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.parser.upc -%options template=FixedBtParserTemplateD.g +%options template=LRParserTemplate.g $Import diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g index 19e61f3af6a..564b1637ca5 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g +++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.parser.upc -%options template=FixedBtParserTemplateD.g +%options template=LRSecondaryParserTemplate.g $Import diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java index aa5875b8375..5900bd8747f 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java @@ -23,7 +23,7 @@ import org.eclipse.cdt.core.dom.ast.IASTStatement; import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression; import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression; import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; @@ -48,7 +48,7 @@ public class UPCParserAction extends C99BuildASTParserAction { * @param parser * @param tu */ - public UPCParserAction(IParserActionTokenProvider parser, ScopedStack<Object> astStack, IUPCNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) { + public UPCParserAction(ITokenStream parser, ScopedStack<Object> astStack, IUPCNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) { super(parser, astStack, nodeFactory, parserFactory); this.nodeFactory = nodeFactory; nodeFactory.setUseC99SizeofExpressions(); diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java index 216d356c470..4f3e79c7b05 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java @@ -11,10 +11,13 @@ package org.eclipse.cdt.core.dom.parser.upc; +import java.util.Set; + import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser; import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.internal.core.dom.parser.upc.UPCExpressionParser; import org.eclipse.cdt.internal.core.dom.parser.upc.UPCNoCastExpressionParser; import org.eclipse.cdt.internal.core.dom.parser.upc.UPCSizeofExpressionParser; @@ -27,16 +30,16 @@ public class UPCSecondaryParserFactory implements ISecondaryParserFactory{ return DEFAULT_INSTANCE; } - public IParser<IASTExpression> getExpressionParser(IParserActionTokenProvider parser) { - return new UPCExpressionParser(parser); + public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Set<IParser.Options> options) { + return new UPCExpressionParser(stream, options); } - public IParser<IASTExpression> getNoCastExpressionParser(IParserActionTokenProvider parser) { - return new UPCNoCastExpressionParser(parser); + public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream, Set<IParser.Options> options) { + return new UPCNoCastExpressionParser(stream, options); } - public IParser<IASTExpression> getSizeofExpressionParser(IParserActionTokenProvider parser) { - return new UPCSizeofExpressionParser(parser); + public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream, Set<IParser.Options> options) { + return new UPCSizeofExpressionParser(stream, options); } } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java index 0cfd67013c4..2286fb1b05a 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java @@ -10,20 +10,24 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.upc; +import java.util.Set; + import org.eclipse.cdt.core.dom.ILinkage; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage; -import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration; +import org.eclipse.cdt.core.dom.lrparser.IParser.Options; import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.c.ANSICParserExtensionConfiguration; import org.eclipse.cdt.core.dom.parser.upc.DOMToUPCTokenMap; import org.eclipse.cdt.core.dom.parser.upc.UPCLanguageKeywords; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.model.ICLanguageKeywords; import org.eclipse.cdt.core.model.IContributedModelBuilder; import org.eclipse.cdt.core.model.ITranslationUnit; +import org.eclipse.cdt.core.parser.IScanner; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser; @@ -44,13 +48,8 @@ public class UPCLanguage extends BaseExtensibleLanguage { } @Override - protected IDOMTokenMap getTokenMap() { - return new DOMToUPCTokenMap(); - } - - @Override - public IParser<IASTTranslationUnit> getParser() { - return new UPCParser(); + protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Set<Options> options) { + return new UPCParser(scanner, new DOMToUPCTokenMap(), getBuiltinBindingsProvider(), index, options); } /** @@ -90,7 +89,6 @@ public class UPCLanguage extends BaseExtensibleLanguage { return ScannerExtensionConfiguration.createC(); } - @Override protected IBuiltinBindingsProvider getBuiltinBindingsProvider() { return new ANSICParserExtensionConfiguration().getBuiltinBindingsProvider(); } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java index eefb86977ec..13b109eef59 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java @@ -17,13 +17,20 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +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.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; 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.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; @@ -37,7 +44,9 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -public class UPCExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class UPCExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new UPCExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -175,7 +184,11 @@ public class UPCExpressionParser extends PrsStream implements RuleAction , IPars private UPCParserAction action; private IASTCompletionNode compNode; -public UPCExpressionParser() { // constructor + +public UPCExpressionParser(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) { @@ -194,10 +207,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 @@ -240,12 +252,12 @@ public void setTokens(List<IToken> tokens) { addToken(new Token(null, 0, 0, UPCExpressionParsersym.TK_EOF_TOKEN)); } -public UPCExpressionParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(UPCExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); +public UPCExpressionParser(ITokenStream stream, Set<IParser.Options> options) { // constructor for creating secondary parser + initActions(options); + tokenMap = new TokenMap(UPCExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -258,1293 +270,1299 @@ public UPCExpressionParser(IParserActionTokenProvider parser) { // constructor } // - // 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 43: cast_expression ::= ( type_id ) cast_expression + // Rule 42: unary_expression ::= sizeof ( type_id ) // - case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; } // - // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 44: cast_expression ::= ( type_id ) cast_expression // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; } // - // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; } // - // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; } // - // Rule 49: additive_expression ::= additive_expression + multiplicative_expression + // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; } // - // Rule 50: additive_expression ::= additive_expression - multiplicative_expression + // Rule 50: additive_expression ::= additive_expression + multiplicative_expression // - case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; } // - // Rule 52: shift_expression ::= shift_expression << additive_expression + // Rule 51: additive_expression ::= additive_expression - multiplicative_expression // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; } // - // Rule 53: shift_expression ::= shift_expression >> additive_expression + // Rule 53: shift_expression ::= shift_expression << additive_expression // - case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; } // - // Rule 55: relational_expression ::= relational_expression < shift_expression + // Rule 54: shift_expression ::= shift_expression >> additive_expression // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; } // - // Rule 56: relational_expression ::= relational_expression > shift_expression + // Rule 56: relational_expression ::= relational_expression < shift_expression // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; } // - // Rule 57: relational_expression ::= relational_expression <= shift_expression + // Rule 57: relational_expression ::= relational_expression > shift_expression // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; } // - // Rule 58: relational_expression ::= relational_expression >= shift_expression + // Rule 58: relational_expression ::= relational_expression <= shift_expression // - case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; } // - // Rule 60: equality_expression ::= equality_expression == relational_expression + // Rule 59: relational_expression ::= relational_expression >= shift_expression // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; } // - // Rule 61: equality_expression ::= equality_expression != relational_expression + // Rule 61: equality_expression ::= equality_expression == relational_expression // - case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; } // - // Rule 63: AND_expression ::= AND_expression & equality_expression + // Rule 62: equality_expression ::= equality_expression != relational_expression // - case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; } // - // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 64: and_expression ::= and_expression & equality_expression // - case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; } // - // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; } // - // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; } // - // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; } // - // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 73: { action. consumeExpressionConditional(); break; + case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; } // - // Rule 75: assignment_expression ::= unary_expression = assignment_expression + // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 74: { action. consumeExpressionConditional(); break; } // - // Rule 76: assignment_expression ::= unary_expression *= assignment_expression + // Rule 76: assignment_expression ::= unary_expression = assignment_expression // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 77: assignment_expression ::= unary_expression /= assignment_expression + // Rule 77: assignment_expression ::= unary_expression *= assignment_expression // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 78: assignment_expression ::= unary_expression %= assignment_expression + // Rule 78: assignment_expression ::= unary_expression /= assignment_expression // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; } // - // Rule 79: assignment_expression ::= unary_expression += assignment_expression + // Rule 79: assignment_expression ::= unary_expression %= assignment_expression // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; } // - // Rule 80: assignment_expression ::= unary_expression -= assignment_expression + // Rule 80: assignment_expression ::= unary_expression += assignment_expression // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; } // - // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 81: assignment_expression ::= unary_expression -= assignment_expression // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; } // - // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 83: assignment_expression ::= unary_expression &= assignment_expression + // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 84: assignment_expression ::= unary_expression &= assignment_expression // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 85: assignment_expression ::= unary_expression |= assignment_expression + // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression // - case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 88: expression_list ::= <openscope-ast> expression_list_actual + // Rule 86: assignment_expression ::= unary_expression |= assignment_expression // - case 88: { action. consumeExpressionList(); break; + case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 90: expression_list_opt ::= $Empty + // Rule 89: expression_list ::= <openscope-ast> expression_list_actual // - case 90: { action. consumeEmpty(); break; + case 89: { action. consumeExpressionList(); break; } // - // Rule 100: statement ::= ERROR_TOKEN + // Rule 91: expression_list_opt ::= $Empty // - case 100: { action. consumeStatementProblem(); break; + case 91: { action. consumeEmpty(); break; } // - // Rule 101: labeled_statement ::= identifier_token : statement + // Rule 101: statement ::= ERROR_TOKEN // - case 101: { action. consumeStatementLabeled(); break; + case 101: { action. consumeStatementProblem(); break; } // - // Rule 102: labeled_statement ::= case constant_expression : statement + // Rule 102: labeled_statement ::= identifier_token : statement // - case 102: { action. consumeStatementCase(); break; + case 102: { action. consumeStatementLabeled(); break; } // - // Rule 103: labeled_statement ::= default : statement + // Rule 103: labeled_statement ::= case constant_expression : statement // - case 103: { action. consumeStatementDefault(); break; + case 103: { action. consumeStatementCase(); break; } // - // Rule 104: compound_statement ::= { } + // Rule 104: labeled_statement ::= default : statement // - case 104: { action. consumeStatementCompoundStatement(false); break; + case 104: { action. consumeStatementDefault(); break; } // - // Rule 105: compound_statement ::= { <openscope-ast> block_item_list } + // Rule 105: compound_statement ::= { } // - case 105: { action. consumeStatementCompoundStatement(true); break; + case 105: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 109: block_item ::= declaration + // Rule 106: compound_statement ::= { <openscope-ast> block_item_list } // - case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 106: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 110: expression_statement ::= ; + // Rule 110: block_item ::= declaration // - case 110: { action. consumeStatementNull(); break; + case 110: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 111: expression_statement ::= expression_in_statement ; + // Rule 111: expression_statement ::= ; // - case 111: { action. consumeStatementExpression(); break; + case 111: { action. consumeStatementNull(); break; } // - // Rule 112: selection_statement ::= if ( expression ) statement + // Rule 112: expression_statement ::= expression_in_statement ; // - case 112: { action. consumeStatementIf(false); break; + case 112: { action. consumeStatementExpression(); break; } // - // Rule 113: selection_statement ::= if ( expression ) statement else statement + // Rule 113: selection_statement ::= if ( expression ) statement // - case 113: { action. consumeStatementIf(true); break; + case 113: { action. consumeStatementIf(false); break; } // - // Rule 114: selection_statement ::= switch ( expression ) statement + // Rule 114: selection_statement ::= if ( expression ) statement else statement // - case 114: { action. consumeStatementSwitch(); break; + case 114: { action. consumeStatementIf(true); break; } // - // Rule 116: expression_opt ::= $Empty + // Rule 115: selection_statement ::= switch ( expression ) statement // - case 116: { action. consumeEmpty(); break; + case 115: { action. consumeStatementSwitch(); break; } // - // Rule 117: iteration_statement ::= do statement while ( expression ) ; + // Rule 117: expression_opt ::= $Empty // - case 117: { action. consumeStatementDoLoop(); break; + case 117: { action. consumeEmpty(); break; } // - // Rule 118: iteration_statement ::= while ( expression ) statement + // Rule 118: iteration_statement ::= do statement while ( expression ) ; // - case 118: { action. consumeStatementWhileLoop(); break; + case 118: { action. consumeStatementDoLoop(); break; } // - // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 119: iteration_statement ::= while ( expression ) statement // - case 119: { action. consumeStatementForLoop(); break; + case 119: { action. consumeStatementWhileLoop(); break; } // - // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 120: { action. consumeStatementForLoop(); break; } // - // Rule 121: jump_statement ::= goto identifier_token ; + // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 121: { action. consumeStatementGoto(); break; + case 121: { action. consumeStatementForLoop(); break; } // - // Rule 122: jump_statement ::= continue ; + // Rule 122: jump_statement ::= goto identifier_token ; // - case 122: { action. consumeStatementContinue(); break; + case 122: { action. consumeStatementGoto(); break; } // - // Rule 123: jump_statement ::= break ; + // Rule 123: jump_statement ::= continue ; // - case 123: { action. consumeStatementBreak(); break; + case 123: { action. consumeStatementContinue(); break; } // - // Rule 124: jump_statement ::= return ; + // Rule 124: jump_statement ::= break ; // - case 124: { action. consumeStatementReturn(false); break; + case 124: { action. consumeStatementBreak(); break; } // - // Rule 125: jump_statement ::= return expression ; + // Rule 125: jump_statement ::= return ; // - case 125: { action. consumeStatementReturn(true); break; + case 125: { action. consumeStatementReturn(false); break; } // - // Rule 126: declaration ::= declaration_specifiers ; + // Rule 126: jump_statement ::= return expression ; // - case 126: { action. consumeDeclarationSimple(false); break; + case 126: { action. consumeStatementReturn(true); break; } // - // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ; + // Rule 127: declaration ::= declaration_specifiers ; // - case 127: { action. consumeDeclarationSimple(true); break; + case 127: { action. consumeDeclarationSimple(false); break; } // - // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers + // Rule 128: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ; // - case 128: { action. consumeDeclarationSpecifiersSimple(); break; + case 128: { action. consumeDeclarationSimple(true); break; } // - // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers + // Rule 129: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + case 129: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers + // Rule 130: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers // case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers + // Rule 131: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers + // Rule 132: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // - case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; + case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 157: init_declarator ::= complete_declarator = initializer + // Rule 133: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers // - case 157: { action. consumeDeclaratorWithInitializer(true); break; + case 133: { action. consumeDeclarationSpecifiersTypedefName(); break; } // - // Rule 159: storage_class_specifier ::= storage_class_specifier_token + // Rule 158: init_declarator ::= complete_declarator = initializer // - case 159: { action. consumeToken(); break; + case 158: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 165: simple_type_specifier ::= simple_type_specifier_token + // Rule 160: storage_class_specifier ::= storage_class_specifier_token // - case 165: { action. consumeToken(); break; + case 160: { action. consumeToken(); break; } // - // Rule 178: type_name_specifier ::= identifier_token + // Rule 166: simple_type_specifier ::= simple_type_specifier_token // - case 178: { action. consumeToken(); break; + case 166: { action. consumeToken(); break; } // - // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt } + // Rule 179: type_name_specifier ::= identifier_token // - case 179: { action. consumeTypeSpecifierComposite(false); break; + case 179: { action. consumeToken(); break; } // - // 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 } + // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt } // - case 180: { action. consumeTypeSpecifierComposite(true); break; + case 180: { action. consumeTypeSpecifierComposite(false); break; } // - // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // Rule 181: 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 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + case 181: { action. consumeTypeSpecifierComposite(true); break; } // - // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token // - case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; } // - // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token // - case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; } // - // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ; + // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token // - case 193: { action. consumeStructDeclaration(true); break; + case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; } // - // Rule 194: struct_declaration ::= specifier_qualifier_list ; + // Rule 194: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ; // - case 194: { action. consumeStructDeclaration(false); break; + case 194: { action. consumeStructDeclaration(true); break; } // - // Rule 195: struct_declaration ::= ERROR_TOKEN + // Rule 195: struct_declaration ::= specifier_qualifier_list ; // - case 195: { action. consumeDeclarationProblem(); break; + case 195: { action. consumeStructDeclaration(false); break; } // - // Rule 201: struct_declarator ::= : constant_expression + // Rule 196: struct_declaration ::= ERROR_TOKEN // - case 201: { action. consumeBitField(false); break; + case 196: { action. consumeDeclarationProblem(); break; } // - // Rule 202: struct_declarator ::= declarator : constant_expression + // Rule 202: struct_declarator ::= : constant_expression // - case 202: { action. consumeBitField(true); break; + case 202: { action. consumeBitField(false); break; } // - // Rule 203: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt } + // Rule 203: struct_declarator ::= declarator : constant_expression // - case 203: { action. consumeTypeSpecifierEnumeration(false); break; + case 203: { action. consumeBitField(true); break; } // - // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt } + // Rule 204: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt } // - case 204: { action. consumeTypeSpecifierEnumeration(true); break; + case 204: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 210: enumerator ::= identifier_token + // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt } // - case 210: { action. consumeEnumerator(false); break; + case 205: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 211: enumerator ::= identifier_token = constant_expression + // Rule 211: enumerator ::= identifier_token // - case 211: { action. consumeEnumerator(true); break; + case 211: { action. consumeEnumerator(false); break; } // - // Rule 212: type_qualifier ::= type_qualifier_token + // Rule 212: enumerator ::= identifier_token = constant_expression // - case 212: { action. consumeToken(); break; + case 212: { action. consumeEnumerator(true); break; } // - // Rule 216: function_specifier ::= inline + // Rule 213: type_qualifier ::= type_qualifier_token // - case 216: { action. consumeToken(); break; + case 213: { action. consumeToken(); break; } // - // Rule 218: declarator ::= <openscope-ast> pointer_seq direct_declarator + // Rule 217: function_specifier ::= inline // - case 218: { action. consumeDeclaratorWithPointer(true); break; + case 217: { action. consumeToken(); break; } // - // Rule 223: basic_direct_declarator ::= declarator_id_name + // Rule 219: declarator ::= <openscope-ast> pointer_seq direct_declarator // - case 223: { action. consumeDirectDeclaratorIdentifier(); break; + case 219: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 224: basic_direct_declarator ::= ( declarator ) + // Rule 224: basic_direct_declarator ::= declarator_id_name // - case 224: { action. consumeDirectDeclaratorBracketed(); break; + case 224: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 225: declarator_id_name ::= identifier + // Rule 225: basic_direct_declarator ::= ( declarator ) // - case 225: { action. consumeIdentifierName(); break; + case 225: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 226: declarator_id_name ::= identifier // - case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 226: { action. consumeIdentifierName(); break; } // - // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier // case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list ) + // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 230: function_direct_declarator ::= basic_direct_declarator ( ) + // Rule 230: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list ) // - case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 232: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator + // Rule 231: function_direct_declarator ::= basic_direct_declarator ( ) // - case 232: { action. consumeDeclaratorWithPointer(true); break; + case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list ) + // Rule 233: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator // - case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + case 233: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 235: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator + // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list ) // - case 235: { action. consumeDeclaratorWithPointer(true); break; + case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; } // - // Rule 236: identifier_list ::= identifier + // Rule 236: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator // - case 236: { action. consumeIdentifierKnR(); break; + case 236: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 237: identifier_list ::= identifier_list , identifier + // Rule 237: identifier_list ::= identifier // case 237: { action. consumeIdentifierKnR(); break; } // - // Rule 238: array_modifier ::= [ ] + // Rule 238: identifier_list ::= identifier_list , identifier // - case 238: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 238: { action. consumeIdentifierKnR(); break; } // - // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ] + // Rule 239: array_modifier ::= [ ] // - case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 239: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 240: array_modifier ::= [ assignment_expression ] + // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ] // - case 240: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ] + // Rule 241: array_modifier ::= [ assignment_expression ] // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 241: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 242: array_modifier ::= [ static assignment_expression ] + // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ] // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 243: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ] + // Rule 243: array_modifier ::= [ static assignment_expression ] // - case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ] + // Rule 244: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ] // case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 245: array_modifier ::= [ * ] + // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ] // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ] + // Rule 246: array_modifier ::= [ * ] // - case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 248: pointer_seq ::= pointer_hook * + // Rule 247: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ] // - case 248: { action. consumePointer(); break; + case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 249: pointer_seq ::= pointer_seq pointer_hook * + // Rule 249: pointer_seq ::= pointer_hook * pointer_hook // case 249: { action. consumePointer(); break; } // - // Rule 250: pointer_seq ::= pointer_hook * <openscope-ast> type_qualifier_list + // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook // - case 250: { action. consumePointerTypeQualifierList(); break; + case 250: { action. consumePointer(); break; } // - // Rule 251: pointer_seq ::= pointer_seq pointer_hook * <openscope-ast> type_qualifier_list + // Rule 251: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list // case 251: { action. consumePointerTypeQualifierList(); break; } // - // Rule 255: parameter_type_list ::= parameter_list + // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list // - case 255: { action. consumeEmpty(); break; + case 252: { action. consumePointerTypeQualifierList(); break; } // - // Rule 256: parameter_type_list ::= parameter_list , ... + // Rule 256: parameter_type_list ::= parameter_list // - case 256: { action. consumePlaceHolder(); break; + case 256: { action. consumeEmpty(); break; } // - // Rule 257: parameter_type_list ::= ... + // Rule 257: parameter_type_list ::= parameter_list , ... // case 257: { action. consumePlaceHolder(); break; } // - // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // Rule 258: parameter_type_list ::= ... // - case 260: { action. consumeParameterDeclaration(); break; + case 258: { action. consumePlaceHolder(); break; } // - // Rule 261: parameter_declaration ::= declaration_specifiers + // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 261: { action. consumeParameterDeclaration(); break; } // - // Rule 264: type_id ::= specifier_qualifier_list + // Rule 262: parameter_declaration ::= declaration_specifiers // - case 264: { action. consumeTypeId(false); break; + case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator + // Rule 265: type_id ::= specifier_qualifier_list // - case 265: { action. consumeTypeId(true); break; + case 265: { action. consumeTypeId(false); break; } // - // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq + // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator // - case 267: { action. consumeDeclaratorWithPointer(false); break; + case 266: { action. consumeTypeId(true); break; } // - // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator + // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq // case 268: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator // - case 272: { action. consumeDirectDeclaratorBracketed(); break; + case 269: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 273: array_direct_abstract_declarator ::= array_modifier + // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 273: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 274: array_direct_abstract_declarator ::= array_modifier // - case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 276: function_direct_abstract_declarator ::= ( ) + // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; - } + case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } // - // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // Rule 277: function_direct_abstract_declarator ::= ( ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; - } + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + } // - // Rule 278: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list ) + // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list ) + // Rule 279: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list ) // - case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 280: initializer ::= assignment_expression + // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list ) // - case 280: { action. consumeInitializer(); break; + case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list + // Rule 281: initializer ::= assignment_expression // - case 281: { action. consumeInitializerList(); break; + case 281: { action. consumeInitializer(); break; } // - // Rule 282: initializer ::= { <openscope-ast> } + // Rule 282: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 282: { action. consumeInitializerList(); break; } // - // Rule 283: start_initializer_list ::= $Empty + // Rule 283: initializer ::= { <openscope-ast> } // - case 283: { action. initializerListStart(); break; + case 283: { action. consumeInitializerList(); break; } // - // Rule 284: end_initializer_list ::= $Empty + // Rule 284: start_initializer_list ::= $Empty // - case 284: { action. initializerListEnd(); break; + case 284: { action. initializerListStart(); break; } // - // Rule 289: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 285: end_initializer_list ::= $Empty // - case 289: { action. consumeInitializerDesignated(); break; + case 285: { action. initializerListEnd(); break; } // - // Rule 293: designator_base ::= [ constant_expression ] + // Rule 290: designated_initializer ::= <openscope-ast> designation = initializer // - case 293: { action. consumeDesignatorArray(); break; + case 290: { action. consumeInitializerDesignated(); break; } // - // Rule 294: designator_base ::= . identifier_token + // Rule 294: designator_base ::= [ constant_expression ] // - case 294: { action. consumeDesignatorField(); break; + case 294: { action. consumeDesignatorArray(); break; } // - // Rule 295: designator ::= [ constant_expression ] + // Rule 295: designator_base ::= . identifier_token // - case 295: { action. consumeDesignatorArray(); break; + case 295: { action. consumeDesignatorField(); break; } // - // Rule 296: designator ::= . identifier_token + // Rule 296: designator ::= [ constant_expression ] // - case 296: { action. consumeDesignatorField(); break; + case 296: { action. consumeDesignatorArray(); break; } // - // Rule 297: translation_unit ::= external_declaration_list + // Rule 297: designator ::= . identifier_token // - case 297: { action. consumeTranslationUnit(); break; - } + case 297: { action. consumeDesignatorField(); break; + } // - // Rule 298: translation_unit ::= $Empty + // Rule 298: translation_unit ::= external_declaration_list // case 298: { action. consumeTranslationUnit(); break; - } + } // - // Rule 303: external_declaration ::= ; + // Rule 299: translation_unit ::= $Empty // - case 303: { action. consumeDeclarationEmpty(); break; + case 299: { action. consumeTranslationUnit(); break; } // - // Rule 304: external_declaration ::= ERROR_TOKEN + // Rule 304: external_declaration ::= ; // - case 304: { action. consumeDeclarationProblem(); break; + case 304: { action. consumeDeclarationEmpty(); break; } // - // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 305: external_declaration ::= ERROR_TOKEN // - case 307: { action. consumeFunctionDefinition(true); break; + case 305: { action. consumeDeclarationProblem(); break; } // - // Rule 308: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 308: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 308: { action. consumeFunctionDefinition(false); break; + case 308: { action. consumeFunctionDefinition(true); break; } // - // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 309: function_definition ::= <openscope-ast> function_declarator function_body // - case 309: { action. consumeFunctionDefinitionKnR(); break; + case 309: { action. consumeFunctionDefinition(false); break; } // - // Rule 310: function_body ::= { } + // Rule 310: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 310: { action. consumeStatementCompoundStatement(false); break; + case 310: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 311: function_body ::= { <openscope-ast> block_item_list } + // Rule 311: function_body ::= { } // - case 311: { action. consumeStatementCompoundStatement(true); break; + case 311: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 313: expression_parser_start ::= ERROR_TOKEN + // Rule 312: function_body ::= { <openscope-ast> block_item_list } // - case 313: { action. consumeEmpty(); break; + case 312: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 314: literal ::= MYTHREAD + // Rule 314: expression_parser_start ::= ERROR_TOKEN // - case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 314: { action. consumeEmpty(); break; } // - // Rule 315: literal ::= THREADS + // Rule 315: literal ::= MYTHREAD // - case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 316: literal ::= UPC_MAX_BLOCKSIZE + // Rule 316: literal ::= THREADS // - case 316: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 316: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 317: unary_expression ::= upc_localsizeof unary_expression + // Rule 317: literal ::= UPC_MAX_BLOCKSIZE // - case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 317: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 318: unary_expression ::= upc_localsizeof ( type_id ) + // Rule 318: unary_expression ::= upc_localsizeof unary_expression // - case 318: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 319: unary_expression ::= upc_blocksizeof unary_expression + // Rule 319: unary_expression ::= upc_localsizeof ( type_id ) // - case 319: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 319: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 320: unary_expression ::= upc_blocksizeof ( type_id ) + // Rule 320: unary_expression ::= upc_blocksizeof unary_expression // - case 320: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 320: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 321: unary_expression ::= upc_elemsizeof unary_expression + // Rule 321: unary_expression ::= upc_blocksizeof ( type_id ) // - case 321: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 321: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 322: unary_expression ::= upc_elemsizeof ( type_id ) + // Rule 322: unary_expression ::= upc_elemsizeof unary_expression // - case 322: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 322: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 326: shared_type_qualifier ::= shared + // Rule 323: unary_expression ::= upc_elemsizeof ( type_id ) // - case 326: { action. consumeToken(); break; + case 323: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 327: reference_type_qualifier ::= relaxed + // Rule 327: shared_type_qualifier ::= shared // case 327: { action. consumeToken(); break; } // - // Rule 328: reference_type_qualifier ::= strict + // Rule 328: reference_type_qualifier ::= relaxed // case 328: { action. consumeToken(); break; } // - // Rule 329: layout_qualifier ::= [ constant_expression ] + // Rule 329: reference_type_qualifier ::= strict + // + case 329: { action. consumeToken(); break; + } + + // + // Rule 330: layout_qualifier ::= [ constant_expression ] // - case 329: { action. consumeLayoutQualifier(true, false); break; + case 330: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 330: layout_qualifier ::= [ * ] + // Rule 331: layout_qualifier ::= [ * ] // - case 330: { action. consumeLayoutQualifier(false, true); break; + case 331: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 331: layout_qualifier ::= [ ] + // Rule 332: layout_qualifier ::= [ ] // - case 331: { action. consumeLayoutQualifier(false, false); break; + case 332: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 333: synchronization_statement ::= upc_notify expression ; + // Rule 334: synchronization_statement ::= upc_notify expression ; // - case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 334: synchronization_statement ::= upc_notify ; + // Rule 335: synchronization_statement ::= upc_notify ; // - case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 335: synchronization_statement ::= upc_wait expression ; + // Rule 336: synchronization_statement ::= upc_wait expression ; // - case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 336: synchronization_statement ::= upc_wait ; + // Rule 337: synchronization_statement ::= upc_wait ; // - case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 337: synchronization_statement ::= upc_barrier expression ; + // Rule 338: synchronization_statement ::= upc_barrier expression ; // - case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 338: synchronization_statement ::= upc_barrier ; + // Rule 339: synchronization_statement ::= upc_barrier ; // - case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 339: synchronization_statement ::= upc_fence ; + // Rule 340: synchronization_statement ::= upc_fence ; // - case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 340: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 340: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 341: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 341: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 342: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 342: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 343: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 344: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 343: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 344: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 344: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 345: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 344: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 345: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 345: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 346: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 345: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 346: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 346: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 347: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 346: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 347: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 347: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 348: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 347: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 348: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 349: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 349: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 349: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 350: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 350: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 350: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 351: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 351: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 352: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 351: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 352: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 352: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 353: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 352: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 353: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 353: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 354: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 353: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 354: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 354: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 355: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 354: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 355: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 355: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 356: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 355: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 356: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 357: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 357: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 358: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 358: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 359: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 360: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 359: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 360: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 360: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 361: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 360: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 361: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 361: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 362: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 361: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 362: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 362: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 363: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 362: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 363: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 363: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 364: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 363: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 364: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 365: affinity ::= continue + // Rule 366: affinity ::= continue // - case 365: { action. consumeToken(); break; + case 366: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java index 99c9378c88b..f5404e88217 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java @@ -35,85 +35,85 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 4,1,4,1,3,3,3,1,3,3, - 1,3,3,1,3,3,3,3,1,3, - 3,1,3,1,3,1,3,1,3,1, - 3,1,5,1,3,3,3,3,3,3, - 3,3,3,3,3,1,1,2,1,0, - 1,3,1,1,1,1,1,1,1,1, - 3,4,3,2,4,1,2,1,1,1, - 2,5,7,5,1,0,7,5,9,8, - 3,2,2,2,3,2,4,2,2,2, - 2,2,1,1,1,1,2,1,2,2, - 2,1,2,2,1,2,2,1,2,2, - 1,2,2,1,3,1,3,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,4,1,4,1,3,3,3,1,3, + 3,1,3,3,1,3,3,3,3,1, + 3,3,1,3,1,3,1,3,1,3, + 1,3,1,5,1,3,3,3,3,3, + 3,3,3,3,3,3,1,1,2,1, + 0,1,3,1,1,1,1,1,1,1, + 1,3,4,3,2,4,1,2,1,1, + 1,2,5,7,5,1,0,7,5,9, + 8,3,2,2,2,3,2,4,2,2, + 2,2,2,1,1,1,1,2,1,2, + 2,2,1,2,2,1,2,2,1,2, + 2,1,2,2,1,3,1,3,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6,8, - 0,0,1,1,3,3,3,0,1,0, - 1,2,4,2,1,1,1,3,1,1, - 2,3,7,8,0,1,0,1,3,1, - 3,1,1,1,1,1,1,3,1,1, - 1,1,1,3,1,2,2,1,5,3, - 1,3,5,1,3,1,3,2,4,3, - 5,4,6,6,3,5,1,2,3,4, - 5,0,1,2,1,3,1,1,3,2, - 1,1,1,1,2,1,2,3,1,1, - 1,3,1,2,2,2,3,4,5,1, - 7,3,0,0,1,1,3,3,4,1, - 1,2,3,2,3,2,1,0,1,2, - 1,1,1,1,1,2,4,3,6,2, - 4,1,1,1,1,1,2,4,2,4, - 2,4,1,1,2,1,1,1,3,3, - 2,1,3,2,3,2,3,2,2,11, - 10,10,9,10,9,9,8,10,9,9, - 8,9,8,8,7,10,9,9,8,9, - 8,8,7,1,1,-43,0,0,0,0, - 0,0,0,0,0,-82,0,0,0,0, - 0,0,0,0,0,0,-120,-88,0,0, - 0,0,-156,-2,-85,-86,0,0,0,0, - 0,-61,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-180, - 0,-4,0,0,0,-131,0,0,0,0, - 0,0,0,-5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-137,0,0, + 1,1,1,1,1,1,1,1,1,6, + 8,0,0,1,1,3,3,3,0,1, + 0,1,2,4,2,1,1,1,3,1, + 1,2,3,7,8,0,1,0,1,3, + 1,3,1,1,1,1,1,1,3,1, + 1,1,1,1,3,1,2,2,1,5, + 3,1,3,5,1,3,1,3,2,4, + 3,5,4,6,6,3,5,1,3,4, + 5,6,0,1,2,1,3,1,1,3, + 2,1,1,1,1,2,1,2,3,1, + 1,1,3,1,2,2,2,3,4,5, + 1,7,3,0,0,1,1,3,3,4, + 1,1,2,3,2,3,2,1,0,1, + 2,1,1,1,1,1,2,4,3,6, + 2,4,1,1,1,1,1,2,4,2, + 4,2,4,1,1,2,1,1,1,3, + 3,2,1,3,2,3,2,3,2,2, + 11,10,10,9,10,9,9,8,10,9, + 9,8,9,8,8,7,10,9,9,8, + 9,8,8,7,1,1,-43,0,0,0, + 0,0,0,0,0,0,-40,0,0,0, + 0,0,0,0,0,0,0,-131,0,0, + 0,0,0,-156,-2,-85,-229,0,-86,0, + 0,0,0,-61,0,0,0,0,0,0, + 0,0,0,-4,0,0,0,0,0,0, + 0,0,-17,0,0,-19,0,0,-20,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-203,0, + 0,0,0,0,0,0,0,0,-137,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-203, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-58,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -126,0,0,0,0,0,0,0,0,-129, - 0,0,-132,0,0,-36,0,-17,-95,0, - 0,-19,0,-90,-211,0,-133,0,-20,0, - 0,-143,0,-176,0,0,0,0,0,0, + -82,0,0,0,-58,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-146,0, + 0,-126,0,0,0,0,0,0,0,0, + 0,-21,0,-36,0,0,-37,0,-88,-92, + -95,0,-22,0,-23,-212,0,-90,-132,0, + 0,-155,0,0,-176,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-133,0,-24,-146,0, -123,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-89,0,-21,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-150,0,0, + 0,0,0,0,0,0,-5,0,0,0, + 0,0,0,0,0,0,-134,0,0,0, 0,0,0,0,0,0,-9,0,0,0, - 0,0,0,0,0,-134,0,-155,0,0, - 0,0,0,0,0,0,-151,0,0,0, - 0,0,0,0,0,0,-10,0,0,0, 0,0,0,0,0,0,0,0,0,0, -83,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-199,0,0,0,0,0,0, - 0,0,0,-40,0,0,0,0,0,0, + 0,-25,0,-199,0,0,0,0,0,0, + 0,0,0,-230,0,0,0,0,0,0, 0,0,0,0,-3,0,0,0,0,0, + 0,0,0,0,-168,0,0,0,0,0, + 0,0,0,0,0,-135,0,-166,-26,-59, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-135,0,-166,0,-59, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-80,0,-130,0,0,0, + 0,0,0,0,0,0,-130,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-22,0,-142, + 0,0,0,0,0,0,0,-27,0,-142, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -23,0,0,-30,0,0,0,0,0,0, + 0,0,0,-30,0,0,0,0,0,0, 0,0,0,-41,0,0,0,0,0,0, 0,0,0,0,-63,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -138,101 +138,102 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP 0,0,0,-78,0,0,0,0,0,0, 0,0,0,0,-73,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-161,0,0,0,0, + 0,0,0,0,0,-136,0,0,0,0, 0,0,0,0,0,-79,0,0,0,0, - 0,0,0,0,0,0,-162,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-179,0,0, - 0,0,0,0,0,0,0,-24,0,0, - 0,0,0,0,0,0,0,-202,0,0, - 0,0,0,0,0,0,0,-92,0,0, - 0,0,0,0,0,0,0,-178,0,-201, - 0,-25,-196,0,-44,0,0,0,0,0, - 0,0,0,-210,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-218,0,0,0,0,0,0, - 0,0,0,-93,0,0,0,0,0,0, - 0,0,0,-37,0,0,0,-26,-208,0, - -45,0,0,0,0,0,0,0,0,-226, + 0,0,0,0,0,0,-161,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-136, - 0,0,0,0,0,0,0,0,0,-217, - 0,0,0,0,0,0,0,0,0,-97, - 0,0,0,-27,-28,0,-55,0,0,0, + 0,0,0,0,0,0,0,-162,0,0, + 0,0,0,0,0,0,0,-127,0,0, + 0,0,0,0,0,0,0,0,-179,0, 0,0,0,0,0,0,0,0,0,0, - -139,-29,0,0,0,0,-194,-152,-169,-145, - 0,0,0,0,0,-213,0,0,0,0, - -56,0,0,0,0,0,0,0,0,0, - -154,0,0,0,0,0,0,0,0,-91, + 0,0,0,0,0,0,0,0,-202,0, + 0,0,0,0,0,0,0,0,-93,0, + 0,0,0,0,0,0,0,0,-178,0, + -28,-196,-201,0,0,-44,0,0,0,0, + 0,0,0,0,-211,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-124,-141,0,0,0,0, - 0,0,0,0,0,0,-228,-98,-165,0, - 0,0,0,0,0,0,0,0,0,-62, + 0,0,0,0,-220,0,0,0,0,0, + 0,0,0,0,-80,0,0,0,0,0, + 0,0,0,0,-120,0,0,-29,-98,-180, + 0,-99,-100,-209,0,-121,0,-97,0,-151, + -228,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-190,0,-6,0, + 0,0,0,0,0,0,-194,-145,-129,-189, + 0,0,0,0,-144,-124,0,0,0,0, + -101,-222,0,0,0,0,0,0,-102,0, + 0,0,0,0,0,0,0,0,0,-139, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-207,-38,0,0,0,0,0, - -157,-99,-100,0,0,0,-127,-101,-144,0, - 0,-39,0,-167,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-225,0, - -159,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-57,0,0,0,0, - 0,0,0,0,0,-170,0,0,-150,0, + 0,0,-141,-103,0,0,0,0,0,0, + 0,0,0,0,0,0,-165,-104,0,0, + 0,0,0,-105,0,0,0,-62,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-173,-175,-149,0,0,0,0, - 0,-102,-103,0,0,-104,0,-49,0,0, - 0,0,0,0,0,0,0,0,0,-50, - 0,0,0,0,0,0,0,0,0,-181, - 0,0,0,0,-51,0,0,0,0,0, - 0,0,0,0,-87,0,-52,0,0,0, - 0,0,0,0,0,0,-105,0,-11,0, + 0,0,0,0,-190,0,-6,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-106,-174,0,-107,-192,0,0,0,0, - -53,0,0,0,0,0,0,0,0,0, - -220,-12,0,0,0,0,0,0,0,0, - 0,0,-54,0,0,0,0,0,0,0, - 0,0,0,-94,-84,-13,0,0,0,0, - 0,0,0,-209,0,-108,-109,-110,0,0, + 0,-106,-38,0,0,0,0,0,-152,-107, + -154,-208,0,0,0,-159,-108,0,0,-193, 0,0,0,0,0,0,0,0,0,0, - -111,0,0,0,-96,0,0,0,0,-164, - 0,0,0,0,0,0,0,-227,0,0, - 0,0,0,0,0,-184,-112,0,0,0, - 0,0,-163,-113,-114,0,0,0,0,0, - -14,0,0,0,0,0,0,0,0,0, - 0,0,-42,0,0,0,0,0,0,0, - 0,0,0,-46,0,0,0,0,0,0, - 0,-47,0,0,0,0,0,0,0,-115, - -116,0,-48,0,0,0,0,0,0,0, - -81,0,0,0,0,0,0,0,-128,0, - 0,0,0,-117,-118,-182,-205,-119,0,-188, - -191,-122,-138,0,-189,0,0,-195,0,0, - 0,-147,-185,-204,0,0,-7,0,0,0, - 0,0,0,0,0,0,0,-8,0,0, + 0,0,0,0,0,-55,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-153,-158,-168,-221,0,-171,0,0, - -216,0,0,-186,0,-177,0,0,-197,0, - -15,0,0,0,0,0,0,-16,0,0, - 0,0,0,0,-18,0,-193,0,-187,-31, - 0,0,-214,-198,0,-32,0,0,-219,0, - -33,0,-200,0,0,0,0,0,-34,0, + 0,0,0,0,0,0,-109,-167,-110,-111, + -175,-181,0,-56,0,0,0,0,0,0, + 0,0,0,-170,0,0,-57,0,0,0, + 0,0,0,0,0,0,0,0,0,-227, + -157,0,0,-149,0,0,0,0,0,0, + 0,-192,-210,-112,0,-49,0,0,0,0, + 0,0,0,0,0,0,0,-53,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-121,0,0,0,0,0,0,0,0, - 0,0,-35,-212,0,0,0,-224,0,0, - 0,-125,0,-222,0,0,0,-223,0,-140, - 0,-172,0,0,0,0,0,0,0,0, + 0,0,0,0,-113,-114,-115,-116,0,0, + 0,-50,0,0,0,0,0,0,0,0, + 0,-117,0,-51,0,0,0,0,0,0, + 0,0,0,-118,0,-87,-7,0,0,0, + 0,0,0,0,0,-52,0,0,0,0, + 0,0,0,0,0,-160,0,-173,0,0, + 0,0,-119,-122,-138,0,-147,0,0,0, + 0,0,-54,0,0,0,0,0,0,0, + 0,0,-89,-8,0,0,0,0,0,0, + 0,-163,0,-45,0,0,0,0,0,0, + 0,0,-84,-91,-182,0,0,0,0,-94, + -223,-183,0,0,0,0,0,0,0,-153, + -169,0,-219,0,-218,-158,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-96,0,0,0,0,-143,0,-171,0, + 0,0,0,-10,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-177,0, + 0,0,0,0,0,0,0,0,-164,0, + 0,0,0,0,0,0,-11,0,0,0, + 0,0,0,0,0,-197,-198,-224,-174,0, + 0,-12,0,0,0,0,0,0,0,-13, + 0,0,0,0,0,0,0,-14,0,0, + 0,0,0,0,0,-42,-46,0,0,0, + 0,0,0,0,0,0,-47,0,0,0, + 0,0,0,0,-48,0,0,0,0,0, + 0,0,-221,-128,0,-81,0,0,0,0, + 0,0,0,0,-184,-226,-188,-191,0,0, + -185,0,0,0,0,0,0,0,0,0, + 0,-1,-186,0,0,0,0,0,0,0, + 0,0,0,0,0,-187,0,-15,0,0, + 0,0,0,0,0,0,0,-18,-214,0, + 0,0,0,0,-200,-31,0,0,0,0, + -216,0,-213,0,0,0,0,-16,0,0, + 0,0,0,0,0,0,0,-225,0,0, + -32,0,0,0,0,-217,0,0,-33,0, + 0,0,0,0,0,-34,-195,0,0,0, + 0,0,0,-35,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-125,0, + 0,0,0,0,0,0,0,0,-140,-172, 0,0,0,0,0,0,-206,0,0,0, - 0,-215,0,-148,0,0,0,0,-160,0, - 0,-1,-183,0,-60,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-148,0,0, + 0,0,0,0,0,-204,0,0,-207,0, + -39,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-205,0,0,0,-215, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-60,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0 + 0,0,0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -242,205 +243,207 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface BaseAction { public final static char baseAction[] = { - 89,10,22,22,21,21,37,37,72,72, - 1,1,2,2,2,2,3,3,3,4, - 5,5,5,5,5,5,5,5,54,54, - 73,6,6,6,6,6,6,6,6,6, - 6,6,7,7,8,8,8,8,9,9, - 9,11,11,11,12,12,12,12,12,13, - 13,13,14,14,15,15,16,16,17,17, - 18,18,19,19,20,20,20,20,20,20, - 20,20,20,20,20,20,104,30,28,90, - 90,75,75,46,105,105,105,105,105,105, - 105,106,106,106,107,107,112,112,113,113, - 108,108,109,109,109,115,115,110,110,110, - 110,111,111,111,111,111,114,114,27,27, - 27,27,27,32,32,32,81,81,76,76, - 76,76,77,77,77,78,78,78,79,79, - 79,80,80,80,116,116,117,117,118,33, - 35,35,35,35,35,55,57,57,57,57, - 57,57,57,57,57,57,57,57,66,63, - 63,91,92,67,67,64,64,64,68,82, - 82,83,83,69,69,69,31,93,93,84, - 85,85,85,65,65,94,86,86,87,87, - 70,70,23,24,24,24,34,51,51,38, - 38,38,38,41,41,43,39,39,40,44, - 44,119,119,42,120,120,95,95,29,29, - 29,29,29,29,29,29,29,88,52,52, - 52,52,36,59,59,58,58,58,60,60, - 53,53,96,96,45,45,61,61,61,47, - 47,47,48,49,49,49,50,50,50,50, - 56,56,56,62,97,74,74,74,74,71, - 98,99,99,100,100,101,101,121,121,122, - 122,123,123,123,123,125,125,124,124,124, - 126,126,89,89,2,2,2,6,6,6, - 6,6,6,23,23,25,25,26,26,102, - 102,102,105,127,127,127,127,127,127,127, - 110,110,110,110,110,110,110,110,110,110, - 110,110,110,110,110,110,110,110,110,110, - 110,110,110,110,128,128,1,1318,16,20, - 17,528,1252,44,539,532,63,758,598,1088, - 781,1178,1122,1235,1234,74,91,17,952,134, - 212,323,324,919,175,916,382,448,136,133, - 135,159,606,19,16,20,17,528,42,44, - 539,532,1702,758,598,1088,781,1178,1122,1624, - 936,138,200,165,274,275,380,627,1812,142, - 145,148,151,534,631,19,16,20,17,528, - 321,422,1495,596,1290,1564,1595,1230,531,19, - 16,20,17,528,1252,44,539,532,393,758, - 598,1088,781,1178,1122,1235,1234,74,280,581, - 19,16,20,17,528,1252,44,539,532,393, - 758,598,1088,781,1178,1122,1235,1234,74,280, - 325,1756,420,291,606,19,16,20,17,528, - 42,44,539,532,285,758,598,1088,781,1578, - 1744,427,19,16,20,17,528,42,35,286, - 144,292,618,190,186,285,190,30,790,840, - 1874,1744,373,245,115,190,1759,190,185,892, - 286,277,819,1266,347,19,16,20,17,528, - 1252,44,539,532,393,758,598,1088,781,1178, - 1122,1235,1234,74,280,254,212,323,324,225, - 178,756,19,16,20,17,528,1252,44,539, - 532,1840,758,598,1088,781,1178,1122,1235,1234, - 74,1306,134,212,323,324,40,716,245,24, - 287,136,133,135,159,209,1744,606,19,16, - 20,17,528,42,39,288,786,1743,953,134, - 212,323,324,616,138,426,165,134,144,133, - 135,159,142,145,148,151,534,606,19,16, - 20,17,528,42,38,1495,596,1290,1564,1595, - 1230,281,19,16,20,17,528,1252,44,539, - 532,1832,758,598,1088,781,1178,1122,1235,1234, - 74,1305,1445,238,556,19,16,20,17,528, - 1252,44,539,532,88,758,598,1088,781,1178, - 1122,1235,1234,74,280,606,19,16,20,17, - 528,1252,44,539,532,1681,758,598,1088,781, - 1178,1122,1235,1234,74,91,190,187,988,1748, - 606,19,16,20,17,528,42,44,539,532, - 289,758,598,1088,1591,794,1744,452,19,16, - 20,17,528,42,44,539,532,227,758,598, - 1088,781,1178,1122,1235,1234,93,21,62,331, - 314,19,16,20,17,528,1252,44,539,532, - 422,758,598,1088,781,1178,1122,1235,1234,74, - 1623,53,239,1446,606,19,16,20,17,528, - 1252,44,539,532,88,758,598,1088,781,1178, - 1122,1235,1234,74,92,606,19,16,20,17, - 528,1252,44,539,532,18,758,598,1088,781, - 1178,1122,1235,1234,74,85,606,19,16,20, - 17,528,1252,44,539,532,88,758,598,1088, - 781,1178,1122,1235,1234,74,84,606,19,16, - 20,17,528,1252,44,539,532,1670,758,598, - 1088,781,1178,1122,1235,1234,74,83,606,19, - 16,20,17,528,1252,44,539,532,88,758, - 598,1088,781,1178,1122,1235,1234,74,82,606, - 19,16,20,17,528,1252,44,539,532,1671, - 758,598,1088,781,1178,1122,1235,1234,74,81, - 606,19,16,20,17,528,1252,44,539,532, - 88,758,598,1088,781,1178,1122,1235,1234,74, - 80,606,19,16,20,17,528,1252,44,539, - 532,1694,758,598,1088,781,1178,1122,1235,1234, - 74,79,606,19,16,20,17,528,1252,44, - 539,532,88,758,598,1088,781,1178,1122,1235, - 1234,74,78,606,19,16,20,17,528,1252, - 44,539,532,1695,758,598,1088,781,1178,1122, - 1235,1234,74,77,606,19,16,20,17,528, - 1252,44,539,532,88,758,598,1088,781,1178, - 1122,1235,1234,74,76,606,19,16,20,17, - 528,1252,44,539,532,1698,758,598,1088,781, - 1178,1122,1235,1234,74,75,606,19,16,20, - 17,528,1252,44,539,532,88,758,598,1088, - 781,1178,1122,1235,1234,74,1713,606,19,16, - 20,17,528,1252,44,539,532,22,758,598, - 1088,781,1178,1122,1235,1234,74,1754,606,19, - 16,20,17,528,42,44,539,532,8,758, - 598,1088,781,1178,1122,1235,1234,93,606,19, - 16,20,17,528,42,44,539,532,246,758, - 598,1088,781,1178,1122,1235,1234,93,190,294, - 190,296,135,996,1793,606,19,16,20,17, - 528,42,44,1372,606,19,16,20,17,528, - 42,44,539,532,1824,758,598,1088,781,1178, - 1122,1235,1234,93,606,19,16,20,17,528, - 42,44,539,532,795,758,598,1088,781,1178, - 1122,1235,1234,93,190,30,523,1574,763,996, - 211,606,19,16,20,17,528,42,44,1373, - 606,19,16,20,17,528,42,44,539,532, - 201,758,598,1088,781,1178,1122,1235,1234,93, - 606,19,16,20,17,528,42,44,539,532, - 918,758,598,1088,781,1178,1122,1235,1234,73, - 225,178,537,1834,59,340,202,606,19,16, - 20,17,528,42,44,539,532,23,758,598, - 1525,803,307,134,212,323,324,113,17,966, - 854,1879,137,133,135,159,953,569,1842,569, - 1745,606,19,16,20,17,528,42,44,539, - 532,17,758,1576,196,139,1260,165,1777,273, - 96,1523,193,143,146,149,152,534,217,718, - 220,1384,222,223,228,794,794,266,396,395, - 271,262,259,134,212,323,324,171,781,881, - 1838,263,147,133,135,159,192,240,242,1700, - 606,19,16,20,17,528,42,44,539,532, - 276,758,598,1088,781,1178,1625,893,273,656, - 19,16,20,17,528,319,260,217,718,220, - 1384,222,223,228,909,32,266,396,395,271, - 1779,17,899,901,1746,695,273,88,174,88, - 1377,1480,17,1703,926,218,718,220,1384,222, - 223,228,695,89,268,396,395,271,272,909, - 278,834,217,718,220,1384,222,223,228,1746, - 87,1883,735,226,281,1789,606,19,16,20, - 17,528,42,44,539,532,88,758,1577,427, - 19,16,20,17,528,42,35,217,718,220, - 1384,222,223,228,17,256,794,279,197,199, - 1789,330,865,874,1708,1046,887,1220,606,19, - 16,20,17,528,42,44,539,532,329,1378, - 606,19,16,20,17,528,42,44,539,532, - 256,1452,27,198,199,606,19,16,20,17, - 528,42,44,539,532,375,1453,606,19,16, - 20,17,528,42,44,539,532,927,1456,606, - 19,16,20,17,528,42,37,282,134,212, - 323,324,934,948,1759,889,256,141,133,135, - 159,606,19,16,20,17,528,42,44,539, - 1507,968,606,19,16,20,17,528,42,36, - 140,1746,165,606,19,16,20,17,528,42, - 44,539,1522,179,152,884,606,19,16,20, - 17,528,42,35,256,1689,277,772,937,217, - 718,220,1384,222,223,228,276,134,212,323, - 324,377,1779,208,273,207,150,133,135,159, - 427,19,16,20,17,528,42,35,973,1123, - 1784,203,266,396,395,271,842,306,134,212, - 323,324,246,794,938,784,1377,153,133,135, - 159,606,19,16,20,17,528,42,34,254, - 212,323,324,898,1703,241,218,718,220,1384, - 222,223,228,376,606,19,16,20,17,528, - 42,47,606,19,16,20,17,528,42,46, - 622,647,273,606,19,16,20,17,528,42, - 45,503,19,16,20,17,528,42,43,913, - 266,396,395,271,672,697,17,529,722,569, - 913,17,985,986,265,144,469,569,948,1759, - 569,1867,941,794,850,1697,1260,681,19,16, - 20,17,528,317,1260,1702,230,1260,706,19, - 16,20,17,528,40,243,1702,254,212,323, - 324,1812,258,976,987,63,63,1379,994,1712, - 258,256,1347,258,794,1783,494,1712,1379,804, - 1712,731,19,16,20,17,528,33,731,19, - 16,20,17,528,32,17,244,958,208,88, - 17,1702,1702,88,998,366,17,1364,180,330, - 366,17,1872,794,1179,1784,366,1347,1608,17, - 224,366,196,87,229,794,1643,196,87,366, - 794,1643,904,196,87,293,794,1643,196,87, - 684,794,1643,17,794,836,196,87,80,794, - 1643,878,797,366,256,1986,920,1986,256,1986, - 797,273,57,1986,962,1986,295,1986,1703,194, - 196,87,569,794,1643,253,212,323,324,268, - 396,395,271,253,212,323,324,169,1004,196, - 1986,204,907,1777,942,1317,1986,569,1986,797, - 1986,1986,478,797,569,17,1986,1986,1986,1986, - 1986,542,695,233,196,695,1986,1986,1777,542, - 1986,1260,253,212,323,324,253,212,323,324, - 87,191,312,87,1986,1617,1986,1986,1986,1986, - 760,1986,1986,1986,1526,1257,1986,258,1036,1986, - 1986,1986,1426,1986,1712,1986,191,1986,1616,1986, - 1986,1986,1714,1986,1986,1986,1986,1986,1986,1751, - 1257,1986,1986,1986,1986,1986,1986,1986,1986,1986, - 1986,1986,1986,1986,1986,1986,1986,1986,1986,1986, - 1986,394,1986,0,326,737,0,19,178,0, - 1,2211,0,1,2222,0 + 89,10,104,22,22,21,21,37,37,72, + 72,1,1,2,2,2,2,3,3,3, + 4,5,5,5,5,5,5,5,5,54, + 54,73,6,6,6,6,6,6,6,6, + 6,6,6,7,7,8,8,8,8,9, + 9,9,11,11,11,12,12,12,12,12, + 13,13,13,14,14,15,15,16,16,17, + 17,18,18,19,19,20,20,20,20,20, + 20,20,20,20,20,20,20,105,31,28, + 90,90,75,75,46,106,106,106,106,106, + 106,106,107,107,107,108,108,113,113,114, + 114,109,109,110,110,110,116,116,111,111, + 111,111,112,112,112,112,112,115,115,27, + 27,27,27,27,33,33,33,81,81,76, + 76,76,76,77,77,77,78,78,78,79, + 79,79,80,80,80,117,117,118,118,119, + 34,36,36,36,36,36,55,57,57,57, + 57,57,57,57,57,57,57,57,57,66, + 63,63,91,92,67,67,64,64,64,68, + 82,82,83,83,69,69,69,32,93,93, + 84,85,85,85,65,65,94,86,86,87, + 87,70,70,23,24,24,24,35,51,51, + 38,38,38,38,41,41,43,39,39,40, + 44,44,120,120,42,121,121,95,95,29, + 29,29,29,29,29,29,29,29,88,52, + 52,52,52,30,59,59,58,58,58,60, + 60,53,53,96,96,45,45,61,61,61, + 47,47,47,48,49,49,49,50,50,50, + 50,56,56,56,62,97,74,74,74,74, + 71,98,99,99,100,100,101,101,122,122, + 123,123,124,124,124,124,126,126,125,125, + 125,127,127,89,89,2,2,2,6,6, + 6,6,6,6,23,23,25,25,26,26, + 102,102,102,106,128,128,128,128,128,128, + 128,111,111,111,111,111,111,111,111,111, + 111,111,111,111,111,111,111,111,111,111, + 111,111,111,111,111,129,129,1,1199,17, + 21,18,423,1198,45,429,426,88,533,522, + 568,535,719,672,1141,758,75,92,380,1210, + 135,213,324,325,919,175,916,973,1726,382, + 137,134,136,160,606,20,17,21,18,423, + 43,45,429,426,200,533,522,568,535,719, + 672,1475,139,790,166,275,373,1535,276,892, + 143,146,149,152,538,219,718,221,1398,223, + 224,229,414,1506,1553,1574,1580,1612,1208,531, + 20,17,21,18,423,1198,45,429,426,394, + 533,522,568,535,719,672,1141,758,75,281, + 581,20,17,21,18,423,1198,45,429,426, + 394,533,522,568,535,719,672,1141,758,75, + 281,63,1639,1200,292,606,20,17,21,18, + 423,43,45,429,426,286,533,522,568,535, + 1399,1596,427,20,17,21,18,423,43,36, + 287,1534,245,542,190,31,286,190,31,952, + 246,840,1596,62,246,53,190,1666,115,190, + 187,287,953,1206,1779,347,20,17,21,18, + 423,1198,45,429,426,394,533,522,568,535, + 719,672,1141,758,75,281,190,186,8,225, + 179,756,20,17,21,18,423,1198,45,429, + 426,1859,533,522,568,535,719,672,1141,758, + 75,1283,135,213,324,325,1401,25,539,716, + 24,288,137,134,136,160,210,1596,427,20, + 17,21,18,423,43,36,289,631,20,17, + 21,18,423,322,139,627,166,786,1590,388, + 331,326,143,146,149,152,538,606,20,17, + 21,18,423,43,40,1506,1553,1574,1580,1612, + 1208,281,20,17,21,18,423,1198,45,429, + 426,1849,533,522,568,535,719,672,1141,758, + 75,1246,135,239,556,20,17,21,18,423, + 1198,45,429,426,171,533,522,568,535,719, + 672,1141,758,75,281,606,20,17,21,18, + 423,1198,45,429,426,63,533,522,568,535, + 719,672,1141,758,75,92,190,188,988,763, + 606,20,17,21,18,423,43,45,429,426, + 290,533,522,568,1400,1534,1596,452,20,17, + 21,18,423,43,45,429,426,228,533,522, + 568,535,719,672,1141,758,94,1325,59,332, + 314,20,17,21,18,423,1198,45,429,426, + 414,533,522,568,535,719,672,1141,758,75, + 1562,282,240,1434,606,20,17,21,18,423, + 1198,45,429,426,88,533,522,568,535,719, + 672,1141,758,75,93,606,20,17,21,18, + 423,1198,45,429,426,19,533,522,568,535, + 719,672,1141,758,75,86,606,20,17,21, + 18,423,1198,45,429,426,88,533,522,568, + 535,719,672,1141,758,75,85,606,20,17, + 21,18,423,1198,45,429,426,1477,533,522, + 568,535,719,672,1141,758,75,84,606,20, + 17,21,18,423,1198,45,429,426,88,533, + 522,568,535,719,672,1141,758,75,83,606, + 20,17,21,18,423,1198,45,429,426,1478, + 533,522,568,535,719,672,1141,758,75,82, + 606,20,17,21,18,423,1198,45,429,426, + 88,533,522,568,535,719,672,1141,758,75, + 81,606,20,17,21,18,423,1198,45,429, + 426,1492,533,522,568,535,719,672,1141,758, + 75,80,606,20,17,21,18,423,1198,45, + 429,426,88,533,522,568,535,719,672,1141, + 758,75,79,606,20,17,21,18,423,1198, + 45,429,426,1504,533,522,568,535,719,672, + 1141,758,75,78,606,20,17,21,18,423, + 1198,45,429,426,88,533,522,568,535,719, + 672,1141,758,75,77,606,20,17,21,18, + 423,1198,45,429,426,1533,533,522,568,535, + 719,672,1141,758,75,76,606,20,17,21, + 18,423,1198,45,429,426,88,533,522,568, + 535,719,672,1141,758,75,74,606,20,17, + 21,18,423,1198,45,429,426,23,533,522, + 568,535,719,672,1141,758,75,1741,606,20, + 17,21,18,423,1198,45,429,426,88,533, + 522,568,535,719,672,1141,758,75,1753,606, + 20,17,21,18,423,43,45,429,426,273, + 533,522,568,535,719,672,1141,758,94,606, + 20,17,21,18,423,43,45,429,426,795, + 533,522,568,535,719,672,1141,758,94,190, + 295,340,996,190,297,1785,606,20,17,21, + 18,423,43,45,1202,606,20,17,21,18, + 423,43,45,429,426,1793,533,522,568,535, + 719,672,1141,758,94,606,20,17,21,18, + 423,43,45,429,426,794,533,522,568,535, + 719,672,1141,758,94,17,1443,566,307,781, + 936,212,899,901,996,449,904,22,225,179, + 134,606,20,17,21,18,423,43,45,429, + 426,202,533,522,568,535,719,672,1141,758, + 94,135,213,324,325,274,1535,113,854,144, + 144,138,134,136,160,88,794,569,705,1878, + 1867,174,968,269,399,396,272,203,1668,865, + 278,231,1581,140,197,166,279,274,241,1360, + 63,144,147,150,153,538,218,718,221,1398, + 223,224,229,794,874,267,399,396,272,263, + 218,718,221,1398,223,224,229,881,887,264, + 1526,293,1619,1766,927,243,193,1737,606,20, + 17,21,18,423,43,45,429,426,277,533, + 522,568,535,719,1476,893,274,656,20,17, + 21,18,423,320,261,218,718,221,1398,223, + 224,229,934,32,267,399,396,272,1766,17, + 889,17,909,695,274,1535,63,277,1088,1860, + 958,1669,1581,219,718,221,1398,223,224,229, + 1352,90,269,399,396,272,606,20,17,21, + 18,423,43,45,429,426,1582,533,522,1350, + 218,718,221,1398,223,224,229,772,926,937, + 377,256,256,1723,606,20,17,21,18,423, + 43,45,429,426,88,533,1357,606,20,17, + 21,18,423,43,45,429,426,227,533,1397, + 909,17,195,1046,794,280,198,200,28,283, + 1581,1402,256,256,306,1593,606,20,17,21, + 18,423,43,45,429,426,330,1251,606,20, + 17,21,18,423,43,45,429,1304,218,718, + 221,1398,223,224,229,938,784,622,647,180, + 204,1723,606,20,17,21,18,423,43,45, + 429,426,672,1259,606,20,17,21,18,423, + 43,45,429,426,697,1284,375,681,20,17, + 21,18,423,318,199,200,606,20,17,21, + 18,423,43,45,429,426,819,1298,17,135, + 213,324,325,722,985,986,1735,941,1827,142, + 134,136,160,606,20,17,21,18,423,43, + 45,429,1342,40,706,20,17,21,18,423, + 41,141,794,166,606,20,17,21,18,423, + 43,45,1203,884,96,17,135,213,324,325, + 152,63,834,1724,242,470,145,134,136,160, + 976,966,1886,918,277,256,987,135,213,324, + 325,569,274,135,213,324,325,148,134,136, + 160,1534,207,151,134,136,160,803,1238,994, + 267,399,396,272,606,20,17,21,18,423, + 43,39,181,397,1088,135,213,324,325,494, + 255,213,324,325,260,154,134,136,160,427, + 20,17,21,18,423,43,36,606,20,17, + 21,18,423,43,38,194,804,998,256,948, + 1666,247,606,20,17,21,18,423,43,37, + 606,20,17,21,18,423,43,36,606,20, + 17,21,18,423,43,35,898,606,20,17, + 21,18,423,43,48,205,491,606,20,17, + 21,18,423,43,47,606,20,17,21,18, + 423,43,46,330,913,274,503,20,17,21, + 18,423,43,44,569,797,80,913,17,209, + 2003,794,2003,267,399,396,272,569,1889,2003, + 2003,1238,478,794,1534,1142,1667,266,254,213, + 324,325,695,244,1238,2003,88,1534,731,20, + 17,21,18,423,34,245,1206,259,17,953, + 88,2003,1245,313,1537,794,17,225,367,1325, + 259,88,2003,794,1926,1245,367,1537,731,20, + 17,21,18,423,33,197,88,294,256,794, + 1696,17,230,197,88,296,907,794,1696,17, + 2003,367,2003,377,2003,2003,17,948,1666,367, + 2003,836,2003,1808,17,2003,367,234,197,88, + 2003,395,794,1696,367,684,197,88,2003,797, + 794,1696,2003,197,88,2003,878,794,1696,797, + 57,197,88,2003,920,794,1696,529,2003,2003, + 569,962,254,213,324,325,2003,569,942,1004, + 2003,2003,254,213,324,325,797,197,569,169, + 2003,17,1360,2003,1238,2003,2003,209,2003,569, + 2003,695,2003,2003,2003,1238,2003,2003,1617,254, + 213,324,325,1204,1667,2003,197,2003,1617,88, + 259,1360,1185,2003,2003,1791,842,1537,2003,192, + 850,259,2003,2003,2003,2003,1414,760,1537,2003, + 2003,2003,1442,1237,2003,1930,2003,1057,2003,255, + 213,324,325,255,213,324,325,17,192,2003, + 2003,2003,1816,2003,2003,2003,2003,695,2003,2003, + 2003,1595,1237,2003,2003,2003,2003,2003,2003,2003, + 2003,2003,2003,2003,2003,88,2003,2003,1444,2003, + 0,327,737,0,20,179,0,1,2229,0, + 1,2240,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -568,110 +571,110 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface TermAction { public final static char termAction[] = {0, - 1986,1996,1775,1997,1566,1542,1509,62,1631,1768, - 1761,1728,1998,1999,2000,2001,1,637,607,2300, - 2301,2302,1717,1349,434,2199,2200,2201,2313,388, - 2314,1,2148,2149,2147,2202,2150,2146,90,129, - 2153,2158,2157,2155,2156,2154,2159,2160,2152,2161, - 2162,2163,64,529,1164,1108,1986,1,72,1, - 1237,54,252,190,2199,2200,2201,2313,388,2314, - 90,2148,2149,2147,2202,2150,2146,1416,1271,1986, - 2223,1,1,1,1,1,1,1986,1,1, - 1,1,1,1,1991,130,1,1,1,1, - 1,1,1,1,1,1,1,1,190,1, - 1,1,1986,1,181,1,2181,1531,1553,189, - 2199,2200,2201,2313,388,2314,1990,2148,2149,2147, - 2202,2150,2146,182,68,402,1885,1,1,1, + 2003,2014,1778,2015,1680,1672,1657,63,1688,1798, + 1768,1554,2016,2017,2018,2019,1,1624,637,2318, + 2319,2320,1507,1327,617,2217,2218,2219,2331,529, + 2332,1,2166,2167,2165,2220,2168,2164,91,130, + 2171,2176,2175,2173,2174,2172,2177,2178,2170,2179, + 2180,2181,65,531,1129,530,2003,1,73,1, + 1376,55,253,191,2217,2218,2219,2331,529,2332, + 91,2166,2167,2165,2220,2168,2164,1417,1404,2003, + 2241,1,1,1,1,1,1,2003,1,1, + 1,1,1,1,2009,131,1,1,1,1, + 1,1,1,1,1,1,1,1,191,1, + 1,1,2003,1,182,1,2199,1458,1543,190, + 2217,2218,2219,2331,529,2332,2008,2166,2167,2165, + 2220,2168,2164,183,69,404,1957,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1991,131,1,1,1,1,1,1,1,1, - 1,1,1,1,189,1,1,1,1986,1, - 284,1,2181,58,1986,190,2199,2200,2201,2313, - 388,2314,1990,2148,2149,2147,2202,2150,2146,1986, - 1996,1986,1997,1,1,1,1,1,1,88, - 1,1,1,1,1,1,132,494,1,1, + 2009,132,1,1,1,1,1,1,1,1, + 1,1,1,1,190,1,1,1,2003,1, + 285,1,2199,59,2003,191,2217,2218,2219,2331, + 529,2332,2008,2166,2167,2165,2220,2168,2164,2003, + 2014,2003,2015,1,1,1,1,1,1,89, + 1,1,1,1,1,1,133,495,1,1, 1,1,1,1,1,1,1,1,1,1, - 190,1,1,1,1986,1996,1986,1997,2181,1531, - 1553,2199,2200,2201,2313,388,2314,784,2148,2149, - 2147,2202,2150,2146,59,184,3346,1986,3346,2199, - 2200,2201,2313,388,2314,1986,2148,2149,2147,2202, - 2150,2146,1993,1973,2153,2158,2157,2155,2156,2154, - 2159,2160,2152,2161,2162,2163,61,529,1164,1108, - 1,1996,1775,1997,511,1542,1509,1989,1631,1768, - 1761,1728,1998,1999,2000,2001,1986,637,607,2300, - 2301,2302,1717,1349,434,1986,42,1992,1497,1485, - 1470,1458,571,1986,1996,1775,1997,1600,1542,1509, - 1989,1631,1768,1761,1728,1998,1999,2000,2001,200, - 637,607,2300,2301,2302,1717,1349,434,1988,70, - 1497,1485,1470,1458,1986,1057,1,1996,1775,1997, - 1566,1542,1509,28,1631,1768,1761,1728,1998,1999, - 2000,2001,3322,637,607,2300,2301,2302,1717,1349, - 434,1988,51,1210,128,1015,65,1181,1125,1986, - 1996,269,1997,520,1237,994,973,952,931,910, - 868,889,847,826,805,1258,1986,1190,28,2199, - 2200,2201,2313,388,2314,1986,2148,2149,2147,2202, - 2150,2146,651,1330,2153,2158,2157,2155,2156,2154, - 2159,2160,2152,2161,2162,2163,1986,1996,1775,1997, - 1566,1542,1509,1989,1631,1768,1761,1728,1998,1999, - 2000,2001,1986,637,607,2300,2301,2302,1717,1349, - 434,1986,1996,1775,1997,1429,1542,1509,1989,1631, - 1768,1761,1728,1998,1999,2000,2001,1986,637,607, - 2300,2301,2302,1717,1349,434,1986,1986,1,1, - 1,1,1,1,1988,1,1,1,1,1, - 1,1,1,1986,1,1,1,1,1,1, - 1,1,1986,1996,1775,1997,1566,1542,1509,1988, - 1631,1768,1761,1728,1998,1999,2000,2001,387,637, - 607,2300,2301,2302,1717,1349,434,1986,1,1983, - 1,1996,1775,1997,1566,1542,1509,2299,1631,1768, - 1761,1728,1998,1999,2000,2001,3322,637,607,2300, - 2301,2302,1717,1349,434,1986,1996,1775,1997,1566, - 1542,1509,674,1631,1768,1761,1728,1998,1999,2000, - 2001,3322,637,607,2300,2301,2302,1717,1349,434, - 1,1996,1775,1997,1566,1542,1509,2243,1631,1768, - 1761,1728,1998,1999,2000,2001,3322,637,607,2300, - 2301,2302,1717,1349,434,1986,1996,1775,1997,1566, - 1542,1509,1986,1631,1768,1761,1728,1998,1999,2000, - 2001,322,637,607,2300,2301,2302,1717,1349,434, - 1986,1996,1780,1997,1566,1542,1509,387,1631,1768, - 1761,1728,1998,1999,2000,2001,320,637,607,2300, - 2301,2302,1717,1349,434,1986,1996,1786,1997,1566, - 1542,1509,387,1631,1768,1761,1728,1998,1999,2000, - 2001,318,637,607,2300,2301,2302,1717,1349,434, - 1986,1996,1791,1997,1566,1542,1509,387,1631,1768, - 1761,1728,1998,1999,2000,2001,41,637,607,2300, - 2301,2302,1717,1349,434,1986,1996,1799,1997,1566, - 1542,1509,387,1631,1768,1761,1728,1998,1999,2000, - 2001,1986,637,607,2300,2301,2302,1717,1349,434, - 1986,1996,1823,1997,1566,1542,1509,387,1631,1768, - 1761,1728,1998,1999,2000,2001,1986,637,607,2300, - 2301,2302,1717,1349,434,1,1996,1775,1997,1566, - 1542,1509,66,1631,1768,1761,1728,1998,1999,2000, - 2001,60,637,607,2300,2301,2302,1717,1349,434, - 19,1986,1977,69,1977,1986,1996,1977,1997,31, - 1986,1365,1986,1986,183,3350,1986,3350,2011,2012, - 1989,1281,248,210,1986,178,178,178,178,178, - 178,1977,178,178,178,178,178,178,247,1977, - 1382,2199,2200,2201,2313,388,2314,1,1,1, - 1,1,1,249,720,1497,1485,1470,1458,205, - 3351,250,3351,2199,2200,2201,2313,388,2314,251, - 1174,1988,1986,261,2211,1319,494,1,1,1, - 1,1,1,1,57,526,2199,2200,2201,2313, - 388,2314,1134,56,2199,2200,2201,2313,388,2314, - 1,1980,1319,1,651,1565,55,1991,63,1986, - 1991,48,267,2211,1319,1673,252,264,50,1565, - 49,1,1673,267,1673,1565,1986,252,1,2211, - 1541,651,1,1991,651,270,252,1986,1986,1990, - 1531,1553,1990,651,1995,221,53,1705,651,1531, - 1553,1181,1125,52,651,290,67,71,1181,1125, - 255,1,1531,1553,1828,1990,651,207,1996,1078, - 1997,326,29,1662,1654,1399,651,1,1416,1271, - 1662,1654,1662,1654,1995,1,1098,1,2211,1541, - 283,2243,252,2211,1541,1986,1154,1371,1259,1118, - 206,535,1974,535,1986,1986,1986,219,1251,1401, - 544,1444,1994,1986,188,29,1120,206,188,188, - 2243,1986,1696,1986,1986,1986,1986,1986,720,1701, - 184,1330,1986,1986,183,205,1986,1986,651,1986, - 1986,1986,1371,1986,2242,1986,1986,1986,1986,1986, - 1986,1986,1994,2014,1986,3332 + 191,1,1,1,2003,2014,2003,2015,2199,1458, + 1543,2217,2218,2219,2331,529,2332,784,2166,2167, + 2165,2220,2168,2164,60,185,3364,2003,3364,2217, + 2218,2219,2331,529,2332,2003,2166,2167,2165,2220, + 2168,2164,2011,1990,2171,2176,2175,2173,2174,2172, + 2177,2178,2170,2179,2180,2181,62,531,1129,530, + 1,2014,1778,2015,512,1672,1657,2007,1688,1798, + 1768,1554,2016,2017,2018,2019,2003,1624,637,2318, + 2319,2320,1507,1327,617,2003,43,2010,1516,1494, + 1482,1446,571,2003,2014,1778,2015,1649,1672,1657, + 2007,1688,1798,1768,1554,2016,2017,2018,2019,201, + 1624,637,2318,2319,2320,1507,1327,617,2006,71, + 1516,1494,1482,1446,2003,1078,1,2014,1778,2015, + 1680,1672,1657,29,1688,1798,1768,1554,2016,2017, + 2018,2019,3340,1624,637,2318,2319,2320,1507,1327, + 617,2006,52,1036,129,1015,66,1564,1146,2003, + 2014,270,2015,1239,1376,994,973,952,931,910, + 868,889,847,826,805,1349,2003,1211,29,2217, + 2218,2219,2331,529,2332,2003,2166,2167,2165,2220, + 2168,2164,651,1308,2171,2176,2175,2173,2174,2172, + 2177,2178,2170,2179,2180,2181,2003,2014,1778,2015, + 1680,1672,1657,2007,1688,1798,1768,1554,2016,2017, + 2018,2019,2003,1624,637,2318,2319,2320,1507,1327, + 617,2003,2014,1778,2015,608,1672,1657,2007,1688, + 1798,1768,1554,2016,2017,2018,2019,2003,1624,637, + 2318,2319,2320,1507,1327,617,2003,2003,1,1, + 1,1,1,1,2006,1,1,1,1,1, + 1,1,1,2003,1,1,1,1,1,1, + 1,1,2003,2014,1778,2015,1680,1672,1657,2006, + 1688,1798,1768,1554,2016,2017,2018,2019,1195,1624, + 637,2318,2319,2320,1507,1327,617,2003,1,2000, + 1,2014,1778,2015,1680,1672,1657,2317,1688,1798, + 1768,1554,2016,2017,2018,2019,3340,1624,637,2318, + 2319,2320,1507,1327,617,2003,2014,1778,2015,1680, + 1672,1657,674,1688,1798,1768,1554,2016,2017,2018, + 2019,3340,1624,637,2318,2319,2320,1507,1327,617, + 1,2014,1778,2015,1680,1672,1657,2261,1688,1798, + 1768,1554,2016,2017,2018,2019,3340,1624,637,2318, + 2319,2320,1507,1327,617,2003,2014,1778,2015,1680, + 1672,1657,2003,1688,1798,1768,1554,2016,2017,2018, + 2019,323,1624,637,2318,2319,2320,1507,1327,617, + 2003,2014,1786,2015,1680,1672,1657,1195,1688,1798, + 1768,1554,2016,2017,2018,2019,321,1624,637,2318, + 2319,2320,1507,1327,617,2003,2014,1811,2015,1680, + 1672,1657,1195,1688,1798,1768,1554,2016,2017,2018, + 2019,319,1624,637,2318,2319,2320,1507,1327,617, + 2003,2014,1819,2015,1680,1672,1657,1195,1688,1798, + 1768,1554,2016,2017,2018,2019,42,1624,637,2318, + 2319,2320,1507,1327,617,2003,2014,1826,2015,1680, + 1672,1657,1195,1688,1798,1768,1554,2016,2017,2018, + 2019,2003,1624,637,2318,2319,2320,1507,1327,617, + 2003,2014,1834,2015,1680,1672,1657,1195,1688,1798, + 1768,1554,2016,2017,2018,2019,2003,1624,637,2318, + 2319,2320,1507,1327,617,1,2014,1778,2015,1680, + 1672,1657,67,1688,1798,1768,1554,2016,2017,2018, + 2019,61,1624,637,2318,2319,2320,1507,1327,617, + 20,2003,1994,70,1994,2003,2014,1994,2015,32, + 2003,1343,2003,2003,184,3368,2003,3368,2029,2030, + 2007,1351,248,211,2003,179,179,179,179,179, + 179,1994,179,179,179,179,179,179,249,1994, + 1891,2217,2218,2219,2331,529,2332,2217,2218,2219, + 2331,529,2332,250,720,1516,1494,1482,1446,206, + 3369,251,3369,1,1,1,1,1,1,252, + 527,2006,2003,262,2229,1297,495,1,1,1, + 1,1,1,1,58,524,2217,2218,2219,2331, + 529,2332,1155,57,2217,2218,2219,2331,529,2332, + 1,1997,1297,1,651,1573,56,2009,64,2003, + 2009,49,268,2229,1297,1715,253,265,51,1573, + 50,1,1715,268,1715,1573,2003,253,1,2229, + 1252,651,1,2009,651,271,253,2003,2003,2008, + 1458,1543,2008,651,2013,222,54,1240,651,1458, + 1543,1564,1146,53,651,291,68,72,1564,1146, + 256,1,1458,1543,1736,2008,651,208,2014,1099, + 2015,327,30,1707,1697,1430,651,1,1417,1404, + 1707,1697,1707,1697,2013,1,1119,1,2229,1252, + 284,2261,253,2229,1252,2003,1175,1431,1591,1139, + 207,536,1991,536,2003,2003,2003,220,1270,1356, + 545,1528,2012,2003,189,30,1143,207,189,189, + 2261,2003,1575,2003,2003,2003,2003,2003,720,1738, + 185,1308,2003,2003,184,206,2003,2003,651,2003, + 2003,2003,1431,2003,2260,2003,2003,2003,2003,2003, + 2003,2003,2012,2032,2003,3350 }; }; public final static char termAction[] = TermAction.termAction; @@ -679,29 +682,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Asb { public final static char asb[] = {0, - 473,58,146,102,146,146,146,146,146,146, - 146,146,146,146,146,146,64,8,404,401, - 408,406,414,412,416,415,418,417,71,146, - 8,8,8,8,8,386,386,286,146,283, - 283,347,8,146,146,146,146,146,146,146, - 146,146,146,146,146,146,146,146,146,146, - 146,146,146,146,146,146,146,146,146,146, - 146,146,146,283,283,283,283,283,283,106, - 113,351,137,353,281,280,319,1,331,133, - 331,133,133,331,133,331,28,234,401,401, - 406,406,406,406,404,404,412,408,408,415, - 414,317,417,416,389,389,389,389,135,111, - 347,351,140,106,51,170,283,429,356,170, - 133,386,386,133,386,146,111,351,339,51, - 106,169,137,283,345,28,282,358,106,170, - 135,195,135,228,230,61,225,135,339,51, - 146,146,106,170,353,312,311,351,358,283, - 135,195,228,228,225,109,464,386,146,60, - 225,111,51,339,106,106,283,429,356,345, - 195,225,466,195,228,230,461,230,113,106, - 386,146,111,339,358,195,468,230,225,146, - 386,106,230,283,282,225,425,146,424,165, - 351,225,225,387,468,146,165,230 + 473,1,142,41,142,142,142,142,142,142, + 142,142,142,142,142,142,3,55,23,20, + 27,25,33,31,35,34,37,36,9,142, + 55,55,55,55,55,433,433,247,142,240, + 240,394,55,142,142,142,142,142,142,142, + 142,142,142,142,142,142,142,142,142,142, + 142,142,142,142,142,142,142,142,142,142, + 142,142,142,240,240,240,240,240,240,45, + 109,398,133,400,238,237,366,48,378,129, + 378,129,129,378,129,378,75,191,20,20, + 25,25,25,25,23,23,31,27,27,34, + 33,324,36,35,326,326,326,326,131,107, + 394,398,136,45,98,166,240,441,403,166, + 129,433,433,129,433,142,107,398,386,98, + 45,165,133,240,392,75,239,405,45,166, + 131,272,131,305,307,244,302,131,386,386, + 142,142,45,166,400,319,318,398,405,240, + 131,272,305,305,302,105,439,433,142,243, + 302,107,386,98,45,45,240,441,403,392, + 272,302,311,272,305,307,436,307,109,45, + 433,142,107,98,386,405,272,313,307,302, + 142,433,45,307,386,240,239,302,362,142, + 361,161,398,302,302,434,313,142,161,307 }; }; public final static char asb[] = Asb.asb; @@ -709,54 +712,54 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Asr { public final static byte asr[] = {0, - 7,68,38,58,39,75,31,11,12,13, - 14,15,2,9,10,8,4,5,6,17, - 18,19,20,21,22,23,24,1,3,53, - 54,55,48,40,45,43,44,42,41,46, - 47,49,50,51,37,34,32,33,36,35, - 25,26,27,29,28,30,0,89,0,69, - 31,61,0,75,31,2,61,76,9,10, - 8,4,5,6,62,63,56,57,64,65, - 66,67,70,71,72,73,74,77,78,52, - 69,79,80,81,82,83,85,84,86,87, - 88,68,39,89,38,58,7,0,7,52, - 31,61,9,10,8,4,5,6,17,18, - 11,22,23,24,2,12,13,14,15,19, - 20,21,1,3,16,0,58,7,32,25, - 26,27,28,29,30,12,13,14,15,19, - 20,21,3,9,10,8,5,6,17,18, - 11,22,23,24,4,2,1,0,32,58, - 7,9,10,8,4,5,6,17,18,11, - 22,23,24,2,1,3,12,13,14,15, - 19,20,21,0,33,40,25,41,53,34, + 89,0,31,2,61,76,9,10,69,79, + 80,81,82,83,85,84,86,87,88,4, + 62,63,5,6,57,56,64,65,66,67, + 70,71,8,72,73,74,52,75,77,78, + 68,39,89,38,58,7,0,7,68,38, + 58,39,75,31,11,12,13,14,15,2, + 9,10,8,4,5,6,17,18,19,20, + 21,22,23,24,1,3,53,54,55,48, + 40,45,43,44,42,41,46,47,49,50, + 51,37,34,32,33,36,35,25,26,27, + 29,28,30,0,7,52,31,61,9,10, + 8,4,5,6,17,18,11,22,23,24, + 2,12,13,14,15,19,20,21,1,3, + 16,0,58,7,32,25,26,27,28,29, + 30,12,13,14,15,19,20,21,3,9, + 10,8,5,6,17,18,11,22,23,24, + 4,2,1,0,32,58,7,9,10,8, + 4,5,6,17,18,11,22,23,24,2, + 1,3,12,13,14,15,19,20,21,0, + 26,32,37,27,36,35,34,25,33,28, + 29,30,61,76,9,10,8,5,6,62, + 63,56,57,64,65,66,67,70,71,72, + 73,74,77,78,69,79,80,81,82,83, + 84,85,86,87,88,4,2,31,38,39, + 7,0,69,31,61,0,7,39,11,12, + 13,14,15,1,3,2,9,10,8,4, + 5,6,17,18,19,20,21,22,23,24, + 0,33,40,25,41,53,34,42,35,43, + 44,36,26,45,46,32,54,37,55,47, + 48,27,49,50,51,1,3,28,29,30, + 60,7,52,0,1,3,7,52,38,0, + 75,7,4,1,2,68,0,2,7,38, + 39,75,31,68,0,8,4,5,6,62, + 63,56,57,64,65,66,67,70,71,72, + 73,74,77,78,69,79,80,81,82,83, + 84,85,86,87,88,58,39,52,89,16, + 68,75,7,38,0,48,40,45,43,44, + 42,41,46,47,49,50,51,68,75,37, + 34,32,33,36,35,25,26,27,28,29, + 30,38,1,7,39,2,31,4,0,4, + 2,31,39,7,33,40,25,41,53,34, 42,35,43,44,36,26,45,46,32,54, - 37,55,47,48,27,49,50,51,1,3, - 28,29,30,60,7,52,0,1,3,7, - 52,38,0,26,32,37,27,36,35,34, - 25,33,28,29,30,61,76,9,10,8, - 5,6,62,63,56,57,64,65,66,67, - 70,71,72,73,74,77,78,69,79,80, - 81,82,83,84,85,86,87,88,4,2, - 31,38,39,7,0,7,39,11,12,13, - 14,15,1,3,2,9,10,8,4,5, - 6,17,18,19,20,21,22,23,24,0, - 2,7,38,39,75,31,68,0,48,40, - 45,43,44,42,41,46,47,49,50,51, - 68,75,37,34,32,33,36,35,25,26, - 27,28,29,30,38,1,7,39,2,31, - 4,0,4,2,31,39,7,33,40,25, - 41,53,34,42,35,43,44,36,26,45, - 46,32,54,37,55,47,48,27,49,50, - 51,28,29,30,59,3,1,0,69,79, - 80,81,82,83,84,85,86,87,88,16, - 4,62,63,5,6,57,56,64,65,66, - 67,70,71,8,72,73,74,58,39,52, - 89,77,78,68,75,7,38,0,4,33, - 40,25,41,53,34,42,35,43,44,36, - 26,45,46,32,54,37,55,47,48,27, - 49,50,51,1,3,28,29,30,59,0, - 7,38,52,69,0,75,7,4,1,2, - 68,0,11,12,13,14,15,1,3,2, + 37,55,47,48,27,49,50,51,28,29, + 30,59,3,1,0,7,38,52,69,0, + 4,33,40,25,41,53,34,42,35,43, + 44,36,26,45,46,32,54,37,55,47, + 48,27,49,50,51,1,3,28,29,30, + 59,0,11,12,13,14,15,1,3,2, 9,10,8,4,5,6,17,18,19,20, 21,22,23,24,60,0 }; @@ -766,29 +769,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Nasb { public final static byte nasb[] = {0, - 119,44,35,44,35,35,35,35,35,35, - 35,35,35,35,35,35,44,102,44,44, - 44,44,44,44,44,44,44,44,44,35, - 102,102,102,102,102,23,23,83,103,21, - 21,89,1,35,35,35,35,35,35,35, - 35,35,35,35,35,35,35,35,35,103, - 35,35,35,35,35,35,35,35,35,35, - 35,35,35,21,21,21,21,21,21,54, - 35,9,52,88,16,16,61,12,62,28, - 62,26,26,62,25,62,56,44,44,44, - 44,44,44,44,44,44,44,44,44,44, - 44,44,44,44,44,44,44,44,44,75, - 109,44,45,54,113,53,21,93,20,53, - 7,7,7,7,7,35,33,44,75,113, - 54,53,30,21,71,37,44,95,54,53, - 50,75,44,75,48,14,75,44,75,113, - 35,35,54,53,70,16,16,9,95,21, - 44,115,75,7,86,32,44,7,35,18, - 86,75,113,30,54,54,21,93,20,77, - 75,86,106,64,7,48,44,44,34,54, - 7,35,33,30,98,115,73,48,86,35, - 7,54,48,21,21,86,107,35,44,73, - 9,86,86,44,73,35,79,68 + 105,39,30,39,30,30,30,30,30,30, + 30,30,30,30,30,30,39,108,39,39, + 39,39,39,39,39,39,39,39,39,30, + 108,108,108,108,108,16,16,85,109,70, + 70,94,1,30,30,30,30,30,30,30, + 30,30,30,30,30,30,30,30,30,109, + 30,30,30,30,30,30,30,30,30,30, + 30,30,30,70,70,70,70,70,70,45, + 30,13,43,93,11,11,60,18,61,23, + 61,21,21,61,20,61,55,39,39,39, + 39,39,39,39,39,39,39,39,39,39, + 39,39,39,39,39,39,39,39,39,77, + 51,39,40,45,112,44,70,100,69,44, + 7,7,7,7,7,30,28,39,83,112, + 45,44,98,70,73,32,39,102,45,44, + 63,77,39,77,25,9,77,39,83,77, + 30,30,45,44,72,11,11,13,102,70, + 39,114,77,7,91,27,39,7,30,49, + 91,77,77,112,45,45,70,100,69,79, + 77,91,88,65,7,25,39,39,29,45, + 7,30,28,112,98,118,114,75,25,91, + 30,7,45,25,98,70,70,91,89,30, + 39,75,13,91,91,39,75,30,81,47 }; }; public final static byte nasb[] = Nasb.nasb; @@ -796,18 +799,18 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Nasr { public final static char nasr[] = {0, - 81,79,78,67,77,76,1,0,36,52, - 0,102,0,99,0,29,0,101,0,10, - 21,0,73,0,94,68,0,91,0,23, - 0,71,10,62,5,0,81,80,79,78, - 67,77,76,0,5,10,0,54,0,92, - 0,10,5,22,0,67,63,64,65,66, - 55,32,0,10,31,69,0,97,0,21, - 49,48,41,39,10,0,49,48,41,39, - 36,0,10,90,0,37,0,21,48,49, - 10,0,36,52,10,27,0,95,10,27, - 0,31,10,30,0,10,72,0,49,48, - 36,0,59,0,83,10,31,0,10,89, + 81,79,78,67,77,76,1,0,99,0, + 29,0,30,52,0,73,0,102,0,94, + 68,0,91,0,54,0,71,10,62,5, + 0,81,80,79,78,67,77,76,0,5, + 10,0,10,5,22,0,97,0,101,0, + 49,48,30,0,67,63,64,65,66,55, + 33,0,92,0,10,32,69,0,10,21, + 0,21,49,48,41,39,10,0,49,48, + 41,39,30,0,10,90,0,10,72,0, + 37,0,21,48,49,10,0,23,0,30, + 52,10,27,0,10,89,0,32,10,31, + 0,59,0,83,10,32,0,95,10,27, 0 }; }; @@ -835,18 +838,18 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 114,0,0,0,116,120,121,122,123,0, - 124,125,126,127,128,129,130,131,132,133, - 111,110,143,0,0,0,136,0,164,115, - 155,142,0,0,0,0,112,160,162,0, - 163,0,0,0,118,135,173,174,175,0, - 151,161,170,0,145,150,0,165,168,169, - 172,0,146,147,148,149,152,0,154,159, - 176,113,117,119,134,137,138,139,140,141, - 144,0,153,157,0,0,158,167,109,0, - 0,0,156,0,166,171,0,177,178,0, - 179,180,0,0,0,0,0,0,0,0, + 124,125,126,127,128,129,130,131,0,132, + 111,110,142,0,0,0,135,0,163,0, + 115,154,141,0,0,0,112,159,161,0, + 162,0,0,0,118,134,172,173,174,0, + 150,160,169,0,144,149,0,164,167,168, + 171,0,145,146,147,148,151,0,153,158, + 175,113,117,119,133,136,137,138,139,140, + 143,0,152,156,0,0,157,166,109,0, + 0,0,155,0,165,170,0,176,177,0, + 178,179,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -878,10 +881,10 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopeLhs { public final static char scopeLhs[] = { - 65,63,5,65,29,29,63,56,109,50, + 65,63,5,65,29,29,63,56,110,50, 29,44,29,6,6,6,50,29,29,69, 6,5,5,29,29,19,29,102,101,100, - 48,61,29,41,51,3,71,69,7,110, + 48,61,29,41,51,3,71,69,7,111, 5,69,80,79,78,77,76,44,42,44 }; }; @@ -916,28 +919,28 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public final static char scopeRhs[] = {0, 153,31,0,110,0,152,2,24,0,111, 0,152,2,23,0,152,2,22,0,205, - 117,0,31,150,0,161,181,117,16,169, + 117,0,31,149,0,161,181,117,16,169, 0,112,0,0,165,117,2,155,0,165, - 117,2,0,168,2,0,159,117,0,173, + 117,2,0,168,2,0,159,117,0,172, 0,195,117,31,0,9,110,0,127,32, - 195,117,31,0,69,133,110,0,127,195, - 117,32,31,0,195,117,32,31,0,133, + 195,117,31,0,69,132,110,0,127,195, + 117,32,31,0,195,117,32,31,0,132, 110,0,127,32,31,0,127,195,117,31, - 0,127,31,0,148,0,2,0,166,111, + 0,127,31,0,148,0,2,0,165,111, 0,2,111,0,165,117,2,148,0,2, - 0,165,111,0,158,2,0,160,0,161, + 0,164,111,0,158,2,0,159,0,161, 193,117,16,108,201,53,0,112,0,161, - 193,117,16,201,53,0,138,0,113,0, - 200,117,138,0,117,138,0,156,113,0, + 193,117,16,201,53,0,139,0,113,0, + 200,117,139,0,117,139,0,155,113,0, 189,117,16,199,108,198,174,0,189,117, - 16,198,174,0,188,0,149,0,148,0, - 147,0,146,0,145,0,212,94,0,77, - 2,115,111,113,0,212,128,137,2,98, - 0,53,0,0,137,78,125,0,29,132, + 16,198,174,0,188,0,148,0,147,0, + 146,0,145,0,144,0,213,94,0,77, + 2,115,111,113,0,213,128,138,2,98, + 0,53,0,0,138,78,125,0,29,132, 0,152,2,0,111,121,0,152,2,11, 0,161,181,117,16,128,152,2,0,111, 3,0,119,0,112,0,197,2,112,0, - 137,31,112,0,137,2,0 + 138,31,112,0,138,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -945,16 +948,16 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopeState { public final static char scopeState[] = {0, - 420,0,1867,1257,1842,0,393,0,1608,1347, - 1399,1541,1364,1319,1260,0,388,0,1230,569, - 366,0,1384,718,396,395,1347,1812,1319,1260, - 1565,1643,0,1768,1761,1728,1717,1349,434,1600, - 1429,511,1681,1330,402,720,494,1416,1271,1237, - 1553,1531,1497,1485,1470,1458,1673,1662,1654,1181, - 1125,1631,1566,1542,1509,637,607,1190,1154,1134, - 1098,1078,1057,1036,760,1210,737,571,651,1015, + 1200,0,1889,1237,1860,0,394,0,397,1325, + 1430,1252,1352,1297,1238,0,529,0,1208,569, + 367,0,1398,718,399,396,1325,1206,1297,1238, + 1573,1696,0,1798,1768,1554,1507,1327,617,1649, + 608,512,1726,1308,404,720,495,1417,1404,1376, + 1543,1458,1516,1494,1482,1446,1715,1707,1697,1564, + 1146,1688,1680,1672,1657,1624,637,1211,1175,1155, + 1119,1099,1078,1057,760,1036,737,571,651,1015, 994,973,952,931,910,889,868,847,826,805, - 366,784,695,674,469,544,448,0 + 367,784,695,674,470,545,449,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -966,25 +969,25 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP 6,5,4,8,10,9,112,2,116,115, 119,118,121,120,123,122,125,124,113,38, 2,2,2,2,2,76,61,2,31,152, - 137,138,117,6,5,63,62,4,67,66, + 138,139,117,6,5,63,62,4,67,66, 65,64,56,57,8,71,70,73,72,78, 77,74,88,87,86,84,85,83,82,81, - 80,79,69,152,152,152,152,152,197,137, + 80,79,69,152,152,152,152,152,197,138, 128,117,31,2,156,155,183,29,184,174, 185,55,54,186,53,187,188,108,115,115, 118,118,118,118,116,116,120,119,119,122, - 121,137,124,123,128,128,128,128,128,16, - 159,143,32,127,117,4,168,117,2,31, - 198,175,175,201,175,68,117,143,4,117, + 121,138,124,123,128,128,128,128,128,16, + 159,137,32,127,117,4,168,117,2,31, + 198,175,175,201,175,68,117,137,4,117, 127,195,166,165,134,117,167,117,153,4, - 108,16,108,16,181,117,16,169,4,117, + 108,16,108,16,181,117,16,169,4,137, 195,32,127,4,2,146,148,117,38,165, 199,117,16,117,161,38,205,61,31,206, - 117,16,117,166,127,127,158,117,2,159, - 16,189,138,190,117,193,108,194,69,153, - 61,31,117,166,117,117,117,193,161,69, - 38,153,181,165,202,189,200,68,158,2, - 117,161,161,38,38,68,159,144 + 117,16,137,117,127,127,158,117,2,159, + 16,189,139,190,117,193,108,194,69,153, + 61,31,117,117,166,117,117,117,193,161, + 69,38,153,181,166,165,202,189,200,68, + 158,2,117,161,161,38,38,68,159,144 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1119,12 +1122,11 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_list_actual", "constant_expression", @@ -1195,20 +1197,20 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 228, + NUM_STATES = 230, NT_OFFSET = 107, - LA_STATE_OFFSET = 2351, + LA_STATE_OFFSET = 2369, MAX_LA = 2, - NUM_RULES = 365, - NUM_NONTERMINALS = 128, - NUM_SYMBOLS = 235, + NUM_RULES = 366, + NUM_NONTERMINALS = 129, + NUM_SYMBOLS = 236, SEGMENT_SIZE = 8192, - START_STATE = 1882, + START_STATE = 1752, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, - ACCEPT_ACTION = 1973, - ERROR_ACTION = 1986; + ACCEPT_ACTION = 1990, + ERROR_ACTION = 2003; public final static boolean BACKTRACK = true; diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java index 9e62301e284..bb6cfaea97b 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java @@ -17,13 +17,20 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +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.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; 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.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; @@ -37,7 +44,9 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -public class UPCNoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class UPCNoCastExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new UPCNoCastExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -175,7 +184,11 @@ public class UPCNoCastExpressionParser extends PrsStream implements RuleAction , private UPCParserAction action; private IASTCompletionNode compNode; -public UPCNoCastExpressionParser() { // constructor + +public UPCNoCastExpressionParser(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) { @@ -194,10 +207,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 @@ -240,12 +252,12 @@ public void setTokens(List<IToken> tokens) { addToken(new Token(null, 0, 0, UPCNoCastExpressionParsersym.TK_EOF_TOKEN)); } -public UPCNoCastExpressionParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(UPCNoCastExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); +public UPCNoCastExpressionParser(ITokenStream stream, Set<IParser.Options> options) { // constructor for creating secondary parser + initActions(options); + tokenMap = new TokenMap(UPCNoCastExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -258,1287 +270,1293 @@ public UPCNoCastExpressionParser(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 ::= basic_direct_abstract_declarator ( ) + // Rule 276: function_direct_abstract_declarator ::= ( ) // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; - } + case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + } // - // Rule 277: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list ) + // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list ) + // Rule 278: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 279: initializer ::= assignment_expression + // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list ) // - case 279: { action. consumeInitializer(); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 280: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list + // Rule 280: initializer ::= assignment_expression // - case 280: { action. consumeInitializerList(); break; + case 280: { action. consumeInitializer(); break; } // - // Rule 281: initializer ::= { <openscope-ast> } + // Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 281: { action. consumeInitializerList(); break; } // - // Rule 282: start_initializer_list ::= $Empty + // Rule 282: initializer ::= { <openscope-ast> } // - case 282: { action. initializerListStart(); break; + case 282: { action. consumeInitializerList(); break; } // - // Rule 283: end_initializer_list ::= $Empty + // Rule 283: start_initializer_list ::= $Empty // - case 283: { action. initializerListEnd(); break; + case 283: { action. initializerListStart(); break; } // - // Rule 288: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 284: end_initializer_list ::= $Empty // - case 288: { action. consumeInitializerDesignated(); break; + case 284: { action. initializerListEnd(); break; } // - // Rule 292: designator_base ::= [ constant_expression ] + // Rule 289: designated_initializer ::= <openscope-ast> designation = initializer // - case 292: { action. consumeDesignatorArray(); break; + case 289: { action. consumeInitializerDesignated(); break; } // - // Rule 293: designator_base ::= . identifier_token + // Rule 293: designator_base ::= [ constant_expression ] // - case 293: { action. consumeDesignatorField(); break; + case 293: { action. consumeDesignatorArray(); break; } // - // Rule 294: designator ::= [ constant_expression ] + // Rule 294: designator_base ::= . identifier_token // - case 294: { action. consumeDesignatorArray(); break; + case 294: { action. consumeDesignatorField(); break; } // - // Rule 295: designator ::= . identifier_token + // Rule 295: designator ::= [ constant_expression ] // - case 295: { action. consumeDesignatorField(); break; + case 295: { action. consumeDesignatorArray(); break; } // - // Rule 296: translation_unit ::= external_declaration_list + // Rule 296: designator ::= . identifier_token // - case 296: { action. consumeTranslationUnit(); break; - } + case 296: { action. consumeDesignatorField(); break; + } // - // Rule 297: translation_unit ::= $Empty + // Rule 297: translation_unit ::= external_declaration_list // case 297: { action. consumeTranslationUnit(); break; - } + } // - // Rule 302: external_declaration ::= ; + // Rule 298: translation_unit ::= $Empty // - case 302: { action. consumeDeclarationEmpty(); break; + case 298: { action. consumeTranslationUnit(); break; } // - // Rule 303: external_declaration ::= ERROR_TOKEN + // Rule 303: external_declaration ::= ; // - case 303: { action. consumeDeclarationProblem(); break; + case 303: { action. consumeDeclarationEmpty(); break; } // - // Rule 306: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 304: external_declaration ::= ERROR_TOKEN // - case 306: { action. consumeFunctionDefinition(true); break; + case 304: { action. consumeDeclarationProblem(); break; } // - // Rule 307: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 307: { action. consumeFunctionDefinition(false); break; + case 307: { action. consumeFunctionDefinition(true); break; } // - // Rule 308: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 308: function_definition ::= <openscope-ast> function_declarator function_body // - case 308: { action. consumeFunctionDefinitionKnR(); break; + case 308: { action. consumeFunctionDefinition(false); break; } // - // Rule 309: function_body ::= { } + // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 309: { action. consumeStatementCompoundStatement(false); break; + case 309: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 310: function_body ::= { <openscope-ast> block_item_list } + // Rule 310: function_body ::= { } // - case 310: { action. consumeStatementCompoundStatement(true); break; + case 310: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 312: no_cast_start ::= ERROR_TOKEN + // Rule 311: function_body ::= { <openscope-ast> block_item_list } // - case 312: { action. consumeEmpty(); break; + case 311: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 313: literal ::= MYTHREAD + // Rule 313: no_cast_start ::= ERROR_TOKEN // - case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 313: { action. consumeEmpty(); break; } // - // Rule 314: literal ::= THREADS + // Rule 314: literal ::= MYTHREAD // - case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 315: literal ::= UPC_MAX_BLOCKSIZE + // Rule 315: literal ::= THREADS // - case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 316: unary_expression ::= upc_localsizeof unary_expression + // Rule 316: literal ::= UPC_MAX_BLOCKSIZE // - case 316: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 316: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 317: unary_expression ::= upc_localsizeof ( type_id ) + // Rule 317: unary_expression ::= upc_localsizeof unary_expression // - case 317: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 318: unary_expression ::= upc_blocksizeof unary_expression + // Rule 318: unary_expression ::= upc_localsizeof ( type_id ) // - case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 318: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 319: unary_expression ::= upc_blocksizeof ( type_id ) + // Rule 319: unary_expression ::= upc_blocksizeof unary_expression // - case 319: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 319: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 320: unary_expression ::= upc_elemsizeof unary_expression + // Rule 320: unary_expression ::= upc_blocksizeof ( type_id ) // - case 320: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 320: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 321: unary_expression ::= upc_elemsizeof ( type_id ) + // Rule 321: unary_expression ::= upc_elemsizeof unary_expression // - case 321: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 321: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 325: shared_type_qualifier ::= shared + // Rule 322: unary_expression ::= upc_elemsizeof ( type_id ) // - case 325: { action. consumeToken(); break; + case 322: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 326: reference_type_qualifier ::= relaxed + // Rule 326: shared_type_qualifier ::= shared // case 326: { action. consumeToken(); break; } // - // Rule 327: reference_type_qualifier ::= strict + // Rule 327: reference_type_qualifier ::= relaxed // case 327: { action. consumeToken(); break; } // - // Rule 328: layout_qualifier ::= [ constant_expression ] + // Rule 328: reference_type_qualifier ::= strict + // + case 328: { action. consumeToken(); break; + } + + // + // Rule 329: layout_qualifier ::= [ constant_expression ] // - case 328: { action. consumeLayoutQualifier(true, false); break; + case 329: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 329: layout_qualifier ::= [ * ] + // Rule 330: layout_qualifier ::= [ * ] // - case 329: { action. consumeLayoutQualifier(false, true); break; + case 330: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 330: layout_qualifier ::= [ ] + // Rule 331: layout_qualifier ::= [ ] // - case 330: { action. consumeLayoutQualifier(false, false); break; + case 331: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 332: synchronization_statement ::= upc_notify expression ; + // Rule 333: synchronization_statement ::= upc_notify expression ; // - case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 333: synchronization_statement ::= upc_notify ; + // Rule 334: synchronization_statement ::= upc_notify ; // - case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 334: synchronization_statement ::= upc_wait expression ; + // Rule 335: synchronization_statement ::= upc_wait expression ; // - case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 335: synchronization_statement ::= upc_wait ; + // Rule 336: synchronization_statement ::= upc_wait ; // - case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 336: synchronization_statement ::= upc_barrier expression ; + // Rule 337: synchronization_statement ::= upc_barrier expression ; // - case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 337: synchronization_statement ::= upc_barrier ; + // Rule 338: synchronization_statement ::= upc_barrier ; // - case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 338: synchronization_statement ::= upc_fence ; + // Rule 339: synchronization_statement ::= upc_fence ; // - case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 339: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 340: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 340: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 341: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 341: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 342: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 342: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 343: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 343: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 344: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 343: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 344: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 344: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 345: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 344: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 345: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 345: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 346: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 345: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 346: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 346: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 347: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 346: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 347: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 347: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 348: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 347: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 348: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 349: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 349: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 349: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 350: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 350: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 350: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 351: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 351: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 352: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 351: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 352: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 352: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 353: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 352: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 353: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 353: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 354: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 353: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 354: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 354: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 355: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 354: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 355: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 355: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 356: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 357: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 357: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 358: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 358: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 359: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 359: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 360: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 359: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 360: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 360: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 361: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 360: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 361: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 361: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 362: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 361: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 362: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 362: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 363: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 362: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 363: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 364: affinity ::= continue + // Rule 365: affinity ::= continue // - case 364: { action. consumeToken(); break; + case 365: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java index a8eb0b888bf..a22af617655 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java @@ -35,199 +35,200 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 4,1,1,3,3,3,1,3,3,1, - 3,3,1,3,3,3,3,1,3,3, - 1,3,1,3,1,3,1,3,1,3, - 1,5,1,3,3,3,3,3,3,3, - 3,3,3,3,1,1,2,1,0,1, - 3,1,1,1,1,1,1,1,1,3, - 4,3,2,4,1,2,1,1,1,2, - 5,7,5,1,0,7,5,9,8,3, - 2,2,2,3,2,4,2,2,2,2, - 2,1,1,1,1,2,1,2,2,2, - 1,2,2,1,2,2,1,2,2,1, - 2,2,1,3,1,3,1,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,4,1,1,3,3,3,1,3,3, + 1,3,3,1,3,3,3,3,1,3, + 3,1,3,1,3,1,3,1,3,1, + 3,1,5,1,3,3,3,3,3,3, + 3,3,3,3,3,1,1,2,1,0, + 1,3,1,1,1,1,1,1,1,1, + 3,4,3,2,4,1,2,1,1,1, + 2,5,7,5,1,0,7,5,9,8, + 3,2,2,2,3,2,4,2,2,2, + 2,2,1,1,1,1,2,1,2,2, + 2,1,2,2,1,2,2,1,2,2, + 1,2,2,1,3,1,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6,8,0, - 0,1,1,3,3,3,0,1,0,1, - 2,4,2,1,1,1,3,1,1,2, - 3,7,8,0,1,0,1,3,1,3, - 1,1,1,1,1,1,3,1,1,1, - 1,1,3,1,2,2,1,5,3,1, - 3,5,1,3,1,3,2,4,3,5, - 4,6,6,3,5,1,2,3,4,5, - 0,1,2,1,3,1,1,3,2,1, - 1,1,1,2,1,2,3,1,1,1, - 3,1,2,2,2,3,4,5,1,7, - 3,0,0,1,1,3,3,4,1,1, - 2,3,2,3,2,1,0,1,2,1, - 1,1,1,1,2,4,3,6,2,4, - 1,1,1,1,1,2,4,2,4,2, - 4,1,1,2,1,1,1,3,3,2, - 1,3,2,3,2,3,2,2,11,10, - 10,9,10,9,9,8,10,9,9,8, - 9,8,8,7,10,9,9,8,9,8, - 8,7,1,1,-38,0,0,0,0,0, - 0,0,0,0,-2,0,0,0,0,0, - 0,0,0,0,0,-128,0,0,0,0, - 0,-153,-81,-4,-82,0,0,0,0,-133, - 0,0,0,0,0,0,0,0,0,-18, + 1,1,1,1,1,1,1,1,6,8, + 0,0,1,1,3,3,3,0,1,0, + 1,2,4,2,1,1,1,3,1,1, + 2,3,7,8,0,1,0,1,3,1, + 3,1,1,1,1,1,1,3,1,1, + 1,1,1,3,1,2,2,1,5,3, + 1,3,5,1,3,1,3,2,4,3, + 5,4,6,6,3,5,1,3,4,5, + 6,0,1,2,1,3,1,1,3,2, + 1,1,1,1,2,1,2,3,1,1, + 1,3,1,2,2,2,3,4,5,1, + 7,3,0,0,1,1,3,3,4,1, + 1,2,3,2,3,2,1,0,1,2, + 1,1,1,1,1,2,4,3,6,2, + 4,1,1,1,1,1,2,4,2,4, + 2,4,1,1,2,1,1,1,3,3, + 2,1,3,2,3,2,3,2,2,11, + 10,10,9,10,9,9,8,10,9,9, + 8,9,8,8,7,10,9,9,8,9, + 8,8,7,1,1,-38,0,0,0,0, + 0,0,0,0,0,-35,0,0,0,0, + 0,0,0,0,0,0,-2,-84,0,0, + 0,0,-153,-81,-136,-226,0,0,0,0, + 0,-60,0,0,0,0,0,0,0,0, + 0,-4,0,0,0,0,0,0,0,-177, + 0,0,0,0,0,-128,0,-18,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-129,0,-130,0,0,0,0, - 0,0,-5,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-134,0,0,0, + 0,0,0,0,0,0,0,-134,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-200,0,0, + 0,0,0,0,0,0,0,0,-200,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-78,0, - 0,0,-57,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-123, - 0,0,0,0,0,0,0,0,-126,-19, - 0,-20,-88,0,0,-91,-39,0,0,0, - -21,0,-208,0,-22,-89,-131,0,0,0, - 0,0,-173,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-143,0,-120,0,0,0,0, + 0,0,0,-57,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -123,0,0,0,0,0,0,0,0,-126, + 0,0,-129,0,0,-39,0,-117,-91,0, + 0,-19,0,-86,-209,0,-20,0,-21,0, + 0,-140,0,-173,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-85,-23,0,0,0,0,0,0,0, - -35,-24,0,0,0,-9,0,0,0,0, + 0,0,0,0,0,0,0,0,-143,0, + -120,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-85,0,-156,0,0, + 0,0,0,0,0,0,-9,0,0,0, + 0,0,0,0,0,-130,0,-152,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-10,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-79,0,0,0,0, + 0,0,0,0,0,0,-10,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-25,0,-196,0, - 0,0,0,0,0,0,0,0,-36,0, - 0,0,0,0,0,0,0,0,0,-3, + -79,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-196,0,0,0,0,0,0, + 0,0,0,-36,0,0,0,0,0,0, + 0,0,0,0,-3,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -132,0,-26,-163,-58,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-96, - 0,-127,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-131,0,-22,-82,-58, 0,0,0,0,0,0,0,0,0,0, - 0,0,-27,0,-48,0,0,0,0,0, - 0,0,0,0,0,0,-139,0,0,0, + 0,0,0,0,-96,0,-127,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-28,0,-30, - 0,0,0,0,0,0,0,0,0,-73, + 0,0,0,0,0,0,0,-23,0,-48, 0,0,0,0,0,0,0,0,0,0, - -62,0,0,0,0,0,0,0,0,0, + 0,-139,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-63,0,0,0,0,0,0,0,0, - 0,-74,0,0,0,0,0,0,0,0, - 0,0,-64,0,0,0,0,0,0,0, + 0,0,-24,0,-30,0,0,0,0,0, + 0,0,0,0,-73,0,0,0,0,0, + 0,0,0,0,0,-62,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-65,0,0,0,0,0,0, - 0,0,0,-75,0,0,0,0,0,0, - 0,0,0,0,-66,0,0,0,0,0, + 0,0,0,0,0,0,-63,0,0,0, + 0,0,0,0,0,0,-74,0,0,0, + 0,0,0,0,0,0,0,-64,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-67,0,0,0,0, - 0,0,0,0,0,-76,0,0,0,0, - 0,0,0,0,0,0,-68,0,0,0, + 0,0,0,0,0,0,0,0,-65,0, + 0,0,0,0,0,0,0,0,-75,0, + 0,0,0,0,0,0,0,0,0,-66, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-69,0,0, - 0,0,0,0,0,0,0,-95,0,0, - 0,0,0,0,0,0,0,0,-70,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-71, - 0,0,0,0,0,0,0,0,0,-124, + -67,0,0,0,0,0,0,0,0,0, + -76,0,0,0,0,0,0,0,0,0, + 0,-68,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -72,0,0,0,0,0,0,0,0,0, + 0,0,-69,0,0,0,0,0,0,0, + 0,0,-95,0,0,0,0,0,0,0, + 0,0,0,-70,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-158,0,0,0,0,0,0,0,0, - 0,-141,0,0,0,0,0,0,0,0, - 0,0,-159,0,0,0,0,0,0,0, + 0,0,0,0,-71,0,0,0,0,0, + 0,0,0,0,-124,0,0,0,0,0, + 0,0,0,0,0,-72,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-176,0,0,0,0,0,0, - 0,0,0,-29,0,0,0,0,0,0, - 0,0,0,-199,0,0,0,0,0,0, - 0,0,0,-117,0,0,0,0,0,0, - 0,0,0,0,-77,-152,-175,0,0,-43, - 0,0,0,0,0,0,0,0,-207,0, + 0,0,0,0,0,0,-133,0,0,0, + 0,0,0,0,0,0,-141,0,0,0, + 0,0,0,0,0,0,0,-158,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-215,0, - 0,0,0,0,0,0,0,0,-94,0, - 0,0,0,0,0,0,0,0,-86,0, - -40,0,-193,0,-44,0,0,0,0,0, - 0,0,0,-223,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-159,0, + 0,0,0,0,0,0,0,0,-167,0, + 0,0,0,0,0,0,0,0,0,-176, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-60,0,0,0,0,0,0, - 0,0,0,-136,0,0,0,0,0,0, - 0,-93,0,0,-198,0,0,-148,0,-54, + 0,0,0,0,0,0,0,0,0,-199, 0,0,0,0,0,0,0,0,0,-190, - 0,0,0,0,0,0,0,0,-191,0, - -166,-142,0,0,0,0,-97,-98,0,0, - 0,0,-55,0,0,0,0,0,0,0, - 0,0,-84,0,0,0,0,0,0,0, - -167,-164,-87,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-121,0,0,0, - 0,0,0,0,-177,0,0,0,0,0, - -162,0,0,0,0,0,0,0,0,0, - 0,-61,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-187, - -6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-204,0,0,0,0, - -149,0,-42,-186,-172,0,-151,0,-184,-99, 0,0,0,0,0,0,0,0,0,0, + -132,0,-148,-193,0,-43,0,0,0,0, + 0,0,0,0,-208,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -222,0,0,0,0,0,0,0,0,0, - 0,0,-225,-171,0,0,0,-56,0,0, - 0,0,0,0,0,0,0,-100,0,0, - -147,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-154,-156,-138,-205,0, - 0,0,0,-101,-102,0,0,-103,0,-49, + 0,0,0,0,-217,0,0,0,0,0, + 0,0,0,0,-186,0,0,0,0,0, + 0,0,0,0,0,-175,0,0,-25,0, + -26,0,-198,0,-27,0,-93,0,-78,-225, 0,0,0,0,0,0,0,0,0,0, - 0,-50,0,0,0,0,0,0,0,0, - 0,-83,0,0,0,0,-51,0,0,0, - 0,0,0,0,0,0,-210,0,-170,0, - 0,-217,0,-104,0,0,0,0,0,0, - -105,0,0,0,0,0,-52,0,0,0, - 0,0,0,0,0,0,-53,0,0,0, - 0,0,0,0,0,0,0,-80,0,0, - 0,0,0,0,0,0,-90,0,-214,-106, - 0,-146,0,-179,-107,-108,-109,-188,0,-160, - -178,-211,-110,0,-157,0,-59,0,-92,0, - 0,0,0,0,-111,-224,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-83,0,-149,-142,0,0,0, + 0,0,-206,-227,-28,0,0,-5,0,0, + 0,0,0,0,0,-172,0,0,0,0, + 0,0,-29,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-161,0,0,0,0,0,0, - 0,0,-112,0,0,0,0,0,0,0, - 0,-113,-114,0,-115,0,-11,0,0,0, - 0,0,0,0,-12,0,0,0,0,0, - 0,0,-13,0,0,0,0,0,0,0, - -14,0,0,0,0,0,0,0,-37,-45, - 0,0,0,0,0,0,0,-140,0,-46, - 0,0,0,0,0,0,0,-47,0,0, - 0,0,0,0,0,-125,0,-1,-185,-182, - 0,0,0,0,-116,0,-183,0,0,-189, - -197,-209,-206,-119,0,0,0,0,-135,-181, - -144,0,0,-150,-155,0,0,0,0,0, - -168,0,0,0,0,-7,0,0,0,0, + 0,-88,0,0,0,0,-89,0,0,-77, + 0,-94,0,-97,-211,-162,0,0,-6,0, + 0,0,0,0,0,0,-61,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-187,-7,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-174,0,-194,0,0,-118,0,-8, - 0,0,0,0,0,0,-15,0,0,0, - 0,0,0,-16,0,0,0,0,0,0, - -17,-195,-216,-221,-31,0,0,-213,0,-202, - 0,-32,0,0,0,0,-192,0,-33,0, - 0,0,-34,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-212,0,0, + 0,0,0,0,0,-151,0,-121,0,0, + -205,-154,0,0,0,0,0,-40,0,-178, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-122,-165,0,0,-137, - -41,0,0,-169,-145,0,-203,0,0,0, - 0,-180,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-201,-219,0, + 0,0,0,0,-54,0,0,0,0,0, + 0,0,0,0,-163,0,0,0,0,0, + 0,0,0,0,0,-98,0,-99,-100,-189, + -207,0,-55,0,0,0,0,0,0,0, + 0,0,0,0,0,-56,0,0,0,0, + 0,0,0,0,0,-165,0,0,-224,-157, + 0,-170,-179,-101,0,0,0,0,0,0, + -102,0,0,0,-49,0,0,0,0,0, + 0,0,0,0,0,0,-52,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -218,0,0,0,0,-220,0,0,0,0, + 0,0,0,-171,0,-103,-104,0,-105,0, + -50,0,0,0,0,0,0,0,0,0, + -106,0,-51,0,0,0,0,0,0,0, + 0,0,-107,0,-11,0,0,0,0,0, + 0,0,0,0,-53,0,0,0,0,0, + 0,0,0,0,-219,-44,0,0,0,0, + 0,0,0,0,0,-147,0,0,0,0, + 0,0,0,0,-108,-109,-164,-87,-80,-12, + 0,0,0,0,0,0,0,0,0,0, + 0,-110,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-138,-90,0, + 0,0,0,-161,0,0,0,0,0,0, + 0,-92,-111,-112,0,0,0,0,-146,0, + -160,0,0,0,0,0,-113,-192,0,0, + 0,0,0,0,0,0,0,0,-114,-115, + 0,-116,0,0,0,0,0,-13,0,0, + 0,0,0,0,0,-14,0,0,0,0, + 0,0,0,-37,-45,0,0,0,0,0, + 0,0,-119,0,-46,0,0,0,0,0, + 0,0,-47,0,0,0,0,0,0,0, + -125,0,-180,-185,-166,-184,-182,0,-188,-135, + 0,-183,0,0,0,-144,-150,-155,0,0, + 0,0,0,0,0,-220,0,0,0,0, + 0,0,0,0,0,-8,0,0,0,0, + 0,0,-15,0,0,0,0,0,0,-17, + -168,-174,0,0,0,0,0,0,0,0, + 0,0,-31,0,-16,0,0,0,0,0, + 0,-41,0,-32,-213,-197,0,0,-118,0, + 0,0,-215,0,-33,0,-34,-214,-210,0, + -194,-216,0,0,0,0,0,0,0,0, + 0,0,-195,0,0,-122,0,0,0,0, + 0,0,0,0,0,0,0,0,-137,0, + 0,-218,0,0,0,0,0,0,0,0, + 0,0,-221,-222,0,-169,0,-223,-203,-204, + -191,0,0,0,0,0,0,-145,0,0, + 0,0,0,0,0,-181,0,0,-1,0, + -201,0,0,0,0,0,0,0,0,0, + 0,0,-42,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-202,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-212,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -59,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0 + 0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -237,200 +238,201 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 89,10,22,22,21,21,37,37,72,72, - 1,1,2,2,2,2,3,3,3,4, - 5,5,5,5,5,5,5,5,54,54, - 73,6,6,6,6,6,6,6,6,6, - 6,6,7,8,8,8,8,9,9,9, - 11,11,11,12,12,12,12,12,13,13, - 13,14,14,15,15,16,16,17,17,18, - 18,19,19,20,20,20,20,20,20,20, - 20,20,20,20,20,104,30,29,90,90, - 75,75,45,105,105,105,105,105,105,105, - 106,106,106,107,107,112,112,113,113,108, - 108,109,109,109,115,115,110,110,110,110, - 111,111,111,111,111,114,114,27,27,27, - 27,27,31,31,31,81,81,76,76,76, - 76,77,77,77,78,78,78,79,79,79, - 80,80,80,116,116,117,117,118,32,34, - 34,34,34,34,55,57,57,57,57,57, - 57,57,57,57,57,57,57,66,63,63, - 91,92,67,67,64,64,64,68,82,82, - 83,83,69,69,69,35,93,93,84,85, - 85,85,65,65,94,86,86,87,87,70, - 70,23,24,24,24,33,51,51,38,38, - 38,38,41,41,43,39,39,40,44,44, - 119,119,42,120,120,95,95,28,28,28, - 28,28,28,28,28,28,88,52,52,52, - 52,36,59,59,58,58,58,60,60,53, - 53,96,96,50,50,61,61,61,46,46, - 46,47,48,48,48,49,49,49,49,56, - 56,56,62,97,74,74,74,74,71,98, - 99,99,100,100,101,101,121,121,122,122, - 123,123,123,123,125,125,124,124,124,126, - 126,89,89,2,2,2,6,6,6,6, - 6,6,23,23,25,25,26,26,102,102, - 102,105,127,127,127,127,127,127,127,110, - 110,110,110,110,110,110,110,110,110,110, - 110,110,110,110,110,110,110,110,110,110, - 110,110,110,128,128,1,1169,16,20,17, - 410,1094,43,522,520,88,535,531,602,593, - 713,667,788,753,73,90,521,1238,133,211, - 322,323,401,537,194,580,135,132,134,158, - 664,19,16,20,17,410,42,43,522,520, - 931,535,531,602,593,713,667,788,753,72, - 137,273,164,274,230,185,230,184,141,144, - 147,150,1179,695,19,16,20,17,410,320, - 394,1482,592,1293,1547,1569,1232,571,19,16, - 20,17,410,1094,43,522,520,392,535,531, - 602,593,713,667,788,753,73,279,633,19, - 16,20,17,410,1094,43,522,520,392,535, - 531,602,593,713,667,788,753,73,279,61, - 1743,1315,290,664,19,16,20,17,410,42, - 43,522,520,284,535,531,602,593,1556,1715, - 446,19,16,20,17,410,42,35,285,293, - 70,1126,457,359,284,1704,455,230,30,1835, - 1715,250,244,230,1745,39,399,564,1714,285, - 276,1748,1497,363,19,16,20,17,410,1094, - 43,522,520,392,535,531,602,593,713,667, - 788,753,73,279,225,177,819,19,16,20, - 17,410,1094,43,522,520,1830,535,531,602, - 593,713,667,788,753,73,1448,133,211,322, - 323,424,862,32,711,135,132,134,158,286, - 24,188,81,208,426,1715,664,19,16,20, - 17,410,42,39,287,133,211,322,323,137, - 537,164,1125,143,132,134,158,141,144,147, - 150,1179,664,19,16,20,17,410,42,38, - 1482,592,1293,1547,1569,1232,281,19,16,20, - 17,410,1094,43,522,520,1826,535,531,602, - 593,713,667,788,753,73,1307,59,237,602, - 19,16,20,17,410,1094,43,522,520,188, - 535,531,602,593,713,667,788,753,73,279, - 664,19,16,20,17,410,1094,43,522,520, - 18,535,531,602,593,713,667,788,753,73, - 90,230,186,115,644,664,19,16,20,17, - 410,42,43,522,520,288,535,531,602,1557, - 239,1715,487,19,16,20,17,410,42,43, - 522,520,226,535,531,602,593,713,667,788, - 753,92,21,243,330,664,19,16,20,17, - 410,42,43,522,520,394,1380,322,19,16, - 20,17,410,1094,43,522,520,1552,535,531, - 602,593,713,667,788,753,73,1560,53,238, - 664,19,16,20,17,410,1094,43,522,520, - 188,535,531,602,593,713,667,788,753,73, - 91,664,19,16,20,17,410,1094,43,522, - 520,1622,535,531,602,593,713,667,788,753, - 73,84,664,19,16,20,17,410,1094,43, - 522,520,188,535,531,602,593,713,667,788, - 753,73,83,664,19,16,20,17,410,1094, - 43,522,520,1623,535,531,602,593,713,667, - 788,753,73,82,664,19,16,20,17,410, - 1094,43,522,520,188,535,531,602,593,713, - 667,788,753,73,81,664,19,16,20,17, - 410,1094,43,522,520,1625,535,531,602,593, - 713,667,788,753,73,80,664,19,16,20, - 17,410,1094,43,522,520,188,535,531,602, - 593,713,667,788,753,73,79,664,19,16, - 20,17,410,1094,43,522,520,1695,535,531, - 602,593,713,667,788,753,73,78,664,19, - 16,20,17,410,1094,43,522,520,188,535, - 531,602,593,713,667,788,753,73,77,664, - 19,16,20,17,410,1094,43,522,520,22, - 535,531,602,593,713,667,788,753,73,76, - 664,19,16,20,17,410,1094,43,522,520, - 188,535,531,602,593,713,667,788,753,73, - 75,664,19,16,20,17,410,1094,43,522, - 520,271,535,531,602,593,713,667,788,753, - 73,74,664,19,16,20,17,410,1094,43, - 522,520,188,535,531,602,593,713,667,788, - 753,73,1690,664,19,16,20,17,410,1094, - 43,522,520,277,535,531,602,593,713,667, - 788,753,73,1697,664,19,16,20,17,410, - 42,43,522,520,337,535,531,602,593,713, - 667,788,753,92,664,19,16,20,17,410, - 42,43,522,520,13,535,531,602,593,713, - 667,788,753,92,447,71,797,230,293,1701, - 664,19,16,20,17,410,42,43,1267,664, - 19,16,20,17,410,42,43,522,520,1702, - 535,531,602,593,713,667,788,753,92,664, - 19,16,20,17,410,42,43,522,520,850, - 535,531,602,593,713,667,788,753,92,137, - 1375,230,30,892,210,664,19,16,20,17, - 410,42,43,1268,664,19,16,20,17,410, - 42,43,522,520,200,535,531,602,593,713, - 667,788,753,92,664,19,16,20,17,410, - 42,43,522,520,125,535,531,602,593,713, - 667,1575,225,177,1565,230,295,1703,139,201, - 664,19,16,20,17,410,42,43,522,520, - 538,535,531,1511,23,133,211,322,323,113, - 1366,707,1000,136,132,134,158,477,498,564, - 386,564,1827,664,19,16,20,17,410,42, - 43,522,520,607,535,1550,195,138,1262,164, - 272,188,617,891,1250,142,145,148,151,1179, - 216,714,219,1292,221,222,227,239,265,395, - 393,270,278,261,258,581,133,211,322,323, - 225,954,193,262,146,132,134,158,191,239, - 1721,1689,664,19,16,20,17,410,42,43, - 522,520,275,535,531,602,593,713,1613,272, - 1008,726,19,16,20,17,410,318,259,216, - 714,219,1292,221,222,227,63,265,395,393, - 270,13,1379,13,293,518,1871,13,272,188, - 119,1834,1010,690,1780,324,1709,1414,217,714, - 219,1292,221,222,227,229,267,395,393,270, - 223,63,86,730,216,714,219,1292,221,222, - 227,1871,27,144,482,1745,291,1773,664,19, - 16,20,17,410,42,43,522,520,126,535, - 1555,446,19,16,20,17,410,42,35,216, - 714,219,1292,221,222,227,13,237,239,892, - 196,198,1773,329,143,207,1561,1842,312,1549, - 664,19,16,20,17,410,42,43,522,520, - 241,1428,664,19,16,20,17,410,42,43, - 522,520,394,1454,207,197,198,664,19,16, - 20,17,410,42,43,522,520,797,1455,13, - 1183,1772,412,1859,372,133,211,322,323,1787, - 280,408,1871,140,132,134,158,664,19,16, - 20,17,410,42,43,522,1458,664,19,16, - 20,17,410,42,43,522,1504,139,994,164, - 216,714,219,1292,221,222,227,903,1686,133, - 291,1876,239,1379,13,331,361,673,13,275, - 239,518,188,643,468,69,272,13,1837,932, - 133,211,322,323,328,333,525,690,149,132, - 134,158,240,228,265,395,393,270,252,211, - 322,323,133,211,322,323,86,1563,281,1010, - 152,132,134,158,446,19,16,20,17,410, - 42,35,1709,669,217,714,219,1292,221,222, - 227,192,700,731,1710,762,245,664,19,16, - 20,17,410,42,37,664,19,16,20,17, - 410,42,36,664,19,16,20,17,410,42, - 35,664,19,16,20,17,410,42,34,1011, - 664,19,16,20,17,410,42,46,181,489, - 664,19,16,20,17,410,42,45,664,19, - 16,20,17,410,42,44,559,272,528,559, - 239,253,211,322,323,793,564,239,690,564, - 518,239,239,518,245,265,395,393,270,292, - 961,735,242,1262,824,856,1262,86,311,243, - 264,857,1704,292,294,1704,757,19,16,20, - 17,410,316,253,211,322,323,178,1748,257, - 202,1350,257,6,1052,853,1711,1052,1014,1711, - 788,19,16,20,17,410,40,664,19,16, - 20,17,410,33,664,19,16,20,17,410, - 32,13,915,704,373,13,272,375,518,1938, - 679,365,13,1938,1709,365,1938,482,1745,13, - 564,1938,365,13,267,395,393,270,195,365, - 86,679,195,365,86,679,1659,1262,82,195, - 1659,86,679,1938,1938,179,195,1659,86,679, - 195,601,86,679,1659,800,69,61,1659,232, - 69,251,842,257,57,503,1938,169,1562,884, - 1711,690,69,926,564,564,1938,564,1938,252, - 211,322,323,252,211,322,323,207,973,518, - 88,195,1262,1704,195,252,211,322,323,1250, - 1938,61,1250,1449,1772,1808,518,1938,1938,1350, - 1938,253,211,322,323,1668,1938,1938,257,1668, - 1938,1938,1938,1291,1938,1711,203,1938,1938,1938, - 1938,1858,1938,190,1938,1938,190,1704,1938,1938, - 1938,1938,1938,1413,767,1938,1700,1259,1042,1778, - 1259,968,1938,1576,1938,0,325,732,0,19, - 177,0,1,2162,0,1,2173,0 + 89,10,104,22,22,21,21,37,37,72, + 72,1,1,2,2,2,2,3,3,3, + 4,5,5,5,5,5,5,5,5,54, + 54,73,6,6,6,6,6,6,6,6, + 6,6,6,7,8,8,8,8,9,9, + 9,11,11,11,12,12,12,12,12,13, + 13,13,14,14,15,15,16,16,17,17, + 18,18,19,19,20,20,20,20,20,20, + 20,20,20,20,20,20,105,31,30,90, + 90,75,75,45,106,106,106,106,106,106, + 106,107,107,107,108,108,113,113,114,114, + 109,109,110,110,110,116,116,111,111,111, + 111,112,112,112,112,112,115,115,27,27, + 27,27,27,32,32,32,81,81,76,76, + 76,76,77,77,77,78,78,78,79,79, + 79,80,80,80,117,117,118,118,119,33, + 35,35,35,35,35,55,57,57,57,57, + 57,57,57,57,57,57,57,57,66,63, + 63,91,92,67,67,64,64,64,68,82, + 82,83,83,69,69,69,36,93,93,84, + 85,85,85,65,65,94,86,86,87,87, + 70,70,23,24,24,24,34,51,51,38, + 38,38,38,41,41,43,39,39,40,44, + 44,120,120,42,121,121,95,95,28,28, + 28,28,28,28,28,28,28,88,52,52, + 52,52,29,59,59,58,58,58,60,60, + 53,53,96,96,50,50,61,61,61,46, + 46,46,47,48,48,48,49,49,49,49, + 56,56,56,62,97,74,74,74,74,71, + 98,99,99,100,100,101,101,122,122,123, + 123,124,124,124,124,126,126,125,125,125, + 127,127,89,89,2,2,2,6,6,6, + 6,6,6,23,23,25,25,26,26,102, + 102,102,106,128,128,128,128,128,128,128, + 111,111,111,111,111,111,111,111,111,111, + 111,111,111,111,111,111,111,111,111,111, + 111,111,111,111,129,129,1,1302,17,21, + 18,428,1273,44,537,532,188,718,539,793, + 758,1211,1209,1255,1215,74,91,88,607,134, + 212,323,324,401,537,61,525,1300,136,133, + 135,159,664,20,17,21,18,428,43,44, + 537,532,194,718,539,793,758,1211,1209,1603, + 581,138,274,165,1440,1690,521,1153,931,142, + 145,148,151,534,218,1395,220,1557,222,223, + 228,412,1244,596,1558,1589,1602,1217,571,20, + 17,21,18,428,1273,44,537,532,393,718, + 539,793,758,1211,1209,1255,1215,74,280,633, + 20,17,21,18,428,1273,44,537,532,393, + 718,539,793,758,1211,1209,1255,1215,74,280, + 325,1732,420,291,664,20,17,21,18,428, + 43,44,537,532,285,718,539,793,758,1555, + 1698,446,20,17,21,18,428,43,36,286, + 293,292,618,230,186,285,230,31,13,455, + 1828,1698,70,245,137,230,1771,457,448,250, + 286,277,125,1305,363,20,17,21,18,428, + 1273,44,537,532,393,718,539,793,758,1211, + 1209,1255,1215,74,280,254,212,323,324,225, + 178,819,20,17,21,18,428,1273,44,537, + 532,1799,718,539,793,758,1211,1209,1255,1215, + 74,1588,134,212,323,324,862,1151,61,25, + 287,136,133,135,159,209,1698,664,20,17, + 21,18,428,43,40,288,230,185,797,134, + 212,323,324,716,138,426,165,1683,144,133, + 135,159,142,145,148,151,534,664,20,17, + 21,18,428,43,39,1244,596,1558,1589,1602, + 1217,281,20,17,21,18,428,1273,44,537, + 532,1786,718,539,793,758,1211,1209,1255,1215, + 74,1358,1266,238,602,20,17,21,18,428, + 1273,44,537,532,188,718,539,793,758,1211, + 1209,1255,1215,74,280,664,20,17,21,18, + 428,1273,44,537,532,19,718,539,793,758, + 1211,1209,1255,1215,74,91,564,1697,39,580, + 664,20,17,21,18,428,43,44,537,532, + 289,718,539,793,1556,239,1698,487,20,17, + 21,18,428,43,44,537,532,275,718,539, + 793,758,1211,1209,1255,1215,93,22,32,331, + 664,20,17,21,18,428,43,44,537,532, + 412,1408,322,20,17,21,18,428,1273,44, + 537,532,1609,718,539,793,758,1211,1209,1255, + 1215,74,1611,81,239,664,20,17,21,18, + 428,1273,44,537,532,188,718,539,793,758, + 1211,1209,1255,1215,74,92,664,20,17,21, + 18,428,1273,44,537,532,1617,718,539,793, + 758,1211,1209,1255,1215,74,85,664,20,17, + 21,18,428,1273,44,537,532,188,718,539, + 793,758,1211,1209,1255,1215,74,84,664,20, + 17,21,18,428,1273,44,537,532,1629,718, + 539,793,758,1211,1209,1255,1215,74,83,664, + 20,17,21,18,428,1273,44,537,532,188, + 718,539,793,758,1211,1209,1255,1215,74,82, + 664,20,17,21,18,428,1273,44,537,532, + 1630,718,539,793,758,1211,1209,1255,1215,74, + 81,664,20,17,21,18,428,1273,44,537, + 532,188,718,539,793,758,1211,1209,1255,1215, + 74,80,664,20,17,21,18,428,1273,44, + 537,532,1632,718,539,793,758,1211,1209,1255, + 1215,74,79,664,20,17,21,18,428,1273, + 44,537,532,188,718,539,793,758,1211,1209, + 1255,1215,74,78,664,20,17,21,18,428, + 1273,44,537,532,23,718,539,793,758,1211, + 1209,1255,1215,74,77,664,20,17,21,18, + 428,1273,44,537,532,188,718,539,793,758, + 1211,1209,1255,1215,74,76,664,20,17,21, + 18,428,1273,44,537,532,272,718,539,793, + 758,1211,1209,1255,1215,74,75,664,20,17, + 21,18,428,1273,44,537,532,188,718,539, + 793,758,1211,1209,1255,1215,74,73,664,20, + 17,21,18,428,1273,44,537,532,278,718, + 539,793,758,1211,1209,1255,1215,74,1687,664, + 20,17,21,18,428,1273,44,537,532,188, + 718,539,793,758,1211,1209,1255,1215,74,1692, + 664,20,17,21,18,428,43,44,537,532, + 279,718,539,793,758,1211,1209,1255,1215,93, + 664,20,17,21,18,428,43,44,537,532, + 538,718,539,793,758,1211,1209,1255,1215,93, + 1361,230,187,139,892,1756,664,20,17,21, + 18,428,43,44,1304,664,20,17,21,18, + 428,43,44,537,532,1769,718,539,793,758, + 1211,1209,1255,1215,93,664,20,17,21,18, + 428,43,44,537,532,293,718,539,793,758, + 1211,1209,1255,1215,93,1819,230,294,1411,59, + 211,115,194,230,296,243,230,225,178,61, + 664,20,17,21,18,428,43,44,537,532, + 201,718,539,793,758,1211,1209,1255,1215,93, + 134,212,323,324,394,1731,13,1000,1663,137, + 133,135,159,892,144,53,1816,1436,695,20, + 17,21,18,428,321,202,518,134,212,323, + 324,1759,139,337,165,273,141,133,135,159, + 143,146,149,152,534,217,1395,220,1557,222, + 223,228,359,266,719,394,271,399,262,140, + 71,165,850,28,477,797,954,1813,263,726, + 20,17,21,18,428,319,1684,664,20,17, + 21,18,428,43,44,537,532,276,718,539, + 793,758,1211,1604,273,1008,757,20,17,21, + 18,428,317,260,217,1395,220,1557,222,223, + 228,281,266,719,394,271,13,1686,239,1814, + 523,63,13,273,1690,616,1484,1015,230,31, + 518,1706,1370,218,1395,220,1557,222,223,228, + 240,268,719,394,271,664,20,17,21,18, + 428,43,44,537,532,644,718,539,1489,217, + 1395,220,1557,222,223,228,498,282,119,126, + 518,518,1802,664,20,17,21,18,428,43, + 44,537,532,227,718,1501,664,20,17,21, + 18,428,43,44,537,532,61,718,1513,63, + 181,24,13,13,143,197,199,179,203,1706, + 1836,207,1618,469,1772,664,20,17,21,18, + 428,43,44,537,532,1663,1409,664,20,17, + 21,18,428,43,44,537,1486,217,1395,220, + 1557,222,223,228,482,1771,312,372,1335,408, + 1802,664,20,17,21,18,428,43,44,537, + 532,291,1444,664,20,17,21,18,428,43, + 44,537,532,331,1451,664,20,17,21,18, + 428,43,38,198,199,664,20,17,21,18, + 428,43,44,537,1487,412,664,20,17,21, + 18,428,43,44,1406,1706,446,20,17,21, + 18,428,43,36,208,361,673,617,891,994, + 664,20,17,21,18,428,43,37,330,1681, + 1154,1783,643,217,1395,220,1557,222,223,228, + 276,134,212,323,324,226,1686,273,239,903, + 147,133,135,159,446,20,17,21,18,428, + 43,36,932,333,669,266,719,394,271,239, + 242,239,134,212,323,324,246,700,482,1771, + 1015,150,133,135,159,134,212,323,324,731, + 762,329,793,241,153,133,135,159,664,20, + 17,21,18,428,43,36,664,20,17,21, + 18,428,43,35,1011,664,20,17,21,18, + 428,43,47,245,1219,664,20,17,21,18, + 428,43,46,664,20,17,21,18,428,43, + 45,559,273,237,559,707,188,239,208,13, + 292,569,239,1841,569,569,735,824,856,1820, + 266,719,394,271,1253,1783,61,224,1247,243, + 1663,1247,1247,1663,244,265,788,20,17,21, + 18,428,41,664,20,17,21,18,428,34, + 13,857,6,1759,258,1663,1335,258,259,1057, + 366,1696,1057,13,1696,664,20,17,21,18, + 428,33,251,366,13,188,239,196,396,1014, + 87,684,695,518,366,13,1654,13,82,239, + 196,853,133,87,684,366,229,366,293,1654, + 376,196,89,915,87,684,69,273,1690,233, + 1654,295,196,805,196,87,684,87,684,69, + 180,1654,704,1654,847,268,719,394,271,253, + 212,323,324,518,518,889,57,931,373,679, + 169,113,253,212,323,324,569,1947,503,569, + 569,569,1947,1947,1947,1947,69,1947,569,528, + 1947,69,973,196,193,542,1247,196,196,695, + 204,1254,1140,13,1947,1247,1140,1140,542,253, + 212,323,324,695,253,212,323,324,961,87, + 312,1947,258,1947,772,1947,1947,1755,1947,1696, + 1947,258,973,87,735,191,1099,1068,1696,191, + 192,254,212,323,324,1868,1947,1947,1410,1821, + 1882,13,1763,1821,1947,254,212,323,324,1947, + 1947,695,1947,1947,1768,1947,1947,1947,1947,1947, + 1947,1947,1947,1947,1947,1947,1947,1947,387,1947, + 1947,87,1572,1947,0,326,737,0,20,178, + 0,1,2172,0,1,2183,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -560,111 +562,111 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 1938,1948,1771,1949,1643,1938,1635,1627,1651,2150, - 2151,2152,1,1764,1757,2264,1283,2265,1750,1950, - 1951,1952,1953,632,606,2251,2252,2253,1726,1351, - 433,63,2099,2100,2098,2153,2101,2097,53,1240, - 2104,2109,2108,2106,2107,2105,2110,2111,2103,2112, - 2113,2114,69,526,536,523,1938,1,67,1, - 251,189,1,2162,1502,1,1,1,1938,50, - 1938,1,1,1,669,1185,1130,2150,2151,2152, - 61,1938,1114,2264,1283,2265,1943,1938,1,1, - 1,1,1,1,1517,1527,1,1,1,1, - 1,1,1,1,1,1,1,1,189,1, - 1,1,1938,1,65,1,2132,188,57,1774, - 1942,1,1,1,247,56,1332,1,1,1, - 1159,493,1938,1,1,1,180,1947,181,1, - 1,1,55,283,1,1,1,1,1,1, - 1418,1273,1,1,1,1,1,1,1,1, - 1,1,1,1,188,1,1,1,1938,1, - 1401,1,2132,189,1517,1527,1925,1,1,1, - 246,1517,1527,1,1,1,715,1938,1938,2150, - 2151,2152,1943,87,1938,2264,1283,2265,1517,1527, - 1,1,1,1,1,1,54,1946,1,1, + 1947,1958,1730,1959,1638,1947,1560,1515,1646,2160, + 2161,2162,1,1745,1723,2274,388,2275,1716,1960, + 1961,1962,1963,637,607,2261,2262,2263,1336,1309, + 1258,64,2109,2110,2108,2163,2111,2107,54,1385, + 2114,2119,2118,2116,2117,2115,2120,2121,2113,2122, + 2123,2124,70,529,1297,1292,1947,1,68,1, + 252,190,1,2172,1535,1,1,1,1947,51, + 1947,1,1,1,674,1536,1156,2160,2161,2162, + 62,1947,528,2274,388,2275,1953,1947,1,1, + 1,1,1,1,1467,1525,1,1,1,1, + 1,1,1,1,1,1,1,1,190,1, + 1,1,1947,1,66,1,2142,189,58,1818, + 1952,1,1,1,247,57,1317,1,1,1, + 1185,494,1947,2160,2161,2162,181,1957,182,2274, + 388,2275,56,284,1,1,1,1,1,1, + 1426,1413,1,1,1,1,1,1,1,1, + 1,1,1,1,189,1,1,1,1947,1, + 1439,1,2142,190,1467,1525,1934,1,1,1, + 248,1467,1525,1,1,1,720,1947,1947,1, + 1,1,1953,88,1947,1,1,1,1467,1525, + 1,1,1,1,1,1,55,1956,1,1, 1,1,1,1,1,1,1,1,1,1, - 189,1,1,1,1938,1948,1942,1949,2132,1938, - 1948,790,1949,2150,2151,2152,248,1938,1938,2264, - 1283,2265,71,1941,1938,1,1,1,1224,58, - 1,1,1,1,1938,89,2099,2100,2098,2153, - 2101,2097,1517,1527,2104,2109,2108,2106,2107,2105, - 2110,2111,2103,2112,2113,2114,1938,526,536,523, - 1,1948,1771,1949,510,1941,1635,1627,1651,89, - 60,1938,1,1764,1757,1447,1940,1943,1750,1950, - 1951,1952,1953,632,606,2251,2252,2253,1726,1351, - 433,52,566,1487,1472,1460,755,1185,1130,1214, - 1567,1938,1948,1771,1949,1604,1941,1635,1627,1651, - 59,1942,70,1938,1764,1757,42,1938,1940,1750, - 1950,1951,1952,1953,632,606,2251,2252,2253,1726, - 1351,433,1938,1063,1487,1472,1460,755,183,3160, - 66,3160,1,1948,1771,1949,1643,28,1635,1627, - 1651,51,1938,2174,3101,1764,1757,1185,1130,1940, - 1750,1950,1951,1952,1953,632,606,2251,2252,2253, - 1726,1351,433,127,1487,1472,1460,755,182,3165, - 1938,3165,2150,2151,2152,1021,1332,62,2264,1283, - 2265,1,2162,1502,28,1000,979,958,937,916, - 874,895,853,832,811,2099,2100,2098,2153,2101, - 2097,1084,715,2104,2109,2108,2106,2107,2105,2110, - 2111,2103,2112,2113,2114,1938,1948,1771,1949,1643, - 1941,1635,1627,1651,204,3166,47,3166,1764,1757, - 1678,1127,1938,1750,1950,1951,1952,1953,632,606, - 2251,2252,2253,1726,1351,433,49,1418,1273,1938, - 1678,206,1948,1938,1949,1938,1938,1948,1771,1949, - 1431,1941,1635,1627,1651,205,533,48,533,1764, - 1757,1678,1,1940,1750,1950,1951,1952,1953,632, - 606,2251,2252,2253,1726,1351,433,1938,1670,1660, - 1938,1948,1945,1949,251,2162,1502,1938,1,1, - 1,1,1371,1,1,1,269,1,1670,1660, - 1,1,1947,1938,1940,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1670, - 1660,2194,251,1938,1948,1938,1949,646,1938,1944, - 1,1948,1771,1949,1643,1377,1635,1627,1651,268, - 289,519,3101,1764,1757,1938,1938,2250,1750,1950, - 1951,1952,1953,632,606,2251,2252,2253,1726,1351, - 433,1938,1948,1771,1949,1643,325,1635,1627,1651, - 646,1104,1946,3101,1764,1757,220,2194,1374,1750, - 1950,1951,1952,1953,632,606,2251,2252,2253,1726, - 1351,433,1,1948,1771,1949,1643,1926,1635,1627, - 1651,1235,1938,218,3101,1764,1757,646,1938,1938, - 1750,1950,1951,1952,1953,632,606,2251,2252,2253, - 1726,1351,433,1938,1948,1771,1949,1643,68,1635, - 1627,1651,64,1938,646,1938,1764,1757,1,1935, - 1240,1750,1950,1951,1952,1953,632,606,2251,2252, - 2253,1726,1351,433,1938,1948,1775,1949,1643,321, - 1635,1627,1651,199,1938,1938,1,1764,1757,1938, - 400,1114,1750,1950,1951,1952,1953,632,606,2251, - 2252,2253,1726,1351,433,1938,1948,1782,1949,1643, - 319,1635,1627,1651,254,1938,1938,2194,1764,1757, - 1938,493,1114,1750,1950,1951,1952,1953,632,606, - 2251,2252,2253,1726,1351,433,1938,1948,1789,1949, - 1643,317,1635,1627,1651,2193,1938,1938,1938,1764, - 1757,1194,1261,1114,1750,1950,1951,1952,1953,632, - 606,2251,2252,2253,1726,1351,433,1938,1948,1793, - 1949,1643,41,1635,1627,1651,29,1938,282,1938, - 1764,1757,1938,1446,1114,1750,1950,1951,1952,1953, - 632,606,2251,2252,2253,1726,1351,433,1,1948, - 1771,1949,1643,1938,1635,1627,1651,1938,1938,1938, - 1938,1764,1757,1938,543,1499,1750,1950,1951,1952, - 1953,632,606,2251,2252,2253,1726,1351,433,19, - 1446,1929,209,1929,1929,1938,1938,187,177,177, - 177,128,187,187,177,177,177,1554,1558,183, - 2150,2151,2152,1938,182,204,2264,1283,2265,1938, - 1929,177,177,177,177,177,177,1938,1929,1938, - 129,29,1938,2099,2100,2098,2153,2101,2097,2150, - 2151,2152,130,1938,1938,2264,1283,2265,1938,1938, - 1938,2150,2151,2152,205,1938,1938,2264,1283,2265, - 1938,1139,2099,2100,2098,2153,2101,2097,1938,1966, - 31,131,1831,1938,2099,2100,2098,2153,2101,2097, - 2150,2151,2152,1963,1964,1938,2264,1283,2265,1938, - 1938,1938,2798,1,1932,1321,1938,1938,1943,1938, - 249,1373,1938,2099,2100,2098,2153,2101,2097,2150, - 2151,2152,250,1938,1938,2264,1283,2265,1938,1938, - 1938,2150,2151,2152,646,1938,1938,2264,1283,2265, - 1938,1181,1942,1,1938,1538,1938,1938,1943,260, - 2162,1321,1938,1,1938,1938,527,266,2162,1321, - 263,251,1538,266,1,1538,1938,251,1938,1938, - 1938,1938,1938,1938,646,1938,1938,1938,1938,1938, - 646,1938,1942,1938,1938,1938,1938,1938,646,1938, - 1938,646,1938,1938,646 + 190,1,1,1,1947,1958,1952,1959,2142,1947, + 1958,795,1959,2160,2161,2162,249,1947,1947,2274, + 388,2275,72,1951,1947,1,1,1,395,59, + 1,1,1,1,1947,90,2109,2110,2108,2163, + 2111,2107,1467,1525,2114,2119,2118,2116,2117,2115, + 2120,2121,2113,2122,2123,2124,1947,529,1297,1292, + 1,1958,1730,1959,511,1951,1560,1515,1646,90, + 61,1947,1,1745,1723,598,1950,1953,1716,1960, + 1961,1962,1963,637,607,2261,2262,2263,1336,1309, + 1258,53,571,1503,1491,1455,760,1536,1156,402, + 1901,1947,1958,1730,1959,1594,1951,1560,1515,1646, + 60,1952,71,1947,1745,1723,43,1947,1950,1716, + 1960,1961,1962,1963,637,607,2261,2262,2263,1336, + 1309,1258,1947,1089,1503,1491,1455,760,184,3170, + 67,3170,1,1958,1730,1959,1638,29,1560,1515, + 1646,52,1947,2184,3111,1745,1723,1536,1156,1950, + 1716,1960,1961,1962,1963,637,607,2261,2262,2263, + 1336,1309,1258,128,1503,1491,1455,760,183,3175, + 1947,3175,2160,2161,2162,1026,1317,63,2274,388, + 2275,1,2172,1535,29,1005,984,963,942,921, + 879,900,858,837,816,2109,2110,2108,2163,2111, + 2107,1110,720,2114,2119,2118,2116,2117,2115,2120, + 2121,2113,2122,2123,2124,1947,1958,1730,1959,1638, + 1951,1560,1515,1646,205,3176,48,3176,1745,1723, + 1673,1206,1947,1716,1960,1961,1962,1963,637,607, + 2261,2262,2263,1336,1309,1258,50,1426,1413,1947, + 1673,207,1958,1947,1959,1947,1947,1958,1730,1959, + 1546,1951,1560,1515,1646,206,535,49,535,1745, + 1723,1673,1,1950,1716,1960,1961,1962,1963,637, + 607,2261,2262,2263,1336,1309,1258,1947,1665,1655, + 1947,1958,1955,1959,252,2172,1535,1947,1,1, + 1,1,1246,1,1,1,270,1,1665,1655, + 1,1,1957,1947,1950,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1665, + 1655,2204,252,1947,1958,1947,1959,651,1947,1954, + 1,1958,1730,1959,1638,1356,1560,1515,1646,269, + 290,520,3111,1745,1723,1947,1947,2260,1716,1960, + 1961,1962,1963,637,607,2261,2262,2263,1336,1309, + 1258,1947,1958,1730,1959,1638,326,1560,1515,1646, + 651,1130,1956,3111,1745,1723,221,2204,1195,1716, + 1960,1961,1962,1963,637,607,2261,2262,2263,1336, + 1309,1258,1,1958,1730,1959,1638,1935,1560,1515, + 1646,1213,1947,219,3111,1745,1723,651,1947,1947, + 1716,1960,1961,1962,1963,637,607,2261,2262,2263, + 1336,1309,1258,1947,1958,1730,1959,1638,69,1560, + 1515,1646,65,1947,651,1947,1745,1723,1,1944, + 1385,1716,1960,1961,1962,1963,637,607,2261,2262, + 2263,1336,1309,1258,1947,1958,1743,1959,1638,322, + 1560,1515,1646,200,1947,1947,1,1745,1723,1947, + 1047,528,1716,1960,1961,1962,1963,637,607,2261, + 2262,2263,1336,1309,1258,1947,1958,1754,1959,1638, + 320,1560,1515,1646,255,1947,1947,2204,1745,1723, + 1947,494,528,1716,1960,1961,1962,1963,637,607, + 2261,2262,2263,1336,1309,1258,1947,1958,1765,1959, + 1638,318,1560,1515,1646,2203,1947,1947,1947,1745, + 1723,1220,1685,528,1716,1960,1961,1962,1963,637, + 607,2261,2262,2263,1336,1309,1258,1947,1958,1767, + 1959,1638,42,1560,1515,1646,30,1947,283,1947, + 1745,1723,1947,1362,528,1716,1960,1961,1962,1963, + 637,607,2261,2262,2263,1336,1309,1258,1,1958, + 1730,1959,1638,1947,1560,1515,1646,1947,1947,1947, + 1947,1745,1723,1947,544,1442,1716,1960,1961,1962, + 1963,637,607,2261,2262,2263,1336,1309,1258,20, + 1362,1938,210,1938,1938,1947,1947,188,178,178, + 178,129,188,188,178,178,178,1443,1689,184, + 2160,2161,2162,1947,183,205,2274,388,2275,1947, + 1938,178,178,178,178,178,178,1947,1938,1947, + 130,30,1947,2109,2110,2108,2163,2111,2107,2160, + 2161,2162,131,1947,1947,2274,388,2275,1947,1947, + 1947,2160,2161,2162,206,1947,1947,2274,388,2275, + 1947,1165,2109,2110,2108,2163,2111,2107,1947,1976, + 32,132,1752,1947,2109,2110,2108,2163,2111,2107, + 2160,2161,2162,1973,1974,1947,2274,388,2275,1947, + 1947,1947,2808,1,1941,1306,1947,1947,1953,1947, + 250,1853,1947,2109,2110,2108,2163,2111,2107,2160, + 2161,2162,251,1947,1947,2274,388,2275,1947,1947, + 1947,2160,2161,2162,651,1947,1947,2274,388,2275, + 1947,1368,1952,1,1947,1559,1947,1947,1953,261, + 2172,1306,1947,1,1947,1947,526,267,2172,1306, + 264,252,1559,267,1,1559,1947,252,1947,1947, + 1947,1947,1947,1947,651,1947,1947,1947,1947,1947, + 651,1947,1952,1947,1947,1947,1947,1947,651,1947, + 1947,651,1947,1947,651 }; }; public final static char termAction[] = TermAction.termAction; @@ -672,29 +674,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 443,1,85,41,85,85,85,85,85,85, - 85,85,85,85,85,85,200,3,386,383, - 390,388,396,394,398,397,400,399,10,85, - 200,200,200,200,183,183,329,200,368,368, - 472,85,85,85,85,85,85,85,85,85, - 85,85,85,85,85,85,85,85,85,85, - 85,85,85,85,85,85,85,85,85,85, - 85,85,183,183,183,183,74,333,76,335, - 181,180,301,193,313,72,313,72,72,313, - 72,313,220,134,183,45,383,383,388,388, - 388,388,386,386,394,390,390,397,396,256, - 399,398,371,371,371,371,50,329,333,79, - 45,243,109,183,411,338,109,72,368,368, - 72,368,85,50,333,321,243,45,108,76, - 183,327,220,182,340,45,109,74,262,74, - 295,297,259,292,74,321,243,85,85,45, - 109,335,251,250,333,340,183,74,262,295, - 295,292,48,470,368,85,258,292,50,243, - 321,45,45,183,411,338,327,262,292,186, - 262,295,297,467,297,52,45,368,85,50, - 321,340,262,188,297,292,85,368,45,297, - 183,182,292,407,85,406,104,333,292,292, - 369,188,85,104,297 + 473,1,146,102,146,146,146,146,146,146, + 146,146,146,146,146,146,10,64,84,81, + 88,86,94,92,96,95,98,97,70,146, + 10,10,10,10,318,318,230,10,368,368, + 443,146,146,146,146,146,146,146,146,146, + 146,146,146,146,146,146,146,146,146,146, + 146,146,146,146,146,146,146,146,146,146, + 146,146,318,318,318,318,135,234,137,335, + 316,315,202,3,214,133,214,133,133,214, + 133,214,30,269,318,106,81,81,86,86, + 86,86,84,84,92,88,88,95,94,333, + 97,96,371,371,371,371,111,230,234,140, + 106,53,170,318,411,338,170,133,368,368, + 133,368,146,111,234,222,53,106,169,137, + 318,228,30,317,340,106,170,135,236,135, + 321,323,61,266,135,222,222,146,146,106, + 170,335,328,327,234,340,318,135,236,321, + 321,266,109,471,368,146,60,266,111,222, + 53,106,106,318,411,338,228,236,266,195, + 236,321,323,468,323,113,106,368,146,111, + 53,222,340,236,197,323,266,146,368,106, + 323,222,318,317,266,407,146,406,165,234, + 266,266,369,197,146,165,323 }; }; public final static char asb[] = Asb.asb; @@ -702,56 +704,56 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 89,0,75,31,2,61,76,13,14,8, - 4,6,7,62,63,56,57,64,65,66, - 67,70,71,72,73,74,77,78,52,69, - 79,80,81,82,83,85,84,86,87,88, - 68,39,89,38,58,5,0,5,52,31, - 61,13,14,8,4,6,7,23,24,18, - 28,29,30,2,19,20,21,22,25,26, - 27,1,3,12,0,58,5,32,9,10, - 11,15,16,17,19,20,21,22,25,26, - 27,3,13,14,8,6,7,23,24,18, - 28,29,30,4,2,1,0,32,58,5, - 13,14,8,4,6,7,23,24,18,28, - 29,30,2,1,3,19,20,21,22,25, - 26,27,0,10,32,37,11,36,35,34, - 9,33,15,16,17,61,76,13,14,8, - 6,7,62,63,56,57,64,65,66,67, - 70,71,72,73,74,77,78,69,79,80, - 81,82,83,84,85,86,87,88,4,2, - 31,38,39,5,0,75,5,4,1,2, - 68,0,5,68,38,58,39,75,31,18, + 89,0,5,68,38,58,39,75,31,18, 19,20,21,22,2,13,14,8,4,6, 7,23,24,25,26,27,28,29,30,1, 3,53,54,55,48,40,45,43,44,42, 41,46,47,49,50,51,37,34,32,33, - 36,35,9,10,11,16,15,17,0,2, - 5,38,39,75,31,68,0,69,31,61, - 0,33,40,9,41,53,34,42,35,43, - 44,36,10,45,46,32,54,37,55,47, - 48,11,49,50,51,1,3,15,16,17, - 60,5,52,0,1,3,5,52,38,0, - 48,40,45,43,44,42,41,46,47,49, - 50,51,68,75,37,34,32,33,36,35, - 9,10,11,15,16,17,38,1,5,39, - 2,31,4,0,4,2,31,39,5,33, + 36,35,9,10,11,16,15,17,0,69, + 31,61,0,31,2,61,76,13,14,69, + 79,80,81,82,83,85,84,86,87,88, + 4,62,63,6,7,57,56,64,65,66, + 67,70,71,8,72,73,74,52,75,77, + 78,68,39,89,38,58,5,0,5,52, + 31,61,13,14,8,4,6,7,23,24, + 18,28,29,30,2,19,20,21,22,25, + 26,27,1,3,12,0,58,5,32,9, + 10,11,15,16,17,19,20,21,22,25, + 26,27,3,13,14,8,6,7,23,24, + 18,28,29,30,4,2,1,0,32,58, + 5,13,14,8,4,6,7,23,24,18, + 28,29,30,2,1,3,19,20,21,22, + 25,26,27,0,75,5,4,1,2,68, + 0,48,40,45,43,44,42,41,46,47, + 49,50,51,68,75,37,34,32,33,36, + 35,9,10,11,15,16,17,38,1,5, + 39,2,31,4,0,33,40,9,41,53, + 34,42,35,43,44,36,10,45,46,32, + 54,37,55,47,48,11,49,50,51,1, + 3,15,16,17,60,5,52,0,10,32, + 37,11,36,35,34,9,33,15,16,17, + 61,76,13,14,8,6,7,62,63,56, + 57,64,65,66,67,70,71,72,73,74, + 77,78,69,79,80,81,82,83,84,85, + 86,87,88,4,2,31,38,39,5,0, + 1,3,5,52,38,0,2,5,38,39, + 75,31,68,0,4,2,31,39,5,33, 40,9,41,53,34,42,35,43,44,36, 10,45,46,32,54,37,55,47,48,11, 49,50,51,15,16,17,59,3,1,0, - 69,79,80,81,82,83,84,85,86,87, - 88,12,4,62,63,6,7,57,56,64, - 65,66,67,70,71,8,72,73,74,58, - 39,52,89,77,78,68,75,5,38,0, + 8,4,6,7,62,63,56,57,64,65, + 66,67,70,71,72,73,74,77,78,69, + 79,80,81,82,83,84,85,86,87,88, + 58,39,52,89,12,68,75,5,38,0, 4,33,40,9,41,53,34,42,35,43, 44,36,10,45,46,32,54,37,55,47, 48,11,49,50,51,1,3,15,16,17, - 59,0,18,19,20,21,22,1,3,2, + 59,0,5,39,18,19,20,21,22,1, + 3,2,13,14,8,4,6,7,23,24, + 25,26,27,28,29,30,0,5,38,52, + 69,0,18,19,20,21,22,1,3,2, 13,14,8,4,6,7,23,24,25,26, - 27,28,29,30,60,0,5,38,52,69, - 0,5,39,18,19,20,21,22,1,3, - 2,13,14,8,4,6,7,23,24,25, - 26,27,28,29,30,0 + 27,28,29,30,60,0 }; }; public final static byte asr[] = Asr.asr; @@ -759,29 +761,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static byte nasb[] = {0, - 98,36,27,36,27,27,27,27,27,27, - 27,27,27,27,27,27,105,36,36,36, - 36,36,36,36,36,36,36,36,36,27, - 105,105,105,105,17,17,87,1,22,22, - 115,106,27,27,27,27,27,27,27,27, - 27,27,27,27,27,27,27,27,106,27, - 27,27,27,27,27,27,27,27,27,27, - 27,27,17,17,17,17,36,13,40,86, - 11,11,53,65,54,46,54,20,20,54, - 19,54,48,36,17,42,36,36,36,36, - 36,36,36,36,36,36,36,36,36,36, - 36,36,36,36,36,36,74,101,36,37, - 42,113,41,17,93,16,41,7,7,7, - 7,7,27,25,36,74,113,42,41,91, - 17,70,29,36,95,42,41,56,74,36, - 74,44,9,74,36,74,113,27,27,42, - 41,69,11,11,13,95,17,36,118,74, - 7,82,24,36,7,27,67,82,74,113, - 91,42,42,17,93,16,76,74,82,58, - 61,7,44,36,36,26,42,7,27,25, - 91,109,118,72,44,82,27,7,42,44, - 17,17,82,59,27,36,72,13,82,82, - 36,72,27,78,84 + 119,41,32,41,32,32,32,32,32,32, + 32,32,32,32,32,32,94,41,41,41, + 41,41,41,41,41,41,41,41,41,32, + 94,94,94,94,18,18,85,1,20,20, + 98,95,32,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,95,32, + 32,32,32,32,32,32,32,32,32,32, + 32,32,18,18,18,18,41,64,47,84, + 13,13,61,9,62,25,62,23,23,62, + 22,62,56,41,18,49,41,41,41,41, + 41,41,41,41,41,41,41,41,41,41, + 41,41,41,41,41,41,76,101,41,42, + 49,105,48,18,89,17,48,7,7,7, + 7,7,32,30,41,82,105,49,48,27, + 18,72,34,41,91,49,48,54,76,41, + 76,45,11,76,41,82,76,32,32,49, + 48,71,13,13,64,91,18,41,107,76, + 7,69,29,41,7,32,15,69,76,76, + 105,49,49,18,89,17,78,76,69,51, + 115,7,45,41,41,31,49,7,32,30, + 105,27,111,107,74,45,69,32,7,49, + 45,27,18,18,69,52,32,41,74,64, + 69,69,41,74,32,80,67 }; }; public final static byte nasb[] = Nasb.nasb; @@ -789,18 +791,18 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 81,79,78,67,77,76,1,0,99,0, - 28,0,36,52,0,10,21,0,94,68, - 0,73,0,71,10,62,5,0,81,80, - 79,78,67,77,76,0,5,10,0,10, - 5,22,0,54,0,91,0,67,63,64, - 65,66,55,31,0,92,0,10,72,0, - 10,35,69,0,102,0,101,0,21,48, - 47,41,39,10,0,48,47,41,39,36, - 0,37,0,97,0,21,47,48,10,0, - 23,0,36,52,10,27,0,10,89,0, - 48,47,36,0,35,10,30,0,95,10, - 27,0,59,0,10,90,0,83,10,35, + 81,79,78,67,77,76,1,0,102,0, + 99,0,28,0,101,0,10,21,0,73, + 0,94,68,0,91,0,23,0,71,10, + 62,5,0,81,80,79,78,67,77,76, + 0,5,10,0,54,0,10,5,22,0, + 10,72,0,92,0,67,63,64,65,66, + 55,32,0,29,52,0,97,0,37,0, + 21,48,47,41,39,10,0,48,47,41, + 39,29,0,21,47,48,10,0,29,52, + 10,27,0,36,10,31,0,10,90,0, + 48,47,29,0,59,0,83,10,36,0, + 95,10,27,0,10,36,69,0,10,89, 0 }; }; @@ -828,18 +830,18 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 114,0,0,0,116,120,121,122,123,0, - 124,125,126,127,128,129,130,131,132,133, - 111,110,143,0,0,0,136,164,0,115, - 142,0,0,0,155,0,112,160,162,0, - 163,0,0,0,135,173,174,175,0,118, - 151,161,170,0,145,150,0,165,168,169, - 172,0,146,147,148,149,152,0,154,159, - 176,113,117,119,134,137,138,139,140,141, - 144,0,153,157,0,0,158,167,109,0, - 0,0,156,0,166,171,0,177,178,0, - 179,180,0,0,0,0,0,0,0,0, + 124,125,126,127,128,129,130,131,0,132, + 111,110,142,0,0,0,135,163,0,0, + 115,141,0,0,0,154,112,159,161,0, + 162,0,0,0,134,172,173,174,0,118, + 150,160,169,0,144,149,0,164,167,168, + 171,0,145,146,147,148,151,0,153,158, + 175,113,117,119,133,136,137,138,139,140, + 143,0,152,156,0,0,157,166,109,0, + 0,0,155,0,165,170,0,176,177,0, + 178,179,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -871,10 +873,10 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 65,63,5,65,28,28,63,56,109,49, + 65,63,5,65,28,28,63,56,110,49, 28,44,28,6,6,6,49,28,28,69, 6,5,5,28,28,19,28,102,101,100, - 47,61,28,41,51,3,71,69,110,5, + 47,61,28,41,51,3,71,69,111,5, 69,80,79,78,77,76,44,42,44 }; }; @@ -909,28 +911,28 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static char scopeRhs[] = {0, 152,31,0,110,0,157,2,30,0,111, 0,157,2,29,0,157,2,28,0,205, - 117,0,31,150,0,161,181,117,12,169, + 117,0,31,149,0,161,181,117,12,169, 0,112,0,0,165,117,2,154,0,165, - 117,2,0,168,2,0,159,117,0,173, + 117,2,0,168,2,0,159,117,0,172, 0,195,117,31,0,9,110,0,127,32, - 195,117,31,0,69,133,110,0,127,195, - 117,32,31,0,195,117,32,31,0,133, + 195,117,31,0,69,132,110,0,127,195, + 117,32,31,0,195,117,32,31,0,132, 110,0,127,32,31,0,127,195,117,31, - 0,127,31,0,148,0,2,0,166,111, + 0,127,31,0,148,0,2,0,165,111, 0,2,111,0,165,117,2,148,0,2, - 0,165,111,0,158,2,0,160,0,161, + 0,164,111,0,158,2,0,159,0,161, 193,117,12,108,201,53,0,112,0,161, - 193,117,12,201,53,0,142,0,113,0, - 200,117,142,0,117,142,0,156,113,0, + 193,117,12,201,53,0,143,0,113,0, + 200,117,143,0,117,143,0,155,113,0, 189,117,12,199,108,198,174,0,189,117, - 12,198,174,0,188,0,149,0,148,0, - 147,0,146,0,145,0,212,94,0,77, - 2,115,111,113,0,212,128,137,2,98, - 0,53,0,0,137,78,125,0,29,132, + 12,198,174,0,188,0,148,0,147,0, + 146,0,145,0,144,0,213,94,0,77, + 2,115,111,113,0,213,128,138,2,98, + 0,53,0,0,138,78,125,0,29,132, 0,157,2,18,0,161,181,117,12,128, 157,2,0,157,2,0,111,3,0,119, - 0,112,0,197,2,112,0,137,31,112, - 0,137,2,0 + 0,112,0,197,2,112,0,138,31,112, + 0,138,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -938,16 +940,16 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1315,0,1837,1259,1834,0,392,0,1576,1350, - 1401,1502,1366,1321,1262,0,1283,0,1232,564, - 365,0,1292,714,395,393,1350,1748,1321,1262, - 1538,1659,0,1604,1431,510,1332,1214,715,493, - 1418,1273,1240,1527,1517,1487,1472,1460,755,1678, - 1670,1660,1185,1130,1764,1757,1651,1643,1635,1627, - 632,606,1750,1726,1351,433,1194,1159,1139,1104, - 1084,1063,1042,767,400,732,566,646,1021,1000, - 979,958,937,916,895,874,853,832,811,365, - 790,690,669,468,543,447,0 + 420,0,1820,1821,1816,0,393,0,396,1335, + 1439,1535,1361,1306,1247,0,388,0,1217,569, + 366,0,1557,1395,719,394,1335,1759,1306,1247, + 1559,1654,0,1594,1546,511,1317,402,720,494, + 1426,1413,1385,1525,1467,1503,1491,1455,760,1673, + 1665,1655,1536,1156,1745,1723,1646,1638,1560,1515, + 637,607,1716,1336,1309,1258,1220,1185,1165,1130, + 1110,1089,1068,772,1047,737,571,651,1026,1005, + 984,963,942,921,900,879,858,837,816,366, + 795,695,674,469,544,448,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -958,26 +960,26 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,196,117,182,30,29,28,18,24,23, 7,6,4,8,14,13,2,112,116,115, 119,118,121,120,123,122,125,124,113,38, - 2,2,2,2,157,137,142,117,76,61, + 2,2,2,2,157,138,143,117,76,61, 2,31,7,6,63,62,4,67,66,65, 64,56,57,8,71,70,73,72,78,77, 74,88,87,86,84,85,83,82,81,80, 79,69,157,157,157,157,128,117,31,2, 155,154,183,16,184,174,185,55,54,186, - 53,187,188,108,197,137,115,115,118,118, - 118,118,116,116,120,119,119,122,121,137, - 124,123,128,128,128,128,12,159,143,32, + 53,187,188,108,197,138,115,115,118,118, + 118,118,116,116,120,119,119,122,121,138, + 124,123,128,128,128,128,12,159,136,32, 127,117,4,168,117,2,31,198,175,175, - 201,175,68,117,143,4,117,127,195,166, + 201,175,68,117,136,4,117,127,195,166, 165,134,117,167,117,152,4,108,12,108, - 12,181,117,12,169,4,117,195,32,127, + 12,181,117,12,169,4,136,195,32,127, 4,2,146,148,117,38,165,199,117,12, - 117,161,38,205,61,31,206,117,12,117, - 166,127,127,158,117,2,159,12,189,142, + 117,161,38,205,61,31,206,117,12,136, + 117,127,127,158,117,2,159,12,189,143, 190,117,193,108,194,69,152,61,31,117, - 166,117,117,117,193,161,69,38,152,181, - 165,202,189,200,68,158,2,117,161,161, - 38,38,68,159,144 + 117,166,117,117,117,193,161,69,38,152, + 181,166,165,202,189,200,68,158,2,117, + 161,161,38,38,68,159,144 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1112,12 +1114,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_list_actual", "constant_expression", @@ -1188,20 +1189,20 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 225, + NUM_STATES = 227, NT_OFFSET = 107, - LA_STATE_OFFSET = 2302, + LA_STATE_OFFSET = 2312, MAX_LA = 2, - NUM_RULES = 364, - NUM_NONTERMINALS = 128, - NUM_SYMBOLS = 235, + NUM_RULES = 365, + NUM_NONTERMINALS = 129, + NUM_SYMBOLS = 236, SEGMENT_SIZE = 8192, - START_STATE = 1688, + START_STATE = 1839, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, - ACCEPT_ACTION = 1925, - ERROR_ACTION = 1938; + ACCEPT_ACTION = 1934, + ERROR_ACTION = 1947; public final static boolean BACKTRACK = true; diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java index 693ff8f0483..2ea043384da 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java @@ -17,13 +17,16 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +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.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; - -import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; -import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; +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.internal.core.dom.parser.c.CNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; @@ -37,7 +40,9 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -public class UPCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTTranslationUnit > +public class UPCParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTTranslationUnit > + { private static ParseTable prs = new UPCParserprs(); private FixedBacktrackingParser btParser; @@ -175,7 +180,11 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo private UPCParserAction action; private IASTCompletionNode compNode; -public UPCParser() { // constructor + +public UPCParser(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) { @@ -194,17 +203,16 @@ public void addToken(IToken token) { } -public IASTTranslationUnit parse(Set<IParser.Options> options) { +public IASTTranslationUnit 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 super.resetTokenStream(); // allow tokens to be garbage collected compNode = action.getASTCompletionNode(); // the completion node may be null - return ( IASTTranslationUnit ) action.getParseResult(); + return ( IASTTranslationUnit ) action.getParseResult(); } @@ -227,25 +235,6 @@ public String getName() { } - -private ITokenMap tokenMap = null; - -public void setTokens(List<IToken> tokens) { - resetTokenStream(); - addToken(new Token(null, 0, 0, 0)); // dummy token - for(IToken token : tokens) { - token.setKind(tokenMap.mapKind(token.getKind())); - addToken(token); - } - addToken(new Token(null, 0, 0, UPCParsersym.TK_EOF_TOKEN)); -} - -public UPCParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(UPCParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); -} - - - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -258,1287 +247,1293 @@ public UPCParser(IParserActionTokenProvider parser) { // constructor } // - // 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 43: cast_expression ::= ( type_id ) cast_expression + // Rule 42: unary_expression ::= sizeof ( type_id ) // - case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; } // - // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 44: cast_expression ::= ( type_id ) cast_expression // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; } // - // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; } // - // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; } // - // Rule 49: additive_expression ::= additive_expression + multiplicative_expression + // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; } // - // Rule 50: additive_expression ::= additive_expression - multiplicative_expression + // Rule 50: additive_expression ::= additive_expression + multiplicative_expression // - case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; } // - // Rule 52: shift_expression ::= shift_expression << additive_expression + // Rule 51: additive_expression ::= additive_expression - multiplicative_expression // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; } // - // Rule 53: shift_expression ::= shift_expression >> additive_expression + // Rule 53: shift_expression ::= shift_expression << additive_expression // - case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; } // - // Rule 55: relational_expression ::= relational_expression < shift_expression + // Rule 54: shift_expression ::= shift_expression >> additive_expression // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; } // - // Rule 56: relational_expression ::= relational_expression > shift_expression + // Rule 56: relational_expression ::= relational_expression < shift_expression // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; } // - // Rule 57: relational_expression ::= relational_expression <= shift_expression + // Rule 57: relational_expression ::= relational_expression > shift_expression // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; } // - // Rule 58: relational_expression ::= relational_expression >= shift_expression + // Rule 58: relational_expression ::= relational_expression <= shift_expression // - case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; } // - // Rule 60: equality_expression ::= equality_expression == relational_expression + // Rule 59: relational_expression ::= relational_expression >= shift_expression // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; } // - // Rule 61: equality_expression ::= equality_expression != relational_expression + // Rule 61: equality_expression ::= equality_expression == relational_expression // - case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; } // - // Rule 63: AND_expression ::= AND_expression & equality_expression + // Rule 62: equality_expression ::= equality_expression != relational_expression // - case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; } // - // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 64: and_expression ::= and_expression & equality_expression // - case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; } // - // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; } // - // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; } // - // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; } // - // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 73: { action. consumeExpressionConditional(); break; + case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; } // - // Rule 75: assignment_expression ::= unary_expression = assignment_expression + // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 74: { action. consumeExpressionConditional(); break; } // - // Rule 76: assignment_expression ::= unary_expression *= assignment_expression + // Rule 76: assignment_expression ::= unary_expression = assignment_expression // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 77: assignment_expression ::= unary_expression /= assignment_expression + // Rule 77: assignment_expression ::= unary_expression *= assignment_expression // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 78: assignment_expression ::= unary_expression %= assignment_expression + // Rule 78: assignment_expression ::= unary_expression /= assignment_expression // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; } // - // Rule 79: assignment_expression ::= unary_expression += assignment_expression + // Rule 79: assignment_expression ::= unary_expression %= assignment_expression // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; } // - // Rule 80: assignment_expression ::= unary_expression -= assignment_expression + // Rule 80: assignment_expression ::= unary_expression += assignment_expression // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; } // - // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 81: assignment_expression ::= unary_expression -= assignment_expression // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; } // - // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 83: assignment_expression ::= unary_expression &= assignment_expression + // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 84: assignment_expression ::= unary_expression &= assignment_expression // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 85: assignment_expression ::= unary_expression |= assignment_expression + // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression // - case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 88: expression_list ::= <openscope-ast> expression_list_actual + // Rule 86: assignment_expression ::= unary_expression |= assignment_expression // - case 88: { action. consumeExpressionList(); break; + case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 90: expression_list_opt ::= $Empty + // Rule 89: expression_list ::= <openscope-ast> expression_list_actual // - case 90: { action. consumeEmpty(); break; + case 89: { action. consumeExpressionList(); break; } // - // Rule 100: statement ::= ERROR_TOKEN + // Rule 91: expression_list_opt ::= $Empty // - case 100: { action. consumeStatementProblem(); break; + case 91: { action. consumeEmpty(); break; } // - // Rule 101: labeled_statement ::= identifier_token : statement + // Rule 101: statement ::= ERROR_TOKEN // - case 101: { action. consumeStatementLabeled(); break; + case 101: { action. consumeStatementProblem(); break; } // - // Rule 102: labeled_statement ::= case constant_expression : statement + // Rule 102: labeled_statement ::= identifier_token : statement // - case 102: { action. consumeStatementCase(); break; + case 102: { action. consumeStatementLabeled(); break; } // - // Rule 103: labeled_statement ::= default : statement + // Rule 103: labeled_statement ::= case constant_expression : statement // - case 103: { action. consumeStatementDefault(); break; + case 103: { action. consumeStatementCase(); break; } // - // Rule 104: compound_statement ::= { } + // Rule 104: labeled_statement ::= default : statement // - case 104: { action. consumeStatementCompoundStatement(false); break; + case 104: { action. consumeStatementDefault(); break; } // - // Rule 105: compound_statement ::= { <openscope-ast> block_item_list } + // Rule 105: compound_statement ::= { } // - case 105: { action. consumeStatementCompoundStatement(true); break; + case 105: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 109: block_item ::= declaration + // Rule 106: compound_statement ::= { <openscope-ast> block_item_list } // - case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 106: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 110: expression_statement ::= ; + // Rule 110: block_item ::= declaration // - case 110: { action. consumeStatementNull(); break; + case 110: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 111: expression_statement ::= expression_in_statement ; + // Rule 111: expression_statement ::= ; // - case 111: { action. consumeStatementExpression(); break; + case 111: { action. consumeStatementNull(); break; } // - // Rule 112: selection_statement ::= if ( expression ) statement + // Rule 112: expression_statement ::= expression_in_statement ; // - case 112: { action. consumeStatementIf(false); break; + case 112: { action. consumeStatementExpression(); break; } // - // Rule 113: selection_statement ::= if ( expression ) statement else statement + // Rule 113: selection_statement ::= if ( expression ) statement // - case 113: { action. consumeStatementIf(true); break; + case 113: { action. consumeStatementIf(false); break; } // - // Rule 114: selection_statement ::= switch ( expression ) statement + // Rule 114: selection_statement ::= if ( expression ) statement else statement // - case 114: { action. consumeStatementSwitch(); break; + case 114: { action. consumeStatementIf(true); break; } // - // Rule 116: expression_opt ::= $Empty + // Rule 115: selection_statement ::= switch ( expression ) statement // - case 116: { action. consumeEmpty(); break; + case 115: { action. consumeStatementSwitch(); break; } // - // Rule 117: iteration_statement ::= do statement while ( expression ) ; + // Rule 117: expression_opt ::= $Empty // - case 117: { action. consumeStatementDoLoop(); break; + case 117: { action. consumeEmpty(); break; } // - // Rule 118: iteration_statement ::= while ( expression ) statement + // Rule 118: iteration_statement ::= do statement while ( expression ) ; // - case 118: { action. consumeStatementWhileLoop(); break; + case 118: { action. consumeStatementDoLoop(); break; } // - // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 119: iteration_statement ::= while ( expression ) statement // - case 119: { action. consumeStatementForLoop(); break; + case 119: { action. consumeStatementWhileLoop(); break; } // - // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // case 120: { action. consumeStatementForLoop(); break; } // - // Rule 121: jump_statement ::= goto identifier_token ; + // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 121: { action. consumeStatementGoto(); break; + case 121: { action. consumeStatementForLoop(); break; } // - // Rule 122: jump_statement ::= continue ; + // Rule 122: jump_statement ::= goto identifier_token ; // - case 122: { action. consumeStatementContinue(); break; + case 122: { action. consumeStatementGoto(); break; } // - // Rule 123: jump_statement ::= break ; + // Rule 123: jump_statement ::= continue ; // - case 123: { action. consumeStatementBreak(); break; + case 123: { action. consumeStatementContinue(); break; } // - // Rule 124: jump_statement ::= return ; + // Rule 124: jump_statement ::= break ; // - case 124: { action. consumeStatementReturn(false); break; + case 124: { action. consumeStatementBreak(); break; } // - // Rule 125: jump_statement ::= return expression ; + // Rule 125: jump_statement ::= return ; // - case 125: { action. consumeStatementReturn(true); break; + case 125: { action. consumeStatementReturn(false); break; } // - // Rule 126: declaration ::= declaration_specifiers ; + // Rule 126: jump_statement ::= return expression ; // - case 126: { action. consumeDeclarationSimple(false); break; + case 126: { action. consumeStatementReturn(true); break; } // - // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ; + // Rule 127: declaration ::= declaration_specifiers ; // - case 127: { action. consumeDeclarationSimple(true); break; + case 127: { action. consumeDeclarationSimple(false); break; } // - // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers + // Rule 128: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ; // - case 128: { action. consumeDeclarationSpecifiersSimple(); break; + case 128: { action. consumeDeclarationSimple(true); break; } // - // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers + // Rule 129: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + case 129: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers + // Rule 130: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers // case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers + // Rule 131: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers + // Rule 132: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // - case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; + case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; } // - // Rule 157: init_declarator ::= complete_declarator = initializer + // Rule 133: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers // - case 157: { action. consumeDeclaratorWithInitializer(true); break; + case 133: { action. consumeDeclarationSpecifiersTypedefName(); break; } // - // Rule 159: storage_class_specifier ::= storage_class_specifier_token + // Rule 158: init_declarator ::= complete_declarator = initializer // - case 159: { action. consumeToken(); break; + case 158: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 165: simple_type_specifier ::= simple_type_specifier_token + // Rule 160: storage_class_specifier ::= storage_class_specifier_token // - case 165: { action. consumeToken(); break; + case 160: { action. consumeToken(); break; } // - // Rule 178: type_name_specifier ::= identifier_token + // Rule 166: simple_type_specifier ::= simple_type_specifier_token // - case 178: { action. consumeToken(); break; + case 166: { action. consumeToken(); break; } // - // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt } + // Rule 179: type_name_specifier ::= identifier_token // - case 179: { action. consumeTypeSpecifierComposite(false); break; + case 179: { action. consumeToken(); break; } // - // 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 } + // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt } // - case 180: { action. consumeTypeSpecifierComposite(true); break; + case 180: { action. consumeTypeSpecifierComposite(false); break; } // - // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // Rule 181: 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 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + case 181: { action. consumeTypeSpecifierComposite(true); break; } // - // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token // - case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; } // - // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token // - case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; } // - // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ; + // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token // - case 193: { action. consumeStructDeclaration(true); break; + case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; } // - // Rule 194: struct_declaration ::= specifier_qualifier_list ; + // Rule 194: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ; // - case 194: { action. consumeStructDeclaration(false); break; + case 194: { action. consumeStructDeclaration(true); break; } // - // Rule 195: struct_declaration ::= ERROR_TOKEN + // Rule 195: struct_declaration ::= specifier_qualifier_list ; // - case 195: { action. consumeDeclarationProblem(); break; + case 195: { action. consumeStructDeclaration(false); break; } // - // Rule 201: struct_declarator ::= : constant_expression + // Rule 196: struct_declaration ::= ERROR_TOKEN // - case 201: { action. consumeBitField(false); break; + case 196: { action. consumeDeclarationProblem(); break; } // - // Rule 202: struct_declarator ::= declarator : constant_expression + // Rule 202: struct_declarator ::= : constant_expression // - case 202: { action. consumeBitField(true); break; + case 202: { action. consumeBitField(false); break; } // - // Rule 203: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt } + // Rule 203: struct_declarator ::= declarator : constant_expression // - case 203: { action. consumeTypeSpecifierEnumeration(false); break; + case 203: { action. consumeBitField(true); break; } // - // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt } + // Rule 204: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt } // - case 204: { action. consumeTypeSpecifierEnumeration(true); break; + case 204: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 210: enumerator ::= identifier_token + // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt } // - case 210: { action. consumeEnumerator(false); break; + case 205: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 211: enumerator ::= identifier_token = constant_expression + // Rule 211: enumerator ::= identifier_token // - case 211: { action. consumeEnumerator(true); break; + case 211: { action. consumeEnumerator(false); break; } // - // Rule 212: type_qualifier ::= type_qualifier_token + // Rule 212: enumerator ::= identifier_token = constant_expression // - case 212: { action. consumeToken(); break; + case 212: { action. consumeEnumerator(true); break; } // - // Rule 216: function_specifier ::= inline + // Rule 213: type_qualifier ::= type_qualifier_token // - case 216: { action. consumeToken(); break; + case 213: { action. consumeToken(); break; } // - // Rule 218: declarator ::= <openscope-ast> pointer_seq direct_declarator + // Rule 217: function_specifier ::= inline // - case 218: { action. consumeDeclaratorWithPointer(true); break; + case 217: { action. consumeToken(); break; } // - // Rule 223: basic_direct_declarator ::= declarator_id_name + // Rule 219: declarator ::= <openscope-ast> pointer_seq direct_declarator // - case 223: { action. consumeDirectDeclaratorIdentifier(); break; + case 219: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 224: basic_direct_declarator ::= ( declarator ) + // Rule 224: basic_direct_declarator ::= declarator_id_name // - case 224: { action. consumeDirectDeclaratorBracketed(); break; + case 224: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 225: declarator_id_name ::= identifier + // Rule 225: basic_direct_declarator ::= ( declarator ) // - case 225: { action. consumeIdentifierName(); break; + case 225: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 226: declarator_id_name ::= identifier // - case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 226: { action. consumeIdentifierName(); break; } // - // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier // case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list ) + // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 230: function_direct_declarator ::= basic_direct_declarator ( ) + // Rule 230: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list ) // - case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 232: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator + // Rule 231: function_direct_declarator ::= basic_direct_declarator ( ) // - case 232: { action. consumeDeclaratorWithPointer(true); break; + case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list ) + // Rule 233: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator // - case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + case 233: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 235: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator + // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list ) // - case 235: { action. consumeDeclaratorWithPointer(true); break; + case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; } // - // Rule 236: identifier_list ::= identifier + // Rule 236: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator // - case 236: { action. consumeIdentifierKnR(); break; + case 236: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 237: identifier_list ::= identifier_list , identifier + // Rule 237: identifier_list ::= identifier // case 237: { action. consumeIdentifierKnR(); break; } // - // Rule 238: array_modifier ::= [ ] + // Rule 238: identifier_list ::= identifier_list , identifier // - case 238: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 238: { action. consumeIdentifierKnR(); break; } // - // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ] + // Rule 239: array_modifier ::= [ ] // - case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 239: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 240: array_modifier ::= [ assignment_expression ] + // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ] // - case 240: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ] + // Rule 241: array_modifier ::= [ assignment_expression ] // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 241: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 242: array_modifier ::= [ static assignment_expression ] + // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ] // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 243: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ] + // Rule 243: array_modifier ::= [ static assignment_expression ] // - case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ] + // Rule 244: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ] // case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 245: array_modifier ::= [ * ] + // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ] // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ] + // Rule 246: array_modifier ::= [ * ] // - case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 248: pointer_seq ::= pointer_hook * + // Rule 247: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ] // - case 248: { action. consumePointer(); break; + case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 249: pointer_seq ::= pointer_seq pointer_hook * + // Rule 249: pointer_seq ::= pointer_hook * pointer_hook // case 249: { action. consumePointer(); break; } // - // Rule 250: pointer_seq ::= pointer_hook * <openscope-ast> type_qualifier_list + // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook // - case 250: { action. consumePointerTypeQualifierList(); break; + case 250: { action. consumePointer(); break; } // - // Rule 251: pointer_seq ::= pointer_seq pointer_hook * <openscope-ast> type_qualifier_list + // Rule 251: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list // case 251: { action. consumePointerTypeQualifierList(); break; } // - // Rule 255: parameter_type_list ::= parameter_list + // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list // - case 255: { action. consumeEmpty(); break; + case 252: { action. consumePointerTypeQualifierList(); break; } // - // Rule 256: parameter_type_list ::= parameter_list , ... + // Rule 256: parameter_type_list ::= parameter_list // - case 256: { action. consumePlaceHolder(); break; + case 256: { action. consumeEmpty(); break; } // - // Rule 257: parameter_type_list ::= ... + // Rule 257: parameter_type_list ::= parameter_list , ... // case 257: { action. consumePlaceHolder(); break; } // - // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // Rule 258: parameter_type_list ::= ... // - case 260: { action. consumeParameterDeclaration(); break; + case 258: { action. consumePlaceHolder(); break; } // - // Rule 261: parameter_declaration ::= declaration_specifiers + // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 261: { action. consumeParameterDeclaration(); break; } // - // Rule 264: type_id ::= specifier_qualifier_list + // Rule 262: parameter_declaration ::= declaration_specifiers // - case 264: { action. consumeTypeId(false); break; + case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator + // Rule 265: type_id ::= specifier_qualifier_list // - case 265: { action. consumeTypeId(true); break; + case 265: { action. consumeTypeId(false); break; } // - // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq + // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator // - case 267: { action. consumeDeclaratorWithPointer(false); break; + case 266: { action. consumeTypeId(true); break; } // - // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator + // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq // case 268: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator // - case 272: { action. consumeDirectDeclaratorBracketed(); break; + case 269: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 273: array_direct_abstract_declarator ::= array_modifier + // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 273: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 274: array_direct_abstract_declarator ::= array_modifier // - case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 276: function_direct_abstract_declarator ::= ( ) + // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; - } + case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } // - // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // Rule 277: function_direct_abstract_declarator ::= ( ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; - } + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + } // - // Rule 278: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list ) + // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list ) + // Rule 279: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list ) // - case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 280: initializer ::= assignment_expression + // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list ) // - case 280: { action. consumeInitializer(); break; + case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list + // Rule 281: initializer ::= assignment_expression // - case 281: { action. consumeInitializerList(); break; + case 281: { action. consumeInitializer(); break; } // - // Rule 282: initializer ::= { <openscope-ast> } + // Rule 282: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 282: { action. consumeInitializerList(); break; } // - // Rule 283: start_initializer_list ::= $Empty + // Rule 283: initializer ::= { <openscope-ast> } // - case 283: { action. initializerListStart(); break; + case 283: { action. consumeInitializerList(); break; } // - // Rule 284: end_initializer_list ::= $Empty + // Rule 284: start_initializer_list ::= $Empty // - case 284: { action. initializerListEnd(); break; + case 284: { action. initializerListStart(); break; } // - // Rule 289: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 285: end_initializer_list ::= $Empty // - case 289: { action. consumeInitializerDesignated(); break; + case 285: { action. initializerListEnd(); break; } // - // Rule 293: designator_base ::= [ constant_expression ] + // Rule 290: designated_initializer ::= <openscope-ast> designation = initializer // - case 293: { action. consumeDesignatorArray(); break; + case 290: { action. consumeInitializerDesignated(); break; } // - // Rule 294: designator_base ::= . identifier_token + // Rule 294: designator_base ::= [ constant_expression ] // - case 294: { action. consumeDesignatorField(); break; + case 294: { action. consumeDesignatorArray(); break; } // - // Rule 295: designator ::= [ constant_expression ] + // Rule 295: designator_base ::= . identifier_token // - case 295: { action. consumeDesignatorArray(); break; + case 295: { action. consumeDesignatorField(); break; } // - // Rule 296: designator ::= . identifier_token + // Rule 296: designator ::= [ constant_expression ] // - case 296: { action. consumeDesignatorField(); break; + case 296: { action. consumeDesignatorArray(); break; } // - // Rule 297: translation_unit ::= external_declaration_list + // Rule 297: designator ::= . identifier_token // - case 297: { action. consumeTranslationUnit(); break; - } + case 297: { action. consumeDesignatorField(); break; + } // - // Rule 298: translation_unit ::= $Empty + // Rule 298: translation_unit ::= external_declaration_list // case 298: { action. consumeTranslationUnit(); break; - } + } // - // Rule 303: external_declaration ::= ; + // Rule 299: translation_unit ::= $Empty // - case 303: { action. consumeDeclarationEmpty(); break; + case 299: { action. consumeTranslationUnit(); break; } // - // Rule 304: external_declaration ::= ERROR_TOKEN + // Rule 304: external_declaration ::= ; // - case 304: { action. consumeDeclarationProblem(); break; + case 304: { action. consumeDeclarationEmpty(); break; } // - // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 305: external_declaration ::= ERROR_TOKEN // - case 307: { action. consumeFunctionDefinition(true); break; + case 305: { action. consumeDeclarationProblem(); break; } // - // Rule 308: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 308: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 308: { action. consumeFunctionDefinition(false); break; + case 308: { action. consumeFunctionDefinition(true); break; } // - // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 309: function_definition ::= <openscope-ast> function_declarator function_body // - case 309: { action. consumeFunctionDefinitionKnR(); break; + case 309: { action. consumeFunctionDefinition(false); break; } // - // Rule 310: function_body ::= { } + // Rule 310: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 310: { action. consumeStatementCompoundStatement(false); break; + case 310: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 311: function_body ::= { <openscope-ast> block_item_list } + // Rule 311: function_body ::= { } // - case 311: { action. consumeStatementCompoundStatement(true); break; + case 311: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 312: literal ::= MYTHREAD + // Rule 312: function_body ::= { <openscope-ast> block_item_list } // - case 312: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 312: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 313: literal ::= THREADS + // Rule 313: literal ::= MYTHREAD // - case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 314: literal ::= UPC_MAX_BLOCKSIZE + // Rule 314: literal ::= THREADS // - case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 315: unary_expression ::= upc_localsizeof unary_expression + // Rule 315: literal ::= UPC_MAX_BLOCKSIZE // - case 315: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 316: unary_expression ::= upc_localsizeof ( type_id ) + // Rule 316: unary_expression ::= upc_localsizeof unary_expression // - case 316: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 316: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 317: unary_expression ::= upc_blocksizeof unary_expression + // Rule 317: unary_expression ::= upc_localsizeof ( type_id ) // - case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 317: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 318: unary_expression ::= upc_blocksizeof ( type_id ) + // Rule 318: unary_expression ::= upc_blocksizeof unary_expression // - case 318: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 319: unary_expression ::= upc_elemsizeof unary_expression + // Rule 319: unary_expression ::= upc_blocksizeof ( type_id ) // - case 319: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 319: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 320: unary_expression ::= upc_elemsizeof ( type_id ) + // Rule 320: unary_expression ::= upc_elemsizeof unary_expression // - case 320: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 320: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 324: shared_type_qualifier ::= shared + // Rule 321: unary_expression ::= upc_elemsizeof ( type_id ) // - case 324: { action. consumeToken(); break; + case 321: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 325: reference_type_qualifier ::= relaxed + // Rule 325: shared_type_qualifier ::= shared // case 325: { action. consumeToken(); break; } // - // Rule 326: reference_type_qualifier ::= strict + // Rule 326: reference_type_qualifier ::= relaxed // case 326: { action. consumeToken(); break; } // - // Rule 327: layout_qualifier ::= [ constant_expression ] + // Rule 327: reference_type_qualifier ::= strict + // + case 327: { action. consumeToken(); break; + } + + // + // Rule 328: layout_qualifier ::= [ constant_expression ] // - case 327: { action. consumeLayoutQualifier(true, false); break; + case 328: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 328: layout_qualifier ::= [ * ] + // Rule 329: layout_qualifier ::= [ * ] // - case 328: { action. consumeLayoutQualifier(false, true); break; + case 329: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 329: layout_qualifier ::= [ ] + // Rule 330: layout_qualifier ::= [ ] // - case 329: { action. consumeLayoutQualifier(false, false); break; + case 330: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 331: synchronization_statement ::= upc_notify expression ; + // Rule 332: synchronization_statement ::= upc_notify expression ; // - case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 332: synchronization_statement ::= upc_notify ; + // Rule 333: synchronization_statement ::= upc_notify ; // - case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 333: synchronization_statement ::= upc_wait expression ; + // Rule 334: synchronization_statement ::= upc_wait expression ; // - case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 334: synchronization_statement ::= upc_wait ; + // Rule 335: synchronization_statement ::= upc_wait ; // - case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 335: synchronization_statement ::= upc_barrier expression ; + // Rule 336: synchronization_statement ::= upc_barrier expression ; // - case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 336: synchronization_statement ::= upc_barrier ; + // Rule 337: synchronization_statement ::= upc_barrier ; // - case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 337: synchronization_statement ::= upc_fence ; + // Rule 338: synchronization_statement ::= upc_fence ; // - case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 338: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 339: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 339: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 340: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 340: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 341: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 341: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 342: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 342: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 342: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 343: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 343: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 344: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 343: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 344: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 344: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 345: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 344: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 345: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 345: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 346: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 345: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 346: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 346: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 347: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 346: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 347: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 347: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 348: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 347: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 348: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 349: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 349: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 349: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 350: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 350: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 350: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 351: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 351: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 352: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 351: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 352: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 352: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 353: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 352: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 353: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 353: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 354: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 353: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 354: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 354: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 355: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 355: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 356: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 357: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 357: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 358: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 358: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 358: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 359: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 359: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 360: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 359: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 360: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 360: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 361: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 360: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 361: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 361: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 362: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 361: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 362: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 363: affinity ::= continue + // Rule 364: affinity ::= continue // - case 363: { action. consumeToken(); break; + case 364: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java index 154894148f8..06cf14bfe8f 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java @@ -35,339 +35,341 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 4,1,4,1,3,3,3,1,3,3, - 1,3,3,1,3,3,3,3,1,3, - 3,1,3,1,3,1,3,1,3,1, - 3,1,5,1,3,3,3,3,3,3, - 3,3,3,3,3,1,1,2,1,0, - 1,3,1,1,1,1,1,1,1,1, - 3,4,3,2,4,1,2,1,1,1, - 2,5,7,5,1,0,7,5,9,8, - 3,2,2,2,3,2,4,2,2,2, - 2,2,1,1,1,1,2,1,2,2, - 2,1,2,2,1,2,2,1,2,2, - 1,2,2,1,3,1,3,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,4,1,4,1,3,3,3,1,3, + 3,1,3,3,1,3,3,3,3,1, + 3,3,1,3,1,3,1,3,1,3, + 1,3,1,5,1,3,3,3,3,3, + 3,3,3,3,3,3,1,1,2,1, + 0,1,3,1,1,1,1,1,1,1, + 1,3,4,3,2,4,1,2,1,1, + 1,2,5,7,5,1,0,7,5,9, + 8,3,2,2,2,3,2,4,2,2, + 2,2,2,1,1,1,1,2,1,2, + 2,2,1,2,2,1,2,2,1,2, + 2,1,2,2,1,3,1,3,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6,8, - 0,0,1,1,3,3,3,0,1,0, - 1,2,4,2,1,1,1,3,1,1, - 2,3,7,8,0,1,0,1,3,1, - 3,1,1,1,1,1,1,3,1,1, - 1,1,1,3,1,2,2,1,5,3, - 1,3,5,1,3,1,3,2,4,3, - 5,4,6,6,3,5,1,2,3,4, - 5,0,1,2,1,3,1,1,3,2, - 1,1,1,1,2,1,2,3,1,1, - 1,3,1,2,2,2,3,4,5,1, - 7,3,0,0,1,1,3,3,4,1, - 1,2,3,2,3,2,1,0,1,2, - 1,1,1,1,1,2,4,3,6,2, - 4,1,1,1,2,4,2,4,2,4, - 1,1,2,1,1,1,3,3,2,1, - 3,2,3,2,3,2,2,11,10,10, - 9,10,9,9,8,10,9,9,8,9, - 8,8,7,10,9,9,8,9,8,8, - 7,1,1,-105,-2,0,-36,0,0,0, - 0,0,0,0,-208,0,0,0,0,0, - -117,0,-10,-30,0,-77,0,-19,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-4,0,-55,0,0,-23,0,0, - 0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,6, + 8,0,0,1,1,3,3,3,0,1, + 0,1,2,4,2,1,1,1,3,1, + 1,2,3,7,8,0,1,0,1,3, + 1,3,1,1,1,1,1,1,3,1, + 1,1,1,1,3,1,2,2,1,5, + 3,1,3,5,1,3,1,3,2,4, + 3,5,4,6,6,3,5,1,3,4, + 5,6,0,1,2,1,3,1,1,3, + 2,1,1,1,1,2,1,2,3,1, + 1,1,3,1,2,2,2,3,4,5, + 1,7,3,0,0,1,1,3,3,4, + 1,1,2,3,2,3,2,1,0,1, + 2,1,1,1,1,1,2,4,3,6, + 2,4,1,1,1,2,4,2,4,2, + 4,1,1,2,1,1,1,3,3,2, + 1,3,2,3,2,3,2,2,11,10, + 10,9,10,9,9,8,10,9,9,8, + 9,8,8,7,10,9,9,8,9,8, + 8,7,1,1,-105,-2,0,-36,0,0, + 0,0,0,0,0,-9,0,0,0,0, + 0,-20,-117,0,-37,0,0,-141,-147,0, + 0,0,0,0,0,0,0,0,-45,0, + 0,0,0,-21,-5,0,-8,0,-23,0, + 0,0,0,0,-100,0,0,0,0,0, -3,0,0,0,0,0,0,0,0,0, - 0,-9,0,0,0,0,0,-6,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-12,0,-254,0,0,0,0,0,0, - 0,0,0,-115,0,0,0,0,0,0, - -13,-8,0,0,0,0,-118,0,-1,0, - 0,0,-32,0,0,0,0,0,-20,0, - 0,0,-21,0,0,0,0,0,0,0, - -235,0,0,0,0,0,0,0,-275,0, - 0,0,-31,0,0,0,0,0,0,-39, - 0,0,0,0,0,0,-38,-34,0,-17, - -25,0,0,0,0,0,0,0,0,0, - 0,0,0,-287,0,0,0,-40,0,0, - 0,0,0,0,-143,0,0,0,0,0, - 0,0,-80,0,0,0,0,0,-35,0, - 0,0,0,0,0,0,0,0,0,-41, - 0,0,0,0,0,0,0,-43,0,0, - 0,0,0,-37,0,0,0,0,0,-71, - 0,0,0,0,0,0,0,0,0,-106, - -45,0,0,-73,0,0,-316,0,0,0, - 0,0,0,0,0,0,0,-85,0,0, - 0,0,0,-216,0,0,0,-152,0,0, - -75,0,0,0,0,0,0,0,0,0, - 0,-145,0,0,-81,0,0,0,0,0, - 0,0,-298,0,0,-107,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, + 0,0,-25,0,0,-19,0,0,0,0, + 0,0,0,0,-6,-75,0,0,0,0, + 0,0,-31,0,0,0,0,0,0,0, + 0,0,0,0,-40,-10,-46,0,0,-115, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-211,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-41,0,0,0,0,0,0,-276,0, + 0,0,0,0,0,0,0,0,0,-30, + 0,0,0,0,0,0,0,-4,0,-17, + 0,0,0,-43,0,0,0,0,0,0, + 0,0,-288,0,0,-81,0,0,0,0, 0,0,0,0,0,0,-59,0,0,0, - 0,0,0,-60,0,0,0,-26,-70,0, - 0,0,0,0,0,-146,0,-104,0,0, - 0,0,0,0,0,0,0,-140,0,0, - 0,0,0,0,0,-78,0,0,-154,0, - 0,0,0,0,0,0,-15,0,0,-339, - 0,0,0,0,0,0,-144,0,-27,-61, - 0,0,0,0,0,0,0,0,-190,0, - -82,0,0,-62,0,0,0,0,0,0, - 0,-90,0,0,0,0,0,-215,0,0, - -142,0,0,0,0,-150,0,0,0,0, - 0,0,0,-340,0,0,0,0,0,0, - 0,0,0,0,-63,0,0,0,0,0, - -64,0,0,0,0,0,0,0,-65,0, - 0,0,0,0,0,0,0,0,0,-124, - -66,0,0,-18,0,0,0,0,0,0, - -24,0,0,-155,0,0,0,0,0,0, - 0,0,0,0,-67,0,0,0,0,-241, - 0,0,0,0,-68,0,0,0,0,0, - 0,0,0,0,-69,-161,0,0,-184,0, - 0,0,0,0,0,0,-33,0,0,0, - 0,0,0,-5,0,-28,0,0,0,-100, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-60, + 0,0,0,0,0,-61,0,0,0,0, + 0,0,0,0,0,-15,0,-26,0,0, + -38,0,0,0,0,0,0,0,0,-27, + 0,0,-34,-142,0,-318,0,0,-77,0, + 0,0,0,0,0,0,-12,0,0,0, + 0,0,-221,0,0,0,-152,0,0,-71, + 0,0,0,0,0,0,0,0,0,-145, + 0,0,-76,0,0,0,0,0,0,0, + -62,0,0,0,0,0,-35,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-28,0,0,0,0,0, + 0,0,0,0,0,0,-254,0,0,0, + 0,0,-116,0,0,0,-268,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-78,0,0,-341,-13,0, + 0,0,0,0,0,-63,0,0,-18,0, + 0,0,0,0,0,-64,-144,0,-139,0, + 0,0,0,0,0,0,0,0,-29,-82, + 0,0,-32,0,0,0,0,0,0,0, + -33,0,0,0,0,0,-296,-92,0,0, + 0,-39,0,-106,0,0,0,0,0,0, + 0,0,0,-342,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-65,0,0,0,0, + 0,0,0,0,0,0,0,0,-24,0, + 0,0,-322,0,0,0,0,0,0,0, + 0,0,-42,0,0,-70,0,0,0,-1, + 0,-320,0,0,0,0,0,0,0,0, + 0,0,0,-146,-161,0,0,0,-300,0, + 0,0,0,0,0,-180,0,0,-66,0, + 0,-218,0,0,-104,0,0,0,-73,0, 0,0,0,0,0,0,0,0,-220,0, - 0,-72,-182,0,0,0,0,0,0,-91, - 0,0,0,0,0,0,0,-86,0,0, - 0,0,-79,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-102,0,0,-207, - 0,0,0,0,0,0,0,-99,0,0, - 0,0,0,0,-183,0,-166,0,-74,0, + 0,0,0,0,0,0,0,0,0,-85, + 0,0,0,0,0,0,0,0,0,0, + -209,0,-107,0,0,0,0,0,0,0, + 0,0,-234,0,0,-182,-102,0,0,-140, + 0,0,0,0,0,0,0,-90,0,0, + 0,0,0,-143,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,-222, - 0,0,-237,0,0,0,0,0,0,0, - -93,0,0,0,0,0,-250,0,-221,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-223,0,0,0,0,0,0,0, - 0,0,0,-42,0,0,-160,0,0,0, - -94,-289,0,0,0,0,0,-185,0,0, - 0,0,0,0,0,-224,0,0,0,-95, - 0,0,0,0,0,0,-180,0,0,-162, - 0,0,0,-141,0,0,0,-116,-29,0, - 0,0,0,0,0,0,0,0,-225,0, - 0,-97,0,0,0,0,0,0,0,-98, - 0,0,0,0,0,-267,-211,-163,0,0, - 0,0,0,-186,0,0,0,0,0,0, - 0,-226,0,0,0,0,0,0,0,0, - 0,0,-164,0,0,0,0,0,-212,-219, - 0,0,0,0,-92,-101,0,0,0,0, - 0,0,0,0,-227,0,0,-187,-103,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-209,0,-138,0,0,0,0,-188, - 0,0,0,0,0,0,0,-228,0,0, - 0,-148,0,0,0,0,0,0,0,0, - 0,-165,0,0,0,-266,-318,0,0,0, - 0,0,-189,0,0,0,0,0,0,0, - -229,0,0,0,-153,0,0,0,0,0, - 0,-234,0,0,-217,0,0,-240,-242,-277, - 0,0,0,-156,-236,0,0,0,0,0, - 0,0,0,-230,0,0,-243,-263,0,0, - 0,0,0,0,-245,0,0,0,0,0, - -271,-295,-157,-279,0,0,0,-158,-264,0, - 0,0,0,0,0,0,-231,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -246,0,0,-281,-291,-300,0,0,0,0, + -67,0,0,0,0,0,0,0,0,0, + -91,0,0,0,0,0,0,0,0,0, + 0,0,-68,-150,0,0,0,0,0,0, + 0,0,0,-223,0,0,-154,0,0,0, + 0,0,0,0,-99,0,0,0,0,0, + -69,-235,0,0,-166,0,-72,0,0,0, + 0,0,0,0,0,0,0,-224,0,0, + 0,-74,0,0,0,0,0,0,-160,0, + 0,0,0,0,-162,0,0,0,0,-155, + 0,-207,0,0,0,0,0,0,0,0, + 0,-225,-163,0,0,0,0,0,0,0, + 0,0,0,0,0,-164,0,0,0,-79, + 0,-165,-167,0,0,-93,0,0,0,0, + 0,0,0,0,0,-226,0,0,-184,-94, + 0,0,0,0,0,0,-185,0,0,0, + 0,0,-240,0,-190,0,0,0,-344,-186, + 0,0,0,0,0,0,0,0,0,-227, + 0,0,0,-183,0,0,0,0,0,0, + 0,0,0,-187,0,0,-95,-212,0,0, + 0,-80,0,0,0,0,0,0,0,0, + 0,0,0,-228,-266,0,0,-97,0,0, + 0,0,0,0,-98,0,0,-188,0,0, + -242,-290,0,0,0,0,-101,-189,0,0, + 0,0,0,0,0,0,0,-229,0,0, + -208,0,0,0,0,0,0,0,-236,0, + 0,-219,0,0,-103,0,-215,0,-86,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-230,0,0,-237,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-250,0, + 0,0,0,0,-138,-217,0,0,0,0, + 0,0,0,0,0,-231,0,0,-243,-148, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-278,-263,-153,0,-87,0,-156,0, 0,0,0,0,0,0,0,0,0,-232, - 0,0,-252,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-296,-297,-303,-306, - -159,0,0,-290,-288,0,0,0,0,0, - 0,0,-249,0,0,0,-311,0,0,0, - 0,0,0,-294,0,0,-308,0,0,0, - -325,-330,-320,0,0,0,-169,-315,0,0, - 0,0,0,0,0,-265,0,0,0,-174, - 0,0,0,0,0,0,-309,0,0,-332, - 0,0,0,-341,-177,-167,0,0,0,0, - 0,0,0,0,0,0,0,0,-269,0, - 0,-312,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-342,-336,0,0,0, - -178,-191,0,0,0,0,0,0,0,0, - 0,-270,0,0,-322,0,0,0,0,0, - 0,0,-327,0,0,0,0,0,-192,-360, - -193,0,0,0,-194,-338,-334,0,0,0, - 0,0,0,0,-292,0,0,0,-195,0, - 0,0,0,0,0,0,0,0,-346,0, - 0,-196,-197,-198,-87,0,-199,0,0,0, - 0,0,0,0,0,0,0,-314,0,0, - 0,-200,0,0,0,0,0,0,-348,0, - 0,-201,0,0,-202,-203,-204,-88,0,0, - 0,0,0,0,0,0,0,0,0,0, - -319,0,0,-352,-205,0,0,0,0,0, - 0,-354,0,0,0,0,0,-206,-213,-147, - -89,0,0,0,0,0,0,0,0,0, - 0,0,0,-343,0,0,-357,-214,0,0, - 0,0,0,0,-244,0,0,0,0,0, - -363,-255,-256,-257,0,0,0,0,0,0, - 0,0,0,0,0,0,-260,-258,0,-362, - -259,0,0,0,0,0,0,-7,0,0, - 0,0,0,-44,0,0,0,0,-268,0, - -293,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-310, - -317,-367,0,0,0,0,0,-84,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-371,0,-374,0,0, - 0,-172,0,0,0,0,0,0,0,-11, - -210,0,0,0,0,0,-376,0,0,0, - 0,0,0,0,0,0,0,0,-238,0, - 0,0,0,0,0,-247,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-47,0,0,0,0, - 0,0,0,0,0,0,-151,0,0,0, - 0,0,0,0,-137,0,0,0,-76,0, - 0,0,0,0,0,-384,0,0,0,0, - 0,0,0,0,-233,0,0,0,0,0, + 0,0,-245,-157,0,0,0,0,0,0, + -158,0,0,0,0,0,-280,-159,-169,0, + -88,0,-174,0,0,0,0,0,0,0, + 0,0,0,-249,0,0,-246,-177,0,0, + 0,0,0,0,-178,0,0,0,0,0, + -282,-272,-191,0,-89,0,0,0,0,0, + 0,0,0,0,0,0,0,-260,0,0, + -252,-192,0,0,0,0,0,0,-264,0, + 0,0,0,0,-292,-193,-194,0,-238,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-265,0,0,-289,-195,0,0,0,0, + 0,0,-291,0,0,0,0,0,-299,-297, + -313,-239,0,0,0,0,-295,0,0,0, + 0,0,0,0,-270,0,0,-317,-196,0, + 0,0,0,0,0,-197,0,0,-298,0, + 0,-302,-305,-308,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-271,-310, + 0,0,0,0,0,0,0,0,0,-311, + 0,0,0,0,0,-327,-198,0,0,-216, + 0,0,-314,0,0,0,0,0,0,0, + 0,0,-293,0,0,-324,-199,0,0,0, + 0,0,0,-340,0,0,0,0,0,-332, + -334,-200,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-316,-338,0,-329,0, + 0,0,0,0,0,0,-336,0,0,0, + 0,0,-362,-201,-267,0,-202,0,0,-203, + 0,0,0,0,0,0,0,0,-321,0, + 0,-348,-204,0,0,0,0,0,0,-205, + 0,0,0,0,0,-343,-365,-206,-213,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-345,-214,0,-350,-244,0,0,0,0, + 0,0,-354,0,0,0,0,0,-44,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-255,-256,-257,-258,-275,-259, + -356,-359,0,-84,0,0,0,0,-47,0, + 0,0,0,0,0,0,0,0,0,-11, + 0,0,0,0,0,0,0,0,0,-269, + -294,-312,-319,0,0,0,0,0,0,0, + 0,0,0,-7,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-364,0,-172,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-369,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-247,0,0,0,0,0,0,0,0, + 0,0,0,-110,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-373,0, + -301,0,0,0,0,0,0,-376,-378,0, + 0,0,-151,0,0,-386,0,0,0,0, + 0,0,-137,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-233,0,0,0, + 0,0,0,0,-118,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-126, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-210,0,0,0,-22,0,0,0,0, + 0,0,0,0,0,0,-134,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-277,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-22,0,0,0,0,0,0,0, - 0,-134,0,0,0,-251,0,0,0,0, + 0,0,0,0,0,-136,0,0,-135,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-239,0,0,0,0,0,0,0, + 0,0,0,0,0,-279,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-135,0,0,0,0, + -261,0,0,0,0,-96,0,0,0,0, + -48,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-276,0,0,0,0,0,0,0, - 0,0,0,0,-278,0,0,0,0,0, - 0,0,-96,0,0,0,0,-48,0,0, + 0,-132,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-173,0, + 0,0,0,0,0,0,0,0,0,-175, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-132,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-173,0,0,0,0, - 0,0,0,0,0,0,-175,0,0,0, + 0,0,0,0,0,-248,0,0,0,0, + 0,0,0,0,-284,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-274,0,0,0,0,0,0,0,0, - 0,0,-248,0,0,0,0,-51,0,0, 0,0,0,0,0,0,0,0,0,0, + -286,0,0,0,0,0,0,0,0,-287, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-283,0,0,0,0,0,0, + 0,0,0,0,0,-323,0,0,0,0, + 0,0,0,0,-328,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-285, - 0,0,0,0,-218,0,0,0,-286,0, 0,0,0,0,0,0,0,0,0,0, + -339,0,0,0,0,0,0,0,0,-346, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-321,0,0,0,0,0, - 0,0,0,-326,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-337, - 0,0,0,0,0,0,0,0,-344,0, + 0,0,0,0,0,-347,0,0,0,0, + 0,0,0,0,-349,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-345,0,0,0,0,0, - 0,0,0,-347,0,0,0,0,0,0, + -352,0,0,0,0,0,0,0,0,-353, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-350, - 0,0,0,0,0,0,0,0,-351,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-355,0,0,0,0, + 0,0,0,0,-358,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-353,0,0,0,0,0, - 0,0,0,-356,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-361, - 0,0,0,0,0,0,0,0,-364,0, + -363,0,0,0,0,0,0,0,0,-366, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-365,0,0,0,0,0, - 0,0,0,-366,0,0,0,0,0,0, + 0,0,0,0,0,-367,0,0,0,0, + 0,0,0,0,-368,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-368, - 0,0,0,0,0,0,0,0,-369,0, 0,0,0,0,0,0,0,0,0,0, + -370,0,0,0,0,0,0,0,0,-371, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-370,0,0,0,0,0, - 0,0,0,-372,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-373, - 0,0,0,0,0,0,0,0,-375,0, + 0,0,0,0,0,-372,0,0,0,0, + 0,0,0,0,-374,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-378,0,0,0,0,0, - 0,0,0,-379,0,0,0,0,0,0, + -375,0,0,0,0,0,0,0,0,-377, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-380, - 0,0,0,0,0,0,0,0,-381,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-380,0,0,0,0, + 0,0,0,0,-381,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-382,0,0,0,0,0, - 0,0,0,-383,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-385, - 0,0,0,0,0,0,-176,0,0,0, + -382,0,0,0,0,0,0,0,0,-383, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-133,0,0,-262,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-384,0,0,0,0, + 0,0,0,0,-385,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -83,0,0,0,0,0,0,-280,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-313,0, + -387,0,0,0,0,0,0,-176,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-133,0,0,-262, 0,0,0,0,0,0,0,0,0,0, - -126,0,0,0,0,0,0,0,0,0, + 0,0,0,-281,0,0,0,0,0,0, + 0,-83,0,0,0,0,0,0,0,0, + -49,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-315, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,-127,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-128,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-129,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-130,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -131,0,0,0,0,0,0,0,0,0, - 0,-14,0,0,-122,0,0,-16,0,0, - 0,0,0,0,0,0,0,0,-123,0, + 0,0,-128,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-129,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -130,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-131,0,0, + 0,0,0,0,0,0,0,0,-14,0, + 0,-122,0,0,-16,0,0,0,0,0, + 0,0,0,0,0,-123,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -181,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-125,0,0,0,0,0,0, - 0,0,0,0,-149,0,0,0,0,0, - 0,0,0,0,0,0,0,-272,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-108,0,0,-52, 0,0,0,0,0,0,0,0,0,0, - 0,0,-53,0,0,0,0,0,0,0, - 0,0,0,-54,0,0,0,0,0,0, - 0,0,0,0,-56,0,0,0,0,0, - 0,0,0,0,0,0,-109,0,0,0, + -55,0,0,-181,0,0,0,0,0,0, + 0,-124,0,0,0,0,0,0,0,0, + 0,0,-125,0,0,0,0,0,0,0, + 0,0,0,0,0,-149,0,0,0,0, + 0,0,0,0,0,0,0,-168,0,0, + -273,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-119,0,0,-253,0,0,0,0, - 0,0,0,-120,0,0,0,0,0,0, - 0,0,0,0,-121,0,0,-273,0,0, - 0,0,0,0,0,-179,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-46, - 0,-299,0,0,0,0,0,-302,0,0, + -51,0,0,0,0,0,0,0,0,0, + 0,-108,0,0,0,-52,0,0,0,0, + 0,0,0,0,0,0,-53,0,0,0, + 0,0,0,0,0,0,0,-54,0,0, + 0,0,0,0,0,0,0,0,-56,0, + 0,0,0,0,0,0,0,0,0,-109, 0,0,0,0,0,0,0,0,0,0, - 0,0,-49,0,0,0,0,0,0,0, - 0,0,0,0,0,-50,0,0,0,0, + 0,0,0,0,0,0,0,-119,0,0, + 0,0,0,0,0,0,0,0,-120,0, + 0,0,0,0,0,0,0,0,0,-121, + 0,0,-253,0,0,0,0,0,0,0, + -179,0,0,0,0,0,0,0,0,0, + 0,0,-274,0,-50,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-57,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-110,0,0,-57,0,0,0, - 0,0,0,0,0,0,-58,0,0,0, - 0,0,0,0,0,0,0,-111,0,-112, - 0,0,0,0,-113,0,0,0,0,-139, - 0,0,0,0,-261,0,0,0,0,0, - 0,-114,0,0,0,0,0,-323,0,0, + -111,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-251,-112,0,0,-58, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-282,0,0,0,0,0, + 0,0,0,0,0,-113,0,-114,0,0, + 0,0,0,0,-241,0,0,0,0,0, + 0,0,0,-170,0,0,0,0,0,0, + 0,-303,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-324,0,0,0,0,0,-328,0, - 0,0,0,0,-329,0,0,0,0,0, - 0,0,0,-331,0,0,0,0,0,-301, + 0,0,0,0,0,-304,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -325,0,-326,0,0,0,0,0,-330,0, + 0,0,0,0,0,0,0,-331,0,0, + 0,0,0,-333,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-351, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-349,0,0,0,0, - -355,0,0,0,0,0,0,0,0,0, - 0,0,-358,0,0,0,0,-359,0,0, - 0,0,0,0,0,0,0,0,0,-377, - 0,0,0,0,-304,0,0,0,0,0, - 0,-307,0,0,0,0,-305,0,0,0, - 0,0,0,-335,0,0,0,0,0,0, - 0,0,-333,0,0,0,0,0,-136,0, - -168,0,0,0,0,0,0,-170,0,-171, - 0,0,0,0,0,-284,0,0,0,0, + 0,0,0,0,-357,0,0,0,0,-360, 0,0,0,0,0,0,0,0,0,0, + 0,-361,0,0,0,0,-379,0,0,0, + 0,0,0,0,0,0,0,0,-283,0, + 0,0,0,-306,0,0,0,0,0,0, + -309,0,0,0,0,-307,0,0,0,0, + 0,0,-337,0,0,0,0,0,0,0, + 0,-335,0,0,0,0,0,-171,0,-285, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -377,341 +379,344 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface BaseAction { public final static char baseAction[] = { - 110,1,39,39,11,11,45,45,3,3, - 2,2,5,5,5,5,6,6,6,7, - 8,8,8,8,8,8,8,8,73,73, - 94,9,9,9,9,9,9,9,9,9, - 9,9,10,10,12,12,12,12,13,13, - 13,15,15,15,16,16,16,16,16,26, - 26,26,27,27,28,28,29,29,30,30, - 31,31,32,32,34,34,34,34,34,34, - 34,34,34,34,34,34,18,14,4,111, - 111,96,96,58,19,19,19,19,19,19, - 19,20,20,20,17,17,97,97,74,74, - 21,21,22,22,22,66,66,23,23,23, - 23,24,24,24,24,24,50,50,33,33, - 33,33,33,52,52,52,87,87,82,82, - 82,82,83,83,83,84,84,84,85,85, - 85,86,86,86,98,98,88,88,89,53, - 55,55,55,55,55,67,69,69,69,69, - 69,69,69,69,69,69,69,69,78,75, - 75,112,113,79,79,76,76,76,90,99, - 99,100,100,91,91,91,56,114,114,101, - 102,102,102,77,77,115,103,103,104,104, - 92,92,35,36,36,36,54,57,57,46, - 46,46,46,40,40,41,47,47,48,42, - 42,105,105,49,117,117,116,116,51,51, - 51,51,51,51,51,51,51,106,59,59, - 59,59,43,80,80,70,70,70,71,71, - 61,61,118,118,60,60,81,81,81,62, - 62,62,63,64,64,64,65,65,65,65, - 68,68,68,72,119,95,95,95,95,93, - 120,121,121,122,122,123,123,110,110,124, - 124,107,107,107,107,125,125,108,108,108, - 109,109,5,5,5,9,9,9,9,9, - 9,35,35,37,37,38,38,126,126,126, - 19,25,25,25,25,25,25,25,23,23, + 110,1,128,39,39,11,11,45,45,3, + 3,2,2,5,5,5,5,6,6,6, + 7,8,8,8,8,8,8,8,8,73, + 73,94,9,9,9,9,9,9,9,9, + 9,9,9,10,10,12,12,12,12,13, + 13,13,15,15,15,16,16,16,16,16, + 26,26,26,27,27,28,28,29,29,30, + 30,31,31,32,32,33,33,33,33,33, + 33,33,33,33,33,33,33,18,14,4, + 111,111,96,96,58,19,19,19,19,19, + 19,19,20,20,20,17,17,97,97,74, + 74,21,21,22,22,22,66,66,23,23, + 23,23,24,24,24,24,24,50,50,34, + 34,34,34,34,52,52,52,87,87,82, + 82,82,82,83,83,83,84,84,84,85, + 85,85,86,86,86,98,98,88,88,89, + 53,55,55,55,55,55,67,69,69,69, + 69,69,69,69,69,69,69,69,69,78, + 75,75,112,113,79,79,76,76,76,90, + 99,99,100,100,91,91,91,56,114,114, + 101,102,102,102,77,77,115,103,103,104, + 104,92,92,35,36,36,36,54,57,57, + 46,46,46,46,41,41,42,47,47,48, + 43,43,105,105,49,117,117,116,116,51, + 51,51,51,51,51,51,51,51,106,59, + 59,59,59,40,80,80,70,70,70,71, + 71,61,61,118,118,60,60,81,81,81, + 62,62,62,63,64,64,64,65,65,65, + 65,68,68,68,72,119,95,95,95,95, + 93,120,121,121,122,122,123,123,110,110, + 124,124,107,107,107,107,125,125,108,108, + 108,109,109,5,5,5,9,9,9,9, + 9,9,35,35,37,37,38,38,126,126, + 126,19,25,25,25,25,25,25,25,23, 23,23,23,23,23,23,23,23,23,23, 23,23,23,23,23,23,23,23,23,23, - 23,23,44,44,362,2151,1431,2558,933,16, - 20,17,687,1182,44,2956,694,764,230,750, - 811,2875,876,56,2077,89,2558,747,1912,887, - 805,831,819,865,855,875,74,230,91,134, - 212,321,322,2864,1853,2503,126,19,2318,1624, - 16,20,17,687,42,35,136,133,135,159, - 179,2213,834,178,493,223,232,969,528,223, - 228,138,346,165,217,569,220,222,1922,142, - 145,148,151,383,328,483,1618,432,1700,2782, - 2788,530,401,310,2558,1032,134,212,321,322, - 1395,493,223,231,2059,277,30,134,212,321, - 322,2043,2509,136,133,135,159,129,876,1895, - 421,87,303,2320,144,133,135,159,138,2045, - 165,759,1203,2135,224,531,142,145,148,151, - 383,2984,638,1618,432,1700,2782,2788,530,2601, - 663,19,403,2051,16,20,17,687,1182,44, - 2886,694,764,127,750,811,438,1922,2150,302, - 2284,1901,178,699,1767,805,831,819,865,855, - 875,74,698,280,2626,663,19,308,2606,16, - 20,17,687,1182,44,2356,694,764,24,750, - 811,749,259,129,638,134,212,321,322,2806, - 805,831,819,865,855,875,74,285,280,226, - 2181,1234,137,133,135,159,299,301,1910,365, - 253,212,321,322,129,563,708,139,323,165, - 129,3090,286,894,1328,143,146,149,152,383, - 2320,2218,285,305,129,1064,1234,2412,663,19, - 227,2986,16,20,17,687,1182,44,2942,694, - 764,337,750,811,2870,634,307,286,2284,1347, - 178,1929,555,805,831,819,865,855,875,74, - 327,280,2826,2095,19,1912,887,16,20,17, - 687,1182,44,2908,694,764,2320,750,811,254, - 212,321,322,134,212,321,322,18,805,831, - 819,865,855,875,74,287,1130,2857,729,1234, - 136,133,135,159,2108,528,223,228,2059,145, - 186,217,569,220,222,138,2218,165,2864,2587, - 288,126,158,142,145,148,151,383,129,1097, - 1618,432,1700,2782,2788,530,2290,1560,19,2952, - 638,16,20,17,687,1182,44,2049,694,764, - 202,750,811,155,548,240,309,2360,638,2059, - 1903,185,805,831,819,865,855,875,74,2218, - 706,2528,708,19,2212,238,16,20,17,687, - 1182,44,2942,694,764,123,750,811,2356,306, - 1767,2148,778,1651,1363,291,2320,805,831,819, - 865,855,875,74,2651,280,19,229,21,16, - 20,17,687,1182,44,2317,694,764,258,750, - 811,2048,1165,253,212,321,322,786,1215,2268, - 805,831,819,865,855,875,74,1069,280,157, - 2776,2208,19,1234,72,16,20,17,687,42, - 44,2478,1461,19,129,1235,16,20,17,687, - 42,44,896,694,764,275,750,811,1096,281, - 2939,876,289,1225,87,2468,1234,805,831,819, - 865,855,875,93,115,2466,2776,513,19,2320, - 329,16,20,17,687,1182,44,72,694,764, - 1592,750,811,384,1966,421,1905,303,912,611, - 2318,1692,805,831,819,865,855,875,74,2362, - 91,19,2560,2922,16,20,17,687,1182,44, - 2942,694,764,122,750,811,1294,403,2864,876, - 513,336,87,2781,638,805,831,819,865,855, - 875,74,1027,1261,302,104,1779,2776,239,19, - 129,3095,16,20,17,687,42,44,2942,694, - 764,111,750,811,274,2907,1767,2864,364,2206, - 1883,87,1395,805,831,819,865,855,875,93, - 2776,1228,19,129,509,16,20,17,687,1182, - 44,2322,694,764,258,750,811,129,544,2882, - 708,300,301,786,1215,1380,805,831,819,865, - 855,875,74,2776,85,19,275,1719,16,20, - 17,687,1182,44,72,694,764,2942,750,811, - 335,2407,2781,638,254,212,321,322,2320,805, - 831,819,865,855,875,74,2776,84,19,1593, - 2565,16,20,17,687,1182,44,72,694,764, - 2942,750,811,333,2221,1767,1559,513,2059,2059, - 30,187,805,831,819,865,855,875,74,2776, - 83,19,2568,2631,16,20,17,687,1182,44, - 2569,694,764,258,750,811,2888,2221,2942,1559, - 513,331,1412,1215,2320,805,831,819,865,855, - 875,74,2776,82,19,1594,1866,16,20,17, - 687,1182,44,2942,694,764,125,750,811,2980, - 2218,254,212,321,322,2059,2682,1192,805,831, - 819,865,855,875,74,2776,81,19,2320,2757, - 16,20,17,687,1182,44,208,694,764,1608, - 750,811,23,2864,2609,2866,194,1129,1578,242, - 2320,805,831,819,865,855,875,74,2776,80, - 19,1611,2041,16,20,17,687,1182,44,208, - 694,764,2942,750,811,121,2059,2059,1559,294, - 1248,1578,1269,2320,805,831,819,865,855,875, - 74,2776,79,19,22,2807,16,20,17,687, - 1182,44,72,694,764,2316,750,811,2942,2942, - 2942,2638,3125,3170,2972,2956,233,805,831,819, - 865,855,875,74,2776,78,19,2320,2980,16, - 20,17,687,1182,44,2320,694,764,2064,750, - 811,2218,2218,1983,2942,513,2090,3235,2973,2956, - 805,831,819,865,855,875,74,2776,77,19, - 282,2012,16,20,17,687,1182,44,209,694, - 764,2320,750,811,2942,2940,2942,3242,193,3108, - 241,243,2099,805,831,819,865,855,875,74, - 2776,76,19,2320,203,16,20,17,687,1182, - 44,1354,694,764,272,750,811,2218,2998,2942, - 2942,74,3149,3263,2956,2320,805,831,819,865, - 855,875,74,2776,75,19,278,2998,16,20, - 17,687,1182,44,2956,694,764,2942,750,811, - 3254,2942,2942,2920,3196,3201,244,2862,2956,805, - 831,819,865,855,875,74,2776,92,19,180, - 2881,16,20,17,687,42,44,2320,694,764, - 2942,750,811,3213,2218,2910,2939,364,1427,204, - 87,1368,805,831,819,865,855,875,93,2776, - 115,19,2320,740,16,20,17,687,1182,44, - 1466,694,764,279,750,811,2059,2942,296,708, - 117,2851,2467,293,211,805,831,819,865,855, - 875,74,2776,1262,19,2320,860,16,20,17, - 687,1182,44,2320,694,764,2169,750,811,2469, - 2942,2207,1229,3230,2230,2315,2956,2320,805,831, - 819,865,855,875,74,2776,1327,19,2300,2114, - 16,20,17,687,42,44,292,694,764,2320, - 750,811,2118,1930,2394,2864,876,2873,334,87, - 2309,805,831,819,865,855,875,93,2776,1060, - 19,27,2877,16,20,17,687,42,44,2320, - 694,764,2854,750,811,2871,2892,2879,2864,876, - 2335,332,87,201,805,831,819,865,855,875, - 93,2776,1098,19,2320,2943,16,20,17,687, - 42,44,2320,694,764,2370,750,811,2782,2656, - 2356,2864,876,2379,124,87,202,805,831,819, - 865,855,875,93,2776,1123,19,2320,2982,16, - 20,17,687,42,44,2572,694,764,2414,750, - 811,2218,2985,2986,2987,253,212,321,322,1394, - 805,831,819,865,855,875,93,2776,2989,19, - 2320,2990,16,20,17,687,42,44,2398,694, - 764,2475,750,811,220,364,1149,110,86,387, - 295,2994,1591,805,831,819,865,855,875,73, - 999,95,958,108,94,96,97,98,99,330, - 2056,2997,2320,134,212,321,322,708,1,364, - 1149,110,86,2484,3347,3347,909,3347,3347,3347, - 141,133,135,159,109,95,958,108,94,96, - 97,98,99,330,3347,140,2320,165,2320,3347, - 3347,708,291,364,1149,110,86,2510,106,2519, - 1950,2110,638,311,3347,3347,3347,2320,109,95, - 958,108,94,96,97,98,99,330,2545,2864, - 876,1658,1923,87,3347,708,147,364,1149,110, - 86,3347,107,1230,196,134,212,321,322,3347, - 3347,3347,109,95,958,108,94,96,97,98, - 99,330,147,133,135,159,2676,1163,19,708, - 3347,16,20,17,687,319,106,1923,1222,3347, - 3347,105,3347,3347,3347,2776,109,19,3347,2077, - 16,20,17,687,42,44,2320,694,764,1726, - 750,811,192,3347,3347,1932,2978,2580,3347,3347, - 107,805,831,819,865,1558,276,528,223,228, - 3347,3347,3347,217,569,220,222,3347,273,528, - 223,228,969,3347,262,218,569,220,222,266, - 965,913,271,3347,3347,528,223,228,3347,3347, - 3347,217,569,220,222,3347,273,3347,263,3347, - 3347,3347,483,1912,1024,3347,3347,266,965,913, - 271,3347,2776,3347,19,3347,2919,16,20,17, - 687,42,44,3347,694,764,1313,750,811,3347, - 3347,3347,3347,2864,876,260,1935,87,805,831, - 819,1526,3347,528,223,580,3347,1264,3347,217, - 569,220,588,3347,3347,3347,2776,3347,19,969, - 158,16,20,17,687,42,44,273,694,764, - 3347,750,811,2864,876,3347,3002,87,268,965, - 913,271,805,831,1527,2864,876,1296,3008,87, - 3347,154,548,433,876,1149,110,86,2701,1329, - 19,520,3347,16,20,17,687,317,527,3347, - 95,958,1367,94,96,97,98,99,330,2776, - 594,19,3347,3347,16,20,17,687,42,44, - 3347,694,764,3347,750,811,476,876,1149,110, - 86,3347,3347,3347,3347,805,1522,519,876,1149, - 110,86,3347,95,958,103,94,96,97,98, - 99,330,2883,3347,95,958,101,94,96,97, - 98,99,330,562,876,1149,110,86,2776,3347, - 19,3347,3347,16,20,17,687,42,39,3347, - 95,958,102,94,96,97,98,99,330,3347, - 3347,3347,528,223,228,969,3347,3347,218,569, - 220,222,3347,273,605,876,1149,110,86,3347, - 3347,3347,3347,3347,268,965,913,271,3347,3347, - 3347,95,958,118,94,96,97,98,99,330, - 648,876,1149,110,86,2356,3347,3347,3347,691, - 876,1149,110,86,3347,3347,3347,95,958,114, - 94,96,97,98,99,330,95,958,1650,94, - 96,97,98,99,330,734,876,1149,110,86, - 253,212,321,322,777,876,1149,110,86,3347, - 3347,3347,95,958,361,94,96,97,98,99, - 330,95,958,353,94,96,97,98,99,330, - 820,876,1149,110,86,3347,3347,3347,3347,863, - 876,1149,110,86,3347,999,3347,95,958,113, - 94,96,97,98,99,330,95,958,360,94, - 96,97,98,99,330,906,876,1149,110,86, - 3347,1409,3347,3347,949,876,1149,110,86,3347, - 3347,3347,95,958,359,94,96,97,98,99, - 330,95,958,357,94,96,97,98,99,330, - 992,876,1149,110,86,3347,3347,3347,3347,1035, - 876,1149,110,86,3347,3347,3347,95,958,352, - 94,96,97,98,99,330,95,958,351,94, - 96,97,98,99,330,1078,876,1149,110,86, - 3347,3347,3347,3347,1121,876,1149,110,86,3347, - 3347,3347,95,958,349,94,96,97,98,99, - 330,95,958,345,94,96,97,98,99,330, - 1164,876,1149,110,86,3347,3347,3347,3347,1207, - 876,1149,110,86,3347,3347,3347,95,958,120, - 94,96,97,98,99,330,95,958,358,94, - 96,97,98,99,330,1250,876,1149,110,86, - 3347,3347,3347,3347,1293,876,1149,110,86,3347, - 3347,3347,95,958,356,94,96,97,98,99, - 330,95,958,355,94,96,97,98,99,330, - 1336,876,1149,110,86,3347,3347,3347,3347,1379, - 876,1149,110,86,3347,3347,3347,95,958,350, - 94,96,97,98,99,330,95,958,348,94, - 96,97,98,99,330,1422,876,1149,110,86, - 3347,3347,3347,3347,1465,876,1149,110,86,3347, - 3347,3347,95,958,347,94,96,97,98,99, - 330,95,958,344,94,96,97,98,99,330, - 1508,876,1149,110,86,3347,3347,3347,3347,1551, - 876,1149,110,86,3347,3347,3347,95,958,343, - 94,96,97,98,99,330,95,958,341,94, - 96,97,98,99,330,1594,876,1149,110,86, - 3347,3347,3347,3347,1637,876,1149,110,86,3347, - 3347,3347,95,958,119,94,96,97,98,99, - 330,95,958,354,94,96,97,98,99,330, - 1680,876,1149,110,86,3347,3347,3347,3347,1723, - 876,1149,110,86,3347,3347,3347,95,958,346, - 94,96,97,98,99,330,95,958,342,94, - 96,97,98,99,330,1766,876,1149,110,86, - 3347,3347,3347,3347,1809,876,1149,110,86,3347, - 3347,3347,95,958,340,94,96,97,98,99, - 330,95,958,339,94,96,97,98,99,330, - 1852,876,1149,110,86,3347,3347,1912,887,3347, - 3347,3347,3347,3347,3347,3347,3347,95,958,338, - 94,96,97,98,99,330,2776,3347,19,1916, - 887,16,20,17,687,42,44,3347,694,764, - 3347,750,811,3347,3347,3347,3347,528,223,228, - 3347,2077,1525,217,569,220,222,3347,2864,876, - 3347,3247,87,3347,158,3347,3347,3347,3347,528, - 223,228,1330,3347,3347,217,569,220,222,1916, - 887,3347,3347,3347,3347,3347,1631,3347,3347,3347, - 3347,528,223,1268,969,154,548,218,569,220, - 1263,2776,3347,19,3347,520,16,20,17,687, - 42,44,3347,694,764,3347,750,1479,3347,528, - 223,228,3347,3347,3347,217,569,220,222,3347, - 197,199,2776,3347,19,3347,1631,16,20,17, - 687,42,44,1295,694,764,3347,750,1492,2776, - 3347,19,3347,3347,16,20,17,687,42,44, - 3347,694,764,2776,1493,19,3347,3347,16,20, - 17,687,42,44,3347,694,764,2776,1494,19, - 198,199,16,20,17,687,42,44,3347,694, - 764,2776,1497,19,3347,3347,16,20,17,687, - 42,44,2021,694,764,2776,1512,19,2076,3347, - 16,20,17,687,42,44,3347,694,1432,2776, - 3347,19,3347,3347,16,20,17,687,42,44, - 3347,694,1459,3347,3347,3347,3347,134,212,321, - 322,1984,2956,134,212,321,322,3347,3347,3347, - 3347,3347,276,3347,150,133,135,159,3347,3347, - 153,133,135,159,2776,3347,19,3347,3347,16, - 20,17,687,42,44,2503,1465,19,3347,3347, - 16,20,17,687,42,35,3347,3347,2503,3347, - 19,3347,273,16,20,17,687,42,35,3347, - 3347,3347,3347,266,965,913,271,2355,1057,3347, - 2776,3347,19,3347,245,16,20,17,687,42, - 38,3347,1313,2776,3347,19,3347,246,16,20, - 17,687,42,37,2776,3347,19,3347,3347,16, - 20,17,687,42,36,2776,3347,19,3347,3347, - 16,20,17,687,42,34,3347,2776,273,19, - 3347,3347,16,20,17,687,42,35,3347,266, - 965,913,271,2776,3347,19,2966,638,16,20, - 17,687,42,47,2776,3347,19,3347,265,16, - 20,17,687,42,46,2776,3347,19,2966,638, - 16,20,17,687,42,45,2576,3347,19,1767, - 3347,16,20,17,687,42,43,3347,3347,513, - 129,364,2941,876,87,3347,87,3347,2941,876, - 3347,1767,87,2125,666,1866,362,258,3347,2134, - 3347,513,362,2726,3347,19,1335,1215,16,20, - 17,687,315,196,3347,3347,2751,2012,19,258, - 3347,16,20,17,687,40,1445,3347,1335,1215, - 3347,3347,1453,3347,129,364,2887,2801,87,19, - 610,3347,16,20,17,687,33,2801,666,19, - 3347,3347,16,20,17,687,32,3347,129,364, - 129,364,87,3347,87,129,364,196,3347,87, - 2037,638,666,3347,666,2183,638,3347,3347,666, - 3347,3347,129,364,3347,3347,87,3347,2941,876, - 2887,196,87,196,879,3347,666,3347,196,2195, - 3347,3347,362,196,3347,2939,876,3347,196,87, - 3347,3347,3347,3347,2887,196,2887,3347,1038,115, - 1104,2887,3347,2941,876,1148,1163,87,3347,2941, - 876,1163,1489,87,2204,2941,876,362,2887,87, - 2239,3347,1170,362,2941,876,2265,3347,87,362, - 2864,876,3347,3143,87,2274,3347,3347,362,3347, - 3347,191,3347,3347,1361,3347,191,1519,3347,375, - 1701,1357,3347,1544,1334,1701,2941,876,3347,1552, - 87,2941,876,3347,3347,87,3347,2344,1577,3347, - 362,3347,2405,2941,876,362,3347,87,2941,876, - 3347,3347,87,3347,2440,3347,3347,362,3347,2449, - 2941,876,362,3347,87,2864,876,3347,3155,87, - 1652,2554,2939,876,362,1686,87,2864,876,1362, - 3164,87,3347,3347,2939,876,115,1688,87,3347, - 3347,1390,1707,2864,876,3347,3218,87,115,129, - 876,129,876,87,1786,87,3347,1460,129,876, - 129,876,87,1545,87,1247,129,876,3347,3347, - 87,3347,1255,3347,1291,3347,3347,3347,3347,3347, - 1387,3347,3347,3347,3347,3347,3347,3347,1467,3347, - 3347,3347,3347,3347,3347,3347,3347,3347,3347,3347, - 1610,3347,0,324,841,0,10,225,0,3354, - 1,0,1,3583,0,7,9,0,178,19, - 0,1,3572,0,112,2160,0 + 23,23,23,44,44,362,2151,1355,2558,1090, + 17,21,18,557,1280,45,346,580,661,231, + 586,746,2045,2875,865,129,1162,90,2221,2148, + 1599,736,879,816,993,971,1021,75,92,2218, + 135,213,322,323,2135,1966,421,2509,304,2318, + 1629,135,213,322,323,2318,1727,137,134,136, + 160,2213,739,179,254,213,322,323,145,134, + 136,160,139,1901,166,846,1912,771,328,528, + 143,146,149,152,466,1922,72,1704,376,1680, + 2789,2795,530,2051,311,303,135,213,322,323, + 105,1348,404,224,232,2606,56,129,365,633, + 2059,88,31,137,134,136,160,613,224,229, + 209,923,218,667,221,223,954,2221,139,1599, + 166,1158,1613,763,1198,899,143,146,149,152, + 466,197,2181,1704,376,1680,2789,2795,530,2601, + 869,20,301,302,17,21,18,557,1280,45, + 2077,580,661,2932,586,746,445,784,2864,1906, + 2284,127,179,324,1910,736,879,816,993,971, + 1021,75,281,2626,869,20,1912,771,17,21, + 18,557,1280,45,309,580,661,2857,586,746, + 1042,404,224,233,25,135,213,322,323,736, + 879,816,993,971,1021,75,281,286,433,209, + 2108,1299,138,134,136,160,1903,613,224,229, + 1294,1613,218,667,221,223,2049,140,2059,166, + 187,1922,287,159,1429,144,147,150,153,466, + 2059,286,186,2150,72,1299,2412,869,20,2558, + 747,17,21,18,557,1280,45,401,580,661, + 231,586,746,2870,156,465,287,2284,1431,179, + 129,749,736,879,816,993,971,1021,75,281, + 2826,882,20,2077,1227,17,21,18,557,1280, + 45,2212,580,661,227,586,746,2806,255,213, + 322,323,135,213,322,323,736,879,816,993, + 971,1021,75,1222,288,1905,759,1027,1299,137, + 134,136,160,1042,613,224,229,2558,1192,219, + 667,221,223,2059,139,31,166,2882,278,289, + 308,685,143,146,149,152,466,598,228,1704, + 376,1680,2789,2795,530,2290,389,20,202,2043, + 17,21,18,557,1280,45,2317,580,661,72, + 586,746,255,213,322,323,2048,2360,637,2037, + 637,736,879,816,993,971,1021,75,864,2059, + 2528,188,20,2320,239,17,21,18,557,1280, + 45,72,580,661,225,586,746,2888,2059,453, + 1092,1803,2886,197,2320,128,736,879,816,993, + 971,1021,75,281,2651,3031,20,24,520,17, + 21,18,557,1280,45,921,580,661,259,586, + 746,453,255,213,322,323,2268,994,1295,610, + 736,879,816,993,971,1021,75,281,158,2478, + 653,20,1299,2920,17,21,18,557,43,45, + 192,580,661,72,586,746,145,282,1211,1902, + 1895,421,2059,304,295,736,879,816,993,971, + 1021,94,290,1266,2218,2776,1299,20,330,2908, + 17,21,18,557,1280,45,72,580,661,2208, + 586,746,2148,453,528,2864,2608,399,127,129, + 388,736,879,816,993,971,1021,75,92,2362, + 303,20,2652,241,17,21,18,557,1280,45, + 2942,580,661,338,586,746,453,254,213,322, + 323,2864,2630,2320,195,736,879,816,993,971, + 1021,75,1362,72,19,3086,2922,2776,240,20, + 129,487,17,21,18,557,43,45,2942,580, + 661,124,586,746,1929,1500,293,300,302,1265, + 366,1348,633,736,879,816,993,971,1021,94, + 2776,275,20,453,405,17,21,18,557,1280, + 45,2942,580,661,123,586,746,275,1445,1693, + 833,292,1659,2468,2320,1333,736,879,816,993, + 971,1021,75,86,2776,230,20,2952,637,17, + 21,18,557,1280,45,2942,580,661,112,586, + 746,2466,2984,637,310,2864,365,2560,1432,88, + 736,879,816,993,971,1021,75,85,2776,1123, + 20,885,2206,17,21,18,557,1280,45,2942, + 580,661,336,586,746,2942,1803,307,334,885, + 129,1219,129,1991,736,879,816,993,971,1021, + 75,84,2776,2942,20,1399,332,17,21,18, + 557,1280,45,260,580,661,2942,586,746,126, + 2781,637,2942,2939,365,122,2322,88,736,879, + 816,993,971,1021,75,83,2776,116,20,2320, + 2407,17,21,18,557,1280,45,2320,580,661, + 1655,586,746,2942,1803,2218,2644,885,1656,2059, + 2320,297,736,879,816,993,971,1021,75,82, + 2776,1657,20,3115,2907,17,21,18,557,1280, + 45,259,580,661,2320,586,746,2565,2980,1191, + 994,1295,129,637,22,1658,736,879,816,993, + 971,1021,75,81,2776,2059,20,1599,2568,17, + 21,18,557,1280,45,2569,580,661,2320,586, + 746,2942,2781,637,3259,276,885,2682,2320,1660, + 736,879,816,993,971,1021,75,80,2776,23, + 20,2956,306,17,21,18,557,1280,45,2956, + 580,661,2218,586,746,2757,1803,2356,1565,2864, + 865,1389,337,88,736,879,816,993,971,1021, + 75,79,2776,1049,20,129,509,17,21,18, + 557,1280,45,259,580,661,180,586,746,129, + 543,243,1503,1295,283,2866,2316,210,736,879, + 816,993,971,1021,75,78,2776,234,20,2320, + 2041,17,21,18,557,1280,45,1007,580,661, + 2085,586,746,2942,2980,2807,3132,2864,865,2972, + 335,88,736,879,816,993,971,1021,75,77, + 2776,1055,20,2320,1983,17,21,18,557,1280, + 45,2973,580,661,2111,586,746,2942,74,2862, + 3264,2864,865,2881,333,88,736,879,816,993, + 971,1021,75,76,2776,1073,20,2320,2910,17, + 21,18,557,1280,45,2851,580,661,2120,586, + 746,2942,2218,2467,3271,2864,865,1437,125,88, + 736,879,816,993,971,1021,75,93,2776,1086, + 20,2320,2469,17,21,18,557,1280,45,2956, + 580,661,273,586,746,2940,2207,2315,194,2864, + 865,242,1937,88,736,879,816,993,971,1021, + 75,74,2776,1293,20,2320,2114,17,21,18, + 557,43,45,2956,580,661,279,586,746,2998, + 2218,2998,2864,865,204,1976,88,2956,736,879, + 816,993,971,1021,94,2776,1327,20,2956,2118, + 17,21,18,557,1280,45,1930,580,661,2218, + 586,746,2942,2942,2942,3171,3179,3292,181,244, + 212,736,879,816,993,971,1021,75,1430,2776, + 2942,20,205,3283,17,21,18,557,1280,45, + 2320,580,661,728,586,746,2942,2394,245,3210, + 2148,1547,1448,2320,1524,736,879,816,993,971, + 1021,75,1459,2776,280,20,2320,2873,17,21, + 18,557,43,45,2956,580,661,2190,586,746, + 2942,2942,2877,3225,3230,254,213,322,323,736, + 879,816,993,971,1021,94,2776,2942,20,2320, + 118,17,21,18,557,43,45,2320,580,661, + 2251,586,746,2942,2854,2148,3247,2871,2321,28, + 2892,202,736,879,816,993,971,1021,94,2776, + 707,20,2320,2879,17,21,18,557,43,45, + 2943,580,661,2330,586,746,2218,2218,2782,2656, + 254,213,322,323,203,736,879,816,993,971, + 1021,94,2776,2982,20,2320,2572,17,21,18, + 557,43,45,2320,580,661,2356,586,746,220, + 365,1225,111,87,2391,294,296,1596,736,879, + 816,993,971,1021,94,777,96,1015,109,95, + 97,98,99,100,331,2985,2986,2987,2989,2883, + 2990,2320,2320,885,1,365,1225,111,87,2676, + 1597,20,2400,2435,17,21,18,557,320,110, + 1950,96,1015,109,95,97,98,99,100,331, + 387,2994,2056,2997,3376,3376,3376,3376,885,1042, + 613,224,229,107,2398,219,667,221,223,312, + 274,3376,3376,3376,110,135,213,322,323,3376, + 3376,269,1144,936,272,2320,1664,291,365,1225, + 111,87,148,134,136,160,2496,3376,108,135, + 213,322,323,2320,96,1015,109,95,97,98, + 99,100,331,3376,2505,3376,142,134,136,160, + 3376,885,147,365,1225,111,87,3376,3376,3376, + 3376,141,3376,166,129,365,3376,110,88,96, + 1015,109,95,97,98,99,100,331,923,2320, + 3376,2941,865,3376,3376,88,885,3376,2320,2320, + 2531,107,2146,1923,933,363,2320,106,197,2540, + 2566,3376,110,2776,3376,20,3376,2601,17,21, + 18,557,43,45,1762,580,661,3376,586,746, + 2932,3376,3376,3376,1109,1516,108,3376,3376,736, + 879,816,993,1598,613,224,229,1932,3043,218, + 667,221,223,3376,274,129,865,3376,277,88, + 263,3376,3376,3376,3376,267,1144,936,272,1125, + 2776,3376,20,3376,3376,17,21,18,557,43, + 45,3376,580,661,264,586,1416,3376,613,224, + 229,3376,3376,218,667,221,223,3376,274,3376, + 3376,3376,2110,637,763,3376,1912,843,3376,267, + 1144,936,272,3376,3376,3376,3376,2776,3376,20, + 3376,261,17,21,18,557,43,45,1381,580, + 661,3376,586,746,3376,3376,197,2864,865,3376, + 1791,88,3376,736,879,816,1570,613,224,502, + 3376,1462,218,667,221,534,129,865,921,2776, + 88,20,3376,159,17,21,18,557,43,45, + 1590,580,661,3376,586,746,2864,865,3376,3156, + 88,3376,3376,3376,3376,736,879,1583,3376,3376, + 1463,2183,637,193,155,465,433,865,1225,111, + 87,2701,3376,20,782,3376,17,21,18,557, + 318,601,3376,96,1015,1329,95,97,98,99, + 100,331,2776,385,20,197,3376,17,21,18, + 557,43,45,3376,580,661,3376,586,746,476, + 865,1225,111,87,3376,3376,3376,921,736,1564, + 519,865,1225,111,87,3376,96,1015,104,95, + 97,98,99,100,331,3376,3376,96,1015,102, + 95,97,98,99,100,331,562,865,1225,111, + 87,3376,192,3376,3376,605,865,1225,111,87, + 1423,1902,3376,96,1015,103,95,97,98,99, + 100,331,96,1015,119,95,97,98,99,100, + 331,648,865,1225,111,87,3376,3376,3376,3376, + 691,865,1225,111,87,3376,3376,3376,96,1015, + 115,95,97,98,99,100,331,96,1015,1692, + 95,97,98,99,100,331,734,865,1225,111, + 87,3376,3376,3376,3376,777,865,1225,111,87, + 3376,3376,3376,96,1015,362,95,97,98,99, + 100,331,96,1015,354,95,97,98,99,100, + 331,820,865,1225,111,87,3376,3376,3376,3376, + 863,865,1225,111,87,3376,3376,3376,96,1015, + 114,95,97,98,99,100,331,96,1015,361, + 95,97,98,99,100,331,906,865,1225,111, + 87,3376,3376,3376,3376,949,865,1225,111,87, + 3376,3376,3376,96,1015,360,95,97,98,99, + 100,331,96,1015,358,95,97,98,99,100, + 331,992,865,1225,111,87,3376,3376,3376,3376, + 1035,865,1225,111,87,3376,3376,3376,96,1015, + 353,95,97,98,99,100,331,96,1015,352, + 95,97,98,99,100,331,1078,865,1225,111, + 87,3376,3376,3376,3376,1121,865,1225,111,87, + 3376,3376,3376,96,1015,350,95,97,98,99, + 100,331,96,1015,346,95,97,98,99,100, + 331,1164,865,1225,111,87,3376,3376,3376,3376, + 1207,865,1225,111,87,3376,3376,3376,96,1015, + 121,95,97,98,99,100,331,96,1015,359, + 95,97,98,99,100,331,1250,865,1225,111, + 87,3376,3376,3376,3376,1293,865,1225,111,87, + 3376,3376,3376,96,1015,357,95,97,98,99, + 100,331,96,1015,356,95,97,98,99,100, + 331,1336,865,1225,111,87,3376,3376,3376,3376, + 1379,865,1225,111,87,3376,3376,3376,96,1015, + 351,95,97,98,99,100,331,96,1015,349, + 95,97,98,99,100,331,1422,865,1225,111, + 87,3376,3376,3376,3376,1465,865,1225,111,87, + 3376,3376,3376,96,1015,348,95,97,98,99, + 100,331,96,1015,345,95,97,98,99,100, + 331,1508,865,1225,111,87,3376,3376,3376,3376, + 1551,865,1225,111,87,3376,3376,3376,96,1015, + 344,95,97,98,99,100,331,96,1015,342, + 95,97,98,99,100,331,1594,865,1225,111, + 87,3376,3376,3376,3376,1637,865,1225,111,87, + 3376,3376,3376,96,1015,120,95,97,98,99, + 100,331,96,1015,355,95,97,98,99,100, + 331,1680,865,1225,111,87,3376,3376,3376,3376, + 1723,865,1225,111,87,3376,3376,3376,96,1015, + 347,95,97,98,99,100,331,96,1015,343, + 95,97,98,99,100,331,1766,865,1225,111, + 87,3376,3376,3376,3376,1809,865,1225,111,87, + 3376,3376,3376,96,1015,341,95,97,98,99, + 100,331,96,1015,340,95,97,98,99,100, + 331,1852,865,1225,111,87,3376,3376,1912,771, + 3376,3376,3376,3376,3376,3376,3376,3376,96,1015, + 339,95,97,98,99,100,331,2776,3376,20, + 1916,771,17,21,18,557,43,45,3376,580, + 661,3376,586,746,2864,865,3376,3276,88,613, + 224,229,2077,1567,218,667,221,223,1464,3376, + 3376,2726,3376,20,3376,159,17,21,18,557, + 316,613,224,229,3376,3376,218,667,221,223, + 1916,771,3376,3376,3376,3376,3376,1691,3376,3376, + 3376,3376,1042,613,224,1321,155,465,219,667, + 221,1314,2776,3376,20,3376,782,17,21,18, + 557,43,45,3376,580,661,3376,586,1449,3376, + 3376,613,224,229,3376,3376,218,667,221,223, + 3376,198,200,2776,3376,20,3376,1691,17,21, + 18,557,43,45,1395,580,661,2776,1456,20, + 3376,3376,17,21,18,557,43,45,3376,580, + 661,2776,1497,20,3376,3376,17,21,18,557, + 43,45,3376,580,661,3376,1517,3376,2776,3376, + 20,199,200,17,21,18,557,43,45,2021, + 580,661,2776,1532,20,2076,3376,17,21,18, + 557,43,45,3376,580,1363,2776,3376,20,3376, + 3376,17,21,18,557,43,45,3376,580,1382, + 3376,3376,3376,3376,135,213,322,323,3376,3376, + 135,213,322,323,3376,3376,3376,3376,3376,3376, + 3376,151,134,136,160,3376,3376,154,134,136, + 160,2503,3376,20,1984,3023,17,21,18,557, + 43,36,2776,3376,20,277,3376,17,21,18, + 557,43,45,2776,1396,20,3376,3376,17,21, + 18,557,43,45,3376,1397,2503,3376,20,3376, + 329,17,21,18,557,43,36,3376,129,865, + 3376,2503,88,20,3376,274,17,21,18,557, + 43,36,1279,3376,3376,3376,267,1144,936,272, + 3376,2776,3376,20,3376,246,17,21,18,557, + 43,40,2355,876,3376,1381,2776,3376,20,3376, + 247,17,21,18,557,43,39,2776,3376,20, + 3376,3376,17,21,18,557,43,38,2776,3376, + 20,3376,3376,17,21,18,557,43,37,2776, + 3376,20,3376,3376,17,21,18,557,43,35, + 2776,3376,20,274,3376,17,21,18,557,43, + 36,3376,3376,3376,267,1144,936,272,2776,3376, + 20,3376,3376,17,21,18,557,43,48,2776, + 3376,20,3376,266,17,21,18,557,43,47, + 2776,3376,20,2966,637,17,21,18,557,43, + 46,2576,3376,20,3376,3376,17,21,18,557, + 43,44,3376,2966,637,2751,3376,20,3376,3376, + 17,21,18,557,41,3376,3376,1803,3376,2801, + 3376,20,3376,453,17,21,18,557,34,3376, + 3376,129,365,3376,3376,88,3376,1803,3376,3376, + 3376,3376,3086,453,259,923,2919,129,365,3376, + 2801,88,20,1415,1295,17,21,18,557,33, + 3376,923,1659,3376,259,197,129,365,129,365, + 88,3376,88,1415,1295,2939,865,3376,3376,88, + 923,197,923,3376,129,865,1042,2932,88,116, + 3376,1117,2864,865,3376,3173,88,274,1313,3376, + 197,3376,197,2932,3376,3376,1496,1130,269,1144, + 936,272,3376,3376,3376,3376,2941,865,3376,3376, + 88,3376,2932,3376,2932,3376,1154,2155,1188,3376, + 363,2941,865,2941,865,88,3376,88,3376,2941, + 865,1361,2216,88,2225,363,3376,363,2941,865, + 2260,3376,88,363,2941,865,3376,3376,88,2286, + 1549,3376,363,3376,3376,2295,3376,3376,363,3376, + 2941,865,3376,3376,88,1582,3376,1615,3376,3376, + 3376,2365,3376,1623,363,2941,865,3376,3376,88, + 2941,865,1661,3376,88,3376,2426,3376,1662,363, + 3376,2461,2941,865,363,3376,88,2941,865,3376, + 3376,88,3376,2470,1743,3376,363,3376,2575,2939, + 865,363,3376,88,2864,865,3376,3188,88,1789, + 3376,2939,865,116,1798,88,2864,865,1530,3194, + 88,3376,3376,2939,865,116,1799,88,3376,3376, + 1531,1806,2864,865,3376,3242,88,116,129,865, + 129,865,88,3376,88,3376,1563,3376,3376,3376, + 3376,3376,1347,3376,1490,3376,3376,3376,3376,3376, + 3376,3376,3376,3376,3376,1480,3376,3376,3376,3376, + 3376,3376,3376,3376,3376,3376,3376,1557,3376,3376, + 3376,3376,3376,3376,3376,3376,3376,3376,3376,1725, + 3376,0,325,829,0,11,226,0,3384,1, + 0,1,3613,0,8,10,0,179,20,0, + 1,3602,0,113,2181,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1040,314 +1045,314 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface TermAction { public final static char termAction[] = {0, - 3347,6714,1,6713,1,1331,900,1,1,1, + 3376,6744,1,6743,1,1328,415,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3355,3447,920,1050,772, - 947,1136,1943,1031,1135,1090,1561,1082,928,1528, - 628,1495,991,1,1,1,1,1,1,1, - 1,1,1,1,1,181,1,1,1,1, + 1,1,1,1,1,3385,3477,981,1157,948, + 937,1197,1996,1110,778,1185,1365,1178,1229,1331, + 910,1297,1096,1,1,1,1,1,1,1, + 1,1,1,1,1,182,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,252,3353,7,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,1,3335, - 3335,3335,3335,3335,3335,3335,3335,3335,3335,3335, - 3335,3335,3335,3335,182,3335,3347,6714,1,6713, - 1,1331,900,1,1,1,1,1,1,1, + 1,253,3383,8,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,1,3364, + 3364,3364,3364,3364,3364,3364,3364,3364,3364,3364, + 3364,3364,3364,3364,183,3364,3376,6744,1,6743, + 1,1328,415,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3355,3447,920,1050,772,947,1136,1943,1031, - 1135,1090,1561,1082,928,1528,628,1495,991,1, + 1,3385,3477,981,1157,948,937,1197,1996,1110, + 778,1185,1365,1178,1229,1331,910,1297,1096,1, 1,1,1,1,1,1,1,1,1,1, - 1,284,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3347,3353,3347, - 6714,1,6713,1,3356,900,1,1,1,1, + 1,285,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3376,3383,3376, + 6744,1,6743,1,3386,415,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3355,3447,920,1050,772,947, - 1136,1943,1031,1135,1090,1561,1082,928,1528,628, - 1495,991,1,1,1,1,1,1,1,1, - 1,1,1,1,70,1,1,1,1,1, + 1,1,1,1,3385,3477,981,1157,948,937, + 1197,1996,1110,778,1185,1365,1178,1229,1331,910, + 1297,1096,1,1,1,1,1,1,1,1, + 1,1,1,1,71,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3347,6714,1,6713,1,3356,900,1,1,1, + 3376,6744,1,6743,1,3386,415,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3355,3447,920,1050,772, - 947,1136,1943,1031,1135,1090,1561,1082,928,1528, - 628,1495,991,1,1,1,1,1,1,1, - 1,1,1,1,1,129,1,1,1,1, + 1,1,1,1,1,3385,3477,981,1157,948, + 937,1197,1996,1110,778,1185,1365,1178,1229,1331, + 910,1297,1096,1,1,1,1,1,1,1, + 1,1,1,1,1,130,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3347,3357,3000,3358,2937,1862,3347,2914,2903, - 2925,3067,3057,3036,3359,3360,3361,3362,2890,2028, - 3659,3660,3661,3023,1948,1756,3347,3584,3560,3561, - 3562,3672,472,3673,3509,3510,3508,3563,3511,3507, - 184,6709,3347,6709,3560,3561,3562,3672,472,3673, - 3509,3510,3508,3563,3511,3507,3347,3514,3519,3518, - 3516,3517,3515,3520,3521,3513,3522,3523,3524,737, - 471,452,3347,6714,1,6713,1,3356,900,1, + 1,3376,3387,467,3388,2980,1917,3376,2958,2947, + 2969,3090,3059,3045,3389,3390,3391,3392,2936,2921, + 3689,3690,3691,2661,2001,1669,3376,3614,3590,3591, + 3592,3702,407,3703,3539,3540,3538,3593,3541,3537, + 185,6739,3376,6739,3590,3591,3592,3702,407,3703, + 3539,3540,3538,3593,3541,3537,3376,3544,3549,3548, + 3546,3547,3545,3550,3551,3543,3552,3553,3554,596, + 729,627,3376,6744,1,6743,1,3386,415,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3355,3447,920, - 1050,772,947,1136,1943,1031,1135,1090,1561,1082, - 928,1528,628,1495,991,3347,6714,1,6713,1, - 3356,900,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3385,3477,981, + 1157,948,937,1197,1996,1110,778,1185,1365,1178, + 1229,1331,910,1297,1096,3376,6744,1,6743,1, + 3386,415,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3355,3447,920,1050,772,947,1136,1943,1031,1135, - 1090,1561,1082,928,1528,628,1495,991,3347,6714, - 1,6713,1,3356,900,1,1,1,1,1, + 3385,3477,981,1157,948,937,1197,1996,1110,778, + 1185,1365,1178,1229,1331,910,1297,1096,3376,6744, + 1,6743,1,3386,415,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3355,3447,920,1050,772,947,1136, - 1943,1031,1135,1090,1561,1082,928,1528,628,1495, - 991,3347,6714,1,6713,1,3356,900,1,1, + 1,1,1,3385,3477,981,1157,948,937,1197, + 1996,1110,778,1185,1365,1178,1229,1331,910,1297, + 1096,3376,6744,1,6743,1,3386,415,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3355,3447,920,1050, - 772,947,1136,1943,1031,1135,1090,1561,1082,928, - 1528,628,1495,991,3347,6714,1,6713,1,3356, - 900,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3355, - 3447,920,1050,772,947,1136,1943,1031,1135,1090, - 1561,1082,928,1528,628,1495,991,3347,6714,1, - 6713,1,3356,900,1,1,1,1,1,1, + 1,1,1,1,1,1,3385,3477,981,1157, + 948,937,1197,1996,1110,778,1185,1365,1178,1229, + 1331,910,1297,1096,3376,6744,1,6743,1,3386, + 415,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3385, + 3477,981,1157,948,937,1197,1996,1110,778,1185, + 1365,1178,1229,1331,910,1297,1096,3376,6744,1, + 6743,1,3386,415,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3355,3447,920,1050,772,947,1136,1943, - 1031,1135,1090,1561,1082,928,1528,628,1495,991, - 3347,6714,1,6713,1,3356,900,1,1,1, + 1,1,3385,3477,981,1157,948,937,1197,1996, + 1110,778,1185,1365,1178,1229,1331,910,1297,1096, + 3376,6744,1,6743,1,3386,415,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3355,3447,920,1050,772, - 947,1136,1943,1031,1135,1090,1561,1082,928,1528, - 628,1495,991,3347,6714,1,6713,1,3356,900, + 1,1,1,1,1,3385,3477,981,1157,948, + 937,1197,1996,1110,778,1185,1365,1178,1229,1331, + 910,1297,1096,3376,6744,1,6743,1,3386,415, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3355,3447, - 920,1050,772,947,1136,1943,1031,1135,1090,1561, - 1082,928,1528,628,1495,991,3347,6714,1,6713, - 1,3356,900,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3385,3477, + 981,1157,948,937,1197,1996,1110,778,1185,1365, + 1178,1229,1331,910,1297,1096,3376,6744,1,6743, + 1,3386,415,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3355,3447,920,1050,772,947,1136,1943,1031, - 1135,1090,1561,1082,928,1528,628,1495,991,3347, - 6714,1,6713,1,3356,900,1,1,1,1, + 1,3385,3477,981,1157,948,937,1197,1996,1110, + 778,1185,1365,1178,1229,1331,910,1297,1096,3376, + 6744,1,6743,1,3386,415,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3355,3447,920,1050,772,947, - 1136,1943,1031,1135,1090,1561,1082,928,1528,628, - 1495,991,3347,6714,1,6713,1,3356,900,1, + 1,1,1,1,3385,3477,981,1157,948,937, + 1197,1996,1110,778,1185,1365,1178,1229,1331,910, + 1297,1096,3376,6744,1,6743,1,3386,415,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3355,3447,920, - 1050,772,947,1136,1943,1031,1135,1090,1561,1082, - 928,1528,628,1495,991,3347,6714,1,6713,1, - 3356,900,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3385,3477,981, + 1157,948,937,1197,1996,1110,778,1185,1365,1178, + 1229,1331,910,1297,1096,3376,6744,1,6743,1, + 3386,415,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3355,3447,920,1050,772,947,1136,1943,1031,1135, - 1090,1561,1082,928,1528,628,1495,991,3347,6714, - 1,6713,1,3356,900,1,1,1,1,1, + 3385,3477,981,1157,948,937,1197,1996,1110,778, + 1185,1365,1178,1229,1331,910,1297,1096,3376,6744, + 1,6743,1,3386,415,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3355,3447,920,1050,772,947,1136, - 1943,1031,1135,1090,1561,1082,928,1528,628,1495, - 991,3347,6714,1,6713,1,3356,900,1,1, + 1,1,1,3385,3477,981,1157,948,937,1197, + 1996,1110,778,1185,1365,1178,1229,1331,910,1297, + 1096,3376,6744,1,6743,1,3386,415,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3355,3447,920,1050, - 772,947,1136,1943,1031,1135,1090,1561,1082,928, - 1528,628,1495,991,3347,6714,1,6713,1,3356, - 900,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3355, - 3447,920,1050,772,947,1136,1943,1031,1135,1090, - 1561,1082,928,1528,628,1495,991,3347,6714,1, - 6713,1,3356,900,1,1,1,1,1,1, + 1,1,1,1,1,1,3385,3477,981,1157, + 948,937,1197,1996,1110,778,1185,1365,1178,1229, + 1331,910,1297,1096,3376,6744,1,6743,1,3386, + 415,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3385, + 3477,981,1157,948,937,1197,1996,1110,778,1185, + 1365,1178,1229,1331,910,1297,1096,3376,6744,1, + 6743,1,3386,415,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3355,3447,920,1050,772,947,1136,1943, - 1031,1135,1090,1561,1082,928,1528,628,1495,991, - 3347,6714,1,6713,1,3356,900,1,1,1, + 1,1,3385,3477,981,1157,948,937,1197,1996, + 1110,778,1185,1365,1178,1229,1331,910,1297,1096, + 3376,6744,1,6743,1,3386,415,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3355,3447,920,1050,772, - 947,1136,1943,1031,1135,1090,1561,1082,928,1528, - 628,1495,991,3347,6714,1,6713,1,3356,900, + 1,1,1,1,1,3385,3477,981,1157,948, + 937,1197,1996,1110,778,1185,1365,1178,1229,1331, + 910,1297,1096,3376,6744,1,6743,1,3386,415, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3355,3447, - 920,1050,772,947,1136,1943,1031,1135,1090,1561, - 1082,928,1528,628,1495,991,3347,6714,1,6713, - 1,3356,900,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3385,3477, + 981,1157,948,937,1197,1996,1110,778,1185,1365, + 1178,1229,1331,910,1297,1096,3376,6744,1,6743, + 1,3386,415,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3355,3447,920,1050,772,947,1136,1943,1031, - 1135,1090,1561,1082,928,1528,628,1495,991,3347, - 6714,1,6713,1,3356,900,1,1,1,1, + 1,3385,3477,981,1157,948,937,1197,1996,1110, + 778,1185,1365,1178,1229,1331,910,1297,1096,3376, + 6744,1,6743,1,3386,415,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3355,3447,920,1050,772,947, - 1136,1943,1031,1135,1090,1561,1082,928,1528,628, - 1495,991,3347,6714,1,6713,1,3356,900,1, + 1,1,1,1,3385,3477,981,1157,948,937, + 1197,1996,1110,778,1185,1365,1178,1229,1331,910, + 1297,1096,3376,6744,1,6743,1,3386,415,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3355,3447,920, - 1050,772,947,1136,1943,1031,1135,1090,1561,1082, - 928,1528,628,1495,991,3347,6714,1,6713,1, - 3356,900,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3385,3477,981, + 1157,948,937,1197,1996,1110,778,1185,1365,1178, + 1229,1331,910,1297,1096,3376,6744,1,6743,1, + 3386,415,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3355,3447,920,1050,772,947,1136,1943,1031,1135, - 1090,1561,1082,928,1528,628,1495,991,3347,6714, - 1,6713,1,3356,900,1,1,1,1,1, + 3385,3477,981,1157,948,937,1197,1996,1110,778, + 1185,1365,1178,1229,1331,910,1297,1096,3376,6744, + 1,6743,1,3386,415,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3355,3447,920,1050,772,947,1136, - 1943,1031,1135,1090,1561,1082,928,1528,628,1495, - 991,3347,6714,1,6713,1,3356,900,1,1, + 1,1,1,3385,3477,981,1157,948,937,1197, + 1996,1110,778,1185,1365,1178,1229,1331,910,1297, + 1096,3376,6744,1,6743,1,3386,415,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3355,3447,920,1050, - 772,947,1136,1943,1031,1135,1090,1561,1082,928, - 1528,628,1495,991,3347,6714,1,6713,1,3356, - 900,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3355, - 3447,920,1050,772,947,1136,1943,1031,1135,1090, - 1561,1082,928,1528,628,1495,991,3347,6714,1, - 6713,1,3356,900,1,1,1,1,1,1, + 1,1,1,1,1,1,3385,3477,981,1157, + 948,937,1197,1996,1110,778,1185,1365,1178,1229, + 1331,910,1297,1096,3376,6744,1,6743,1,3386, + 415,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3385, + 3477,981,1157,948,937,1197,1996,1110,778,1185, + 1365,1178,1229,1331,910,1297,1096,3376,6744,1, + 6743,1,3386,415,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3355,3447,920,1050,772,947,1136,1943, - 1031,1135,1090,1561,1082,928,1528,628,1495,991, - 3347,6714,1,6713,1,3356,900,1,1,1, + 1,1,3385,3477,981,1157,948,937,1197,1996, + 1110,778,1185,1365,1178,1229,1331,910,1297,1096, + 3376,6744,1,6743,1,3386,415,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3355,3447,920,1050,772, - 947,1136,1943,1031,1135,1090,1561,1082,928,1528, - 628,1495,991,3347,6714,1,6713,1,3356,900, + 1,1,1,1,1,3385,3477,981,1157,948, + 937,1197,1996,1110,778,1185,1365,1178,1229,1331, + 910,1297,1096,3376,6744,1,6743,1,3386,415, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3355,3447, - 920,1050,772,947,1136,1943,1031,1135,1090,1561, - 1082,928,1528,628,1495,991,3347,6714,1,6713, - 1,3356,900,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3385,3477, + 981,1157,948,937,1197,1996,1110,778,1185,1365, + 1178,1229,1331,910,1297,1096,3376,6744,1,6743, + 1,3386,415,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3355,3447,920,1050,772,947,1136,1943,1031, - 1135,1090,1561,1082,928,1528,628,1495,991,3347, - 6714,1,6713,1,3356,900,1,1,1,1, + 1,3385,3477,981,1157,948,937,1197,1996,1110, + 778,1185,1365,1178,1229,1331,910,1297,1096,3376, + 6744,1,6743,1,3386,415,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3355,3447,920,1050,772,947, - 1136,1943,1031,1135,1090,1561,1082,928,1528,628, - 1495,991,3347,6714,1,6713,1,3356,900,1, + 1,1,1,1,3385,3477,981,1157,948,937, + 1197,1996,1110,778,1185,1365,1178,1229,1331,910, + 1297,1096,3376,6744,1,6743,1,3386,415,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3355,3447,920, - 1050,772,947,1136,1943,1031,1135,1090,1561,1082, - 928,1528,628,1495,991,3347,6714,1,6713,1, - 3356,900,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3385,3477,981, + 1157,948,937,1197,1996,1110,778,1185,1365,1178, + 1229,1331,910,1297,1096,3376,6744,1,6743,1, + 3386,415,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3355,3447,920,1050,772,947,1136,1943,1031,1135, - 1090,1561,1082,928,1528,628,1495,991,3347,6714, - 1,6713,1,3356,900,1,1,1,1,1, + 3385,3477,981,1157,948,937,1197,1996,1110,778, + 1185,1365,1178,1229,1331,910,1297,1096,3376,6744, + 1,6743,1,3386,415,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3355,3447,920,1050,772,947,1136, - 1943,1031,1135,1090,1561,1082,928,1528,628,1495, - 991,3347,6714,1,6713,1,3356,900,1,1, + 1,1,1,3385,3477,981,1157,948,937,1197, + 1996,1110,778,1185,1365,1178,1229,1331,910,1297, + 1096,3376,6744,1,6743,1,3386,415,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3355,3447,920,1050, - 772,947,1136,1943,1031,1135,1090,1561,1082,928, - 1528,628,1495,991,3347,1,1,1,1,3356, - 3347,3357,54,3358,3347,3357,600,3358,3347,234, - 614,1,3572,388,222,1,3572,388,3347,3355, - 3651,3347,261,3572,1795,3347,1,408,248,58, - 3347,1,3341,1795,222,3347,3352,1,1,1, - 1,1,1,1,1,1,1,1,1,130, + 1,1,1,1,1,1,3385,3477,981,1157, + 948,937,1197,1996,1110,778,1185,1365,1178,1229, + 1331,910,1297,1096,3376,1,1,1,1,3386, + 3376,3387,55,3388,3376,3387,640,3388,3376,235, + 889,1,3602,436,223,1,3602,436,3376,3385, + 3681,3376,262,3602,1847,3376,1,409,249,59, + 3376,1,3370,1847,223,3376,3382,1,1,1, + 1,1,1,1,1,1,1,1,1,131, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3347,1,1,1,1, - 3356,1,1,1,1,1,1,726,2785,2799, - 222,298,235,1,222,2821,726,222,3352,1475, - 3355,3651,3560,3561,3562,3672,472,3673,3509,3510, - 3508,3563,3511,3507,3351,2785,2799,222,1,1, + 1,1,1,1,1,3376,1,1,1,1, + 3386,1,1,1,1,1,1,725,2792,2806, + 223,299,236,1,223,2854,725,223,3382,1513, + 3385,3681,3590,3591,3592,3702,407,3703,3539,3540, + 3538,3593,3541,3537,3381,2792,2806,223,1,1, 1,1,1,1,1,1,1,1,1,1, - 131,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3347,1,726,1, - 42,190,183,6711,10,6711,3326,59,205,6712, - 3347,6712,297,222,641,112,3351,222,3347,3357, - 3347,3358,3542,3560,3561,3562,3672,472,3673,3509, - 3510,3508,3563,3511,3507,132,252,3572,388,1, + 132,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3376,1,725,1, + 43,191,184,6741,11,6741,3355,60,206,6742, + 3376,6742,298,223,446,113,3381,223,3376,3387, + 3376,3388,3572,3590,3591,3592,3702,407,3703,3539, + 3540,3538,3593,3541,3537,133,253,3602,436,1, 1,1,1,1,1,1,1,1,1,1, - 1,3347,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,48,190,3347, - 1,2975,1,61,189,1310,3347,60,3560,3561, - 3562,3672,472,3673,3509,3510,3508,3563,3511,3507, - 2771,2757,2743,2729,3347,3542,367,1277,1244,1211, - 1178,1145,1079,1112,1046,1013,980,249,3344,221, - 3347,386,1,1,1,1,1,1,1,1, - 1,1,1,1,3347,1,1,1,1,1, + 1,3376,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,49,191,3376, + 1,3020,1,62,190,1310,3376,61,3590,3591, + 3592,3702,407,3703,3539,3540,3538,3593,3541,3537, + 2778,2761,2747,2733,3376,3572,368,1276,1242,1208, + 1174,1140,1072,1106,1038,1004,970,3376,3373,222, + 3376,619,1,1,1,1,1,1,1,1, + 1,1,1,1,3376,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 228,189,3347,1,3347,1,231,190,2964,2953, - 1,1,1,1,1,1,2771,2757,2743,2729, - 2771,2757,2743,2729,726,3347,50,64,3542,781, - 2975,51,1,489,388,3358,2606,3347,2844,830, - 207,3357,3350,3358,3347,1,1,1,1,1, - 1,1,1,1,1,1,1,3322,1,1, + 229,190,3376,1,3376,1,232,191,3009,2998, + 3590,3591,3592,3702,407,3703,2778,2761,2747,2733, + 2778,2761,2747,2733,725,3376,51,65,3572,614, + 3020,52,1,382,436,3388,2627,3376,2873,2862, + 208,3387,3380,3388,3376,1,1,1,1,1, + 1,1,1,1,1,1,1,3351,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3347,190,3560,3561,3562,3672,472, - 3673,3509,3510,3508,3563,3511,3507,66,3514,3519, - 3518,3516,3517,3515,3520,3521,3513,3522,3523,3524, - 737,471,452,3347,3357,3347,3358,2964,2953,1, - 3357,3000,3358,2855,3350,3349,2914,2903,2925,3067, - 3057,3036,3359,3360,3361,3362,2890,2028,3659,3660, - 3661,3023,1948,1756,49,3347,62,1,2975,3347, - 3352,3347,3329,967,3352,3347,3560,3561,3562,3672, - 472,3673,3509,3510,3508,3563,3511,3507,652,3514, - 3519,3518,3516,3517,3515,3520,3521,3513,3522,3523, - 3524,737,471,452,264,3347,2821,1969,1,1, - 3332,3347,3357,3000,3358,2868,3350,3349,2914,2903, - 2925,3067,3057,3036,3359,3360,3361,3362,2890,2028, - 3659,3660,3661,3023,1948,1756,1629,3347,3351,3353, - 3347,3347,3351,57,3347,2964,2953,128,3560,3561, - 3562,3672,472,3673,2712,2681,3347,3347,1396,726, - 1442,1,3357,3000,3358,2937,28,6681,2914,2903, - 2925,3067,3057,3036,3359,3360,3361,3362,2890,2028, - 3659,3660,3661,3023,1948,1756,3347,3347,3604,3349, - 3560,3561,3562,3672,472,3673,3509,3510,3508,3563, - 3511,3507,3347,3514,3519,3518,3516,3517,3515,3520, - 3521,3513,3522,3523,3524,72,53,68,52,2785, - 2799,3347,3347,2844,830,2844,830,3347,3357,3000, - 3358,405,3350,28,2914,2903,2925,3067,3057,3036, - 3359,3360,3361,3362,2890,2028,3659,3660,3661,3023, - 1948,1756,3347,3357,3000,3358,2937,3350,324,2914, - 2903,2925,3067,3057,3036,3359,3360,3361,3362,2890, - 2028,3659,3660,3661,3023,1948,1756,3347,3357,3000, - 3358,2937,3347,6681,2914,2903,2925,3067,3057,3036, - 3359,3360,3361,3362,2890,2028,3659,3660,3661,3023, - 1948,1756,3347,206,1196,3349,1196,1,1906,3347, - 1775,3269,3352,3323,3347,718,3271,3347,3347,3278, - 3280,3347,3347,3286,3347,3347,3357,3000,3358,2937, - 3349,997,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 1,3357,3000,3358,2937,156,6681,2914,2903,2925, - 3067,3057,3036,3359,3360,3361,3362,2890,2028,3659, - 3660,3661,3023,1948,1756,1,3357,3000,3358,2937, - 3351,6681,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 3347,3357,3000,3358,2937,210,6681,2914,2903,2925, - 3067,3057,3036,3359,3360,3361,3362,2890,2028,3659, - 3660,3661,3023,1948,1756,3347,3357,3054,3358,2937, - 761,3347,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 3347,3357,3078,3358,2937,3347,3347,2914,2903,2925, - 3067,3057,3036,3359,3360,3361,3362,2890,2028,3659, - 3660,3661,3023,1948,1756,3347,3357,3080,3358,2937, - 1376,3347,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 3347,3357,3085,3358,2937,1986,3347,2914,2903,2925, - 3067,3057,3036,3359,3360,3361,3362,2890,2028,3659, - 3660,3661,3023,1948,1756,3347,3357,3000,3358,2937, - 1,71,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 3347,3357,3102,3358,2937,219,255,2914,2903,2925, - 3067,3057,3036,3359,3360,3361,3362,2890,2028,3659, - 3660,3661,3023,1948,1756,1,3357,3000,3358,2937, - 1997,3347,2914,2903,2925,3067,3057,3036,3359,3360, - 3361,3362,2890,2028,3659,3660,3661,3023,1948,1756, - 19,178,3338,65,3338,3338,31,3347,381,3604, - 726,3347,2606,1,3347,3347,3372,3373,3356,250, - 63,950,56,1862,1,3338,55,501,67,90, - 3347,247,267,3572,1795,3347,252,251,3355,1585, - 3356,69,3347,178,178,178,178,178,178,178, - 178,178,178,178,178,3338,269,3347,454,88, - 3355,477,3560,3561,3562,3672,472,3673,267,290, - 2821,270,252,3338,3560,3561,3562,3672,472,3673, - 3560,3561,3562,3672,472,3673,1068,726,1,3347, - 1,3347,3347,116,3356,3352,3356,90,2785,2799, - 464,1,2785,2799,2023,3347,655,900,2712,2681, - 3354,726,1541,116,3355,1,3355,3710,1969,252, - 283,3347,228,726,1574,844,726,983,232,29, - 1343,206,1906,1,320,318,316,1197,41,3347, - 997,997,997,200,997,997,3347,29,188,1426, - 188,188,1,1,184,3347,183,205,3347,3347, - 2659,116,3347,3351,3347,3347,1607,3347,3347,3347, - 3347,3347,3347,3347,3347,3347,3347,3353,3347,3347, - 3347,3347,3347,3347,3347,3347,3347,3347,3347,3347, - 3347,3347,844,3347,3604,3347,3347,3347,3347,3347, - 3375,3347,6264,3347,3347,3347,3347,3347,3347,3347, - 3347,3347,3603,3347,3347,3347,3347,1508,617,3347, - 3347,794,3347,3347,3347,3347,3358,3357 + 1,1,1,3376,191,3590,3591,3592,3702,407, + 3703,3539,3540,3538,3593,3541,3537,67,3544,3549, + 3548,3546,3547,3545,3550,3551,3543,3552,3553,3554, + 596,729,627,3376,3387,3376,3388,3009,2998,1, + 3387,467,3388,2886,3380,3379,2958,2947,2969,3090, + 3059,3045,3389,3390,3391,3392,2936,2921,3689,3690, + 3691,2661,2001,1669,50,3376,63,1,3020,3376, + 3382,3376,3358,1025,3382,3376,3590,3591,3592,3702, + 407,3703,3539,3540,3538,3593,3541,3537,650,3544, + 3549,3548,3546,3547,3545,3550,3551,3543,3552,3553, + 3554,596,729,627,265,250,2854,2022,1,1, + 3361,3376,3387,467,3388,2901,3380,3379,2958,2947, + 2969,3090,3059,3045,3389,3390,3391,3392,2936,2921, + 3689,3690,3691,2661,2001,1669,1690,3376,3381,3383, + 3376,3376,3381,58,3376,3009,2998,129,1,1, + 1,1,1,1,2702,1870,3376,3376,1093,725, + 1479,1,3387,467,3388,2980,29,6711,2958,2947, + 2969,3090,3059,3045,3389,3390,3391,3392,2936,2921, + 3689,3690,3691,2661,2001,1669,3376,3376,3634,3379, + 3590,3591,3592,3702,407,3703,3539,3540,3538,3593, + 3541,3537,3376,3544,3549,3548,3546,3547,3545,3550, + 3551,3543,3552,3553,3554,73,54,69,53,2792, + 2806,3376,3376,2873,2862,2873,2862,3376,3387,467, + 3388,2851,3380,29,2958,2947,2969,3090,3059,3045, + 3389,3390,3391,3392,2936,2921,3689,3690,3691,2661, + 2001,1669,3376,3387,467,3388,2980,3380,325,2958, + 2947,2969,3090,3059,3045,3389,3390,3391,3392,2936, + 2921,3689,3690,3691,2661,2001,1669,3376,3387,467, + 3388,2980,3376,6711,2958,2947,2969,3090,3059,3045, + 3389,3390,3391,3392,2936,2921,3689,3690,3691,2661, + 2001,1669,3376,207,1175,3379,1175,1,1959,3376, + 1813,1956,3382,3352,3376,940,2898,3376,3376,3124, + 3298,3376,3376,3300,3376,3376,3387,467,3388,2980, + 3379,1259,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 1,3387,467,3388,2980,157,6711,2958,2947,2969, + 3090,3059,3045,3389,3390,3391,3392,2936,2921,3689, + 3690,3691,2661,2001,1669,1,3387,467,3388,2980, + 3381,6711,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 3376,3387,467,3388,2980,211,6711,2958,2947,2969, + 3090,3059,3045,3389,3390,3391,3392,2936,2921,3689, + 3690,3691,2661,2001,1669,3376,3387,1774,3388,2980, + 760,3376,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 3376,3387,3071,3388,2980,3376,3376,2958,2947,2969, + 3090,3059,3045,3389,3390,3391,3392,2936,2921,3689, + 3690,3691,2661,2001,1669,3376,3387,3087,3388,2980, + 1412,3376,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 3376,3387,3106,3388,2980,2039,3376,2958,2947,2969, + 3090,3059,3045,3389,3390,3391,3392,2936,2921,3689, + 3690,3691,2661,2001,1669,3376,3387,467,3388,2980, + 1,72,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 3376,3387,3108,3388,2980,220,256,2958,2947,2969, + 3090,3059,3045,3389,3390,3391,3392,2936,2921,3689, + 3690,3691,2661,2001,1669,1,3387,467,3388,2980, + 2050,3376,2958,2947,2969,3090,3059,3045,3389,3390, + 3391,3392,2936,2921,3689,3690,3691,2661,2001,1669, + 20,179,3367,66,3367,3367,32,3376,383,3634, + 725,3376,2627,1,3376,3376,3402,3403,3386,248, + 64,1062,57,1917,1,3367,56,1022,68,91, + 3376,251,268,3602,1847,3376,253,252,3385,1616, + 3386,70,3376,179,179,179,179,179,179,179, + 179,179,179,179,179,3367,270,3376,697,89, + 3385,1855,3590,3591,3592,3702,407,3703,268,291, + 2854,271,253,3367,3590,3591,3592,3702,407,3703, + 3590,3591,3592,3702,407,3703,703,725,1,3376, + 1,3376,3376,117,3386,3382,3386,91,2792,2806, + 470,1,2792,2806,2076,3376,546,415,2702,1870, + 3384,725,1579,117,3385,1,3385,3740,2022,253, + 284,3376,229,725,1612,1060,725,1245,233,30, + 1344,207,1959,1,321,319,317,852,42,3376, + 1259,1259,1259,201,1259,1259,3376,30,189,1129, + 189,189,1,1,185,3376,184,206,3376,3376, + 2680,117,3376,3381,3376,3376,1378,3376,3376,3376, + 3376,3376,3376,3376,3376,3376,3376,3383,3376,3376, + 3376,3376,3376,3376,3376,3376,3376,3376,3376,3376, + 3376,3376,1060,3376,3634,3376,3376,3376,3376,3376, + 3405,3376,6294,3376,3376,3376,3376,3376,3376,3376, + 3376,3376,3633,3376,3376,3376,3376,1546,616,3376, + 3376,794,3376,3376,3376,3376,3388,3387 }; }; public final static char termAction[] = TermAction.termAction; @@ -1355,45 +1360,45 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Asb { public final static char asb[] = {0, - 60,1,392,54,60,311,26,3,38,309, - 38,309,309,38,309,38,394,643,56,42, - 94,56,353,319,309,568,568,309,568,56, - 643,481,643,96,97,574,394,311,246,523, - 522,643,105,354,341,374,548,548,548,548, - 548,548,548,548,319,548,548,548,206,223, - 228,226,234,230,237,236,239,238,240,311, - 139,311,172,643,470,56,574,250,576,394, - 56,182,56,353,247,546,546,546,546,247, - 247,568,94,94,94,528,94,94,247,353, - 103,548,103,54,374,481,481,607,548,374, - 374,374,374,374,568,568,646,548,548,548, - 548,548,548,548,548,548,548,548,548,548, - 548,548,548,548,548,548,548,311,139,172, - 172,470,417,576,253,341,417,212,319,481, - 476,394,480,282,169,311,105,522,351,247, - 548,247,247,247,247,372,372,548,428,548, - 548,354,528,103,528,56,243,430,182,643, - 571,479,478,481,481,481,481,481,481,341, - 226,226,223,223,230,230,228,228,228,228, - 236,234,238,237,103,239,139,169,344,139, - 172,174,484,174,417,470,480,417,341,318, - 250,548,548,548,548,548,548,548,548,548, - 548,548,571,643,576,169,180,546,546,247, - 546,247,481,94,481,481,353,528,548,180, - 607,481,613,574,489,489,489,489,311,548, - 139,346,174,169,548,568,470,58,548,548, - 341,319,613,476,180,546,247,546,247,546, - 247,546,528,548,528,528,180,481,576,169, - 246,548,245,169,341,341,174,425,645,247, - 546,645,247,546,546,247,646,247,481,352, - 174,481,346,548,169,178,526,568,548,424, - 528,481,645,645,247,528,481,645,645,247, - 645,247,546,481,646,247,528,169,313,182, - 341,568,548,528,528,481,528,481,645,528, - 528,481,528,481,645,528,481,645,645,247, - 528,481,341,528,528,528,481,528,528,528, - 481,528,528,481,528,481,645,528,528,528, - 528,528,528,481,528 + 249,1,396,54,249,353,26,3,38,351, + 38,351,351,38,351,38,398,669,56,42, + 283,56,357,292,351,594,594,351,594,56, + 669,481,669,138,139,600,398,353,134,523, + 522,669,60,358,314,378,574,574,574,574, + 574,574,574,574,292,574,574,574,94,111, + 116,114,122,118,125,124,127,126,128,353, + 175,353,285,669,470,56,600,208,602,398, + 56,151,56,357,135,572,572,572,572,135, + 135,594,283,283,283,554,283,283,135,357, + 145,574,145,54,378,481,481,633,574,378, + 378,378,378,378,594,594,529,574,574,574, + 574,574,574,574,574,574,574,574,574,574, + 574,574,574,574,574,574,574,353,175,285, + 285,470,470,602,211,314,421,100,292,481, + 476,398,480,324,205,353,60,522,355,135, + 574,135,135,135,135,376,376,574,428,574, + 574,358,554,145,554,56,131,430,151,669, + 597,479,478,481,481,481,481,481,481,314, + 114,114,111,111,118,118,116,116,116,116, + 124,122,126,125,145,127,175,205,317,175, + 285,287,484,287,470,421,480,421,314,291, + 208,574,574,574,574,574,574,574,574,574, + 574,574,597,669,602,205,149,572,572,135, + 572,135,481,283,481,481,357,554,574,149, + 633,481,639,600,489,489,489,489,353,574, + 175,319,287,205,574,594,421,470,58,574, + 574,314,292,639,476,149,572,135,572,135, + 572,135,572,554,574,554,554,149,481,602, + 205,134,574,133,205,470,314,314,287,246, + 528,135,572,528,135,572,572,135,529,135, + 481,356,287,481,319,574,205,147,526,594, + 574,245,554,481,528,528,135,554,481,528, + 528,135,528,135,572,481,529,135,554,205, + 240,151,314,594,574,554,554,481,554,481, + 528,554,554,481,554,481,528,554,481,528, + 528,135,554,481,314,554,554,554,481,554, + 554,554,481,554,554,481,554,481,528,554, + 554,554,554,554,554,481,554 }; }; public final static char asb[] = Asb.asb; @@ -1406,44 +1411,44 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym 20,21,22,23,24,64,56,61,59,60, 58,57,62,63,65,66,67,55,74,71, 73,50,43,51,52,53,44,49,54,45, - 46,47,48,25,5,4,2,1,0,87, - 50,56,43,57,68,51,58,52,59,60, - 53,44,61,62,49,69,54,70,63,64, - 45,65,66,67,1,3,4,46,47,48, - 25,5,26,2,0,2,5,75,71,73, - 25,55,74,0,50,56,43,57,68,51, + 46,47,48,25,5,4,2,1,0,50, + 56,43,57,68,51,58,52,59,60,53, + 44,61,62,49,69,54,70,63,64,45, + 65,66,67,1,3,46,47,48,5,75, + 71,25,0,55,2,80,94,10,11,75, + 97,98,99,100,101,103,102,104,105,106, + 4,81,82,7,8,77,76,83,84,85, + 86,88,89,9,90,91,92,72,95,96, + 78,73,74,71,25,5,0,2,5,75, + 71,73,25,55,74,0,5,72,55,80, + 2,13,14,15,16,19,20,21,1,3, + 10,11,9,4,7,8,17,18,12,22, + 23,24,6,0,50,56,43,57,68,51, 58,52,59,60,53,44,61,62,49,69, 54,70,63,64,45,65,66,67,1,3, - 46,47,48,5,75,71,25,0,50,56, - 43,57,68,51,58,52,59,60,53,44, - 61,62,49,69,54,70,63,64,45,65, - 66,67,1,3,46,47,48,26,5,72, - 0,1,3,5,72,71,0,5,72,55, - 80,2,13,14,15,16,19,20,21,1, - 3,10,11,9,4,7,8,17,18,12, - 22,23,24,6,0,55,2,80,94,10, - 11,75,97,98,99,100,101,103,102,104, - 105,106,4,81,82,7,8,77,76,83, - 84,85,86,88,89,9,90,91,92,72, - 95,96,78,73,74,71,25,5,0,78, - 5,49,43,44,45,46,47,48,10,11, - 9,4,7,8,17,18,12,22,23,24, - 2,1,3,13,14,15,16,19,20,21, - 0,50,56,43,57,68,51,58,52,59, - 60,53,44,61,62,49,69,54,70,63, - 64,45,65,66,67,46,47,48,1,3, - 6,0,5,71,72,25,0,49,10,11, - 9,4,7,8,17,18,12,22,23,24, - 2,1,3,13,14,15,16,19,20,21, - 78,5,0,25,5,4,1,2,74,0, - 87,93,72,30,31,6,35,37,32,28, - 33,42,34,27,29,36,39,41,38,40, - 26,25,5,12,13,14,15,16,10,11, - 9,7,8,17,18,19,20,21,22,23, - 24,4,2,1,3,68,69,70,64,56, - 61,59,60,58,57,62,63,65,66,67, - 54,51,49,50,53,52,46,48,47,43, - 44,45,0,75,55,80,0,28,0,49, + 46,47,48,26,5,72,0,78,5,49, + 43,44,45,46,47,48,10,11,9,4, + 7,8,17,18,12,22,23,24,2,1, + 3,13,14,15,16,19,20,21,0,5, + 71,72,25,0,75,55,80,0,87,50, + 56,43,57,68,51,58,52,59,60,53, + 44,61,62,49,69,54,70,63,64,45, + 65,66,67,1,3,4,46,47,48,25, + 5,26,2,0,1,3,5,72,71,0, + 49,10,11,9,4,7,8,17,18,12, + 22,23,24,2,1,3,13,14,15,16, + 19,20,21,78,5,0,25,5,4,1, + 2,74,0,50,56,43,57,68,51,58, + 52,59,60,53,44,61,62,49,69,54, + 70,63,64,45,65,66,67,46,47,48, + 1,3,6,0,87,93,72,30,31,6, + 35,37,32,28,33,42,34,27,29,36, + 39,41,38,40,26,25,5,12,13,14, + 15,16,10,11,9,7,8,17,18,19, + 20,21,22,23,24,4,2,1,3,68, + 69,70,64,56,61,59,60,58,57,62, + 63,65,66,67,54,51,49,50,53,52, + 43,44,45,47,46,48,0,28,0,49, 54,53,52,51,50,80,94,10,11,9, 7,8,81,82,76,77,83,84,85,86, 88,89,90,91,92,95,96,75,97,98, @@ -1453,21 +1458,21 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym 7,8,81,82,76,77,83,84,85,86, 88,89,90,91,92,95,96,74,97,98, 99,100,101,102,103,104,105,106,78,73, - 72,6,5,71,25,75,0,30,31,6, - 35,37,32,28,33,42,34,27,29,36, - 39,41,38,40,26,25,5,2,13,14, - 15,16,19,20,21,10,11,9,4,7, - 8,17,18,12,22,23,24,1,3,0, - 4,2,55,73,5,50,56,43,57,68, - 51,58,52,59,60,53,44,61,62,49, - 69,54,70,63,64,45,65,66,67,1, - 3,46,47,48,79,0,5,73,4,2, - 55,0,50,56,43,57,68,51,58,52, - 59,60,53,44,61,62,49,69,54,70, - 63,64,45,65,66,67,1,3,46,47, - 48,79,4,0,27,5,73,12,13,14, - 15,16,1,3,2,10,11,9,4,7, - 8,17,18,19,20,21,22,23,24,0 + 72,6,5,71,25,75,0,27,5,73, + 12,13,14,15,16,1,3,2,10,11, + 9,4,7,8,17,18,19,20,21,22, + 23,24,0,30,31,6,35,37,32,28, + 33,42,34,27,29,36,39,41,38,40, + 26,25,5,2,13,14,15,16,19,20, + 21,10,11,9,4,7,8,17,18,12, + 22,23,24,1,3,0,4,2,55,73, + 5,50,56,43,57,68,51,58,52,59, + 60,53,44,61,62,49,69,54,70,63, + 64,45,65,66,67,1,3,46,47,48, + 79,0,5,73,4,2,55,0,50,56, + 43,57,68,51,58,52,59,60,53,44, + 61,62,49,69,54,70,63,64,45,65, + 66,67,1,3,46,47,48,79,4,0 }; }; public final static byte asr[] = Asr.asr; @@ -1475,45 +1480,45 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Nasb { public final static char nasb[] = {0, - 41,34,24,18,93,35,52,39,53,12, - 53,82,82,53,81,53,47,166,138,34, - 34,136,21,73,7,7,7,7,7,14, - 34,162,166,45,45,161,134,35,19,34, - 34,166,34,112,74,169,64,64,64,64, - 64,64,64,64,73,64,64,64,34,34, - 34,34,34,34,34,34,34,34,34,70, - 134,34,134,34,134,155,161,72,122,57, - 138,90,153,118,19,99,99,99,99,19, - 19,7,34,34,34,142,34,34,19,21, - 34,64,34,18,1,162,162,132,64,169, - 169,169,169,169,37,37,9,100,64,64, - 64,64,64,64,64,64,64,64,64,64, - 64,64,64,64,64,100,64,34,177,134, - 7,134,55,86,63,74,55,34,73,162, - 130,27,34,76,134,34,34,34,34,19, - 64,19,19,19,19,97,107,100,34,100, - 100,112,142,34,142,138,34,34,64,166, - 159,45,45,162,162,162,162,162,162,74, - 34,34,34,34,34,34,34,34,34,34, - 34,34,34,34,34,34,134,22,18,125, - 7,103,34,34,55,66,162,55,74,73, - 66,64,64,64,64,64,64,64,64,64, - 64,64,129,166,122,22,134,99,99,19, - 109,19,162,34,162,162,118,142,64,134, - 149,162,164,161,34,34,34,34,34,64, - 177,138,103,22,64,7,66,34,64,64, - 74,73,164,147,62,99,19,99,19,99, - 19,109,142,100,142,142,62,162,122,22, - 19,64,34,22,74,74,103,68,173,19, - 99,173,19,99,99,19,109,19,162,34, - 103,162,138,64,22,61,34,7,64,105, - 142,162,173,173,19,142,162,173,173,19, - 173,19,99,162,109,19,142,22,84,90, - 74,7,64,142,142,162,142,162,173,142, - 142,162,142,162,173,142,162,173,173,19, - 142,162,74,142,142,142,162,142,142,142, - 162,142,142,162,142,162,173,142,142,142, - 142,142,142,162,142 + 92,33,23,48,14,34,56,18,57,36, + 57,60,60,57,59,57,51,178,156,33, + 33,154,20,72,7,7,7,7,7,44, + 33,174,178,62,62,173,148,34,49,33, + 33,178,33,120,73,38,67,67,67,67, + 67,67,67,67,72,67,67,67,33,33, + 33,33,33,33,33,33,33,33,33,90, + 148,33,148,33,130,167,173,71,136,116, + 156,85,165,132,49,105,105,105,105,49, + 49,7,33,33,33,160,33,33,49,20, + 33,67,33,48,1,174,174,146,67,38, + 38,38,38,38,42,42,9,106,67,67, + 67,67,67,67,67,67,67,67,67,67, + 67,67,67,67,67,106,67,33,81,148, + 7,130,148,77,66,73,12,33,72,174, + 144,26,33,98,148,33,33,33,33,49, + 67,49,49,49,49,103,109,106,33,106, + 106,120,160,33,160,156,33,33,67,178, + 171,62,62,174,174,174,174,174,174,73, + 33,33,33,33,33,33,33,33,33,33, + 33,33,33,33,33,33,148,21,48,150, + 7,114,33,33,148,12,174,12,73,72, + 69,67,67,67,67,67,67,67,67,67, + 67,67,143,178,136,21,148,105,105,49, + 111,49,174,33,174,174,132,160,67,148, + 128,174,176,173,33,33,33,33,33,67, + 81,156,114,21,67,7,12,69,33,67, + 67,73,72,176,126,65,105,49,105,49, + 105,49,111,160,106,160,160,65,174,136, + 21,49,67,33,21,69,73,73,114,96, + 139,49,105,139,49,105,105,49,111,49, + 174,33,114,174,156,67,21,64,33,7, + 67,88,160,174,139,139,49,160,174,139, + 139,49,139,49,105,174,111,49,160,21, + 75,85,73,7,67,160,160,174,160,174, + 139,160,160,174,160,174,139,160,174,139, + 139,49,160,174,73,160,160,160,174,160, + 160,160,174,160,160,174,160,174,139,160, + 160,160,160,160,160,174,160 }; }; public final static char nasb[] = Nasb.nasb; @@ -1522,23 +1527,23 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Nasr { public final static char nasr[] = {0, 87,85,84,79,83,82,2,0,1,111, - 0,112,0,40,42,43,0,1,3,0, - 1,45,0,40,1,105,87,86,85,84, - 79,83,82,0,109,0,94,0,126,0, - 124,33,1,0,51,0,79,75,76,77, - 78,67,52,0,80,0,33,1,125,0, - 93,72,1,8,0,35,0,121,0,113, - 0,1,8,39,0,1,33,50,17,0, - 115,90,0,119,0,116,1,33,0,8, - 72,0,33,1,107,0,33,50,3,1, - 14,0,73,0,123,0,33,50,1,66, - 0,1,33,2,18,97,0,18,2,74, - 45,1,33,0,1,56,91,0,11,40, - 47,63,64,1,0,49,42,47,40,1, - 0,2,18,1,19,0,40,47,64,63, - 43,0,42,49,40,47,43,0,63,64, - 1,11,0,1,33,43,59,0,1,56, - 14,0,1,44,11,0,100,1,56,0 + 0,80,0,34,1,107,0,126,0,1, + 45,0,41,1,105,87,86,85,84,79, + 83,82,0,109,0,112,0,1,56,14, + 0,94,0,41,43,40,0,1,3,0, + 79,75,76,77,78,67,52,0,115,90, + 0,51,0,93,72,1,8,0,35,0, + 1,8,39,0,119,0,116,1,34,0, + 100,1,56,0,8,72,0,123,0,113, + 0,124,34,1,0,121,0,1,34,50, + 17,0,34,50,3,1,14,0,34,50, + 1,66,0,73,0,34,1,125,0,1, + 34,2,18,97,0,41,47,64,63,40, + 0,18,2,74,45,1,34,0,1,44, + 11,0,11,41,47,63,64,1,0,1, + 56,91,0,49,43,47,41,1,0,2, + 18,1,19,0,43,49,41,47,40,0, + 63,64,1,11,0,1,34,40,59,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1565,18 +1570,18 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 0,113,112,0,0,0,0,115,119,120, - 110,121,122,114,123,124,137,133,136,0, + 110,121,122,114,123,124,136,132,135,0, 0,0,0,0,0,125,126,127,128,129, - 130,131,141,132,149,0,0,0,109,171, - 0,174,0,197,111,168,170,0,172,140, - 173,148,0,0,0,163,159,135,169,117, - 182,185,186,187,0,0,151,158,0,175, - 181,0,0,139,152,153,154,155,160,180, - 184,143,144,145,146,147,150,156,157,0, - 162,167,188,116,118,134,138,142,0,161, - 165,0,0,166,176,179,193,0,195,0, - 0,0,0,164,0,177,178,183,0,189, - 190,0,191,192,194,196,0 + 130,0,131,140,148,0,0,0,109,0, + 170,0,173,196,111,167,169,0,171,139, + 172,147,0,0,0,162,158,134,168,117, + 181,184,185,186,0,0,150,157,0,174, + 180,0,0,138,151,152,153,154,159,179, + 183,142,143,144,145,146,149,155,156,0, + 161,166,187,116,118,133,137,141,0,160, + 164,0,0,165,175,178,192,0,194,0, + 0,0,0,163,0,176,177,182,0,188, + 189,0,190,191,193,195,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1611,11 +1616,11 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeLhs { public final static char scopeLhs[] = { 77,75,8,77,51,51,75,68,22,65, - 51,42,51,9,9,9,65,51,51,91, + 51,43,51,9,9,9,65,51,51,91, 17,9,8,8,51,51,32,51,126,123, - 122,63,81,51,40,57,6,93,91,10, - 23,8,91,86,85,84,83,82,42,49, - 42 + 122,63,81,51,41,57,6,93,91,10, + 23,8,91,86,85,84,83,82,43,49, + 43 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -1651,24 +1656,24 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public final static char scopeRhs[] = {0, 165,55,0,109,0,167,2,24,0,110, 0,167,2,23,0,167,2,22,0,227, - 108,0,31,158,0,180,202,108,6,179, + 108,0,31,157,0,180,202,108,6,179, 0,111,0,0,177,108,2,170,0,177, - 108,2,0,188,2,0,166,108,0,185, - 0,213,108,55,0,9,109,0,141,49, - 213,108,55,0,69,132,109,0,141,213, - 108,49,55,0,213,108,49,55,0,132, - 109,0,141,49,55,0,141,213,108,55, - 0,141,55,0,147,0,2,0,177,110, - 0,2,110,0,177,108,2,147,0,2, - 0,175,110,0,164,2,0,168,0,180, + 108,2,0,188,2,0,166,108,0,184, + 0,213,108,55,0,9,109,0,140,49, + 213,108,55,0,69,131,109,0,140,213, + 108,49,55,0,213,108,49,55,0,131, + 109,0,140,49,55,0,140,213,108,55, + 0,140,55,0,148,0,2,0,176,110, + 0,2,110,0,177,108,2,148,0,2, + 0,174,110,0,164,2,0,167,0,180, 210,108,6,109,222,68,0,111,0,180, 210,108,6,222,68,0,163,0,112,0, - 221,108,163,0,108,163,0,164,112,0, + 221,108,163,0,108,163,0,163,112,0, 206,108,6,220,109,219,186,0,206,108, - 6,219,186,0,194,0,155,0,154,0, - 153,0,152,0,151,0,126,32,0,77, + 6,219,186,0,194,0,154,0,153,0, + 152,0,151,0,150,0,126,32,0,77, 2,114,110,112,0,126,118,121,2,35, - 0,53,136,0,204,108,6,0,121,96, + 0,53,135,0,204,108,6,0,121,96, 138,0,29,131,0,167,2,0,110,120, 0,167,2,12,0,180,202,108,6,118, 167,2,0,110,3,0,118,0,111,0, @@ -1681,21 +1686,21 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeState { public final static char scopeState[] = {0, - 1363,0,663,0,3095,1701,3090,0,729,2580, - 2554,2545,2519,2510,2484,2475,2449,2440,2414,2405, - 2379,2370,2344,2335,2309,2300,2274,2265,2239,2230, - 2204,2195,2169,2160,2134,2125,2099,2090,2064,2023, - 1726,1997,1986,1692,1943,1658,1624,0,965,913, - 569,528,2012,1866,1795,2821,1767,2887,0,3067, - 3057,3036,3023,1948,1756,2868,2986,2855,1775,1906, - 1862,2606,1969,2771,2757,2743,2729,2712,2681,2844, - 830,2799,2785,2975,2964,2953,2937,2925,405,2914, - 2903,2890,2028,1574,1541,1508,1475,1442,1409,1376, - 1607,1343,1310,1277,1244,1211,1178,1145,1112,1079, - 1046,1013,980,909,876,652,364,947,726,841, - 794,761,617,544,509,0,472,0,384,421, - 2012,2631,1779,2659,2609,1795,2587,1767,655,1853, - 388,0,530,638,364,421,0 + 833,0,869,0,1991,1902,749,0,1007,2601, + 2575,2566,2540,2531,2505,2496,2470,2461,2435,2426, + 2400,2391,2365,2356,2330,2321,2295,2286,2260,2251, + 2225,2216,2190,2181,2155,2146,2120,2111,2085,2076, + 1762,2050,2039,1727,1996,1664,1629,0,1144,936, + 667,613,1659,3086,1847,2854,1803,2932,0,3090, + 3059,3045,2661,2001,1669,2901,3031,2886,1813,1959, + 1917,2627,2022,2778,2761,2747,2733,2702,1870,2873, + 2862,2806,2792,3020,3009,2998,2980,2969,2851,2958, + 2947,2936,2921,1612,1579,1546,1513,1479,1445,1412, + 1378,1344,1310,1276,1242,1208,1174,1140,1106,1072, + 1038,1004,970,899,865,650,365,937,725,829, + 794,760,616,543,509,0,407,0,520,421, + 1659,2652,653,2680,2630,1847,2608,1803,546,1906, + 436,0,530,637,365,421,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -1703,45 +1708,45 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,217,108,140,231,212,189,47,190,186, + 0,217,108,141,231,212,189,47,190,186, 191,70,69,192,68,193,194,108,2,1, - 147,108,6,55,219,197,197,222,197,166, - 150,164,108,147,154,2,224,212,205,196, - 149,108,156,108,165,2,24,23,22,12, + 148,108,6,55,219,197,197,222,197,166, + 147,164,108,148,154,2,224,212,205,196, + 150,108,156,108,165,2,24,23,22,12, 18,17,8,7,4,9,11,10,115,119, 122,120,133,123,135,134,137,136,138,109, - 6,109,6,150,4,166,2,55,108,108, + 6,109,6,147,4,166,2,55,108,108, 71,75,166,204,40,38,41,39,36,29, 27,34,42,33,28,32,37,35,125,6, - 31,30,109,140,108,167,121,163,4,2, + 31,30,109,141,108,167,121,163,4,2, 2,2,2,2,94,80,2,55,82,81, 4,76,77,8,7,89,88,86,85,84, 83,90,9,92,91,96,95,220,108,6, - 108,4,108,108,49,141,108,116,4,177, - 140,108,178,232,6,179,156,149,5,121, + 108,4,147,108,49,140,108,116,4,177, + 141,108,178,232,6,179,156,150,5,121, 108,121,121,121,109,2,2,2,126,2, 2,108,74,165,74,108,203,109,118,108, 2,171,170,167,167,167,167,167,218,121, 120,120,119,119,123,123,122,122,122,122, 134,133,136,135,121,137,6,206,163,207, - 108,210,109,211,108,187,223,108,141,213, + 108,210,109,211,147,108,223,108,140,213, 187,106,105,104,102,103,101,100,99,98, 97,75,2,108,71,108,6,157,110,121, 157,173,121,28,121,121,204,74,71,6, 166,188,108,2,118,118,118,118,118,74, - 108,108,210,180,75,71,187,71,213,49, - 141,4,108,166,108,110,121,110,121,110, - 173,110,118,2,118,118,108,177,108,206, - 221,74,164,180,141,141,202,108,110,121, - 110,110,121,110,110,121,110,173,121,126, - 202,177,71,74,180,71,227,80,55,228, - 118,151,110,110,121,118,151,110,110,121, - 110,121,110,173,110,118,93,180,152,75, - 165,80,55,118,118,151,118,151,110,118, - 118,151,118,151,110,118,151,110,110,121, - 118,173,165,118,118,118,151,118,118,118, - 151,118,118,151,118,151,110,118,118,118, - 118,118,118,151,118 + 108,108,210,180,75,71,108,187,71,213, + 49,140,4,108,166,108,110,121,110,121, + 110,173,110,118,2,118,118,108,177,108, + 206,221,74,164,180,187,140,140,202,108, + 110,121,110,110,121,110,110,121,110,173, + 121,126,202,177,71,74,180,71,227,80, + 55,228,118,151,110,110,121,118,151,110, + 110,121,110,121,110,173,110,118,93,180, + 152,75,165,80,55,118,118,151,118,151, + 110,118,118,151,118,151,110,118,151,110, + 110,121,118,173,165,118,118,118,151,118, + 118,118,151,118,118,151,118,151,110,118, + 118,118,118,118,118,151,118 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1875,12 +1880,11 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_in_statement", "expression_list_actual", @@ -1969,20 +1973,20 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 385, + NUM_STATES = 387, NT_OFFSET = 107, - LA_STATE_OFFSET = 3710, + LA_STATE_OFFSET = 3740, MAX_LA = 2147483647, - NUM_RULES = 363, - NUM_NONTERMINALS = 127, - NUM_SYMBOLS = 234, + NUM_RULES = 364, + NUM_NONTERMINALS = 128, + NUM_SYMBOLS = 235, SEGMENT_SIZE = 8192, - START_STATE = 479, + START_STATE = 850, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 87, EOLT_SYMBOL = 87, - ACCEPT_ACTION = 3322, - ERROR_ACTION = 3347; + ACCEPT_ACTION = 3351, + ERROR_ACTION = 3376; public final static boolean BACKTRACK = true; diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java index 570dc6feb68..ce1845c68be 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java @@ -17,13 +17,20 @@ import lpg.lpgjavaruntime.*; import java.util.*; import org.eclipse.cdt.core.dom.ast.*; +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.CPreprocessorAdapter; +import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream; 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.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; @@ -37,7 +44,9 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -public class UPCSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser< IASTExpression > +public class UPCSizeofExpressionParser extends PrsStream implements RuleAction, ITokenStream, + ITokenCollector, IParser< IASTExpression > + , ISecondaryParser< IASTExpression > { private static ParseTable prs = new UPCSizeofExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -175,7 +184,11 @@ public class UPCSizeofExpressionParser extends PrsStream implements RuleAction , private UPCParserAction action; private IASTCompletionNode compNode; -public UPCSizeofExpressionParser() { // constructor + +public UPCSizeofExpressionParser(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) { @@ -194,10 +207,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 @@ -240,12 +252,12 @@ public void setTokens(List<IToken> tokens) { addToken(new Token(null, 0, 0, UPCSizeofExpressionParsersym.TK_EOF_TOKEN)); } -public UPCSizeofExpressionParser(IParserActionTokenProvider parser) { // constructor - tokenMap = new TokenMap(UPCSizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); +public UPCSizeofExpressionParser(ITokenStream stream, Set<IParser.Options> options) { // constructor for creating secondary parser + initActions(options); + tokenMap = new TokenMap(UPCSizeofExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols()); } - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -258,1269 +270,1275 @@ public UPCSizeofExpressionParser(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 42: cast_expression ::= ( type_id ) cast_expression + // Rule 41: unary_expression ::= sizeof unary_expression // - case 42: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 43: cast_expression ::= ( type_id ) cast_expression // - case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); 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 ::= basic_direct_abstract_declarator ( ) + // Rule 276: function_direct_abstract_declarator ::= ( ) // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; - } + case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + } // - // Rule 277: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list ) + // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; } // - // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list ) + // Rule 278: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list ) // - case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; } // - // Rule 279: initializer ::= assignment_expression + // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list ) // - case 279: { action. consumeInitializer(); break; + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; } // - // Rule 280: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list + // Rule 280: initializer ::= assignment_expression // - case 280: { action. consumeInitializerList(); break; + case 280: { action. consumeInitializer(); break; } // - // Rule 281: initializer ::= { <openscope-ast> } + // Rule 281: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 281: { action. consumeInitializerList(); break; } // - // Rule 282: start_initializer_list ::= $Empty + // Rule 282: initializer ::= { <openscope-ast> } // - case 282: { action. initializerListStart(); break; + case 282: { action. consumeInitializerList(); break; } // - // Rule 283: end_initializer_list ::= $Empty + // Rule 283: start_initializer_list ::= $Empty // - case 283: { action. initializerListEnd(); break; + case 283: { action. initializerListStart(); break; } // - // Rule 288: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 284: end_initializer_list ::= $Empty // - case 288: { action. consumeInitializerDesignated(); break; + case 284: { action. initializerListEnd(); break; } // - // Rule 292: designator_base ::= [ constant_expression ] + // Rule 289: designated_initializer ::= <openscope-ast> designation = initializer // - case 292: { action. consumeDesignatorArray(); break; + case 289: { action. consumeInitializerDesignated(); break; } // - // Rule 293: designator_base ::= . identifier_token + // Rule 293: designator_base ::= [ constant_expression ] // - case 293: { action. consumeDesignatorField(); break; + case 293: { action. consumeDesignatorArray(); break; } // - // Rule 294: designator ::= [ constant_expression ] + // Rule 294: designator_base ::= . identifier_token // - case 294: { action. consumeDesignatorArray(); break; + case 294: { action. consumeDesignatorField(); break; } // - // Rule 295: designator ::= . identifier_token + // Rule 295: designator ::= [ constant_expression ] // - case 295: { action. consumeDesignatorField(); break; + case 295: { action. consumeDesignatorArray(); break; } // - // Rule 296: translation_unit ::= external_declaration_list + // Rule 296: designator ::= . identifier_token // - case 296: { action. consumeTranslationUnit(); break; - } + case 296: { action. consumeDesignatorField(); break; + } // - // Rule 297: translation_unit ::= $Empty + // Rule 297: translation_unit ::= external_declaration_list // case 297: { action. consumeTranslationUnit(); break; - } + } // - // Rule 302: external_declaration ::= ; + // Rule 298: translation_unit ::= $Empty // - case 302: { action. consumeDeclarationEmpty(); break; + case 298: { action. consumeTranslationUnit(); break; } // - // Rule 303: external_declaration ::= ERROR_TOKEN + // Rule 303: external_declaration ::= ; // - case 303: { action. consumeDeclarationProblem(); break; + case 303: { action. consumeDeclarationEmpty(); break; } // - // Rule 306: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 304: external_declaration ::= ERROR_TOKEN // - case 306: { action. consumeFunctionDefinition(true); break; + case 304: { action. consumeDeclarationProblem(); break; } // - // Rule 307: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 307: { action. consumeFunctionDefinition(false); break; + case 307: { action. consumeFunctionDefinition(true); break; } // - // Rule 308: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 308: function_definition ::= <openscope-ast> function_declarator function_body // - case 308: { action. consumeFunctionDefinitionKnR(); break; + case 308: { action. consumeFunctionDefinition(false); break; } // - // Rule 309: function_body ::= { } + // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 309: { action. consumeStatementCompoundStatement(false); break; + case 309: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 310: function_body ::= { <openscope-ast> block_item_list } + // Rule 310: function_body ::= { } // - case 310: { action. consumeStatementCompoundStatement(true); break; + case 310: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 312: no_sizeof_type_id_start ::= ERROR_TOKEN + // Rule 311: function_body ::= { <openscope-ast> block_item_list } // - case 312: { action. consumeEmpty(); break; + case 311: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 313: literal ::= MYTHREAD + // Rule 313: no_sizeof_type_id_start ::= ERROR_TOKEN // - case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 313: { action. consumeEmpty(); break; } // - // Rule 314: literal ::= THREADS + // Rule 314: literal ::= MYTHREAD // - case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 315: literal ::= UPC_MAX_BLOCKSIZE + // Rule 315: literal ::= THREADS // - case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 316: unary_expression ::= upc_localsizeof unary_expression + // Rule 316: literal ::= UPC_MAX_BLOCKSIZE // - case 316: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 316: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 317: unary_expression ::= upc_blocksizeof unary_expression + // Rule 317: unary_expression ::= upc_localsizeof unary_expression // - case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 318: unary_expression ::= upc_elemsizeof unary_expression + // Rule 318: unary_expression ::= upc_blocksizeof unary_expression // - case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 322: shared_type_qualifier ::= shared + // Rule 319: unary_expression ::= upc_elemsizeof unary_expression // - case 322: { action. consumeToken(); break; + case 319: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 323: reference_type_qualifier ::= relaxed + // Rule 323: shared_type_qualifier ::= shared // case 323: { action. consumeToken(); break; } // - // Rule 324: reference_type_qualifier ::= strict + // Rule 324: reference_type_qualifier ::= relaxed // case 324: { action. consumeToken(); break; } // - // Rule 325: layout_qualifier ::= [ constant_expression ] + // Rule 325: reference_type_qualifier ::= strict + // + case 325: { action. consumeToken(); break; + } + + // + // Rule 326: layout_qualifier ::= [ constant_expression ] // - case 325: { action. consumeLayoutQualifier(true, false); break; + case 326: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 326: layout_qualifier ::= [ * ] + // Rule 327: layout_qualifier ::= [ * ] // - case 326: { action. consumeLayoutQualifier(false, true); break; + case 327: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 327: layout_qualifier ::= [ ] + // Rule 328: layout_qualifier ::= [ ] // - case 327: { action. consumeLayoutQualifier(false, false); break; + case 328: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 329: synchronization_statement ::= upc_notify expression ; + // Rule 330: synchronization_statement ::= upc_notify expression ; // - case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 330: synchronization_statement ::= upc_notify ; + // Rule 331: synchronization_statement ::= upc_notify ; // - case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 331: synchronization_statement ::= upc_wait expression ; + // Rule 332: synchronization_statement ::= upc_wait expression ; // - case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 332: synchronization_statement ::= upc_wait ; + // Rule 333: synchronization_statement ::= upc_wait ; // - case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 333: synchronization_statement ::= upc_barrier expression ; + // Rule 334: synchronization_statement ::= upc_barrier expression ; // - case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 334: synchronization_statement ::= upc_barrier ; + // Rule 335: synchronization_statement ::= upc_barrier ; // - case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 335: synchronization_statement ::= upc_fence ; + // Rule 336: synchronization_statement ::= upc_fence ; // - case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 336: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 337: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 337: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 338: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 338: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 339: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 339: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 340: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 340: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 341: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 341: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 341: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 342: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 342: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 342: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 343: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 343: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 344: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 343: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 344: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 344: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 345: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 344: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 345: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 345: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 346: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 345: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 346: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 346: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 347: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 346: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 347: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 347: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 348: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 347: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 348: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 349: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 349: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 349: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 350: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 350: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 350: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 351: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 351: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 352: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 351: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 352: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 352: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 353: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 353: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 354: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 354: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 355: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 355: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 356: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 357: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 357: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 357: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 358: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 358: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 358: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 359: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 359: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 360: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 359: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 360: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 361: affinity ::= continue + // Rule 362: affinity ::= continue // - case 361: { action. consumeToken(); break; + case 362: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java index 85a0e37b134..bc26316607e 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java @@ -35,196 +35,196 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseCheck { public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 4,4,3,3,2,2,8,1,0,1, - 1,2,2,2,2,2,2,2,2,2, - 1,4,1,3,3,3,1,3,3,1, - 3,3,1,3,3,3,3,1,3,3, - 1,3,1,3,1,3,1,3,1,3, - 1,5,1,3,3,3,3,3,3,3, - 3,3,3,3,1,1,2,1,0,1, - 3,1,1,1,1,1,1,1,1,3, - 4,3,2,4,1,2,1,1,1,2, - 5,7,5,1,0,7,5,9,8,3, - 2,2,2,3,2,4,2,2,2,2, - 2,1,1,1,1,2,1,2,2,2, - 1,2,2,1,2,2,1,2,2,1, - 2,2,1,3,1,3,1,1,1,1, + 0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,1, + 1,4,4,3,3,2,2,8,1,0, + 1,1,2,2,2,2,2,2,2,2, + 2,1,4,1,3,3,3,1,3,3, + 1,3,3,1,3,3,3,3,1,3, + 3,1,3,1,3,1,3,1,3,1, + 3,1,5,1,3,3,3,3,3,3, + 3,3,3,3,3,1,1,2,1,0, + 1,3,1,1,1,1,1,1,1,1, + 3,4,3,2,4,1,2,1,1,1, + 2,5,7,5,1,0,7,5,9,8, + 3,2,2,2,3,2,4,2,2,2, + 2,2,1,1,1,1,2,1,2,2, + 2,1,2,2,1,2,2,1,2,2, + 1,2,2,1,3,1,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6,8,0, - 0,1,1,3,3,3,0,1,0,1, - 2,4,2,1,1,1,3,1,1,2, - 3,7,8,0,1,0,1,3,1,3, - 1,1,1,1,1,1,3,1,1,1, - 1,1,3,1,2,2,1,5,3,1, - 3,5,1,3,1,3,2,4,3,5, - 4,6,6,3,5,1,2,3,4,5, - 0,1,2,1,3,1,1,3,2,1, - 1,1,1,2,1,2,3,1,1,1, - 3,1,2,2,2,3,4,5,1,7, - 3,0,0,1,1,3,3,4,1,1, - 2,3,2,3,2,1,0,1,2,1, - 1,1,1,1,2,4,3,6,2,4, - 1,1,1,1,1,2,2,2,1,1, - 2,1,1,1,3,3,2,1,3,2, - 3,2,3,2,2,11,10,10,9,10, - 9,9,8,10,9,9,8,9,8,8, - 7,10,9,9,8,9,8,8,7,1, - 1,-39,0,0,0,0,0,0,0,0, - 0,0,-2,0,0,0,0,0,0,0, - 0,0,-4,0,0,0,0,-84,-77,-17, - 0,0,0,0,-125,0,0,0,0,0, + 1,1,1,1,1,1,1,1,6,8, + 0,0,1,1,3,3,3,0,1,0, + 1,2,4,2,1,1,1,3,1,1, + 2,3,7,8,0,1,0,1,3,1, + 3,1,1,1,1,1,1,3,1,1, + 1,1,1,3,1,2,2,1,5,3, + 1,3,5,1,3,1,3,2,4,3, + 5,4,6,6,3,5,1,3,4,5, + 6,0,1,2,1,3,1,1,3,2, + 1,1,1,1,2,1,2,3,1,1, + 1,3,1,2,2,2,3,4,5,1, + 7,3,0,0,1,1,3,3,4,1, + 1,2,3,2,3,2,1,0,1,2, + 1,1,1,1,1,2,4,3,6,2, + 4,1,1,1,1,1,2,2,2,1, + 1,2,1,1,1,3,3,2,1,3, + 2,3,2,3,2,2,11,10,10,9, + 10,9,9,8,10,9,9,8,9,8, + 8,7,10,9,9,8,9,8,8,7, + 1,1,-39,0,0,0,0,0,0,0, + 0,0,0,-163,0,0,0,0,0,0, + 0,0,0,-2,0,0,0,0,-119,0, + -4,-77,0,0,0,0,-57,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-19,-78, - -80,-81,-36,0,0,0,0,0,-9,0, + 0,0,0,0,-32,0,0,-144,0,0, + -84,-80,-120,0,0,0,0,0,0,-9, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-125,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-10,0,0,0, - 0,0,0,0,0,-119,0,-20,0,-191, + 0,0,0,0,0,-191,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-58,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-114,0,0,0, + 0,0,0,0,0,0,0,0,0,-17, + 0,-162,0,0,-121,0,0,0,-5,0, + 0,0,0,0,0,0,-85,-33,0,0, -164,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-52,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-134,0,-37,-21,-108, - 0,-114,0,0,0,0,0,0,0,0, - 0,-120,0,0,-22,0,-70,0,0,0, - 0,0,0,0,0,0,0,0,-71,-72, - 0,-57,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-121,0,0,-122,0,0,0,0, - 0,0,-40,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-75,0,0, + 0,-134,0,-167,0,0,0,0,0,0, + 0,0,0,0,-131,0,0,0,0,0, + 0,0,0,0,0,0,0,-122,0,-81, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-187, + -19,0,-20,0,-21,-181,0,0,0,0, + 0,0,0,0,0,0,0,0,-22,0, + 0,0,0,0,0,0,0,0,-40,0, 0,0,0,0,0,0,0,0,0,0, - -112,0,0,0,0,0,0,0,0,0, - -3,0,0,0,0,0,0,0,0,0, + 0,0,0,-75,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-123,0,-58,0,0,0,0,0,0, + 0,0,0,0,0,-187,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-111,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-3,0,0,0, + 0,0,0,0,0,0,0,-78,0,0, + 0,0,0,0,0,0,0,-123,0,-54, 0,0,0,0,0,0,0,0,0,0, - 0,0,-85,-129,-118,0,0,0,0,0, + 0,0,0,0,0,0,0,-111,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-49,0,0,0, - 0,0,0,0,0,0,-130,0,0,0, + 0,0,0,0,0,0,0,0,-23,-72, + -118,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-30,0, + 0,0,-49,0,0,0,0,0,0,0, + 0,0,-130,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-59, + 0,0,0,0,-30,0,0,0,0,0, + 0,0,0,0,0,-112,0,0,0,0, + 0,0,0,0,0,-59,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -137,0,0,0,0,0,0,0,0,0, - -60,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-60,0,0,0, + 0,0,0,0,0,0,0,-129,0,0, + 0,0,0,0,0,0,0,-61,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-61,0,0,0,0,0,0,0,0, - 0,0,-151,0,0,0,0,0,0,0, - 0,0,-62,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-62,0, + 0,0,0,0,0,0,0,0,0,-137, + 0,0,0,0,0,0,0,0,0,-63, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-63,0,0,0,0,0,0, - 0,0,0,0,-173,0,0,0,0,0, - 0,0,0,0,-64,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-65,0,0,0,0, - 0,0,0,0,0,0,-174,0,0,0, - 0,0,0,0,0,0,-66,0,0,0, + -64,0,0,0,0,0,0,0,0,0, + 0,-151,0,0,0,0,0,0,0,0, + 0,-65,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-67,0,0, - 0,0,0,0,0,0,0,0,-188,0, - 0,0,0,0,0,0,0,0,-68,0, + 0,0,-66,0,0,0,0,0,0,0, + 0,0,0,-173,0,0,0,0,0,0, + 0,0,0,-67,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-69, + 0,0,0,0,-68,0,0,0,0,0, + 0,0,0,0,0,-174,0,0,0,0, + 0,0,0,0,0,-69,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -139,0,0,0,0,0,0,0,0,0, - -149,0,0,0,0,0,0,0,0,0, - 0,-200,0,0,0,0,0,0,0,0, - 0,-150,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-124,0,0,0, + 0,0,0,0,0,0,0,-188,0,0, + 0,0,0,0,0,0,0,-149,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-167,0,0,0,0,0,0,0, - 0,0,0,-23,0,0,0,0,0,0, - 0,0,-190,0,0,0,0,0,0,0, - 0,0,0,-127,0,0,0,0,0,0, - 0,0,0,-24,0,0,-11,0,0,0, - 0,0,0,0,-198,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-150,0, + 0,0,0,0,0,0,0,0,0,-24, + 0,0,0,0,0,0,0,0,0,-190, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-206,0,0,0,0,0, - 0,0,0,0,0,-140,0,0,0,0, - 0,0,0,0,-32,0,0,0,-12,0, - 0,0,0,0,0,0,-214,0,0,0, + -127,0,0,0,0,0,0,0,0,-199, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-124,0,0,0, - 0,0,0,0,0,0,0,-87,0,0, - 0,0,0,0,0,0,-89,0,-115,0, - -54,0,0,0,0,0,0,0,0,0, - 0,-34,0,0,0,0,0,-25,0,0, - 0,0,0,-144,0,0,0,0,0,-133, - -50,0,0,0,0,0,0,0,0,0, - 0,-41,0,0,0,0,0,0,0,0, - 0,-74,0,0,0,-199,0,0,0,0, - 0,0,0,-83,0,0,0,0,0,0, - 0,-153,-117,0,0,0,0,-132,0,-33, + -108,0,0,0,0,0,0,0,0,0, + -25,0,0,-10,0,0,0,0,0,0, + 0,-208,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -143,-26,0,0,0,0,-163,0,0,0, - -184,0,0,0,-148,-82,0,0,0,0, - 0,0,0,-166,0,0,0,0,0,-178, + 0,-216,0,0,0,0,0,0,0,0, + 0,0,-140,0,0,0,0,0,0,0, + 0,-166,0,0,0,-89,0,-55,0,0, + 0,0,0,0,0,0,0,0,-113,0, + 0,0,-169,-26,0,-27,-82,0,0,0, + 0,-36,-154,-200,0,0,0,0,0,-37, + 0,0,0,0,-133,-50,0,0,0,0, + 0,0,0,0,0,0,0,0,-74,0, + 0,0,-142,-145,-28,0,-117,0,0,0, + 0,0,0,0,0,-153,0,0,-139,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-55,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-189,0, - -195,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-51,0,0, - 0,0,0,0,0,0,0,0,-156,0, - 0,-213,-209,-35,-56,0,0,0,0,0, - 0,0,0,-27,0,0,0,-28,-29,0, - -53,0,0,0,0,0,0,0,0,0, - 0,0,0,-142,-90,0,0,0,0,0, - 0,0,0,-215,0,0,0,-154,-91,0, - 0,0,0,0,0,0,-5,0,0,0, - 0,0,0,0,-45,0,0,0,0,0, - 0,0,0,0,0,0,0,-92,0,0, - 0,0,0,0,0,0,0,-46,0,0, - 0,0,0,0,0,0,0,0,-47,0, - 0,0,0,0,0,0,0,0,0,-48, + 0,0,0,0,-6,0,0,0,0,0, + 0,0,0,0,0,-147,0,-29,-178,0, + 0,0,0,0,0,0,0,0,-143,0, + 0,0,0,-155,0,-41,0,0,0,0, + 0,0,0,0,0,0,0,0,-180,-196, + 0,-70,-207,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-51,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -79,-208,-13,0,0,0,0,0,0,0, - -145,-168,0,-205,-169,-147,-93,-76,-155,-216, - -94,0,0,0,0,0,0,-158,0,0, - 0,0,0,-175,-95,-96,0,0,0,0, - 0,0,0,0,-86,0,0,-161,0,-170, - 0,-97,-202,0,0,-196,0,-88,0,0, - 0,0,0,0,0,-98,0,0,0,0, - -99,-100,-179,0,0,0,0,0,0,0, - 0,0,0,0,0,-109,0,0,0,0, - -138,0,0,0,0,0,0,0,-152,0, - 0,0,0,0,0,0,-38,-203,0,-101, - -201,0,0,0,-102,-103,0,0,0,0, - -14,0,0,0,0,0,0,0,-180,0, - 0,0,0,0,0,-42,0,0,0,0, - 0,0,0,-6,0,0,0,0,0,0, - 0,0,0,0,-43,0,0,0,0,0, - 0,0,0,0,-104,-105,0,-44,0,0, - 0,0,0,0,0,-73,0,0,0,0, - 0,0,0,-116,-131,-177,-176,-7,0,0, - 0,0,0,0,0,-106,0,0,-8,0, - 0,0,0,0,0,-107,0,0,0,0, - 0,0,-110,0,-197,-204,0,-126,-135,0, - -15,0,0,0,0,0,0,-16,0,0, - 0,0,0,0,0,0,-18,0,0,-31, - 0,-141,0,0,-146,0,-113,0,0,0, - 0,-181,-128,-160,-159,-165,-193,-185,-210,-162, - 0,-194,0,0,0,-186,0,0,0,0, - 0,0,0,-171,0,0,0,0,0,-207, - 0,0,-1,0,0,-211,0,0,0,0, - -136,-182,0,0,-212,0,0,0,0,-183, + 0,0,0,-90,0,0,0,0,0,0, + 0,-7,0,0,0,0,0,0,0,-52, 0,0,0,0,0,0,0,0,0,0, + -109,0,-53,0,0,0,0,0,0,0, + 0,0,0,0,0,-215,-8,0,0,0, + 0,0,0,0,0,-168,0,-201,0,0, + -189,0,0,-45,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-184, + 0,0,0,0,0,0,0,-15,0,0, + 0,0,0,0,0,-46,0,0,0,0, + 0,0,0,0,0,0,-47,0,0,0, + 0,0,0,0,0,0,0,-48,0,0, + 0,0,0,0,0,0,0,0,-79,0, + 0,-210,0,-138,0,0,0,0,0,0, + 0,-91,0,-16,0,0,0,0,0,0, + 0,0,0,0,0,-71,0,-197,0,0, + 0,0,-76,-217,-160,-148,0,0,0,0, + 0,0,0,0,-218,0,0,-92,-87,-93, + 0,0,0,-156,0,-177,-161,-115,0,-94, + 0,0,0,-83,-132,-158,0,0,0,0, + 0,0,0,0,0,-86,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-88, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-157,0,0,0, - 0,0,-172,0,0,0,0,0,-192,0, + 0,-95,0,-96,0,0,0,0,0,-198, + -97,0,0,0,0,0,0,0,-98,0, + 0,0,0,-152,0,0,0,0,0,0, + 0,-11,0,0,0,0,0,0,0,-183, + 0,0,0,0,0,-12,0,0,0,0, + 0,0,0,-13,0,0,0,0,0,0, + 0,-14,0,0,0,0,0,0,0,-38, + -42,0,0,0,0,0,0,0,-202,-99, + 0,-43,0,0,0,0,0,0,0,-44, + 0,0,0,0,0,0,0,0,-73,0, + 0,0,0,0,0,0,-116,-170,0,-176, + -34,-171,-100,0,0,0,0,0,0,-179, + 0,0,0,-128,-175,0,0,-204,-18,0, + 0,0,-31,0,-101,0,0,-102,0,0, + -194,-103,-104,0,-105,0,0,0,0,-106, + 0,0,0,0,-107,0,-206,0,0,0, + 0,0,-195,0,-136,0,0,0,0,-110, + 0,-172,-1,0,0,0,0,-205,0,-212, + 0,0,0,0,-192,-213,-126,-135,-211,0, + 0,0,0,0,0,0,0,0,-141,0, + 0,0,-193,0,-182,0,0,0,0,0, + -146,0,0,0,0,0,0,0,-159,0, + 0,0,-35,0,0,0,0,0,-203,0, + 0,0,-56,0,-165,0,-157,-185,-186,0, + -209,-214,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -234,198 +234,198 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 89,11,21,21,26,26,34,34,71,71, - 1,1,2,2,2,2,3,3,3,4, - 5,5,5,5,5,5,5,5,53,53, - 72,6,6,6,6,6,6,6,6,6, - 6,7,7,8,8,8,8,9,9,9, - 10,10,10,12,12,12,12,12,13,13, - 13,14,14,15,15,16,16,17,17,18, - 18,19,19,20,20,20,20,20,20,20, - 20,20,20,20,20,104,48,42,90,90, - 75,75,43,105,105,105,105,105,105,105, - 106,106,106,107,107,112,112,113,113,108, - 108,109,109,109,115,115,110,110,110,110, - 111,111,111,111,111,114,114,27,27,27, - 27,27,29,29,29,81,81,76,76,76, - 76,77,77,77,78,78,78,79,79,79, - 80,80,80,116,116,117,117,118,30,32, - 32,32,32,32,54,56,56,56,56,56, - 56,56,56,56,56,56,56,65,62,62, - 91,92,66,66,63,63,63,67,82,82, - 83,83,68,68,68,50,93,93,84,85, - 85,85,64,64,94,86,86,87,87,69, - 69,22,23,23,23,31,49,49,35,35, - 35,35,38,38,40,36,36,37,41,41, - 119,119,39,120,120,95,95,28,28,28, - 28,28,28,28,28,28,88,51,51,51, - 51,33,58,58,57,57,57,59,59,52, - 52,96,96,73,73,60,60,60,44,44, - 44,45,46,46,46,47,47,47,47,55, - 55,55,61,97,74,74,74,74,70,98, - 99,99,100,100,101,101,121,121,122,122, - 123,123,123,123,125,125,124,124,124,126, - 126,89,89,2,2,2,6,6,6,22, - 22,24,24,25,25,102,102,102,105,127, - 127,127,127,127,127,127,110,110,110,110, - 110,110,110,110,110,110,110,110,110,110, - 110,110,110,110,110,110,110,110,110,110, - 128,128,1,1425,16,20,17,390,1409,43, - 468,419,545,324,529,1104,1074,1302,1228,1408, - 1404,73,90,329,133,211,319,320,455,248, - 877,135,132,134,158,590,19,16,20,17, - 390,1409,43,468,419,545,1234,529,1104,1074, - 1302,1228,1408,1404,73,279,137,273,164,356, - 355,791,792,598,141,144,147,150,1316,686, - 19,16,20,17,390,41,39,383,1511,422, - 1274,1555,1568,1207,133,211,319,320,274,1686, - 284,143,132,134,158,542,1755,686,19,16, - 20,17,390,41,38,285,762,1011,414,1301, - 654,19,16,20,17,390,1409,43,468,419, - 545,1234,529,1104,1074,1302,1228,1408,1404,73, - 279,359,19,16,20,17,390,1409,43,468, - 419,545,1234,529,1104,1074,1302,1228,1408,1404, - 73,279,686,19,16,20,17,390,41,43, - 468,419,545,321,1582,284,225,177,598,287, - 6,1755,443,19,16,20,17,390,41,35, - 285,395,293,185,1621,39,286,598,133,211, - 319,320,1755,244,18,135,132,134,158,598, - 230,287,686,19,16,20,17,390,41,43, - 468,419,545,1716,529,1104,1074,1302,1228,1676, - 137,21,164,293,184,22,895,1752,141,144, - 147,150,1316,686,19,16,20,17,390,41, - 43,1439,1511,422,1274,1555,1568,1207,281,19, - 16,20,17,390,1409,43,468,419,545,1757, - 529,1104,1074,1302,1228,1408,1404,73,641,237, - 622,19,16,20,17,390,1409,43,468,419, - 545,230,529,1104,1074,1302,1228,1408,1404,73, - 279,686,19,16,20,17,390,1409,43,468, - 419,545,239,529,1104,1074,1302,1228,1408,1404, - 73,90,293,186,686,19,16,20,17,390, - 41,43,468,419,545,288,529,1104,1074,1302, - 1706,1755,750,19,16,20,17,390,1409,43, - 468,419,545,1763,529,1104,1074,1302,1228,1408, - 1404,73,714,518,230,478,19,16,20,17, - 390,41,43,468,419,545,383,529,1104,1074, - 1302,1228,1408,1404,92,241,327,686,19,16, - 20,17,390,41,43,468,1562,316,19,16, - 20,17,390,1409,43,468,419,545,801,529, - 1104,1074,1302,1228,1408,1404,73,843,238,686, - 19,16,20,17,390,1409,43,468,419,545, - 583,529,1104,1074,1302,1228,1408,1404,73,91, - 686,19,16,20,17,390,1409,43,468,419, - 545,230,529,1104,1074,1302,1228,1408,1404,73, - 84,686,19,16,20,17,390,1409,43,468, - 419,545,325,529,1104,1074,1302,1228,1408,1404, - 73,83,686,19,16,20,17,390,1409,43, - 468,419,545,230,529,1104,1074,1302,1228,1408, - 1404,73,82,686,19,16,20,17,390,1409, - 43,468,419,545,240,529,1104,1074,1302,1228, - 1408,1404,73,81,686,19,16,20,17,390, - 1409,43,468,419,545,230,529,1104,1074,1302, - 1228,1408,1404,73,80,686,19,16,20,17, - 390,1409,43,468,419,545,242,529,1104,1074, - 1302,1228,1408,1404,73,79,686,19,16,20, - 17,390,1409,43,468,419,545,230,529,1104, - 1074,1302,1228,1408,1404,73,78,686,19,16, - 20,17,390,1409,43,468,419,545,243,529, - 1104,1074,1302,1228,1408,1404,73,77,686,19, - 16,20,17,390,1409,43,468,419,545,230, - 529,1104,1074,1302,1228,1408,1404,73,76,686, - 19,16,20,17,390,1409,43,468,419,545, - 292,529,1104,1074,1302,1228,1408,1404,73,75, - 686,19,16,20,17,390,1409,43,468,419, - 545,40,529,1104,1074,1302,1228,1408,1404,73, - 74,686,19,16,20,17,390,1409,43,468, - 419,545,230,529,1104,1074,1302,1228,1408,1404, - 73,885,686,19,16,20,17,390,1409,43, - 468,419,545,294,529,1104,1074,1302,1228,1408, - 1404,73,927,686,19,16,20,17,390,41, - 43,468,419,545,183,529,1104,1074,1302,1228, - 1408,1404,92,686,19,16,20,17,390,41, - 43,468,419,545,75,529,1104,1074,1302,1228, - 1408,1404,92,1765,252,1315,969,686,19,16, - 20,17,390,41,37,686,19,16,20,17, - 390,41,43,468,419,545,1032,529,1104,1074, - 1302,1228,1408,1404,92,686,19,16,20,17, - 390,41,43,468,419,545,6,529,1104,1074, - 1302,1228,1408,1404,92,293,30,1764,210,686, - 19,16,20,17,390,41,36,686,19,16, - 20,17,390,41,43,468,419,545,200,529, - 1104,1074,1302,1228,1408,1404,92,686,19,16, - 20,17,390,41,43,468,419,545,525,529, - 1104,1074,1302,1228,1408,1404,72,225,177,598, - 201,686,19,16,20,17,390,41,43,468, - 419,545,566,529,1104,1074,1625,24,115,133, - 211,319,320,651,289,271,136,132,134,158, - 127,686,19,16,20,17,390,41,43,468, - 1576,1389,686,19,16,20,17,390,41,43, - 1468,138,16,164,88,672,293,1768,272,142, - 145,148,151,1316,830,216,1438,219,1529,221, - 222,227,415,694,265,420,389,270,598,261, - 293,30,586,1697,1801,1723,133,211,319,320, - 262,691,80,146,132,134,158,71,275,276, - 272,802,559,1596,277,66,24,216,1438,219, - 1529,221,222,227,293,293,265,420,389,270, - 406,1544,1766,1522,290,208,259,252,211,319, - 320,27,1209,686,19,16,20,17,390,41, - 43,468,419,545,1307,529,1104,1626,272,293, - 295,489,23,1728,1725,217,1438,219,1529,221, - 222,227,1393,1843,267,420,389,270,686,19, - 16,20,17,390,41,43,468,419,545,16, - 529,1581,489,16,6,6,216,1438,219,1529, - 221,222,227,1393,130,651,651,466,179,53, - 1790,686,19,16,20,17,390,41,43,468, - 419,545,1723,1620,6,782,1723,216,1438,219, - 1529,221,222,227,831,1770,86,86,820,565, - 1330,1790,560,1675,1434,196,198,718,19,16, - 20,17,390,318,1524,686,19,16,20,17, - 390,41,43,468,419,1527,226,1728,597,217, - 1438,219,1529,221,222,227,197,198,686,19, - 16,20,17,390,41,43,468,419,1531,686, - 19,16,20,17,390,41,43,468,419,1545, - 686,19,16,20,17,390,41,43,468,419, - 1546,391,633,686,19,16,20,17,390,41, - 35,6,451,1393,239,71,187,315,886,887, - 59,429,1525,133,211,319,320,1784,598,1694, - 140,132,134,158,598,667,669,216,1438,219, - 1529,221,222,227,275,839,272,225,6,281, - 6,1544,545,598,278,139,802,164,848,1810, - 223,470,265,420,389,270,890,133,211,319, - 320,493,328,6,149,132,134,158,1209,228, - 133,211,319,320,1772,192,808,152,132,134, - 158,443,19,16,20,17,390,41,35,443, - 19,16,20,17,390,41,35,807,692,1769, - 484,691,326,291,272,192,510,280,1262,1728, - 245,686,19,16,20,17,390,41,34,71, - 267,420,389,270,232,272,686,19,16,20, - 17,390,41,46,718,19,16,20,17,390, - 317,265,420,389,270,686,19,16,20,17, - 390,41,45,178,1796,630,327,264,686,19, - 16,20,17,390,41,44,558,19,16,20, - 17,390,41,42,849,178,694,849,718,19, - 16,20,17,390,316,526,349,1767,526,718, - 19,16,20,17,390,40,396,253,211,319, - 320,1240,229,552,1240,71,71,1723,661,412, - 1723,718,19,16,20,17,390,33,718,19, - 16,20,17,390,32,1596,257,6,1330,257, - 6,1288,773,1729,1288,834,1729,66,362,202, - 179,362,400,66,57,897,801,84,858,71, - 755,1768,169,1361,195,526,868,195,526,252, - 211,319,320,526,66,252,211,319,320,86, - 693,195,86,513,1240,528,71,1617,528,195, - 1617,511,113,203,651,546,252,211,319,320, - 755,1768,526,526,1762,1695,1912,1912,1912,257, - 423,1695,1762,547,1563,1912,1729,1912,1240,195, - 1530,1912,190,193,1912,86,1912,844,1912,207, - 190,311,1849,234,1912,747,1639,1802,526,243, - 1912,1021,1762,257,1726,1802,1311,1776,1538,1912, - 1729,1912,1618,1912,1240,253,211,319,320,1912, - 191,253,211,319,320,1912,1912,1912,1912,207, - 1912,1912,373,1912,1912,1912,1912,1912,1912,258, - 1912,1912,1912,1912,1912,1912,1566,1776,1912,0, - 322,715,0,19,177,0,1,2136,0,1, - 2147,0 + 89,11,104,21,21,26,26,34,34,71, + 71,1,1,2,2,2,2,3,3,3, + 4,5,5,5,5,5,5,5,5,53, + 53,72,6,6,6,6,6,6,6,6, + 6,6,7,7,8,8,8,8,9,9, + 9,10,10,10,12,12,12,12,12,13, + 13,13,14,14,15,15,16,16,17,17, + 18,18,19,19,20,20,20,20,20,20, + 20,20,20,20,20,20,105,48,42,90, + 90,75,75,43,106,106,106,106,106,106, + 106,107,107,107,108,108,113,113,114,114, + 109,109,110,110,110,116,116,111,111,111, + 111,112,112,112,112,112,115,115,27,27, + 27,27,27,30,30,30,81,81,76,76, + 76,76,77,77,77,78,78,78,79,79, + 79,80,80,80,117,117,118,118,119,31, + 33,33,33,33,33,54,56,56,56,56, + 56,56,56,56,56,56,56,56,65,62, + 62,91,92,66,66,63,63,63,67,82, + 82,83,83,68,68,68,50,93,93,84, + 85,85,85,64,64,94,86,86,87,87, + 69,69,22,23,23,23,32,49,49,35, + 35,35,35,38,38,40,36,36,37,41, + 41,120,120,39,121,121,95,95,28,28, + 28,28,28,28,28,28,28,88,51,51, + 51,51,29,58,58,57,57,57,59,59, + 52,52,96,96,73,73,60,60,60,44, + 44,44,45,46,46,46,47,47,47,47, + 55,55,55,61,97,74,74,74,74,70, + 98,99,99,100,100,101,101,122,122,123, + 123,124,124,124,124,126,126,125,125,125, + 127,127,89,89,2,2,2,6,6,6, + 22,22,24,24,25,25,102,102,102,106, + 128,128,128,128,128,128,128,111,111,111, + 111,111,111,111,111,111,111,111,111,111, + 111,111,111,111,111,111,111,111,111,111, + 111,129,129,1,1384,17,21,18,520,1318, + 44,603,601,619,71,605,1110,749,1234,1161, + 1275,1236,74,91,324,134,212,320,321,762, + 1289,329,248,136,133,135,159,686,20,17, + 21,18,520,42,44,603,601,619,28,605, + 1110,749,1234,1161,1755,293,31,138,289,165, + 274,455,791,293,186,142,145,148,151,1237, + 686,20,17,21,18,520,42,40,391,1509, + 590,1574,1586,1600,1216,590,20,17,21,18, + 520,1318,44,603,601,619,418,605,1110,749, + 1234,1161,1275,1236,74,280,654,20,17,21, + 18,520,1318,44,603,601,619,418,605,1110, + 749,1234,1161,1275,1236,74,280,25,423,686, + 20,17,21,18,520,42,44,603,601,619, + 285,605,1110,749,1234,1760,1821,443,20,17, + 21,18,520,42,36,286,1845,1436,291,1329, + 877,285,755,1848,322,293,185,1821,245,718, + 20,17,21,18,520,319,286,518,293,31, + 1689,359,20,17,21,18,520,1318,44,603, + 601,619,418,605,1110,749,1234,1161,1275,1236, + 74,280,225,178,686,20,17,21,18,520, + 42,44,603,601,619,75,605,1110,749,1234, + 1161,1275,1236,93,134,212,320,321,895,1809, + 792,208,136,133,135,159,287,254,212,320, + 321,356,1821,414,525,287,400,1068,1460,1849, + 24,288,134,212,320,321,138,1350,165,39, + 144,133,135,159,142,145,148,151,1237,686, + 20,17,21,18,520,42,44,1522,1509,590, + 1574,1586,1600,1216,281,20,17,21,18,520, + 1318,44,603,601,619,1229,605,1110,749,1234, + 1161,1275,1236,74,816,238,622,20,17,21, + 18,520,1318,44,603,601,619,194,605,1110, + 749,1234,1161,1275,1236,74,280,686,20,17, + 21,18,520,1318,44,603,601,619,355,605, + 1110,749,1234,1161,1275,1236,74,91,293,187, + 686,20,17,21,18,520,42,44,603,601, + 619,289,605,1110,749,1748,275,1821,750,20, + 17,21,18,520,1318,44,603,601,619,1734, + 605,1110,749,1234,1161,1275,1236,74,858,183, + 230,478,20,17,21,18,520,42,44,603, + 601,619,391,605,1110,749,1234,1161,1275,1236, + 93,22,328,686,20,17,21,18,520,42, + 44,603,1621,316,20,17,21,18,520,1318, + 44,603,601,619,900,605,1110,749,1234,1161, + 1275,1236,74,942,239,686,20,17,21,18, + 520,1318,44,603,601,619,230,605,1110,749, + 1234,1161,1275,1236,74,92,686,20,17,21, + 18,520,1318,44,603,601,619,240,605,1110, + 749,1234,1161,1275,1236,74,85,686,20,17, + 21,18,520,1318,44,603,601,619,230,605, + 1110,749,1234,1161,1275,1236,74,84,686,20, + 17,21,18,520,1318,44,603,601,619,242, + 605,1110,749,1234,1161,1275,1236,74,83,686, + 20,17,21,18,520,1318,44,603,601,619, + 230,605,1110,749,1234,1161,1275,1236,74,82, + 686,20,17,21,18,520,1318,44,603,601, + 619,326,605,1110,749,1234,1161,1275,1236,74, + 81,686,20,17,21,18,520,1318,44,603, + 601,619,230,605,1110,749,1234,1161,1275,1236, + 74,80,686,20,17,21,18,520,1318,44, + 603,601,619,241,605,1110,749,1234,1161,1275, + 1236,74,79,686,20,17,21,18,520,1318, + 44,603,601,619,230,605,1110,749,1234,1161, + 1275,1236,74,78,686,20,17,21,18,520, + 1318,44,603,601,619,243,605,1110,749,1234, + 1161,1275,1236,74,77,686,20,17,21,18, + 520,1318,44,603,601,619,230,605,1110,749, + 1234,1161,1275,1236,74,76,686,20,17,21, + 18,520,1318,44,603,601,619,244,605,1110, + 749,1234,1161,1275,1236,74,75,686,20,17, + 21,18,520,1318,44,603,601,619,230,605, + 1110,749,1234,1161,1275,1236,74,73,686,20, + 17,21,18,520,1318,44,603,601,619,293, + 605,1110,749,1234,1161,1275,1236,74,984,686, + 20,17,21,18,520,1318,44,603,601,619, + 252,605,1110,749,1234,1161,1275,1236,74,1026, + 686,20,17,21,18,520,42,44,603,601, + 619,16,605,1110,749,1234,1161,1275,1236,93, + 686,20,17,21,18,520,42,44,603,601, + 619,6,605,1110,749,1234,1161,1275,1236,93, + 1546,115,445,1438,686,20,17,21,18,520, + 42,39,686,20,17,21,18,520,42,44, + 603,601,619,211,605,1110,749,1234,1161,1275, + 1236,93,686,20,17,21,18,520,42,44, + 603,601,619,6,605,1110,749,1234,1161,1275, + 1236,93,293,294,1545,201,225,178,686,20, + 17,21,18,520,42,44,603,601,619,66, + 605,1110,1752,71,80,202,130,24,134,212, + 320,321,598,820,293,1848,137,133,135,159, + 598,253,212,320,321,127,686,20,17,21, + 18,520,42,44,603,1629,1564,282,1709,16, + 139,227,165,6,6,179,19,694,143,146, + 149,152,1237,273,522,1233,415,575,1775,40, + 217,1243,220,1334,222,223,228,1720,1780,266, + 698,392,271,277,262,718,20,17,21,18, + 520,318,276,209,273,263,16,783,53,406, + 1411,217,1243,220,1334,222,223,228,389,691, + 266,698,392,271,887,1735,686,20,17,21, + 18,520,42,44,1558,1722,1568,273,1797,71, + 489,260,598,239,218,1243,220,1334,222,223, + 228,1799,226,268,698,392,271,686,20,17, + 21,18,520,42,44,603,601,619,1765,605, + 1690,1829,374,179,782,217,1243,220,1334,222, + 223,228,718,20,17,21,18,520,317,1851, + 686,20,17,21,18,520,42,44,603,601, + 619,808,1723,686,20,17,21,18,520,42, + 44,603,601,619,193,1745,489,718,20,17, + 21,18,520,41,197,199,451,1799,230,273, + 1797,293,296,1353,686,20,17,21,18,520, + 42,44,603,601,1560,268,698,392,271,295, + 802,217,1243,220,1334,222,223,228,718,20, + 17,21,18,520,34,1851,686,20,17,21, + 18,520,42,44,603,601,1570,686,20,17, + 21,18,520,42,44,603,601,1612,686,20, + 17,21,18,520,42,44,603,601,1614,391, + 198,199,633,1620,443,20,17,21,18,520, + 42,36,565,1799,718,20,17,21,18,520, + 33,134,212,320,321,327,598,292,802,141, + 133,135,159,886,831,57,178,217,1243,220, + 1334,222,223,228,1717,59,562,1782,597,525, + 315,1735,23,140,16,165,694,6,598,276, + 429,273,196,1797,830,598,598,1751,1650,218, + 1243,220,1334,222,223,228,839,266,698,392, + 271,1790,230,1780,272,606,134,212,320,321, + 848,278,279,1568,147,133,135,159,134,212, + 320,321,667,191,669,1319,150,133,135,159, + 71,545,134,212,320,321,708,1349,1815,890, + 153,133,135,159,443,20,17,21,18,520, + 42,36,686,20,17,21,18,520,42,38, + 755,1848,281,588,203,246,686,20,17,21, + 18,520,42,37,686,20,17,21,18,520, + 42,36,686,20,17,21,18,520,42,35, + 807,686,20,17,21,18,520,42,47,691, + 493,1269,686,20,17,21,18,520,42,46, + 686,20,17,21,18,520,42,45,273,558, + 20,17,21,18,520,42,43,849,6,208, + 849,566,187,328,266,698,392,271,562,466, + 6,562,687,1795,66,598,1538,1849,598,6, + 265,1773,1796,6,1255,484,1780,1255,192,1780, + 363,84,510,630,363,327,253,212,320,321, + 349,224,562,89,229,396,196,71,1411,258, + 196,1319,258,169,1575,511,1798,1575,1255,1798, + 552,87,66,513,562,87,562,1250,692,1680, + 71,1250,575,1680,687,66,71,661,412,16, + 196,180,1255,258,253,212,320,321,1738,773, + 1798,1536,1242,234,233,113,1352,253,212,320, + 321,834,1078,606,204,87,562,258,1780,897, + 1555,312,1576,6,1798,254,212,320,321,243, + 1813,191,196,6,687,801,1788,844,858,868, + 1544,693,546,1839,687,1767,1815,1914,562,1914, + 1914,254,212,320,321,606,1914,1914,1914,1914, + 1914,1914,384,1914,1255,87,1914,1914,1914,1914, + 1914,750,1914,192,1914,87,1914,1914,1914,1914, + 1914,1753,1914,1914,1914,1914,1914,1914,1914,259, + 1914,0,323,751,0,20,178,0,1,2139, + 0,1,2150,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -544,102 +544,102 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 1912,1922,1747,1923,1513,1,2124,2125,2126,1159, - 1107,2235,421,2236,1631,251,1738,1731,1709,1924, - 1925,1926,1927,180,457,429,2225,2226,2227,1698, - 1654,1447,2073,2074,2072,2127,2075,2071,53,181, - 2078,2083,2082,2080,2081,2079,2084,2085,2077,2086, - 2087,2088,41,1198,713,388,1912,1,283,1, - 1912,189,1,1,1,1912,1912,1,1,1, - 1912,2124,2125,2126,247,1919,2235,421,2236,65, - 1,1,1,1,1909,1,1,1,1,1, - 1,1,1,1,737,1241,1,1,1,1, - 1,1,1,1,1,1,1,1,189,1, - 1,1,1912,1,67,1,2106,188,1,1, - 1,1000,1918,1,1,1,260,2136,1282,71, - 1,979,958,937,916,895,853,874,832,811, - 790,608,2168,1912,1,1,1,1,1,1, - 1912,1343,1,1,1,1,1,1,1,1, - 1,1,1,1,188,1,1,1,1912,1, - 1912,1,2106,189,1,1,1,246,69,1, - 1,1,63,2124,2125,2126,248,1211,2235,421, - 2236,66,1,1,1,1912,1378,1,1,1, - 1,1,1,1,1,1,562,1395,1,1, + 1914,1925,1739,1926,1664,1,2127,2128,2129,1656, + 1642,2238,422,2239,1672,252,1524,1468,1427,1927, + 1928,1929,1930,181,1164,430,2228,2229,2230,1392, + 1305,529,2076,2077,2075,2130,2078,2074,54,182, + 2081,2086,2085,2083,2084,2082,2087,2088,2080,2089, + 2090,2091,42,1559,537,421,1914,1,284,1, + 1914,190,1,1,1,1914,1914,1,1,1, + 1914,2127,2128,2129,247,1922,2238,422,2239,66, + 2127,2128,2129,1,1911,2238,422,2239,1,1, + 1,1,1,1,773,1256,1,1,1,1, + 1,1,1,1,1,1,1,1,190,1, + 1,1,1914,1,68,1,2109,189,1,1, + 1,1036,1921,1,1,1,261,2139,1286,72, + 1,1015,994,973,952,931,889,910,868,847, + 826,644,2171,1914,1,1,1,1,1,1, + 1914,1218,1,1,1,1,1,1,1,1, + 1,1,1,1,189,1,1,1,1914,1, + 1914,1,2109,190,1,1,1,248,70,1, + 1,1,64,1,1,1,249,710,1,1, + 1,67,1,1,1,1914,1367,1,1,1, + 1,1,1,1,1,1,397,1843,1,1, 1,1,1,1,1,1,1,1,1,1, - 189,1,1,1,1912,1922,1912,1923,2106,1912, - 2124,2125,2126,249,1915,2235,421,2236,1912,2124, - 2125,2126,250,1921,2235,421,2236,269,2124,2125, - 2126,61,674,2235,421,2236,2073,2074,2072,2127, - 2075,2071,608,1343,2078,2083,2082,2080,2081,2079, - 2084,2085,2077,2086,2087,2088,1392,1198,713,388, - 1,1922,1747,1923,532,1915,58,1914,1912,1159, - 1107,1912,1912,1922,1631,1923,1738,1731,1709,1924, - 1925,1926,1927,1063,457,429,2225,2226,2227,1698, - 1654,1447,692,1920,57,1912,1922,1747,1923,1609, - 1915,1411,512,1912,1159,1107,70,60,87,1631, - 1912,1738,1731,1709,1924,1925,1926,1927,1914,457, - 429,2225,2226,2227,1698,1654,1447,1042,68,1324, - 1500,1489,1478,1455,268,50,1283,1912,1,1922, - 1747,1923,1513,28,1252,593,769,1159,1107,608, - 737,1241,1631,1914,1738,1731,1709,1924,1925,1926, - 1927,3177,457,429,2225,2226,2227,1698,1654,1447, - 127,1500,1489,1478,1455,1912,2124,2125,2126,1, - 674,2235,421,2236,1921,266,2136,1282,1912,251, - 28,254,1899,47,1,1906,1282,1678,530,1917, - 608,1211,2073,2074,2072,2127,2075,2071,56,608, - 2078,2083,2082,2080,2081,2079,2084,2085,2077,2086, - 2087,2088,1912,1922,1747,1923,1513,1915,1912,1837, - 289,1159,1107,1916,183,3178,1631,3178,1738,1731, - 1709,1924,1925,1926,1927,1083,457,429,2225,2226, - 2227,1698,1654,1447,1920,1665,1646,1912,1922,1747, - 1923,1601,1915,59,737,1241,1159,1107,1,2136, - 1512,1631,62,1738,1731,1709,1924,1925,1926,1927, - 1914,457,429,2225,2226,2227,1698,1654,1447,64, - 1,1359,1912,1,1,1,1,182,3180,1912, - 3180,1,1,1378,204,3185,1,3185,1,1, - 1,1,1,1,1,1914,1,1,1,1, - 1,1,1,1,52,1912,2148,1500,1489,1478, - 1455,1912,1912,1252,593,1094,1135,1912,1922,1747, - 1923,1513,1411,512,49,1,1159,1107,1678,2168, - 89,1631,2224,1738,1731,1709,1924,1925,1926,1927, - 530,457,429,2225,2226,2227,1698,1654,1447,1, - 1922,1747,1923,1513,1912,1912,48,1912,1159,1107, - 1678,1912,1917,1631,89,1738,1731,1709,1924,1925, - 1926,1927,3177,457,429,2225,2226,2227,1698,1654, - 1447,1912,1922,1747,1923,1513,1665,1646,1912,1912, - 1159,1107,1,2136,1512,1631,1916,1738,1731,1709, - 1924,1925,1926,1927,3177,457,429,2225,2226,2227, - 1698,1654,1447,1,1922,1747,1923,1513,1665,1646, - 1912,1912,1159,1107,1526,1912,55,1631,54,1738, - 1731,1709,1924,1925,1926,1927,3177,457,429,2225, - 2226,2227,1698,1654,1447,1912,1922,1747,1923,1513, - 29,1912,199,1,1159,1107,1917,1187,1917,1631, - 1912,1738,1731,1709,1924,1925,1926,1927,1912,457, - 429,2225,2226,2227,1698,1654,1447,1912,1922,1750, - 1923,1513,737,1241,737,1241,1159,1107,491,1805, - 1916,1631,1916,1738,1731,1709,1924,1925,1926,1927, - 1912,457,429,2225,2226,2227,1698,1654,1447,1, - 1922,1747,1923,1513,206,1922,1912,1923,1159,1107, - 1167,1912,1922,1631,1923,1738,1731,1709,1924,1925, - 1926,1927,1912,457,429,2225,2226,2227,1698,1654, - 1447,19,1912,1903,1146,1903,1903,177,177,177, - 322,128,177,177,177,1558,1903,2124,2125,2126, - 1912,29,2235,421,2236,1900,263,266,1528,1528, - 1,251,1912,177,177,177,177,177,177,218, - 1903,608,608,2073,2074,2072,2127,2075,2071,129, - 251,2136,1512,1912,608,2124,2125,2126,130,1940, - 2235,421,2236,1,2124,2125,2126,131,1,2235, - 421,2236,251,2124,2125,2126,1560,209,2235,421, - 2236,2073,2074,2072,2127,2075,2071,205,1912,630, - 2073,2074,2072,2127,2075,2071,31,1912,1222,2073, - 2074,2072,2127,2075,2071,1,220,1528,1696,51, - 1917,1394,1937,1938,1912,1922,1912,1923,1252,593, - 608,608,2167,282,187,3183,187,2168,1521,205, - 1266,187,1266,1912,1912,1912,1912,1424,1912,1583, - 1912,1912,1912,1912,1916,1912,1115,183,1912,182, - 1912,1912,1912,1912,204,1912,1912,1290,1912,1912, - 1912,1912,1912,1912,1912,1912,1912,1912,1912,1912, - 1912,1912,1155,1912,1912,1521 + 190,1,1,1,1914,1925,1914,1926,2109,1914, + 2127,2128,2129,250,1918,2238,422,2239,1914,2127, + 2128,2129,251,1924,2238,422,2239,270,2127,2128, + 2129,62,489,2238,422,2239,2076,2077,2075,2130, + 2078,2074,644,1218,2081,2086,2085,2083,2084,2082, + 2087,2088,2080,2089,2090,2091,1426,1559,537,421, + 1,1925,1739,1926,507,1918,59,1917,1914,1656, + 1642,1914,1914,1925,1672,1926,1524,1468,1427,1927, + 1928,1929,1930,564,1164,430,2228,2229,2230,1392, + 1305,529,728,1923,58,1914,1925,1739,1926,1634, + 1918,1413,1400,1914,1656,1642,71,61,88,1672, + 1914,1524,1468,1427,1927,1928,1929,1930,1917,1164, + 430,2228,2229,2230,1392,1305,529,1099,69,1212, + 1498,1487,1476,1444,269,51,1277,1914,1,1925, + 1739,1926,1664,29,1336,629,805,1656,1642,644, + 773,1256,1672,1917,1524,1468,1427,1927,1928,1929, + 1930,3180,1164,430,2228,2229,2230,1392,1305,529, + 128,1498,1487,1476,1444,1914,2127,2128,2129,1, + 489,2238,422,2239,1924,267,2139,1286,1914,252, + 29,255,1901,48,1,1908,1286,1700,1151,1920, + 644,710,2076,2077,2075,2130,2078,2074,57,644, + 2081,2086,2085,2083,2084,2082,2087,2088,2080,2089, + 2090,2091,1914,1925,1739,1926,1664,1918,1914,1847, + 290,1656,1642,1919,184,3181,1672,3181,1524,1468, + 1427,1927,1928,1929,1930,1120,1164,430,2228,2229, + 2230,1392,1305,529,1923,1692,1681,1914,1925,1739, + 1926,1514,1918,60,773,1256,1656,1642,1,2139, + 1512,1672,63,1524,1468,1427,1927,1928,1929,1930, + 1917,1164,430,2228,2229,2230,1392,1305,529,65, + 1,1441,1914,1,1,1,1,183,3183,1914, + 3183,1,1,1367,205,3188,1,3188,1,1, + 1,1,1,1,1,1917,1,1,1,1, + 1,1,1,1,53,1914,2151,1498,1487,1476, + 1444,1914,1914,1336,629,1131,1172,1914,1925,1739, + 1926,1664,1413,1400,50,1,1656,1642,1700,2171, + 90,1672,2227,1524,1468,1427,1927,1928,1929,1930, + 1151,1164,430,2228,2229,2230,1392,1305,529,1, + 1925,1739,1926,1664,1914,1914,49,1914,1656,1642, + 1700,1914,1920,1672,90,1524,1468,1427,1927,1928, + 1929,1930,3180,1164,430,2228,2229,2230,1392,1305, + 529,1914,1925,1739,1926,1664,1692,1681,1914,1914, + 1656,1642,1,2139,1512,1672,1919,1524,1468,1427, + 1927,1928,1929,1930,3180,1164,430,2228,2229,2230, + 1392,1305,529,1,1925,1739,1926,1664,1692,1681, + 1914,1914,1656,1642,1316,1914,56,1672,55,1524, + 1468,1427,1927,1928,1929,1930,3180,1164,430,2228, + 2229,2230,1392,1305,529,1914,1925,1739,1926,1664, + 30,1914,200,1,1656,1642,1920,1057,1920,1672, + 1914,1524,1468,1427,1927,1928,1929,1930,1914,1164, + 430,2228,2229,2230,1392,1305,529,1914,1925,1743, + 1926,1664,773,1256,773,1256,1656,1642,541,1852, + 1919,1672,1919,1524,1468,1427,1927,1928,1929,1930, + 1914,1164,430,2228,2229,2230,1392,1305,529,1, + 1925,1739,1926,1664,207,1925,1914,1926,1656,1642, + 1192,1914,1925,1672,1926,1524,1468,1427,1927,1928, + 1929,1930,1914,1164,430,2228,2229,2230,1392,1305, + 529,20,1914,1905,1203,1905,1905,178,178,178, + 323,129,178,178,178,1567,1905,2127,2128,2129, + 1914,30,2238,422,2239,1902,264,267,1543,1543, + 1,252,1914,178,178,178,178,178,178,219, + 1905,644,644,2076,2077,2075,2130,2078,2074,130, + 252,2139,1512,1914,644,2127,2128,2129,131,1943, + 2238,422,2239,1,2127,2128,2129,132,1,2238, + 422,2239,252,2127,2128,2129,1718,210,2238,422, + 2239,2076,2077,2075,2130,2078,2074,206,1914,666, + 2076,2077,2075,2130,2078,2074,32,1914,1721,2076, + 2077,2075,2130,2078,2074,1,221,1543,1566,52, + 1920,1833,1940,1941,1914,1925,1914,1926,1336,629, + 644,644,2170,283,188,3186,188,2171,1274,206, + 1244,188,1244,1914,1914,1914,1914,1273,1914,1730, + 1914,1914,1914,1914,1919,1914,1140,184,1914,183, + 1914,1914,1914,1914,205,1914,1914,538,1914,1914, + 1914,1914,1914,1914,1914,1914,1914,1914,1914,1914, + 1914,1914,415,1914,1914,1274 }; }; public final static char termAction[] = TermAction.termAction; @@ -647,28 +647,28 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 461,1,170,41,170,170,170,170,170,170, - 170,170,170,170,170,170,3,55,108,105, - 112,110,118,116,120,119,122,121,10,170, - 55,406,406,252,170,332,332,363,55,170, - 170,170,170,170,170,170,170,170,170,170, - 170,170,170,170,170,170,170,170,170,170, - 170,170,170,170,170,170,170,170,170,332, - 332,45,137,367,161,373,330,329,335,48, - 347,157,347,157,157,347,157,347,75,283, - 105,105,110,110,110,110,108,108,116,112, - 112,119,118,415,121,120,159,135,363,367, - 164,45,98,194,332,417,376,194,157,406, - 406,157,406,170,135,367,355,98,45,193, - 161,332,361,75,331,378,45,194,159,219, - 159,277,279,370,249,159,355,98,170,170, - 45,194,373,410,409,367,378,332,159,219, - 277,277,249,133,459,406,170,369,249,135, - 98,355,45,45,332,417,376,361,219,249, - 449,219,277,279,456,279,137,45,406,170, - 135,355,378,219,451,279,249,170,406,45, - 279,332,331,249,129,170,128,189,367,249, - 249,407,451,170,189,279 + 428,1,149,98,149,149,149,149,149,149, + 149,149,149,149,149,149,60,10,80,77, + 84,82,90,88,92,91,94,93,66,149, + 10,368,368,403,149,294,294,329,10,149, + 149,149,149,149,149,149,149,149,149,149, + 149,149,149,149,149,149,149,149,149,149, + 149,149,149,149,149,149,149,149,149,294, + 294,102,109,333,140,335,292,291,301,3, + 313,129,313,129,129,313,129,313,30,245, + 77,77,82,82,82,82,80,80,88,84, + 84,91,90,138,93,92,131,107,329,333, + 143,102,53,173,294,371,338,173,129,368, + 368,129,368,149,107,333,321,53,102,172, + 140,294,327,30,293,340,102,173,131,198, + 131,231,233,298,228,131,321,321,149,149, + 102,173,335,238,237,333,340,294,131,198, + 231,231,228,105,455,368,149,297,228,107, + 321,53,102,102,294,371,338,327,198,228, + 133,198,231,233,452,233,109,102,368,149, + 107,53,321,340,198,135,233,228,149,368, + 102,233,321,294,293,228,241,149,240,168, + 333,228,228,369,135,149,168,233 }; }; public final static char asb[] = Asb.asb; @@ -676,55 +676,52 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 89,0,75,15,2,61,76,16,17,14, - 4,9,10,62,63,56,57,64,65,66, - 67,70,71,72,73,74,77,78,52,69, - 79,80,81,82,83,85,84,86,87,88, - 68,39,89,38,58,5,0,5,68,38, - 58,39,75,15,18,19,20,21,22,2, - 16,17,14,4,9,10,24,25,26,27, - 28,29,30,31,1,3,53,54,55,48, - 40,45,43,44,42,41,46,47,49,50, - 51,37,34,32,33,36,35,6,7,8, - 12,11,13,0,4,62,63,9,10,57, - 56,64,65,66,67,70,71,14,72,73, - 74,58,39,52,89,77,78,68,75,5, - 38,0,5,52,15,61,16,17,14,4, - 9,10,24,25,18,29,30,31,2,19, - 20,21,22,26,27,28,1,3,23,0, - 58,5,32,6,7,8,11,12,13,19, - 20,21,22,26,27,28,3,16,17,14, - 9,10,24,25,18,29,30,31,4,2, - 1,0,32,58,5,16,17,14,4,9, - 10,24,25,18,29,30,31,2,1,3, - 19,20,21,22,26,27,28,0,33,40, - 6,41,53,34,42,35,43,44,36,7, - 45,46,32,54,37,55,47,48,8,49, - 50,51,1,3,11,12,13,60,5,52, - 0,5,39,18,19,20,21,22,1,3, - 2,16,17,14,4,9,10,24,25,26, - 27,28,29,30,31,0,1,3,5,52, - 38,0,7,32,37,8,36,35,34,6, - 33,11,12,13,61,76,16,17,14,9, - 10,62,63,56,57,64,65,66,67,70, - 71,72,73,74,77,78,69,79,80,81, - 82,83,84,85,86,87,88,4,2,15, - 38,39,5,0,48,40,45,43,44,42, - 41,46,47,49,50,51,68,75,37,34, - 32,33,36,35,6,7,8,11,12,13, - 38,1,5,39,2,15,4,0,69,15, - 61,0,4,2,15,39,5,33,40,6, - 41,53,34,42,35,43,44,36,7,45, - 46,32,54,37,55,47,48,8,49,50, - 51,11,12,13,59,3,1,0,2,5, - 38,39,75,15,68,0,4,33,40,6, + 89,0,5,68,38,58,39,75,15,18, + 19,20,21,22,2,16,17,14,4,9, + 10,24,25,26,27,28,29,30,31,1, + 3,53,54,55,48,40,45,43,44,42, + 41,46,47,49,50,51,37,34,32,33, + 36,35,6,7,8,12,11,13,0,15, + 2,61,76,16,17,69,79,80,81,82, + 83,85,84,86,87,88,4,62,63,9, + 10,57,56,64,65,66,67,70,71,14, + 72,73,74,52,75,77,78,68,39,89, + 38,58,5,0,5,52,15,61,16,17, + 14,4,9,10,24,25,18,29,30,31, + 2,19,20,21,22,26,27,28,1,3, + 23,0,75,5,4,1,2,68,0,58, + 5,32,6,7,8,11,12,13,19,20, + 21,22,26,27,28,3,16,17,14,9, + 10,24,25,18,29,30,31,4,2,1, + 0,32,58,5,16,17,14,4,9,10, + 24,25,18,29,30,31,2,1,3,19, + 20,21,22,26,27,28,0,33,40,6, 41,53,34,42,35,43,44,36,7,45, 46,32,54,37,55,47,48,8,49,50, - 51,1,3,11,12,13,59,0,75,5, - 4,1,2,68,0,5,38,52,69,0, - 18,19,20,21,22,1,3,2,16,17, - 14,4,9,10,24,25,26,27,28,29, - 30,31,60,0 + 51,1,3,11,12,13,60,5,52,0, + 1,3,5,52,38,0,2,39,15,68, + 75,5,38,0,7,32,37,8,36,35, + 34,6,33,11,12,13,61,76,16,17, + 14,9,10,62,63,56,57,64,65,66, + 67,70,71,72,73,74,77,78,69,79, + 80,81,82,83,84,85,86,87,88,4, + 2,15,38,39,5,0,69,15,61,0, + 48,40,45,43,44,42,41,46,47,49, + 50,51,68,75,37,34,32,33,36,35, + 6,7,8,11,12,13,38,1,5,39, + 2,15,4,0,4,2,15,39,5,33, + 40,6,41,53,34,42,35,43,44,36, + 7,45,46,32,54,37,55,47,48,8, + 49,50,51,11,12,13,59,3,1,0, + 4,33,40,6,41,53,34,42,35,43, + 44,36,7,45,46,32,54,37,55,47, + 48,8,49,50,51,1,3,11,12,13, + 59,0,5,39,18,19,20,21,22,1, + 3,2,16,17,14,4,9,10,24,25, + 26,27,28,29,30,31,0,18,19,20, + 21,22,1,3,2,16,17,14,4,9, + 10,24,25,26,27,28,29,30,31,60, + 0,5,38,52,69,0 }; }; public final static byte asr[] = Asr.asr; @@ -732,28 +729,28 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static byte nasb[] = {0, - 115,25,16,25,16,16,16,16,16,16, - 16,16,16,16,16,16,25,98,25,25, - 25,25,25,25,25,25,25,25,25,16, - 98,35,35,48,99,64,64,81,1,16, - 16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,99,16,16,16,16, - 16,16,16,16,16,16,16,16,16,64, - 64,28,16,53,26,80,9,9,45,11, - 46,70,46,38,38,46,37,46,40,25, - 25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,61,87,25, - 30,28,102,27,64,91,63,27,7,7, - 7,7,7,16,14,25,61,102,28,27, - 96,64,57,18,25,93,28,27,33,61, - 25,61,66,51,61,25,61,102,16,16, - 28,27,56,9,9,53,93,64,25,107, - 61,7,68,13,25,7,16,78,68,61, - 102,96,28,28,64,91,63,72,61,68, - 104,118,7,66,25,25,15,28,7,16, - 14,96,111,107,59,66,68,16,7,28, - 66,64,64,68,105,16,25,59,53,68, - 68,25,59,16,74,85 + 115,31,22,31,22,22,22,22,22,22, + 22,22,22,22,22,22,31,107,31,31, + 31,31,31,31,31,31,31,31,31,22, + 107,13,13,104,108,60,60,86,1,22, + 22,22,22,22,22,22,22,22,22,22, + 22,22,22,22,22,108,22,22,22,22, + 22,22,22,22,22,22,22,22,22,60, + 60,39,22,56,37,85,11,11,49,17, + 50,54,50,97,97,50,96,50,44,31, + 31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,31,31,31,67,79,31, + 41,39,52,38,60,99,59,38,7,7, + 7,7,7,22,20,31,75,52,39,38, + 32,60,63,24,31,101,39,38,69,67, + 31,67,77,15,67,31,75,67,22,22, + 39,38,62,11,11,56,101,60,31,90, + 67,7,9,19,31,7,22,83,9,67, + 67,52,39,39,60,99,59,71,67,9, + 34,118,7,77,31,31,21,39,7,22, + 20,52,32,111,90,65,77,9,22,7, + 39,77,32,60,60,9,35,22,31,65, + 56,9,9,31,65,22,73,94 }; }; public final static byte nasb[] = Nasb.nasb; @@ -761,17 +758,17 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 81,79,78,66,77,76,1,0,28,0, - 102,0,70,11,61,5,0,81,80,79, - 78,66,77,76,0,11,5,21,0,5, - 11,0,92,0,72,0,94,67,0,66, - 62,63,64,65,54,29,0,11,90,0, - 99,0,33,51,0,26,46,45,38,36, - 11,0,11,26,0,53,0,34,0,91, - 0,46,45,38,36,33,0,101,0,26, - 45,46,11,0,97,0,46,45,33,0, - 33,51,11,27,0,22,0,50,11,48, - 0,58,0,11,71,0,83,11,50,0, + 81,79,78,66,77,76,1,0,34,0, + 28,0,72,0,99,0,102,0,70,11, + 61,5,0,81,80,79,78,66,77,76, + 0,22,0,11,71,0,11,5,21,0, + 5,11,0,66,62,63,64,65,54,30, + 0,58,0,91,0,29,51,0,11,26, + 0,26,46,45,38,36,11,0,92,0, + 46,45,38,36,29,0,53,0,46,45, + 29,0,101,0,26,45,46,11,0,83, + 11,50,0,97,0,94,67,0,29,51, + 11,27,0,11,90,0,50,11,48,0, 95,11,27,0,11,89,0,11,50,68, 0 }; @@ -800,18 +797,18 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 114,0,0,0,116,120,121,122,123,124, - 0,125,126,127,128,129,130,131,132,133, - 110,143,0,0,0,111,136,164,142,0, - 0,0,0,112,160,162,0,163,0,0, - 0,0,135,173,174,175,0,115,151,155, - 161,170,0,145,150,0,165,168,169,172, - 0,146,147,148,149,152,0,154,159,176, - 113,117,118,119,134,137,138,139,140,141, - 144,0,153,157,0,0,158,167,109,0, - 0,0,156,0,166,171,0,177,178,0, - 179,180,0,0,0,0,0,0,0,0, + 0,125,126,127,128,129,130,131,0,132, + 110,142,0,0,0,111,135,163,0,141, + 0,0,0,112,159,161,0,162,0,0, + 0,0,134,172,173,174,0,115,150,154, + 160,169,0,144,149,0,164,167,168,171, + 0,145,146,147,148,151,0,153,158,175, + 113,117,118,119,133,136,137,138,139,140, + 143,0,152,156,0,0,157,166,109,0, + 0,0,155,0,165,170,0,176,177,0, + 178,179,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -843,10 +840,10 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 64,62,5,64,28,28,62,55,109,47, + 64,62,5,64,28,28,62,55,110,47, 28,41,28,47,28,28,68,5,5,28, 28,19,28,102,101,100,45,60,28,38, - 49,3,70,68,7,110,5,68,80,79, + 49,3,70,68,7,111,5,68,80,79, 78,77,76,41,39,41 }; }; @@ -879,24 +876,24 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 150,15,0,110,0,205,118,0,31,150, + 150,15,0,110,0,205,118,0,31,149, 0,160,181,118,23,168,0,112,0,0, 164,118,2,152,0,111,0,164,118,2, - 0,167,2,0,158,118,0,173,0,195, + 0,167,2,0,158,118,0,172,0,195, 118,15,0,9,110,0,127,32,195,118, - 15,0,69,133,110,0,127,195,118,32, - 15,0,195,118,32,15,0,133,110,0, + 15,0,69,132,110,0,127,195,118,32, + 15,0,195,118,32,15,0,132,110,0, 127,32,15,0,127,195,118,15,0,127, - 15,0,145,0,2,0,166,111,0,2, - 111,0,164,118,2,145,0,2,0,165, - 111,0,156,2,0,160,0,160,193,118, + 15,0,145,0,2,0,165,111,0,2, + 111,0,164,118,2,145,0,2,0,164, + 111,0,156,2,0,159,0,160,193,118, 23,108,201,53,0,112,0,160,193,118, 23,201,53,0,157,0,113,0,200,118, - 157,0,118,157,0,156,113,0,189,118, + 157,0,118,157,0,155,113,0,189,118, 23,199,108,198,173,0,189,118,23,198, - 173,0,188,0,149,0,148,0,147,0, - 146,0,145,0,212,94,0,77,2,115, - 111,113,0,212,133,155,2,98,0,53, + 173,0,188,0,148,0,147,0,146,0, + 145,0,144,0,213,94,0,77,2,115, + 111,113,0,213,133,155,2,98,0,53, 0,0,155,78,125,0,29,132,0,180, 2,0,111,121,0,160,181,118,23,133, 180,2,0,111,3,0,119,0,112,0, @@ -909,16 +906,16 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1522,0,1772,1802,1764,0,1234,0,1434,1330, - 1392,1512,1361,1282,1240,0,421,0,1207,526, - 362,0,1529,1438,420,389,1330,1596,1282,1240, - 1528,1617,0,1738,1731,1709,1698,1654,1447,1609, - 1601,532,1686,674,562,1343,1211,1411,512,1378, - 1241,737,1500,1489,1478,1455,1678,1665,1646,1252, - 593,1631,1513,1159,1107,457,429,1167,1135,1115, - 1083,1063,1042,1021,747,1187,715,692,608,1000, - 979,958,937,916,895,874,853,832,811,790, - 362,769,651,630,470,491,395,0 + 1436,0,1773,1815,1545,0,418,0,1544,1319, + 1426,1512,1350,1286,1255,0,422,0,1216,562, + 363,0,1334,1243,698,392,1319,1411,1286,1255, + 1543,1680,0,1524,1468,1427,1392,1305,529,1634, + 1514,507,1709,489,397,1218,710,1413,1400,1367, + 1256,773,1498,1487,1476,1444,1700,1692,1681,1336, + 629,1672,1664,1656,1642,1164,430,1192,1172,1140, + 1120,564,1099,1078,783,1057,751,728,644,1036, + 1015,994,973,952,931,910,889,868,847,826, + 363,805,687,666,466,541,445,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -936,18 +933,18 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 197,155,133,118,15,2,153,152,183,12, 184,173,185,55,54,186,53,187,188,108, 115,115,117,117,117,117,116,116,120,119, - 119,122,121,155,124,123,133,23,158,140, + 119,122,121,155,124,123,133,23,158,136, 32,127,118,4,167,118,2,15,198,174, - 174,201,174,68,118,140,4,118,127,195, + 174,201,174,68,118,136,4,118,127,195, 165,164,134,118,166,118,150,4,108,23, - 108,23,181,118,23,168,4,118,195,32, + 108,23,181,118,23,168,4,136,195,32, 127,4,2,143,145,118,38,164,199,118, 23,118,160,38,205,61,15,206,118,23, - 118,165,127,127,156,118,2,158,23,189, + 136,118,127,127,156,118,2,158,23,189, 157,190,118,193,108,194,69,150,61,15, - 118,165,118,118,118,193,160,69,38,150, - 181,164,202,189,200,68,156,2,118,160, - 160,38,38,68,158,141 + 118,118,165,118,118,118,193,160,69,38, + 150,181,165,164,202,189,200,68,156,2, + 118,160,160,38,38,68,158,141 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1082,12 +1079,11 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "shift_expression", "relational_expression", "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", "assignment_expression", "expression_list_actual", "constant_expression", @@ -1158,20 +1154,20 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 216, + NUM_STATES = 218, NT_OFFSET = 107, - LA_STATE_OFFSET = 2273, + LA_STATE_OFFSET = 2276, MAX_LA = 2, - NUM_RULES = 361, - NUM_NONTERMINALS = 128, - NUM_SYMBOLS = 235, + NUM_RULES = 362, + NUM_NONTERMINALS = 129, + NUM_SYMBOLS = 236, SEGMENT_SIZE = 8192, - START_STATE = 1793, + START_STATE = 1783, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, - ACCEPT_ACTION = 1899, - ERROR_ACTION = 1912; + ACCEPT_ACTION = 1901, + ERROR_ACTION = 1914; public final static boolean BACKTRACK = true; |