diff --git a/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF b/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF index 88b1935a825..907bb01f543 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF +++ b/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF @@ -6,7 +6,8 @@ Bundle-Version: 4.0.1.qualifier Bundle-ClassPath: . Require-Bundle: org.eclipse.cdt.core, net.sourceforge.lpg.lpgjavaruntime;bundle-version="1.1.0";visibility:=reexport, - org.eclipse.core.runtime + org.eclipse.core.runtime, + org.apache.ant;bundle-version="1.7.0" Export-Package: org.eclipse.cdt.core.dom.lrparser, org.eclipse.cdt.core.dom.lrparser.action, org.eclipse.cdt.core.dom.lrparser.action.c99, diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g index c9795f23fe7..f591416686d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g @@ -13,6 +13,7 @@ -- TODO when the architecture has solidified try to move common -- stuff between C99 and C++ into one file. + $Include common.g $End @@ -117,13 +118,6 @@ $End - ---$Start --- translation_unit ---$End - - - $Rules ------------------------------------------------------------------------------------------- @@ -986,19 +980,3 @@ function_body /. $Build consumeStatementCompoundStatement(true); $EndBuild ./ $End - - - - - - - - - - - - - - - - diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/common.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/common.g index 48c4396050e..d219d3bf41b 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/common.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/common.g @@ -67,7 +67,6 @@ $Headers private void initActions(IASTTranslationUnit tu) { action = new $build_action_class($node_factory_create_expression, this, tu); - action.setTokenMap($sym_type.orderedTerminalSymbols); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java index b3000630440..224949acbae 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java @@ -114,9 +114,6 @@ public abstract class BuildASTParserAction { private final IASTNodeFactory nodeFactory; - - - /** * Completion tokens are represented by different kinds by different parsers. */ diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java index 876b203715c..c9a6806c965 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java @@ -11,28 +11,7 @@ package org.eclipse.cdt.core.dom.lrparser.action.c99; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Completion; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK__Bool; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK__Complex; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_auto; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_char; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_const; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_double; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_extern; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_float; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_identifier; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_inline; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_int; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_long; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_register; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_restrict; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_short; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_signed; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_static; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_typedef; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_unsigned; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_void; -import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_volatile; +import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.*; import java.util.Collections; import java.util.List; @@ -87,7 +66,6 @@ import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionStatementPars import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99NoCastExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99SizeofExpressionParser; -import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym; import org.eclipse.cdt.internal.core.dom.parser.ASTNode; /** @@ -98,7 +76,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode; @SuppressWarnings("restriction") public class C99BuildASTParserAction extends BuildASTParserAction { - private ITokenMap tokenMap = null; + private final ITokenMap tokenMap; /** Used to create the AST node objects */ protected final IC99ASTNodeFactory nodeFactory; @@ -111,25 +89,22 @@ public class C99BuildASTParserAction extends BuildASTParserAction { public C99BuildASTParserAction(IC99ASTNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu) { super(nodeFactory, parser, tu); this.nodeFactory = nodeFactory; + this.tokenMap = new TokenMap(C99Parsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } - @Override protected boolean isCompletionToken(IToken token) { + @Override + protected boolean isCompletionToken(IToken token) { return asC99Kind(token) == TK_Completion; } - public void setTokenMap(String[] orderedTerminalSymbols) { - this.tokenMap = new TokenMap(C99Parsersym.orderedTerminalSymbols, orderedTerminalSymbols); - } - - - int asC99Kind(IToken token) { + private int asC99Kind(IToken token) { return asC99Kind(token.getKind()); } private int asC99Kind(int tokenKind) { - return tokenMap == null ? tokenKind : tokenMap.mapKind(tokenKind); + return tokenMap.mapKind(tokenKind); } @@ -161,11 +136,10 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * postfix_expression ::= postfix_expression '.' ident * postfix_expression ::= postfix_expression '->' ident */ - public void consumeExpressionFieldReference(/*IBinding field, */ boolean isPointerDereference) { + public void consumeExpressionFieldReference(boolean isPointerDereference) { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); IASTName name = createName(parser.getRightIToken()); - //name.setBinding(field); IASTExpression owner = (IASTExpression) astStack.pop(); IASTFieldReference expr = nodeFactory.newFieldReference(name, owner, isPointerDereference); setOffsetAndLength(expr); @@ -222,7 +196,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * In plain C99 specifiers are always just single tokens, but in language * extensions specifiers may be more complex. Thats why this method takes * Object as the type of the specifier, so that it may be overridden in subclasses - * and used with arbitray objects as the specifier. + * and used with arbitrary objects as the specifier. */ protected void setSpecifier(ICASTDeclSpecifier node, Object specifier) { if(!(specifier instanceof IToken)) @@ -463,11 +437,10 @@ public class C99BuildASTParserAction extends BuildASTParserAction { /** * designator ::= '.' 'identifier' */ - public void consumeDesignatorField(/*IBinding binding*/) { + public void consumeDesignatorField() { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = createName( parser.getRightIToken() ); - //name.setBinding(binding); + IASTName name = createName(parser.getRightIToken()); ICASTFieldDesignator designator = nodeFactory.newCFieldDesignator(name); setOffsetAndLength(designator); astStack.push(designator); @@ -558,10 +531,10 @@ public class C99BuildASTParserAction extends BuildASTParserAction { List declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList(); IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); - // do not generate nodes for extra EOC tokens - if(matchTokens(parser.getRuleTokens(), CPPParsersym.TK_EndOfCompletion)) - return; - + List ruleTokens = parser.getRuleTokens(); + if(ruleTokens.size() == 1 && asC99Kind(ruleTokens.get(0)) == TK_EndOfCompletion) + return; // do not generate nodes for extra EOC tokens + IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier); for(Object declarator : declarators) @@ -647,11 +620,10 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * * enum_specifier ::= 'enum' enum_identifier */ - public void consumeTypeSpecifierElaborated(int kind /*, IBinding binding*/) { + public void consumeTypeSpecifierElaborated(int kind) { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); IASTName name = createName(parser.getRuleTokens().get(1)); - //name.setBinding(binding); IASTElaboratedTypeSpecifier typeSpec = nodeFactory.newElaboratedTypeSpecifier(kind, name); setOffsetAndLength(typeSpec); astStack.push(typeSpec); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParser.java index f29493506ac..65cf6ec9960 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParser.java @@ -170,7 +170,6 @@ public C99ExpressionStatementParser() { // constructor private void initActions(IASTTranslationUnit tu) { action = new C99BuildASTParserAction ( C99ASTNodeFactory.DEFAULT_INSTANCE , this, tu); - action.setTokenMap(C99ExpressionStatementParsersym.orderedTerminalSymbols); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java index 85077dd3016..0c4ecf68d21 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java @@ -170,7 +170,6 @@ public C99NoCastExpressionParser() { // constructor private void initActions(IASTTranslationUnit tu) { action = new C99BuildASTParserAction ( C99ASTNodeFactory.DEFAULT_INSTANCE , this, tu); - action.setTokenMap(C99NoCastExpressionParsersym.orderedTerminalSymbols); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java index d7636fa486f..b636ce52e02 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java @@ -170,7 +170,6 @@ public C99Parser() { // constructor private void initActions(IASTTranslationUnit tu) { action = new C99BuildASTParserAction ( C99ASTNodeFactory.DEFAULT_INSTANCE , this, tu); - action.setTokenMap(C99Parsersym.orderedTerminalSymbols); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java index e7e5aae0f16..fc986e8087d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java @@ -170,7 +170,6 @@ public C99SizeofExpressionParser() { // constructor private void initActions(IASTTranslationUnit tu) { action = new C99BuildASTParserAction ( C99ASTNodeFactory.DEFAULT_INSTANCE , this, tu); - action.setTokenMap(C99SizeofExpressionParsersym.orderedTerminalSymbols); } diff --git a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.core.prefs b/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.core.prefs index c0f066a1b5b..12a2d7f64f7 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.core.prefs +++ b/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,4 @@ -#Tue Apr 08 11:17:06 EDT 2008 +#Tue Apr 08 17:05:16 EDT 2008 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning org.eclipse.jdt.core.compiler.problem.autoboxing=ignore @@ -48,7 +48,7 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedImport=error +org.eclipse.jdt.core.compiler.problem.unusedImport=warning org.eclipse.jdt.core.compiler.problem.unusedLabel=warning org.eclipse.jdt.core.compiler.problem.unusedLocal=warning org.eclipse.jdt.core.compiler.problem.unusedParameter=warning diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml b/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml new file mode 100644 index 00000000000..d60df92d2c7 --- /dev/null +++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml @@ -0,0 +1,82 @@ + + + + Generates the UPC parser from LPG grammar files + + + Property $${lpg_exe} not set. + This property must be set to the full path to the LPG generator executable. + + + + Property $${lpg_template} not set. + This property must be set to the full path to the LPG templates folder. + + + + + + Generate the UPC parser + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/UPCParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g similarity index 52% rename from upc/org.eclipse.cdt.core.parser.upc/grammar/UPCParser.g rename to upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g index 87a177ee9fc..7fe27275f51 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/grammar/UPCParser.g +++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g @@ -12,35 +12,34 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.parser.upc %options template=btParserTemplateD.g -%options import_terminals=UPCLexer.g -- Unified Parallel C (UPC) is an extension of C99. -- Must set LPG_INCLUDE environment variable to the location of C99Parser.g $Import -C99Parser.g + C99Grammar.g +$End + +$Start + translation_unit +$End + + +$Define + $build_action_class /. UPCParserAction ./ + $node_factory_create_expression /. UPCASTNodeFactory.DEFAULT_INSTANCE ./ $End $Globals /. -import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression; -import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSizeofExpression; -import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; -import org.eclipse.cdt.internal.core.dom.parser.c99.C99Lexer; -import org.eclipse.cdt.internal.core.dom.parser.c99.C99Parsersym; -import org.eclipse.cdt.core.dom.parser.upc.UPCKeywordMap; +import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory; import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction; -import org.eclipse.cdt.core.dom.c99.IPreprocessorTokenCollector; +import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression; +import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; +import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression; ./ $End -$Define - $action_class /. UPCParserAction ./ - $keyword_map_class /. UPCKeywordMap ./ - $token_map_class /. UPCTokenMap ./ - $lexer_class /. UPCLexer ./ -$End - $Terminals -- Additional keywords defined by UPC MYTHREAD @@ -67,40 +66,30 @@ $Rules -- UPC grammar extensions to C99 -- Expressions ----------------------------------------------------------------------------------- --- also need to be a pre-defined macro --- THREADS and UPC_MAX_BLOCKSIZE are macros, but I want to be able to recognize --- them in the AST, how do I do this? (getRawSignature() to get the source code and then string compare to THREADS?) --- just use the paths and symbols dialog to add them, good for testing they can be added later by a upc toolchain --- map them to integers in the UPCKeywordMap --- override consumeExpressionConstant(IASTLiteralExpression.lk_integer_constant), call toString() onthe token --- and check if its THREADS or UPC_MAX_BLOCKSIZE and create appropriate AST node - --- but then the value would be lost, its no good, they need to be builtin macros - -constant +literal ::= 'MYTHREAD' - /.$ba consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); $ea./ + /. $Build consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); $EndBuild ./ | 'THREADS' - /.$ba consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); $ea./ + /. $Build consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); $EndBuild ./ | 'UPC_MAX_BLOCKSIZE' - /.$ba consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); $ea./ + /. $Build consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); $EndBuild ./ -- causes ambiguities because of no type information, solution is SGLR unary_expression ::= 'upc_localsizeof' unary_expression - /.$ba consumeExpressionUpcSizeofOperator(IUPCASTSizeofExpression.op_upc_localsizeof); $ea./ + /. $Build consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_localsizeof); $EndBuild ./ | 'upc_localsizeof' '(' type_name ')' - /.$ba consumeExpressionUpcSizeofTypeName(IUPCASTSizeofExpression.op_upc_localsizeof); $ea./ + /. $Build consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_localsizeof); $EndBuild ./ | 'upc_blocksizeof' unary_expression - /.$ba consumeExpressionUpcSizeofOperator(IUPCASTSizeofExpression.op_upc_blocksizeof); $ea./ + /. $Build consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); $EndBuild ./ | 'upc_blocksizeof' '(' type_name ')' - /.$ba consumeExpressionUpcSizeofTypeName(IUPCASTSizeofExpression.op_upc_blocksizeof); $ea./ + /. $Build consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_blocksizeof); $EndBuild ./ | 'upc_elemsizeof' unary_expression - /.$ba consumeExpressionUpcSizeofOperator(IUPCASTSizeofExpression.op_upc_elemsizeof); $ea./ + /. $Build consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); $EndBuild ./ | 'upc_elemsizeof' '(' type_name ')' - /.$ba consumeExpressionUpcSizeofTypeName(IUPCASTSizeofExpression.op_upc_elemsizeof); $ea./ + /. $Build consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_elemsizeof); $EndBuild ./ ----------------------------------------------------------------------------------- @@ -120,19 +109,19 @@ type_qualifier shared_type_qualifier ::= 'shared' layout_qualifier -- don't consume anything, the presense of the -- layout_qualifier will determine that 'shared' token was encountered - | 'shared' /.$ba consumeToken(); $ea./ + | 'shared' /. $Build consumeToken(); $EndBuild ./ reference_type_qualifier - ::= 'relaxed' /.$ba consumeToken(); $ea./ - | 'strict' /.$ba consumeToken(); $ea./ + ::= 'relaxed' /. $Build consumeToken(); $EndBuild ./ + | 'strict' /. $Build consumeToken(); $EndBuild ./ layout_qualifier ::= '[' constant_expression ']' - /.$ba consumeLayoutQualifier(true, false); $ea./ + /. $Build consumeLayoutQualifier(true, false); $EndBuild ./ | '[' '*' ']' - /.$ba consumeLayoutQualifier(false, true); $ea./ + /. $Build consumeLayoutQualifier(false, true); $EndBuild ./ | '[' ']' - /.$ba consumeLayoutQualifier(false, false); $ea./ + /. $Build consumeLayoutQualifier(false, false); $EndBuild ./ @@ -145,98 +134,98 @@ statement synchronization_statement ::= 'upc_notify' expression ';' - /.$ba consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); $ea./ + /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); $EndBuild ./ | 'upc_notify' ';' - /.$ba consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); $ea./ + /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); $EndBuild ./ | 'upc_wait' expression ';' - /.$ba consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); $ea./ + /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); $EndBuild ./ | 'upc_wait' ';' - /.$ba consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); $ea./ + /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); $EndBuild ./ | 'upc_barrier' expression ';' - /.$ba consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); $ea./ + /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); $EndBuild ./ | 'upc_barrier' ';' - /.$ba consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); $ea./ + /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); $EndBuild ./ | 'upc_fence' ';' - /.$ba consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); $ea./ + /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); $EndBuild ./ iteration_statement ::= 'upc_forall' '(' expression ';' expression ';' expression ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(true, true, true, true); $ea./ + /. $Build consumeStatementUPCForallLoop(true, true, true, true); $EndBuild ./ | 'upc_forall' '(' expression ';' expression ';' expression ';' ')' statement - /.$ba consumeStatementUPCForallLoop(true, true, true, false); $ea./ + /. $Build consumeStatementUPCForallLoop(true, true, true, false); $EndBuild ./ | 'upc_forall' '(' expression ';' expression ';' ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(true, true, false, true); $ea./ + /. $Build consumeStatementUPCForallLoop(true, true, false, true); $EndBuild ./ | 'upc_forall' '(' expression ';' expression ';' ';' ')' statement - /.$ba consumeStatementUPCForallLoop(true, true, false, false); $ea./ + /. $Build consumeStatementUPCForallLoop(true, true, false, false); $EndBuild ./ | 'upc_forall' '(' expression ';' ';' expression ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(true, false, true, true); $ea./ + /. $Build consumeStatementUPCForallLoop(true, false, true, true); $EndBuild ./ | 'upc_forall' '(' expression ';' ';' expression ';' ')' statement - /.$ba consumeStatementUPCForallLoop(true, false, true, false); $ea./ + /. $Build consumeStatementUPCForallLoop(true, false, true, false); $EndBuild ./ | 'upc_forall' '(' expression ';' ';' ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(true, false, false, true); $ea./ + /. $Build consumeStatementUPCForallLoop(true, false, false, true); $EndBuild ./ | 'upc_forall' '(' expression ';' ';' ';' ')' statement - /.$ba consumeStatementUPCForallLoop(true, false, false, false); $ea./ + /. $Build consumeStatementUPCForallLoop(true, false, false, false); $EndBuild ./ | 'upc_forall' '(' ';' expression ';' expression ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(false, true, true, true); $ea./ + /. $Build consumeStatementUPCForallLoop(false, true, true, true); $EndBuild ./ | 'upc_forall' '(' ';' expression ';' expression ';' ')' statement - /.$ba consumeStatementUPCForallLoop(false, true, true, false); $ea./ + /. $Build consumeStatementUPCForallLoop(false, true, true, false); $EndBuild ./ | 'upc_forall' '(' ';' expression ';' ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(false, true, false, true); $ea./ + /. $Build consumeStatementUPCForallLoop(false, true, false, true); $EndBuild ./ | 'upc_forall' '(' ';' expression ';' ';' ')' statement - /.$ba consumeStatementUPCForallLoop(false, true, false, false); $ea./ + /. $Build consumeStatementUPCForallLoop(false, true, false, false); $EndBuild ./ | 'upc_forall' '(' ';' ';' expression ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(false, false, true, true); $ea./ + /. $Build consumeStatementUPCForallLoop(false, false, true, true); $EndBuild ./ | 'upc_forall' '(' ';' ';' expression ';' ')' statement - /.$ba consumeStatementUPCForallLoop(false, false, true, false); $ea./ + /. $Build consumeStatementUPCForallLoop(false, false, true, false); $EndBuild ./ | 'upc_forall' '(' ';' ';' ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(false, false, false, true); $ea./ + /. $Build consumeStatementUPCForallLoop(false, false, false, true); $EndBuild ./ | 'upc_forall' '(' ';' ';' ';' ')' statement - /.$ba consumeStatementUPCForallLoop(false, false, false, false); $ea./ + /. $Build consumeStatementUPCForallLoop(false, false, false, false); $EndBuild ./ | 'upc_forall' '(' declaration expression ';' expression ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(true, true, true, true); $ea./ + /. $Build consumeStatementUPCForallLoop(true, true, true, true); $EndBuild ./ | 'upc_forall' '(' declaration expression ';' expression ';' ')' statement - /.$ba consumeStatementUPCForallLoop(true, true, true, false); $ea./ + /. $Build consumeStatementUPCForallLoop(true, true, true, false); $EndBuild ./ | 'upc_forall' '(' declaration expression ';' ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(true, true, false, true); $ea./ + /. $Build consumeStatementUPCForallLoop(true, true, false, true); $EndBuild ./ | 'upc_forall' '(' declaration expression ';' ';' ')' statement - /.$ba consumeStatementUPCForallLoop(true, true, false, false); $ea./ + /. $Build consumeStatementUPCForallLoop(true, true, false, false); $EndBuild ./ | 'upc_forall' '(' declaration ';' expression ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(true, false, true, true); $ea./ + /. $Build consumeStatementUPCForallLoop(true, false, true, true); $EndBuild ./ | 'upc_forall' '(' declaration ';' expression ';' ')' statement - /.$ba consumeStatementUPCForallLoop(true, false, true, false); $ea./ + /. $Build consumeStatementUPCForallLoop(true, false, true, false); $EndBuild ./ | 'upc_forall' '(' declaration ';' ';' affinity ')' statement - /.$ba consumeStatementUPCForallLoop(true, false, false, true); $ea./ + /. $Build consumeStatementUPCForallLoop(true, false, false, true); $EndBuild ./ | 'upc_forall' '(' declaration ';' ';' ')' statement - /.$ba consumeStatementUPCForallLoop(true, false, false, false); $ea./ + /. $Build consumeStatementUPCForallLoop(true, false, false, false); $EndBuild ./ affinity ::= expression | 'continue' - /.$ba consumeToken(); $ea./ + /. $Build consumeToken(); $EndBuild ./ $End diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java index 8002aefccb8..5e37c3b9996 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java @@ -47,6 +47,9 @@ import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTUnaryExpression; */ public class UPCASTNodeFactory extends C99ASTNodeFactory { + public static final UPCASTNodeFactory DEFAULT_INSTANCE = new UPCASTNodeFactory(); + + @Override public IASTTypeIdExpression newTypeIdExpression(int operator, IASTTypeId typeId) { return new UPCASTTypeIdExpression(operator, typeId); 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 794dae4ad9e..b468ae76b7a 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 @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.parser.upc; + import lpg.lpgjavaruntime.IToken; import org.eclipse.cdt.core.dom.ast.IASTDeclaration; @@ -40,11 +41,15 @@ public class UPCParserAction extends C99BuildASTParserAction { public UPCParserAction(UPCASTNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu) { super(nodeFactory, parser, tu); - super.setTokenMap(UPCParsersym.orderedTerminalSymbols); this.nodeFactory = nodeFactory; } + @Override + protected boolean isCompletionToken(IToken token) { + return token.getKind() == UPCParsersym.TK_Completion; + } + /************************************************************************************** * Semantic actions **************************************************************************************/ 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 53944bae9b5..928741d83bd 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 @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2006, 2007 IBM Corporation and others. +* Copyright (c) 2006, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -13,45 +13,26 @@ package org.eclipse.cdt.internal.core.dom.parser.upc; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import lpg.lpgjavaruntime.*; -import lpg.lpgjavaruntime.BacktrackingParser; -import lpg.lpgjavaruntime.BadParseException; -import lpg.lpgjavaruntime.BadParseSymFileException; -import lpg.lpgjavaruntime.DiagnoseParser; -import lpg.lpgjavaruntime.ErrorToken; -import lpg.lpgjavaruntime.IToken; -import lpg.lpgjavaruntime.LexStream; -import lpg.lpgjavaruntime.Monitor; -import lpg.lpgjavaruntime.NotBacktrackParseTableException; -import lpg.lpgjavaruntime.NullExportedSymbolsException; -import lpg.lpgjavaruntime.NullTerminalSymbolsException; -import lpg.lpgjavaruntime.ParseErrorCodes; -import lpg.lpgjavaruntime.ParseTable; -import lpg.lpgjavaruntime.PrsStream; -import lpg.lpgjavaruntime.RuleAction; -import lpg.lpgjavaruntime.TokenStream; -import lpg.lpgjavaruntime.UndefinedEofSymbolException; -import lpg.lpgjavaruntime.UnimplementedTerminalsException; - -import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression; -import org.eclipse.cdt.core.dom.ast.IASTCompletionNode; -import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier; -import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier; -import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression; -import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; -import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression; +import java.util.*; +import org.eclipse.cdt.core.dom.ast.*; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; -import org.eclipse.cdt.core.dom.parser.upc.DOMToUPCTokenMap; + +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.action.c99.C99ASTNodeFactory; +import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; + +import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory; import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression; -public class UPCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser, IPreprocessorTokenCollector +public class UPCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { private static ParseTable prs = new UPCParserprs(); private BacktrackingParser btParser; @@ -103,18 +84,18 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo catch(UnimplementedTerminalsException e) { java.util.ArrayList unimplemented_symbols = e.getSymbols(); - System.out.println("The Lexer will not scan the following token(s):");//$NON-NLS-1$ + System.out.println("The Lexer will not scan the following token(s):"); for (int i = 0; i < unimplemented_symbols.size(); i++) { Integer id = (Integer) unimplemented_symbols.get(i); - System.out.println(" " + UPCParsersym.orderedTerminalSymbols[id.intValue()]);//$NON-NLS-1$ + System.out.println(" " + UPCParsersym.orderedTerminalSymbols[id.intValue()]); } System.out.println(); } catch(UndefinedEofSymbolException e) { throw new Error(new UndefinedEofSymbolException - ("The Lexer does not implement the Eof symbol " +//$NON-NLS-1$ + ("The Lexer does not implement the Eof symbol " + UPCParsersym.orderedTerminalSymbols[UPCParserprs.EOFT_SYMBOL])); } } @@ -133,12 +114,12 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo lasttok = super.getLastErrorToken(error_token); String location = super.getFileName() + ':' + (firsttok > lasttok - ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))//$NON-NLS-1$ - : (super.getLine(error_token) + ":" +//$NON-NLS-1$ - super.getColumn(error_token) + ":" +//$NON-NLS-1$ - super.getEndLine(error_token) + ":" +//$NON-NLS-1$ + ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok)) + : (super.getLine(error_token) + ":" + + super.getColumn(error_token) + ":" + + super.getEndLine(error_token) + ":" + super.getEndColumn(error_token))) - + ": ";//$NON-NLS-1$ + + ": "; super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg); } @@ -166,11 +147,11 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo catch (NotBacktrackParseTableException e) { throw new Error(new NotBacktrackParseTableException - ("Regenerate UPCParserprs.java with -BACKTRACK option"));//$NON-NLS-1$ + ("Regenerate UPCParserprs.java with -BACKTRACK option")); } catch (BadParseSymFileException e) { - throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCParsersym.java"));//$NON-NLS-1$ + throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCParsersym.java")); } try @@ -188,1548 +169,1371 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo } -private UPCParserAction action = new UPCParserAction (this); -private List commentTokens = new ArrayList(); -private IKeywordMap keywordMap = new DOMToUPCTokenMap (); +private UPCParserAction action; public UPCParser() { // constructor - this(new UPCLexer ()); } +private void initActions(IASTTranslationUnit tu) { + action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu); +} + + public void addToken(IToken token) { - int newKind = mapKind(token.getKind()); - if(newKind == UPCParserprs.TK_identifier) { - Integer keywordKind = keywordMap.getKeywordKind(token.toString()); - if(keywordKind != null) { - newKind = keywordKind.intValue(); - } - } - token.setKind(newKind); + token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? super.addToken(token); } -public void addCommentToken(IToken token) { - commentTokens.add(token); -} -public List getCommentTokens() { - return commentTokens; -} - -public void resetTokenStream() { - super.resetTokenStream(); - action = new UPCParserAction (this); - commentTokens = new ArrayList(); -} - - -public IParseResult parse() { +public IASTCompletionNode parse(IASTTranslationUnit tu) { // this has to be done, or... kaboom! setStreamLength(getSize()); + initActions(tu); final int errorRepairCount = -1; // -1 means full error handling - - if(btParser == null) { - parser(null, errorRepairCount); - } - else { - try - { - // reuse the same btParser object for speed - // (creating an new instance for every translation unit is dirt slow) - btParser.parse(errorRepairCount); - } - catch (BadParseException e) - { - reset(e.error_token); // point to error token - DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs); - diagnoseParser.diagnose(e.error_token); - } - } + parser(null, errorRepairCount); // do the actual parse + super.resetTokenStream(); // allow tokens to be garbage collected - IASTTranslationUnit tu = action.getAST(); - boolean encounteredError = action.encounteredError(); + // the completion node may be null IASTCompletionNode compNode = action.getASTCompletionNode(); - resetTokenStream(); // important, allows memory to be reclaimed - return new C99ParseResult(tu, compNode, encounteredError); -} - - -// implements IParserActionTokenProvider.getEOFToken() -public IToken getEOFToken() { - List tokens = getTokens(); - IToken eof = (IToken) tokens.get(tokens.size() - 1); - return eof; -} - - -// implements IParserActionTokenProvider.getRuleTokenCount() -public int getRuleTokenCount() { - return (getRightSpan() - getLeftSpan()) + 1; + //action = null; + //parserAction = null; + return compNode; } +// uncomment this method to use with backtracking parser public List getRuleTokens() { - return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); + return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); } +public IASTNode getSecondaryParseResult() { + return action.getSecondaryParseResult(); +} + +public String[] getOrderedTerminalSymbols() { + return UPCParsersym.orderedTerminalSymbols; +} + +public String getName() { + return "UPCParser"; //$NON-NLS-1$ +} + + + +private ITokenMap tokenMap = null; + +public void setTokens(List 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(String[] mapFrom) { // constructor + tokenMap = new TokenMap(UPCParsersym.orderedTerminalSymbols, mapFrom); +} + + + public void ruleAction(int ruleNumber) { switch (ruleNumber) { - + // - // Rule 1: ::= $Empty + // Rule 1: ::= $Empty // - case 1: { action.beforeConsume(); action. openASTScope(); break; - } - + case 1: { action. openASTScope(); break; + } + // - // Rule 12: constant ::= integer + // Rule 10: literal ::= integer // - case 12: { action.beforeConsume(); action. consumeExpressionConstant(IASTLiteralExpression.lk_integer_constant); break; - } - + case 10: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + } + // - // Rule 13: constant ::= floating + // Rule 11: literal ::= floating // - case 13: { action.beforeConsume(); action. consumeExpressionConstant(IASTLiteralExpression.lk_float_constant); break; - } - + case 11: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + } + // - // Rule 14: constant ::= charconst + // Rule 12: literal ::= charconst // - case 14: { action.beforeConsume(); action. consumeExpressionConstant(IASTLiteralExpression.lk_char_constant); break; - } - + case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + } + // - // Rule 15: constant ::= stringlit + // Rule 13: literal ::= stringlit // - case 15: { action.beforeConsume(); action. consumeExpressionConstant(IASTLiteralExpression.lk_string_literal); break; - } - + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + } + // - // Rule 17: primary_expression ::= identifier_or_completion + // Rule 15: primary_expression ::= primary_expression_id // - case 17: { action.beforeConsume(); action. consumeExpressionID(); break; - } - + case 15: { action. consumeExpressionID(); break; + } + // - // Rule 18: primary_expression ::= ( expression ) + // Rule 16: primary_expression ::= ( expression ) // - case 18: { action.beforeConsume(); action. consumeExpressionBracketed(); break; - } - + case 16: { action. consumeExpressionBracketed(); break; + } + // // Rule 20: postfix_expression ::= postfix_expression [ expression ] // - case 20: { action.beforeConsume(); action. consumeExpressionArraySubscript(); break; - } - + case 20: { action. consumeExpressionArraySubscript(); break; + } + // - // Rule 21: postfix_expression ::= postfix_expression ( ) + // Rule 21: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 21: { action.beforeConsume(); action. consumeExpressionFunctionCall(false); break; - } - + case 21: { action. consumeExpressionFunctionCall(); break; + } + // - // Rule 22: postfix_expression ::= postfix_expression ( argument_expression_list ) + // Rule 22: postfix_expression ::= postfix_expression . member_name // - case 22: { action.beforeConsume(); action. consumeExpressionFunctionCall(true); break; - } - + case 22: { action. consumeExpressionFieldReference(false); break; + } + // - // Rule 23: postfix_expression ::= postfix_expression . member_name + // Rule 23: postfix_expression ::= postfix_expression -> member_name // - case 23: { action.beforeConsume(); action. consumeExpressionFieldReference(false); break; - } - + case 23: { action. consumeExpressionFieldReference(true); break; + } + // - // Rule 24: postfix_expression ::= postfix_expression -> member_name + // Rule 24: postfix_expression ::= postfix_expression ++ // - case 24: { action.beforeConsume(); action. consumeExpressionFieldReference(true); break; - } - + case 24: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + } + // - // Rule 25: postfix_expression ::= postfix_expression ++ + // Rule 25: postfix_expression ::= postfix_expression -- // - case 25: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; - } - + case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + } + // - // Rule 26: postfix_expression ::= postfix_expression -- + // Rule 26: postfix_expression ::= ( type_name ) { initializer_list comma_opt } // - case 26: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; - } - + case 26: { action. consumeExpressionTypeIdInitializer(); break; + } + // - // Rule 27: postfix_expression ::= ( type_name ) { initializer_list } + // Rule 32: unary_expression ::= ++ unary_expression // - case 27: { action.beforeConsume(); action. consumeExpressionTypeIdInitializer(); break; - } - + case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + } + // - // Rule 28: postfix_expression ::= ( type_name ) { initializer_list , } + // Rule 33: unary_expression ::= -- unary_expression // - case 28: { action.beforeConsume(); action. consumeExpressionTypeIdInitializer(); break; - } - + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + } + // - // Rule 30: argument_expression_list ::= assignment_expression + // Rule 34: unary_expression ::= & cast_expression // - case 30: { action.beforeConsume(); action. consumeExpressionList(true); break; - } - + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + } + // - // Rule 31: argument_expression_list ::= argument_expression_list , assignment_expression + // Rule 35: unary_expression ::= * cast_expression // - case 31: { action.beforeConsume(); action. consumeExpressionList(false); break; - } - + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + } + // - // Rule 33: unary_expression ::= ++ unary_expression + // Rule 36: unary_expression ::= + cast_expression // - case 33: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; - } - + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + } + // - // Rule 34: unary_expression ::= -- unary_expression + // Rule 37: unary_expression ::= - cast_expression // - case 34: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; - } - + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + } + // - // Rule 35: unary_expression ::= & cast_expression + // Rule 38: unary_expression ::= ~ cast_expression // - case 35: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; - } - + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + } + // - // Rule 36: unary_expression ::= * cast_expression + // Rule 39: unary_expression ::= ! cast_expression // - case 36: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; - } - + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + } + // - // Rule 37: unary_expression ::= + cast_expression + // Rule 40: unary_expression ::= sizeof unary_expression // - case 37: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; - } - + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + } + // - // Rule 38: unary_expression ::= - cast_expression + // Rule 41: unary_expression ::= sizeof ( type_name ) // - case 38: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; - } - + case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; + } + // - // Rule 39: unary_expression ::= ~ cast_expression + // Rule 43: cast_expression ::= ( type_name ) cast_expression // - case 39: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; - } - + case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + } + // - // Rule 40: unary_expression ::= ! cast_expression + // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression // - case 40: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; - } - + case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + } + // - // Rule 41: unary_expression ::= sizeof unary_expression + // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression // - case 41: { action.beforeConsume(); action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; - } - + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + } + // - // Rule 42: unary_expression ::= sizeof ( type_name ) + // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression // - case 42: { action.beforeConsume(); action. consumeExpressionUnarySizeofTypeName(); break; - } - + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + } + // - // Rule 44: cast_expression ::= ( type_name ) cast_expression + // Rule 49: additive_expression ::= additive_expression + multiplicative_expression // - case 44: { action.beforeConsume(); action. consumeExpressionCast(); break; - } - + case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + } + // - // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression + // Rule 50: additive_expression ::= additive_expression - multiplicative_expression // - case 46: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; - } - + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + } + // - // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression + // Rule 52: shift_expression ::= shift_expression << additive_expression // - case 47: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; - } - + case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + } + // - // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression + // Rule 53: shift_expression ::= shift_expression >> additive_expression // - case 48: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; - } - + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + } + // - // Rule 50: additive_expression ::= additive_expression + multiplicative_expression + // Rule 55: relational_expression ::= relational_expression < shift_expression // - case 50: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; - } - + case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + } + // - // Rule 51: additive_expression ::= additive_expression - multiplicative_expression + // Rule 56: relational_expression ::= relational_expression > shift_expression // - case 51: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; - } - + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + } + // - // Rule 53: shift_expression ::= shift_expression << additive_expression + // Rule 57: relational_expression ::= relational_expression <= shift_expression // - case 53: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; - } - + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + } + // - // Rule 54: shift_expression ::= shift_expression >> additive_expression + // Rule 58: relational_expression ::= relational_expression >= shift_expression // - case 54: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; - } - + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + } + // - // Rule 56: relational_expression ::= relational_expression < shift_expression + // Rule 60: equality_expression ::= equality_expression == relational_expression // - case 56: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; - } - + case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + } + // - // Rule 57: relational_expression ::= relational_expression > shift_expression + // Rule 61: equality_expression ::= equality_expression != relational_expression // - case 57: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; - } - + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + } + // - // Rule 58: relational_expression ::= relational_expression <= shift_expression + // Rule 63: AND_expression ::= AND_expression & equality_expression // - case 58: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; - } - + case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + } + // - // Rule 59: relational_expression ::= relational_expression >= shift_expression + // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression // - case 59: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; - } - + case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + } + // - // Rule 61: equality_expression ::= equality_expression == relational_expression + // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression // - case 61: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; - } - + case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + } + // - // Rule 62: equality_expression ::= equality_expression != relational_expression + // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression // - case 62: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; - } - + case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + } + // - // Rule 64: AND_expression ::= AND_expression & equality_expression + // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression // - case 64: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; - } - + case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + } + // - // Rule 66: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression // - case 66: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; - } - + case 73: { action. consumeExpressionConditional(); break; + } + // - // Rule 68: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // Rule 75: assignment_expression ::= unary_expression = assignment_expression // - case 68: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; - } - + case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + } + // - // Rule 70: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // Rule 76: assignment_expression ::= unary_expression *= assignment_expression // - case 70: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; - } - + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + } + // - // Rule 72: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // Rule 77: assignment_expression ::= unary_expression /= assignment_expression // - case 72: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; - } - + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + } + // - // Rule 74: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // Rule 78: assignment_expression ::= unary_expression %= assignment_expression // - case 74: { action.beforeConsume(); action. consumeExpressionConditional(); break; - } - + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + } + // - // Rule 76: assignment_expression ::= unary_expression = assignment_expression + // Rule 79: assignment_expression ::= unary_expression += assignment_expression // - case 76: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; - } - + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + } + // - // Rule 77: assignment_expression ::= unary_expression *= assignment_expression + // Rule 80: assignment_expression ::= unary_expression -= assignment_expression // - case 77: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; - } - + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + } + // - // Rule 78: assignment_expression ::= unary_expression /= assignment_expression + // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression // - case 78: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; - } - + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + } + // - // Rule 79: assignment_expression ::= unary_expression %= assignment_expression + // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression // - case 79: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; - } - + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + } + // - // Rule 80: assignment_expression ::= unary_expression += assignment_expression + // Rule 83: assignment_expression ::= unary_expression &= assignment_expression // - case 80: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; - } - + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + } + // - // Rule 81: assignment_expression ::= unary_expression -= assignment_expression + // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression // - case 81: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; - } - + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + } + // - // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression + // Rule 85: assignment_expression ::= unary_expression |= assignment_expression // - case 82: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; - } - + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + } + // - // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression + // Rule 88: expression_list ::= expression_list_actual // - case 83: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; - } - + case 88: { action. consumeExpressionList(); break; + } + // - // Rule 84: assignment_expression ::= unary_expression &= assignment_expression + // Rule 90: expression_list_opt ::= $Empty // - case 84: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; - } - + case 90: { action. consumeEmpty(); break; + } + // - // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression + // Rule 100: statement ::= ERROR_TOKEN // - case 85: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; - } - + case 100: { action. consumeStatementProblem(); break; + } + // - // Rule 86: assignment_expression ::= unary_expression |= assignment_expression + // Rule 101: labeled_statement ::= identifier_or_typedefname : statement // - case 86: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; - } - + case 101: { action. consumeStatementLabeled(); break; + } + // - // Rule 87: expression_in_statement ::= expression_list + // Rule 102: labeled_statement ::= case constant_expression : // - case 87: { action.beforeConsume(); action. consumeExpression(); break; - } - + case 102: { action. consumeStatementCase(); break; + } + // - // Rule 88: expression ::= expression_list + // Rule 103: labeled_statement ::= default : // - case 88: { action.beforeConsume(); action. consumeExpression(); break; - } - + case 103: { action. consumeStatementDefault(); break; + } + // - // Rule 89: expression_list ::= assignment_expression + // Rule 104: compound_statement ::= { } // - case 89: { action.beforeConsume(); action. consumeExpressionList(true); break; - } - + case 104: { action. consumeStatementCompoundStatement(false); break; + } + // - // Rule 90: expression_list ::= expression_list , assignment_expression + // Rule 105: compound_statement ::= { block_item_list } // - case 90: { action.beforeConsume(); action. consumeExpressionList(false); break; - } - + case 105: { action. consumeStatementCompoundStatement(true); break; + } + // - // Rule 98: statement ::= ERROR_TOKEN + // Rule 109: block_item ::= declaration // - case 98: { action.beforeConsume(); action. consumeStatementProblem(); break; - } - + case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; + } + // - // Rule 99: labeled_statement ::= label_identifier : statement + // Rule 110: expression_statement ::= ; // - case 99: { action.beforeConsume(); action. consumeStatementLabeled(); break; - } - + case 110: { action. consumeStatementNull(); break; + } + // - // Rule 100: labeled_statement ::= case constant_expression : + // Rule 111: expression_statement ::= expression_in_statement ; // - case 100: { action.beforeConsume(); action. consumeStatementCase(); break; - } - + case 111: { action. consumeStatementExpression(); break; + } + // - // Rule 101: labeled_statement ::= default : + // Rule 112: selection_statement ::= if ( expression ) statement // - case 101: { action.beforeConsume(); action. consumeStatementDefault(); break; - } - + case 112: { action. consumeStatementIf(false); break; + } + // - // Rule 102: label_identifier ::= identifier + // Rule 113: selection_statement ::= if ( expression ) statement else statement // - case 102: { action.beforeConsume(); action. consumeName(); break; - } - + case 113: { action. consumeStatementIf(true); break; + } + // - // Rule 103: compound_statement ::= { } + // Rule 114: selection_statement ::= switch ( expression ) statement // - case 103: { action.beforeConsume(); action. consumeStatementEmptyCompoundStatement(); break; - } - + case 114: { action. consumeStatementSwitch(); break; + } + // - // Rule 104: compound_statement ::= { block_item_list } + // Rule 116: expression_opt ::= $Empty // - case 104: { action.beforeConsume(); action. consumeStatementCompoundStatement(); break; - } - + case 116: { action. consumeEmpty(); break; + } + // - // Rule 108: block_item ::= declaration + // Rule 117: iteration_statement ::= do statement while ( expression ) ; // - case 108: { action.beforeConsume(); action. consumeStatementDeclaration(); break; - } - + case 117: { action. consumeStatementDoLoop(); break; + } + // - // Rule 109: expression_statement ::= ; + // Rule 118: iteration_statement ::= while ( expression ) statement // - case 109: { action.beforeConsume(); action. consumeStatementNull(); break; - } - + case 118: { action. consumeStatementWhileLoop(); break; + } + // - // Rule 110: expression_statement ::= expression_in_statement ; + // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // - case 110: { action.beforeConsume(); action. consumeStatementExpression(); break; - } - + case 119: { action. consumeStatementForLoop(); break; + } + // - // Rule 111: selection_statement ::= if ( expression ) statement + // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement // - case 111: { action.beforeConsume(); action. consumeStatementIfThen(); break; - } - + case 120: { action. consumeStatementForLoop(); break; + } + // - // Rule 112: selection_statement ::= if ( expression ) statement else statement + // Rule 121: jump_statement ::= goto identifier_or_typedefname ; // - case 112: { action.beforeConsume(); action. consumeStatementIfThenElse(); break; - } - + case 121: { action. consumeStatementGoto(); break; + } + // - // Rule 113: selection_statement ::= switch ( expression ) statement + // Rule 122: jump_statement ::= continue ; // - case 113: { action.beforeConsume(); action. consumeStatementSwitch(); break; - } - + case 122: { action. consumeStatementContinue(); break; + } + // - // Rule 114: iteration_statement ::= do statement while ( expression ) ; + // Rule 123: jump_statement ::= break ; // - case 114: { action.beforeConsume(); action. consumeStatementDoLoop(); break; - } - + case 123: { action. consumeStatementBreak(); break; + } + // - // Rule 115: iteration_statement ::= while ( expression ) statement + // Rule 124: jump_statement ::= return ; // - case 115: { action.beforeConsume(); action. consumeStatementWhileLoop(); break; - } - + case 124: { action. consumeStatementReturn(false); break; + } + // - // Rule 116: iteration_statement ::= for ( expression ; expression ; expression ) statement + // Rule 125: jump_statement ::= return expression ; // - case 116: { action.beforeConsume(); action. consumeStatementForLoop(true, true, true); break; - } - + case 125: { action. consumeStatementReturn(true); break; + } + // - // Rule 117: iteration_statement ::= for ( expression ; expression ; ) statement + // Rule 126: declaration ::= declaration_specifiers ; // - case 117: { action.beforeConsume(); action. consumeStatementForLoop(true, true, false); break; - } - + case 126: { action. consumeDeclarationSimple(false); break; + } + // - // Rule 118: iteration_statement ::= for ( expression ; ; expression ) statement + // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; // - case 118: { action.beforeConsume(); action. consumeStatementForLoop(true, false, true); break; - } - + case 127: { action. consumeDeclarationSimple(true); break; + } + // - // Rule 119: iteration_statement ::= for ( expression ; ; ) statement + // Rule 128: declaration_specifiers ::= simple_declaration_specifiers // - case 119: { action.beforeConsume(); action. consumeStatementForLoop(true, false, false); break; - } - + case 128: { action. consumeDeclarationSpecifiersSimple(); break; + } + // - // Rule 120: iteration_statement ::= for ( ; expression ; expression ) statement + // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers // - case 120: { action.beforeConsume(); action. consumeStatementForLoop(false, true, true); break; - } - + case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + } + // - // Rule 121: iteration_statement ::= for ( ; expression ; ) statement + // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers // - case 121: { action.beforeConsume(); action. consumeStatementForLoop(false, true, false); break; - } - + case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + } + // - // Rule 122: iteration_statement ::= for ( ; ; expression ) statement + // Rule 131: declaration_specifiers ::= enum_declaration_specifiers // - case 122: { action.beforeConsume(); action. consumeStatementForLoop(false, false, true); break; - } - + case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + } + // - // Rule 123: iteration_statement ::= for ( ; ; ) statement + // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers // - case 123: { action.beforeConsume(); action. consumeStatementForLoop(false, false, false); break; - } - + case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; + } + // - // Rule 124: iteration_statement ::= for ( declaration expression ; expression ) statement + // Rule 157: init_declarator ::= complete_declarator = initializer // - case 124: { action.beforeConsume(); action. consumeStatementForLoop(true, true, true); break; - } - + case 157: { action. consumeDeclaratorWithInitializer(true); break; + } + // - // Rule 125: iteration_statement ::= for ( declaration expression ; ) statement + // Rule 159: storage_class_specifier ::= storage_class_specifier_token // - case 125: { action.beforeConsume(); action. consumeStatementForLoop(true, true, false); break; - } - + case 159: { action. consumeDeclSpecToken(); break; + } + // - // Rule 126: iteration_statement ::= for ( declaration ; expression ) statement + // Rule 165: simple_type_specifier ::= simple_type_specifier_token // - case 126: { action.beforeConsume(); action. consumeStatementForLoop(true, false, true); break; - } - + case 165: { action. consumeDeclSpecToken(); break; + } + // - // Rule 127: iteration_statement ::= for ( declaration ; ) statement + // Rule 178: typedef_name_in_declspec ::= Completion // - case 127: { action.beforeConsume(); action. consumeStatementForLoop(true, false, false); break; - } - + case 178: { action. consumeDeclSpecToken(); break; + } + // - // Rule 128: jump_statement ::= goto goto_identifier ; + // Rule 179: typedef_name_in_declspec ::= identifier // - case 128: { action.beforeConsume(); action. consumeStatementGoto(); break; - } - + case 179: { action. consumeDeclSpecToken(); break; + } + // - // Rule 129: jump_statement ::= continue ; + // Rule 182: struct_or_union_specifier ::= struct { struct_declaration_list_opt } // - case 129: { action.beforeConsume(); action. consumeStatementContinue(); break; - } - + case 182: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break; + } + // - // Rule 130: jump_statement ::= break ; + // Rule 183: struct_or_union_specifier ::= union { struct_declaration_list_opt } // - case 130: { action.beforeConsume(); action. consumeStatementBreak(); break; - } - + case 183: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break; + } + // - // Rule 131: jump_statement ::= return ; + // Rule 184: struct_or_union_specifier ::= struct identifier_or_typedefname { struct_declaration_list_opt } // - case 131: { action.beforeConsume(); action. consumeStatementReturn(false); break; - } - + case 184: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break; + } + // - // Rule 132: jump_statement ::= return expression ; + // Rule 185: struct_or_union_specifier ::= union identifier_or_typedefname { struct_declaration_list_opt } // - case 132: { action.beforeConsume(); action. consumeStatementReturn(true); break; - } - + case 185: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break; + } + // - // Rule 133: goto_identifier ::= identifier + // Rule 186: elaborated_specifier ::= struct identifier_or_typedefname // - case 133: { action.beforeConsume(); action. consumeName(); break; - } - + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + } + // - // Rule 134: declaration ::= declaration_specifiers ; + // Rule 187: elaborated_specifier ::= union identifier_or_typedefname // - case 134: { action.beforeConsume(); action. consumeDeclaration(false); break; - } - + case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + } + // - // Rule 135: declaration ::= declaration_specifiers init_declarator_list ; + // Rule 188: elaborated_specifier ::= enum identifier_or_typedefname // - case 135: { action.beforeConsume(); action. consumeDeclaration(true); break; - } - + case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + } + // - // Rule 136: declaration_specifiers ::= simple_declaration_specifiers + // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; // - case 136: { action.beforeConsume(); action. consumeDeclarationSpecifiersSimple(); break; - } - + case 193: { action. consumeStructDeclaration(true); break; + } + // - // Rule 137: declaration_specifiers ::= struct_or_union_declaration_specifiers + // Rule 194: struct_declaration ::= specifier_qualifier_list ; // - case 137: { action.beforeConsume(); action. consumeDeclarationSpecifiersStructUnionEnum(); break; - } - + case 194: { action. consumeStructDeclaration(false); break; + } + // - // Rule 138: declaration_specifiers ::= enum_declaration_specifiers + // Rule 195: struct_declaration ::= ERROR_TOKEN // - case 138: { action.beforeConsume(); action. consumeDeclarationSpecifiersStructUnionEnum(); break; - } - + case 195: { action. consumeDeclarationProblem(); break; + } + // - // Rule 139: declaration_specifiers ::= typdef_name_declaration_specifiers + // Rule 201: struct_declarator ::= : constant_expression // - case 139: { action.beforeConsume(); action. consumeDeclarationSpecifiersTypedefName(); break; - } - + case 201: { action. consumeBitField(false); break; + } + // - // Rule 161: init_declarator ::= declarator = initializer + // Rule 202: struct_declarator ::= declarator : constant_expression // - case 161: { action.beforeConsume(); action. consumeDeclaratorWithInitializer(); break; - } - + case 202: { action. consumeBitField(true); break; + } + // - // Rule 162: storage_class_specifier ::= typedef + // Rule 203: enum_specifier ::= enum { enumerator_list_opt comma_opt } // - case 162: { action.beforeConsume(); action. consumeToken(); break; - } - + case 203: { action. consumeTypeSpecifierEnumeration(false); break; + } + // - // Rule 163: storage_class_specifier ::= extern + // Rule 204: enum_specifier ::= enum identifier_or_typedefname { enumerator_list_opt comma_opt } // - case 163: { action.beforeConsume(); action. consumeToken(); break; - } - + case 204: { action. consumeTypeSpecifierEnumeration(true); break; + } + // - // Rule 164: storage_class_specifier ::= static + // Rule 209: enumerator ::= identifier_or_typedefname // - case 164: { action.beforeConsume(); action. consumeToken(); break; - } - + case 209: { action. consumeEnumerator(false); break; + } + // - // Rule 165: storage_class_specifier ::= auto + // Rule 210: enumerator ::= identifier_or_typedefname = constant_expression // - case 165: { action.beforeConsume(); action. consumeToken(); break; - } - + case 210: { action. consumeEnumerator(true); break; + } + // - // Rule 166: storage_class_specifier ::= register + // Rule 211: type_qualifier ::= type_qualifier_token // - case 166: { action.beforeConsume(); action. consumeToken(); break; - } - + case 211: { action. consumeDeclSpecToken(); break; + } + // - // Rule 167: type_specifier ::= void + // Rule 215: function_specifier ::= inline // - case 167: { action.beforeConsume(); action. consumeToken(); break; - } - + case 215: { action. consumeDeclSpecToken(); break; + } + // - // Rule 168: type_specifier ::= char + // Rule 217: declarator ::= pointer_seq direct_declarator // - case 168: { action.beforeConsume(); action. consumeToken(); break; - } - + case 217: { action. consumeDeclaratorWithPointer(true); break; + } + // - // Rule 169: type_specifier ::= short + // Rule 222: basic_direct_declarator ::= declarator_id_name // - case 169: { action.beforeConsume(); action. consumeToken(); break; - } - + case 222: { action. consumeDirectDeclaratorIdentifier(); break; + } + // - // Rule 170: type_specifier ::= int + // Rule 223: basic_direct_declarator ::= ( declarator ) // - case 170: { action.beforeConsume(); action. consumeToken(); break; - } - + case 223: { action. consumeDirectDeclaratorBracketed(); break; + } + // - // Rule 171: type_specifier ::= long + // Rule 224: declarator_id_name ::= identifier // - case 171: { action.beforeConsume(); action. consumeToken(); break; - } - + case 224: { action. consumeIdentifierName(); break; + } + // - // Rule 172: type_specifier ::= float + // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 172: { action.beforeConsume(); action. consumeToken(); break; - } - + case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + // - // Rule 173: type_specifier ::= double + // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier // - case 173: { action.beforeConsume(); action. consumeToken(); break; - } - + case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + // - // Rule 174: type_specifier ::= signed + // Rule 228: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) // - case 174: { action.beforeConsume(); action. consumeToken(); break; - } - + case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + } + // - // Rule 175: type_specifier ::= unsigned + // Rule 229: function_direct_declarator ::= basic_direct_declarator ( ) // - case 175: { action.beforeConsume(); action. consumeToken(); break; - } - + case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + } + // - // Rule 176: type_specifier ::= _Bool + // Rule 231: function_declarator ::= pointer_seq function_direct_declarator // - case 176: { action.beforeConsume(); action. consumeToken(); break; - } - + case 231: { action. consumeDeclaratorWithPointer(true); break; + } + // - // Rule 177: type_specifier ::= _Complex + // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) // - case 177: { action.beforeConsume(); action. consumeToken(); break; - } - + case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + } + // - // Rule 178: type_specifier ::= _Imaginary + // Rule 234: knr_function_declarator ::= pointer_seq knr_direct_declarator // - case 178: { action.beforeConsume(); action. consumeToken(); break; - } - + case 234: { action. consumeDeclaratorWithPointer(true); break; + } + // - // Rule 179: typedef_name ::= identifier_or_completion + // Rule 235: identifier_list ::= identifier // - case 179: { action.beforeConsume(); action. consumeToken(); break; - } - + case 235: { action. consumeIdentifierKnR(); break; + } + // - // Rule 180: struct_or_union_specifier ::= struct { struct_declaration_list_opt } + // Rule 236: identifier_list ::= identifier_list , identifier // - case 180: { action.beforeConsume(); action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break; - } - + case 236: { action. consumeIdentifierKnR(); break; + } + // - // Rule 181: struct_or_union_specifier ::= union { struct_declaration_list_opt } + // Rule 237: array_modifier ::= [ ] // - case 181: { action.beforeConsume(); action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break; - } - + case 237: { action. consumeDirectDeclaratorArrayModifier(false); break; + } + // - // Rule 182: struct_or_union_specifier ::= struct struct_or_union_identifier { struct_declaration_list_opt } + // Rule 238: array_modifier ::= [ array_modifier_type_qualifiers ] // - case 182: { action.beforeConsume(); action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break; - } - + case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + } + // - // Rule 183: struct_or_union_specifier ::= union struct_or_union_identifier { struct_declaration_list_opt } + // Rule 239: array_modifier ::= [ assignment_expression ] // - case 183: { action.beforeConsume(); action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break; - } - + case 239: { action. consumeDirectDeclaratorArrayModifier(true); break; + } + // - // Rule 184: struct_or_union_specifier ::= struct struct_or_union_identifier + // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] // - case 184: { action.beforeConsume(); action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_struct); break; - } - + case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + } + // - // Rule 185: struct_or_union_specifier ::= union struct_or_union_identifier + // Rule 241: array_modifier ::= [ static assignment_expression ] // - case 185: { action.beforeConsume(); action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_union); break; - } - + case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + } + // - // Rule 186: struct_or_union_identifier ::= identifier + // Rule 242: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] // - case 186: { action.beforeConsume(); action. consumeName(); break; - } - + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + } + // - // Rule 191: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; + // Rule 243: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] // - case 191: { action.beforeConsume(); action. consumeStructDeclaration(true); break; - } - + case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + } + // - // Rule 192: struct_declaration ::= specifier_qualifier_list ; + // Rule 244: array_modifier ::= [ * ] // - case 192: { action.beforeConsume(); action. consumeStructDeclaration(false); break; - } - + case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + } + // - // Rule 197: struct_declarator ::= : constant_expression + // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers * ] // - case 197: { action.beforeConsume(); action. consumeStructBitField(false); break; - } - + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + } + // - // Rule 198: struct_declarator ::= declarator : constant_expression + // Rule 247: pointer_seq ::= * // - case 198: { action.beforeConsume(); action. consumeStructBitField(true); break; - } - + case 247: { action. consumePointer(); break; + } + // - // Rule 199: enum_identifier ::= identifier + // Rule 248: pointer_seq ::= pointer_seq * // - case 199: { action.beforeConsume(); action. consumeName(); break; - } - + case 248: { action. consumePointer(); break; + } + // - // Rule 200: enum_specifier ::= enum { enumerator_list_opt } + // Rule 249: pointer_seq ::= * type_qualifier_list // - case 200: { action.beforeConsume(); action. consumeTypeSpecifierEnumeration(false); break; - } - + case 249: { action. consumePointerTypeQualifierList(); break; + } + // - // Rule 201: enum_specifier ::= enum enum_identifier { enumerator_list_opt } + // Rule 250: pointer_seq ::= pointer_seq * type_qualifier_list // - case 201: { action.beforeConsume(); action. consumeTypeSpecifierEnumeration(true); break; - } - + case 250: { action. consumePointerTypeQualifierList(); break; + } + // - // Rule 202: enum_specifier ::= enum { enumerator_list_opt , } + // Rule 253: parameter_type_list ::= parameter_list // - case 202: { action.beforeConsume(); action. consumeTypeSpecifierEnumeration(false); break; - } - + case 253: { action. consumeEmpty(); break; + } + // - // Rule 203: enum_specifier ::= enum enum_identifier { enumerator_list_opt , } + // Rule 254: parameter_type_list ::= parameter_list , ... // - case 203: { action.beforeConsume(); action. consumeTypeSpecifierEnumeration(true); break; - } - + case 254: { action. consumePlaceHolder(); break; + } + // - // Rule 204: enum_specifier ::= enum enum_identifier + // Rule 255: parameter_type_list ::= ... // - case 204: { action.beforeConsume(); action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; - } - + case 255: { action. consumePlaceHolder(); break; + } + // - // Rule 209: enumerator ::= enum_identifier + // Rule 258: parameter_declaration ::= declaration_specifiers complete_parameter_declarator // - case 209: { action.beforeConsume(); action. consumeEnumerator(false); break; - } - + case 258: { action. consumeParameterDeclaration(); break; + } + // - // Rule 210: enumerator ::= enum_identifier = constant_expression + // Rule 259: parameter_declaration ::= declaration_specifiers // - case 210: { action.beforeConsume(); action. consumeEnumerator(true); break; - } - + case 259: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + // - // Rule 211: type_qualifier ::= const + // Rule 262: type_name ::= specifier_qualifier_list // - case 211: { action.beforeConsume(); action. consumeToken(); break; - } - + case 262: { action. consumeTypeId(false); break; + } + // - // Rule 212: type_qualifier ::= restrict + // Rule 263: type_name ::= specifier_qualifier_list abstract_declarator // - case 212: { action.beforeConsume(); action. consumeToken(); break; - } - + case 263: { action. consumeTypeId(true); break; + } + // - // Rule 213: type_qualifier ::= volatile + // Rule 265: abstract_declarator ::= pointer_seq // - case 213: { action.beforeConsume(); action. consumeToken(); break; - } - + case 265: { action. consumeDeclaratorWithPointer(false); break; + } + // - // Rule 214: function_specifier ::= inline + // Rule 266: abstract_declarator ::= pointer_seq direct_abstract_declarator // - case 214: { action.beforeConsume(); action. consumeToken(); break; - } - + case 266: { action. consumeDeclaratorWithPointer(false); break; + } + // - // Rule 216: declarator ::= pointer direct_declarator + // Rule 270: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 216: { action.beforeConsume(); action. consumeDeclaratorWithPointer(true); break; - } - + case 270: { action. consumeDirectDeclaratorBracketed(); break; + } + // - // Rule 217: direct_declarator ::= identifier + // Rule 271: array_direct_abstract_declarator ::= array_modifier // - case 217: { action.beforeConsume(); action. consumeDirectDeclaratorIdentifier(); break; - } - + case 271: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + } + // - // Rule 218: direct_declarator ::= ( declarator ) + // Rule 272: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 218: { action.beforeConsume(); action. consumeDirectDeclaratorBracketed(); break; - } - + case 272: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + // - // Rule 221: array_direct_declarator ::= direct_declarator array_modifier + // Rule 273: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 221: { action.beforeConsume(); action. consumeDirectDeclaratorArrayDeclarator(); break; - } - + case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + // - // Rule 222: function_direct_declarator ::= direct_declarator ( parameter_type_list ) + // Rule 274: function_direct_abstract_declarator ::= ( ) // - case 222: { action.beforeConsume(); action. consumeDirectDeclaratorFunctionDeclarator(true); break; - } - + case 274: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + } + // - // Rule 223: function_direct_declarator ::= direct_declarator ( ) + // Rule 275: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) // - case 223: { action.beforeConsume(); action. consumeDirectDeclaratorFunctionDeclarator(false); break; - } - + case 275: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + } + // - // Rule 225: function_declarator ::= pointer function_direct_declarator + // Rule 276: function_direct_abstract_declarator ::= ( parameter_type_list ) // - case 225: { action.beforeConsume(); action. consumeDeclaratorWithPointer(true); break; - } - + case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + } + // - // Rule 226: knr_direct_declarator ::= direct_declarator ( identifier_list ) + // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) // - case 226: { action.beforeConsume(); action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; - } - + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + } + // - // Rule 228: knr_function_declarator ::= pointer knr_direct_declarator + // Rule 278: initializer ::= assignment_expression // - case 228: { action.beforeConsume(); action. consumeDeclaratorWithPointer(true); break; - } - + case 278: { action. consumeInitializer(); break; + } + // - // Rule 229: array_modifier ::= [ ] + // Rule 279: initializer ::= { initializer_list comma_opt } // - case 229: { action.beforeConsume(); action. consumeDirectDeclaratorArrayModifier(false); break; - } - + case 279: { action. consumeInitializerList(); break; + } + // - // Rule 230: array_modifier ::= [ type_qualifier_list ] + // Rule 284: designated_initializer ::= designation = initializer // - case 230: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; - } - + case 284: { action. consumeInitializerDesignated(); break; + } + // - // Rule 231: array_modifier ::= [ assignment_expression ] + // Rule 288: designator_base ::= [ constant_expression ] // - case 231: { action.beforeConsume(); action. consumeDirectDeclaratorArrayModifier(true ); break; - } - + case 288: { action. consumeDesignatorArray(); break; + } + // - // Rule 232: array_modifier ::= [ type_qualifier_list assignment_expression ] + // Rule 289: designator_base ::= . identifier_or_typedefname // - case 232: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true ); break; - } - + case 289: { action. consumeDesignatorField(); break; + } + // - // Rule 233: array_modifier ::= [ static assignment_expression ] + // Rule 290: designator ::= [ constant_expression ] // - case 233: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true ); break; - } - + case 290: { action. consumeDesignatorArray(); break; + } + // - // Rule 234: array_modifier ::= [ static type_qualifier_list assignment_expression ] + // Rule 291: designator ::= . identifier_or_typedefname // - case 234: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true ); break; - } - + case 291: { action. consumeDesignatorField(); break; + } + // - // Rule 235: array_modifier ::= [ type_qualifier_list static assignment_expression ] + // Rule 292: translation_unit ::= external_declaration_list // - case 235: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true ); break; - } - + case 292: { action. consumeTranslationUnit(); break; + } + // - // Rule 236: array_modifier ::= [ * ] + // Rule 293: translation_unit ::= $Empty // - case 236: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; - } - + case 293: { action. consumeTranslationUnit(); break; + } + // - // Rule 237: array_modifier ::= [ type_qualifier_list * ] + // Rule 298: external_declaration ::= ; // - case 237: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; - } - + case 298: { action. consumeDeclarationEmpty(); break; + } + // - // Rule 238: pointer ::= * + // Rule 299: external_declaration ::= ERROR_TOKEN // - case 238: { action.beforeConsume(); action. consumePointer(); break; - } - + case 299: { action. consumeDeclarationProblem(); break; + } + // - // Rule 239: pointer ::= pointer * + // Rule 302: function_definition ::= declaration_specifiers function_declarator function_body // - case 239: { action.beforeConsume(); action. consumePointer(); break; - } - + case 302: { action. consumeFunctionDefinition(true); break; + } + // - // Rule 240: pointer ::= * type_qualifier_list + // Rule 303: function_definition ::= function_declarator function_body // - case 240: { action.beforeConsume(); action. consumePointerTypeQualifierList(); break; - } - + case 303: { action. consumeFunctionDefinition(false); break; + } + // - // Rule 241: pointer ::= pointer * type_qualifier_list + // Rule 304: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement // - case 241: { action.beforeConsume(); action. consumePointerTypeQualifierList(); break; - } - + case 304: { action. consumeFunctionDefinitionKnR(); break; + } + // - // Rule 249: parameter_declaration ::= declaration_specifiers init_declarator + // Rule 305: function_body ::= { } // - case 249: { action.beforeConsume(); action. consumeParameterDeclaration(true); break; - } - + case 305: { action. consumeStatementCompoundStatement(false); break; + } + // - // Rule 250: parameter_declaration ::= declaration_specifiers + // Rule 306: function_body ::= { block_item_list } // - case 250: { action.beforeConsume(); action. consumeParameterDeclaration(false); break; - } - + case 306: { action. consumeStatementCompoundStatement(true); break; + } + // - // Rule 251: parameter_declaration ::= declaration_specifiers abstract_declarator + // Rule 307: literal ::= MYTHREAD // - case 251: { action.beforeConsume(); action. consumeParameterDeclaration(true); break; - } - + case 307: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + } + // - // Rule 252: identifier_list ::= identifier + // Rule 308: literal ::= THREADS // - case 252: { action.beforeConsume(); action. consumeName(); break; - } - + case 308: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + } + // - // Rule 253: identifier_list ::= identifier_list , identifier + // Rule 309: literal ::= UPC_MAX_BLOCKSIZE // - case 253: { action.beforeConsume(); action. consumeName(); break; - } - + case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + } + // - // Rule 254: type_name ::= specifier_qualifier_list + // Rule 310: unary_expression ::= upc_localsizeof unary_expression // - case 254: { action.beforeConsume(); action. consumeTypeId(false); break; - } - + case 310: { action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_localsizeof); break; + } + // - // Rule 255: type_name ::= specifier_qualifier_list abstract_declarator + // Rule 311: unary_expression ::= upc_localsizeof ( type_name ) // - case 255: { action.beforeConsume(); action. consumeTypeId(true); break; - } - + case 311: { action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_localsizeof); break; + } + // - // Rule 256: abstract_declarator ::= pointer + // Rule 312: unary_expression ::= upc_blocksizeof unary_expression // - case 256: { action.beforeConsume(); action. consumeDeclaratorWithPointer(false); break; - } - + case 312: { action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); break; + } + // - // Rule 258: abstract_declarator ::= pointer direct_abstract_declarator + // Rule 313: unary_expression ::= upc_blocksizeof ( type_name ) // - case 258: { action.beforeConsume(); action. consumeDeclaratorWithPointer(true); break; - } - + case 313: { action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_blocksizeof); break; + } + // - // Rule 259: direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 314: unary_expression ::= upc_elemsizeof unary_expression // - case 259: { action.beforeConsume(); action. consumeDirectDeclaratorBracketed(); break; - } - + case 314: { action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); break; + } + // - // Rule 260: direct_abstract_declarator ::= array_modifier + // Rule 315: unary_expression ::= upc_elemsizeof ( type_name ) // - case 260: { action.beforeConsume(); action. consumeAbstractDeclaratorArrayModifier(false); break; - } - + case 315: { action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_elemsizeof); break; + } + // - // Rule 261: direct_abstract_declarator ::= direct_abstract_declarator array_modifier + // Rule 319: shared_type_qualifier ::= shared // - case 261: { action.beforeConsume(); action. consumeAbstractDeclaratorArrayModifier(true); break; - } - + case 319: { action. consumeToken(); break; + } + // - // Rule 262: direct_abstract_declarator ::= ( ) + // Rule 320: reference_type_qualifier ::= relaxed // - case 262: { action.beforeConsume(); action. consumeAbstractDeclaratorFunctionDeclarator(false, false); break; - } - + case 320: { action. consumeToken(); break; + } + // - // Rule 263: direct_abstract_declarator ::= direct_abstract_declarator ( ) + // Rule 321: reference_type_qualifier ::= strict // - case 263: { action.beforeConsume(); action. consumeAbstractDeclaratorFunctionDeclarator(true, false); break; - } - + case 321: { action. consumeToken(); break; + } + // - // Rule 264: direct_abstract_declarator ::= ( parameter_type_list ) + // Rule 322: layout_qualifier ::= [ constant_expression ] // - case 264: { action.beforeConsume(); action. consumeAbstractDeclaratorFunctionDeclarator(false, true); break; - } - + case 322: { action. consumeLayoutQualifier(true, false); break; + } + // - // Rule 265: direct_abstract_declarator ::= direct_abstract_declarator ( parameter_type_list ) + // Rule 323: layout_qualifier ::= [ * ] // - case 265: { action.beforeConsume(); action. consumeAbstractDeclaratorFunctionDeclarator(true, true); break; - } - + case 323: { action. consumeLayoutQualifier(false, true); break; + } + // - // Rule 266: initializer ::= assignment_expression + // Rule 324: layout_qualifier ::= [ ] // - case 266: { action.beforeConsume(); action. consumeInitializer(); break; - } - + case 324: { action. consumeLayoutQualifier(false, false); break; + } + // - // Rule 267: initializer ::= { initializer_list } + // Rule 326: synchronization_statement ::= upc_notify expression ; // - case 267: { action.beforeConsume(); action. consumeInitializerList(); break; - } - + case 326: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + } + // - // Rule 268: initializer ::= { initializer_list , } + // Rule 327: synchronization_statement ::= upc_notify ; // - case 268: { action.beforeConsume(); action. consumeInitializerList(); break; - } - + case 327: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + } + // - // Rule 273: designated_initializer ::= designation initializer + // Rule 328: synchronization_statement ::= upc_wait expression ; // - case 273: { action.beforeConsume(); action. consumeInitializerDesignated(); break; - } - + case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + } + // - // Rule 277: designator ::= [ constant_expression ] + // Rule 329: synchronization_statement ::= upc_wait ; // - case 277: { action.beforeConsume(); action. consumeDesignatorArrayDesignator(); break; - } - + case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + } + // - // Rule 278: designator ::= . identifier + // Rule 330: synchronization_statement ::= upc_barrier expression ; // - case 278: { action.beforeConsume(); action. consumeDesignatorFieldDesignator(); break; - } - + case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + } + // - // Rule 279: translation_unit ::= external_declaration_list + // Rule 331: synchronization_statement ::= upc_barrier ; // - case 279: { action.beforeConsume(); action. consumeTranslationUnit(); break; - } - + case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + } + // - // Rule 280: translation_unit ::= $Empty + // Rule 332: synchronization_statement ::= upc_fence ; // - case 280: { action.beforeConsume(); action. consumeTranslationUnit(); break; - } - + case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + } + // - // Rule 285: external_declaration ::= ; + // Rule 333: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 285: { action.beforeConsume(); action. consumeDeclarationEmpty(); break; - } - + case 333: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + } + // - // Rule 286: external_declaration ::= ERROR_TOKEN + // Rule 334: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 286: { action.beforeConsume(); action. consumeDeclarationProblem(); break; - } - + case 334: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + } + // - // Rule 287: function_definition ::= declaration_specifiers function_declarator compound_statement + // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 287: { action.beforeConsume(); action. consumeFunctionDefinition(true); break; - } - + case 335: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + } + // - // Rule 288: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 288: { action.beforeConsume(); action. consumeFunctionDefinitionKnR(); break; - } - + case 336: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + } + // - // Rule 289: function_definition ::= function_declarator compound_statement + // Rule 337: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 289: { action.beforeConsume(); action. consumeFunctionDefinition(false); break; - } - + case 337: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + } + // - // Rule 292: constant ::= MYTHREAD + // Rule 338: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 292: { action.beforeConsume(); action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; - } - + case 338: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + } + // - // Rule 293: constant ::= THREADS + // Rule 339: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 293: { action.beforeConsume(); action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; - } - + case 339: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + } + // - // Rule 294: constant ::= UPC_MAX_BLOCKSIZE + // Rule 340: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 294: { action.beforeConsume(); action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; - } - + case 340: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + } + // - // Rule 295: unary_expression ::= upc_localsizeof unary_expression + // Rule 341: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 295: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_localsizeof); break; - } - + case 341: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + } + // - // Rule 296: unary_expression ::= upc_localsizeof ( type_name ) + // Rule 342: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 296: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_localsizeof); break; - } - + case 342: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + } + // - // Rule 297: unary_expression ::= upc_blocksizeof unary_expression + // Rule 343: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 297: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); break; - } - + case 343: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + } + // - // Rule 298: unary_expression ::= upc_blocksizeof ( type_name ) + // Rule 344: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 298: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_blocksizeof); break; - } - + case 344: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + } + // - // Rule 299: unary_expression ::= upc_elemsizeof unary_expression + // Rule 345: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 299: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); break; - } - + case 345: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + } + // - // Rule 300: unary_expression ::= upc_elemsizeof ( type_name ) + // Rule 346: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 300: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_elemsizeof); break; - } - + case 346: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + } + // - // Rule 304: shared_type_qualifier ::= shared + // Rule 347: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 304: { action.beforeConsume(); action. consumeToken(); break; - } - + case 347: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + } + // - // Rule 305: reference_type_qualifier ::= relaxed + // Rule 348: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 305: { action.beforeConsume(); action. consumeToken(); break; - } - + case 348: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + } + // - // Rule 306: reference_type_qualifier ::= strict + // Rule 349: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 306: { action.beforeConsume(); action. consumeToken(); break; - } - + case 349: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + } + // - // Rule 307: layout_qualifier ::= [ constant_expression ] + // Rule 350: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 307: { action.beforeConsume(); action. consumeLayoutQualifier(true, false); break; - } - + case 350: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + } + // - // Rule 308: layout_qualifier ::= [ * ] + // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 308: { action.beforeConsume(); action. consumeLayoutQualifier(false, true); break; - } - + case 351: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + } + // - // Rule 309: layout_qualifier ::= [ ] + // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 309: { action.beforeConsume(); action. consumeLayoutQualifier(false, false); break; - } - + case 352: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + } + // - // Rule 311: synchronization_statement ::= upc_notify expression ; + // Rule 353: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 311: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; - } - + case 353: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + } + // - // Rule 312: synchronization_statement ::= upc_notify ; + // Rule 354: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 312: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; - } - + case 354: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + } + // - // Rule 313: synchronization_statement ::= upc_wait expression ; + // Rule 355: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 313: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; - } - + case 355: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + } + // - // Rule 314: synchronization_statement ::= upc_wait ; + // Rule 356: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 314: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; - } - + case 356: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + } + // - // Rule 315: synchronization_statement ::= upc_barrier expression ; + // Rule 358: affinity ::= continue // - case 315: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; - } - - // - // Rule 316: synchronization_statement ::= upc_barrier ; - // - case 316: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; - } - - // - // Rule 317: synchronization_statement ::= upc_fence ; - // - case 317: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; - } - - // - // Rule 318: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement - // - case 318: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, true, true); break; - } - - // - // Rule 319: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement - // - case 319: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, true, false); break; - } - - // - // Rule 320: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement - // - case 320: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, false, true); break; - } - - // - // Rule 321: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement - // - case 321: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, false, false); break; - } - - // - // Rule 322: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement - // - case 322: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, true, true); break; - } - - // - // Rule 323: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement - // - case 323: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, true, false); break; - } - - // - // Rule 324: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement - // - case 324: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, false, true); break; - } - - // - // Rule 325: iteration_statement ::= upc_forall ( expression ; ; ; ) statement - // - case 325: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, false, false); break; - } - - // - // Rule 326: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement - // - case 326: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, true, true, true); break; - } - - // - // Rule 327: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement - // - case 327: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, true, true, false); break; - } - - // - // Rule 328: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement - // - case 328: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, true, false, true); break; - } - - // - // Rule 329: iteration_statement ::= upc_forall ( ; expression ; ; ) statement - // - case 329: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, true, false, false); break; - } - - // - // Rule 330: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement - // - case 330: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, false, true, true); break; - } - - // - // Rule 331: iteration_statement ::= upc_forall ( ; ; expression ; ) statement - // - case 331: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, false, true, false); break; - } - - // - // Rule 332: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement - // - case 332: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, false, false, true); break; - } - - // - // Rule 333: iteration_statement ::= upc_forall ( ; ; ; ) statement - // - case 333: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, false, false, false); break; - } - - // - // Rule 334: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement - // - case 334: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, true, true); break; - } - - // - // Rule 335: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement - // - case 335: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, true, false); break; - } - - // - // Rule 336: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement - // - case 336: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, false, true); break; - } - - // - // Rule 337: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement - // - case 337: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, false, false); break; - } - - // - // Rule 338: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement - // - case 338: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, true, true); break; - } - - // - // Rule 339: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement - // - case 339: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, true, false); break; - } - - // - // Rule 340: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement - // - case 340: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, false, true); break; - } - - // - // Rule 341: iteration_statement ::= upc_forall ( declaration ; ; ) statement - // - case 341: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, false, false); break; - } - - // - // Rule 343: affinity ::= continue - // - case 343: { action.beforeConsume(); action. consumeToken(); break; - } + case 358: { action. consumeToken(); break; + } default: 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 51499cd69e7..2bcb9843a89 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 @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2006, 2007 IBM Corporation and others. +* Copyright (c) 2006, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -27,8 +27,7 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym 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 byte isKeyword[] = IsKeyword.isKeyword; @@ -37,467 +36,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,4, - 3,4,3,3,2,2,7,8,1,1, - 3,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,1,3, - 1,1,1,1,1,1,1,1,3,3, - 2,1,2,4,1,2,1,1,1,2, - 5,7,5,7,5,9,8,8,7,8, - 7,7,6,8,7,7,6,3,2,2, - 2,3,1,2,4,2,2,2,2,1, - 1,1,1,2,1,2,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,5, - 5,6,6,2,2,1,1,0,1,2, - 4,2,1,1,3,1,2,3,1,5, - 6,6,7,2,1,0,1,3,1,3, - 1,1,1,1,1,3,1,3,1,1, - 2,5,3,1,3,5,1,3,2,4, - 3,5,4,6,6,3,5,1,2,3, - 4,1,2,1,3,1,1,3,2,1, - 2,1,3,1,2,2,1,3,3,1, - 2,2,3,4,5,1,4,5,1,1, - 3,3,3,2,1,2,3,2,1,0, - 1,2,1,1,1,1,4,6,2,1, - 2,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,-68,0,0,0,0,0,0, + 1,1,1,1,1,3,1,1,1,4, + 4,3,3,2,2,8,1,0,1,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,3,2,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,1,1,1, + 1,5,5,6,6,2,2,2,1,0, + 1,2,4,2,1,1,1,3,1,1, + 2,3,6,7,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,1,2,3,4, + 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,5,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,-107,-83, + 0,-2,0,0,0,0,0,0,-19,0, + 0,-22,0,0,0,0,-20,0,-4,0, + 0,-215,0,-39,-276,0,0,0,0,0, + 0,-74,0,0,0,0,0,-24,-8,0, + 0,0,-26,-6,0,0,0,0,0,-29, + 0,0,0,0,0,0,-25,0,-3,0, + -40,0,0,0,0,-11,0,0,0,0, + 0,-41,0,0,0,0,-32,0,0,-43, + 0,0,0,0,0,0,0,0,0,-162, + 0,-17,0,0,0,0,0,-124,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-2,0,-4,0,0,0, - 0,0,0,0,0,0,0,0,-125,0, + 0,0,0,0,-88,0,0,0,0,0, + -59,0,0,-87,0,0,0,-60,0,0, 0,0,0,0,0,0,0,0,0,0, - -236,-22,-73,-6,-29,-137,0,0,0,0, + 0,0,0,0,0,0,-241,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-24,0,0,0, + -61,0,0,0,-51,0,-12,-141,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-16, - -31,0,0,0,-7,-145,0,-149,0,0, + 0,-30,-89,0,0,0,-288,0,-27,0, + 0,0,0,0,0,0,0,0,0,-254, + -33,0,0,0,-62,0,-98,0,0,0, + 0,-102,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-14,0,0,0,0, + 0,0,0,0,-106,0,0,0,0,0, + -296,0,-110,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,-11, + 0,0,0,0,-42,-1,0,0,0,0, + 0,0,0,-146,0,-28,0,0,-214,0, + -80,0,-31,0,0,0,0,0,0,0, + -143,0,0,0,-38,0,0,0,0,0, + -9,-37,0,0,0,0,0,0,0,0, + 0,0,0,-117,0,0,0,-119,0,0, + 0,0,0,0,-152,0,0,0,0,-36, + 0,0,-142,0,0,0,0,0,0,0, + -79,0,0,0,0,0,-5,0,0,-34, + 0,-63,0,0,0,0,0,-150,0,0, + 0,0,0,-64,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-23,0, + -65,0,0,0,0,0,0,0,-45,0, + 0,-70,0,0,0,0,0,0,-66,0, + 0,-173,0,0,0,0,0,0,0,0, + 0,-72,0,-35,-84,0,-67,0,0,0, + 0,0,0,0,0,0,0,0,-68,0, + 0,0,-52,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-223,0,0,0,0,0,0,0,0, + 0,0,-75,0,-154,0,0,0,0,0, + 0,0,0,0,0,0,0,-76,0,0, + 0,0,-47,0,-147,-220,0,0,0,0, + 0,0,0,0,0,0,0,-168,0,-144, + 0,0,0,0,0,0,0,-69,0,0, + -71,0,0,0,0,-55,0,-82,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-33,0,-36,0,0,0,0,0, - 0,0,0,0,0,-282,0,0,0,0, + -225,0,0,-189,0,0,0,0,0,0, + -95,0,0,0,0,0,0,0,-96,0, + 0,-92,-219,0,0,0,0,0,0,0, + 0,0,0,-94,0,0,-315,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-43,-57,0,0, - 0,0,0,0,0,0,0,0,0,-284, + -108,0,0,0,0,0,-240,0,0,0, + 0,0,-257,0,0,0,0,0,0,-104, + 0,-97,0,0,0,0,0,0,0,-118, + 0,0,-163,0,0,0,0,-53,0,0, + -187,0,0,0,0,0,0,0,0,0, + 0,0,-218,0,0,-109,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -221,0,-90,0,0,0,0,-93,-159,0, + 0,0,0,0,0,-227,0,-99,0,0, + 0,0,0,0,0,-239,0,0,0,-155, + 0,0,0,-190,0,0,0,0,0,0, + -101,-100,0,0,0,0,0,0,-228,0, + -103,0,0,0,0,0,0,0,-300,0, + 0,-253,0,0,0,0,-158,0,0,-197, + 0,0,0,0,0,0,0,0,0,0, + 0,-229,0,0,0,0,0,0,0,0, + 0,-105,0,0,-298,-148,0,0,0,-167, + 0,0,-149,-245,0,0,0,0,0,0, + 0,0,0,0,-230,0,-157,0,0,0, + 0,0,0,0,-191,0,0,-161,-164,0, + 0,0,-272,0,0,-224,0,0,0,0, + 0,0,0,0,0,0,0,-231,0,-165, + -192,0,0,0,0,0,0,-166,0,0, + 0,-176,0,0,0,-169,0,0,0,-120, + 0,0,0,0,0,0,0,0,0,0, + -232,0,-180,0,0,0,0,0,0,0, + -193,0,0,-183,-184,0,0,0,-54,0, + 0,-185,0,0,0,0,0,0,0,0, + 0,0,0,-233,0,-198,-194,0,0,0, + 0,0,0,-199,0,0,0,-200,0,0, + 0,-56,0,-81,0,0,0,0,0,0, + 0,0,0,0,0,0,-234,0,-201,-195, + 0,0,0,0,0,0,-202,0,0,0, + -203,0,0,0,-204,0,0,-271,-317,-73, + 0,-170,-196,0,0,0,0,0,0,-235, + 0,0,0,0,0,0,0,0,0,-205, + 0,0,-206,0,0,0,0,-226,0,-171, + -207,0,0,0,0,-208,0,0,0,0, + 0,0,-236,0,0,-216,0,0,0,0, + 0,0,-217,0,0,-209,-222,0,0,0, + -210,0,0,0,0,0,0,-172,0,0, + 0,0,0,0,0,-237,0,0,0,0, + 0,0,0,0,0,-211,0,0,0,-212, + 0,0,0,-111,0,0,-213,0,0,0, + 0,0,0,0,0,0,0,0,-252,0, + -248,-247,0,0,0,0,0,0,-249,0, + 0,0,-258,0,0,0,-121,0,0,-275, + 0,0,0,0,0,0,0,0,0,0, + 0,-265,0,-259,-250,0,0,0,0,0, + 0,-255,0,0,0,-260,0,0,0,-122, + 0,0,-261,0,0,0,0,0,0,0, + 0,0,0,0,-269,-244,-262,0,0,0, + 0,0,0,0,-266,0,0,-268,-297,0, + 0,0,-312,0,-290,0,-283,0,0,0, + -267,0,0,0,0,0,0,-270,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-123,0,0,-293,0, + 0,0,0,0,0,0,0,0,0,0, + -292,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-246,0, + 0,0,-140,0,0,0,0,0,0,0, + 0,0,0,-299,-264,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-278,0,0,-280,0,0,0,-282,-289, + 0,0,0,0,0,0,-318,0,0,0, + 0,0,0,0,0,0,0,0,0,-294, + -313,0,0,0,0,0,-44,0,0,0, + 0,0,-274,0,0,0,0,0,0,0, + 0,0,0,-302,0,0,0,0,0,0, + 0,0,0,0,-91,0,0,0,0,0, + -305,0,0,0,-86,0,0,0,0,-308, + -78,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,-58,-59,0,0,0,0,0,0,0, - 0,0,0,-285,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-60,-61,-62,0,0,0, - 0,0,0,0,0,0,0,-301,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-63,-64, - -65,0,0,0,0,0,0,0,0,0, - 0,-304,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-66,-67,-72,0,0,0,0,0, - 0,0,0,0,0,-317,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-89,-107,-146,0, - 0,0,0,0,0,0,0,0,0,-322, + -145,0,-179,0,0,0,-310,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -147,-148,-150,0,0,0,0,0,0,0, - 0,0,0,-330,0,0,0,0,0,0, + -295,-316,0,0,-311,0,0,0,-251,0, + 0,0,-48,-314,0,0,0,0,0,0, + 0,0,0,0,-138,0,0,0,0,0, + 0,0,0,0,0,0,-320,-325,0,0, + 0,0,-323,0,0,0,0,0,0,0, + -332,0,-160,0,-328,0,0,-263,0,-336, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-151,-152,-154,0,0,0, - 0,0,0,0,0,0,0,-331,0,0, + -337,0,0,0,0,-330,0,0,-18,0, + -334,0,0,0,0,0,0,0,0,0, + -256,0,0,0,0,-238,0,-340,0,0, + 0,0,0,0,-354,0,0,0,0,0, + 0,-342,-346,0,0,0,0,-156,0,0, + 0,0,0,0,0,0,0,0,-348,-351, + -356,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-16,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-155,-157, - -172,0,0,0,0,0,0,0,0,0, + 0,0,-139,0,0,-360,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-21,0,-364,0, + 0,0,0,-301,0,-367,0,0,0,0, + 0,0,0,0,-369,0,-377,0,-188,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,0,0,0,0,0,-136, + -153,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,-137,0,0,0, + 0,0,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,0, + 0,0,0,0,-284,0,0,0,-49,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-286,0,0,0,-50,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -287,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,0,0,-319,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,-324,0,0,0, + 0,-242,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-335,0,0,0,0,-243, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-338,0,0,0,0,-277,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -339,0,0,0,0,-279,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-341,0, + 0,0,0,-281,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-344,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,0,0,-345,0,0,0,0,-306, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-347,0,0,0,0,-307,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -350,0,0,0,0,-309,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-355,0, + 0,0,0,-331,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-357,0,0,0, 0,-333,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-173,-194,-195,0,0,0,0,0, - 0,0,0,0,0,-334,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-196,-197,-198,0, - 0,0,0,0,0,0,0,0,0,-336, + 0,0,0,0,-358,0,0,0,0,-175, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -199,-200,-201,0,0,0,0,0,0,0, - 0,0,0,-340,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-202,-203,-204,0,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,-205,-206, - -207,0,0,0,0,0,0,0,0,0, - 0,-343,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-208,-209,-210,0,0,0,0,0, - 0,0,0,0,0,-345,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-219,-222,-245,0, - 0,0,0,0,0,0,0,0,0,-348, + 0,0,-359,0,0,0,0,-177,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -246,-247,-248,0,0,0,0,0,0,0, - 0,0,0,-349,0,0,0,0,0,0, + -361,0,0,0,0,-178,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-249,-259,-266,0,0,0, - 0,0,0,0,0,0,0,-351,0,0, + 0,0,0,0,0,0,0,0,-362,0, + 0,0,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,-288,-310, - -313,0,0,0,0,0,0,0,0,0, - 0,-354,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-363,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,-359,0,0,0,0, + 0,0,0,0,-365,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,-360, + 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,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,-361,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-371,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,-362,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,0,0,0,0,0,0,0,0, - 0,-364,0,0,0,0,0,0,0,0, + 0,0,0,0,-373,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,-365,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,0,0,0,0,0,0,0,-366, + -375,0,0,0,0,0,0,-77,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-376,0, + 0,0,0,0,0,-151,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,-182,0,0,0,0,0, + 0,0,0,0,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,0,0,0,0,-291,0, + 0,0,0,0,0,0,0,-135,0,0, + 0,0,0,0,0,0,0,0,0,0, + -7,-128,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,-125, 0,0,0,0,0,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,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,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-370,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,-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,0,0,0,0,0,0,0,0,-373, - 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,-375,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,-378,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,-379,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,-380,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,-381, - 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,-382,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,-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,0,0,0,0,0,0,0, - 0,-385,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,-44,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-175,0,0,-127, - 0,0,0,0,0,0,0,0,0,0, - -128,0,0,0,0,0,0,0,0,0, - 0,-45,0,0,0,0,0,0,-109,0, + 0,0,0,0,0,0,-126,0,0,0, 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,-130,0,0,0, + 0,0,0,0,0,0,0,0,0,-131, 0,0,0,0,0,0,0,0,0,-13, - 0,0,-129,0,0,0,0,0,0,0, - 0,0,0,-130,0,0,0,0,0,0, - 0,0,0,0,-46,0,0,0,0,0, - 0,-110,0,0,0,0,0,0,0,0, + 0,0,-132,-15,0,0,0,0,0,0, + 0,0,0,0,0,-133,0,0,0,0, + 0,0,0,0,0,-85,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -14,0,0,0,0,-121,0,0,0,0, - 0,0,0,0,0,0,-122,0,0,0, - 0,0,0,0,0,-10,0,-165,-12,-19, - 0,0,-21,0,-111,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-114,0, + 0,0,0,0,0,-46,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,-41,0,-169,-20,0,0,-112,0,0, + 0,0,0,0,0,-127,0,0,0,0, + 0,0,0,0,0,0,0,0,-112,0, + 0,0,-113,0,0,0,-114,0,0,0, + 0,0,0,0,0,0,0,0,-304,0, + 0,0,-115,0,0,0,-116,0,0,0, + 0,0,0,0,0,0,0,-273,0,0, + 0,0,0,0,0,0,0,0,0,-174, + 0,0,0,-223,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-186,0, 0,0,0,0,0,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, - 0,0,0,-53,0,0,0,0,0,0, - -23,0,0,-47,0,0,0,0,0,0, - -113,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-70, - 0,0,0,0,-124,0,0,0,0,0, - 0,0,0,0,0,0,-76,0,0,0, - 0,0,0,0,-38,0,-48,0,0,0, - 0,0,0,-216,0,0,0,0,0,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,0,-126,0, - 0,0,0,0,0,0,0,0,0,0, - -217,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-163,0,0,-50,0,0,0,0,0, - 0,0,-115,0,0,-51,0,0,0,0, - 0,0,0,0,0,0,0,-93,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,0,0,0,0, - 0,0,0,0,0,0,-262,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-30,0,0,-271, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-15, - -74,0,-182,0,0,0,0,0,0,-32, - 0,-132,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,-75,-171, - 0,0,0,0,0,0,0,0,0,0, - -185,-34,0,0,-293,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-296, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-311,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-71,0,-85,0,-133,0,0,0, - 0,0,0,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,-52,0, - 0,0,0,0,0,-176,-227,0,-26,-35, - 0,-316,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-268,0,-131,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-54,0,0,0,0,0,0,-92,0, - 0,0,0,0,0,0,-118,0,0,0, - 0,0,0,0,0,0,-69,0,0,-319, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-320,0,0,0,0,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-325,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-327, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-347,0,0,0,0,0, - 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,0,0, - 0,0,0,0,0,0,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,-357, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,0,0,-86,0,-94,0, - 0,0,0,0,0,0,0,0,0,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,0, - 0,0,0,-140,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-141,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-315,0, - 0,-142,0,0,0,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,0,0,0,0,0, - 0,0,0,0,-119,0,0,0,0,0, - 0,-120,0,0,0,0,0,0,0,0, - 0,0,0,-252,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-253,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-255,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-256,0,0,0,0, - 0,0,0,0,0,0,0,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,0,0, - 0,0,0,-274,0,0,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,0, - 0,0,0,0,0,0,0,0,-77,0, - 0,-277,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-105,0,-279,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-281, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-295,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-298,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-299,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-79,0,0,-303,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-106,0,-306, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-187,0,-307,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-321,0,0,0,0,0,0,0,-322, + 0,0,0,0,0,0,0,-326,0,0, + 0,0,0,0,0,-327,0,0,0,0, 0,0,0,0,0,0,0,-329,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-81,0, - 0,-338,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-237,0,-25,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-91,0,-183,0, - 0,0,0,0,0,-56,0,0,0,0, - 0,0,-188,0,-116,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-117,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-189,0, - -135,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-190,0,-218,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-191,0,-220,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-226, - -287,0,-221,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-192,0,-283,0,0,0, + 0,0,0,0,0,0,0,0,0,-343, + 0,0,0,0,0,0,0,-349,0,0, + 0,0,0,0,0,-352,0,0,0,0, + 0,0,0,-353,0,0,0,0,0,0, + 0,0,0,0,0,-370,0,0,0,0, 0,0,0,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,0,0,0,0,0,0,-40,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,-243, - 0,0,0,0,-161,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-312,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,-251, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-95,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-96,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-97,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-98,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-99,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-100,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-101,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-102,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -103,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-104, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-156,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-180,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,-235,0,0,0,0, - 0,0,-184,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-234,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-250, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-82,0, - -170,0,0,0,0,0,0,0,0,0, - 0,0,0,-181,0,-265,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-290,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-8,0,0,0,-138,-158,0, - -238,0,0,0,0,0,0,0,0,0, - -17,0,0,-3,0,0,0,0,-88,0, - 0,0,0,0,0,0,0,-314,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-143,-144,0,0,0,-258,-166,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-37,-162,0,0,0,0, - 0,0,0,0,-1,-228,0,0,0,-153, - 0,0,0,0,0,0,0,0,0,0, - -18,0,-211,0,-193,-242,0,0,0,0, - 0,0,-9,-212,-213,0,0,0,0,0, - -229,0,-214,-231,0,0,0,0,-215,-42, - 0,0,0,0,0,0,0,0,-254,0, - 0,0,0,0,0,-27,0,0,0,0, - 0,-232,0,0,0,-160,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-87,0,0,0,0,-233,0,-260,0, - 0,-240,-177,0,0,0,0,0,-241,-257, - 0,-264,0,0,0,0,0,0,-83,0, - 0,0,0,0,0,0,0,0,0,-84, - 0,0,0,0,0,0,0,0,0,0, - -224,0,0,0,0,0,0,0,-230,0, - -261,0,0,0,0,0,-186,0,0,0, - 0,0,0,-78,0,0,0,-90,0,0, - 0,0,-80,-273,-267,0,-164,0,0,-263, - 0,0,0,0,-270,0,-291,0,0,0, - 0,0,0,-239,0,0,-168,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-289,0,0,0,0,0, - 0,0,0,-244,-5,0,0,0,-39,0, - 0,0,0,0,0,0,0,0,0,0, - -174,0,0,0,0,0,0,-108,0,-275, - 0,0,0,0,0,0,0,0,0,0, - -278,0,0,0,0,0,0,-269,0,0, - -159,0,-167,-286,0,0,0,0,0,0, - -178,0,0,0,-292,-225,0,0,0,0, - 0,-280,0,0,0,0,-294,0,0,-297, - -302,0,0,0,0,-300,0,0,-308,0, - 0,-305,0,0,0,0,0,0,0,0, - -309,0,0,0,0,0,0,0,-318,0, - -323,0,0,-321,-326,0,-328,-332,-335,-337, - -341,0,-339,-344,-346,-350,-352,-355,0,0, - -358,0,0,0,-363,0,-367,0,0,0, - 0,0,-371,-374,0,0,0,0,0,0, - 0,-376,-384,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; @@ -507,471 +380,344 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface BaseAction { public final static char baseAction[] = { - 90,22,1,1,38,38,21,21,39,39, - 19,19,2,2,2,2,3,3,3,4, - 4,4,4,4,4,4,4,4,4,73, - 91,91,5,5,5,5,5,5,5,5, - 5,5,5,6,6,7,7,7,7,8, - 8,8,9,9,9,10,10,10,10,10, - 11,11,11,12,12,13,13,14,14,15, - 15,16,16,17,17,18,18,18,18,18, - 18,18,18,18,18,18,18,25,23,20, - 20,53,26,26,26,26,26,26,26,27, - 27,27,32,24,24,92,92,75,75,28, - 28,29,29,29,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,31,31, - 31,31,31,93,46,46,34,34,34,34, - 48,48,48,81,81,77,77,77,77,78, - 78,78,79,79,79,80,80,80,76,76, - 61,61,49,49,49,49,49,60,60,60, - 60,60,60,60,60,60,60,60,60,70, - 68,68,68,68,68,68,82,62,62,63, - 63,57,57,45,94,94,83,83,83,64, - 69,69,69,69,69,84,84,85,85,71, - 71,35,35,35,50,47,47,40,40,40, - 40,41,42,42,72,72,86,96,96,43, - 43,43,43,43,43,43,43,43,51,51, - 51,51,65,65,58,58,58,59,59,55, - 55,55,95,95,52,52,66,66,66,56, - 56,56,56,56,56,56,54,54,54,74, - 74,74,74,67,97,98,98,87,87,90, - 90,99,99,88,88,88,88,89,89,89, - 100,100,2,2,2,5,5,5,5,5, - 5,35,35,36,36,37,37,101,101,101, - 26,33,33,33,33,33,33,33,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,30,44,44,161,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,109,776,303,4159,34,93,4230, - 107,92,94,95,96,97,810,310,4139,1123, - 17,16,19,538,43,45,572,605,573,879, - 108,657,333,333,406,354,1,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,109,776,715,4159,105, - 93,4230,107,92,94,95,96,97,810,310, - 4139,2495,219,220,260,104,396,221,223,4449, - 1171,417,108,2185,4216,194,753,2563,241,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,109,776,289, - 235,106,93,4230,1047,92,94,95,96,97, - 810,310,241,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,109,776,496,503,559,93,4230,99,92, - 94,95,96,97,810,310,241,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,109,776,1127,1184,4269, - 93,4230,115,92,94,95,96,97,810,310, - 241,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,109, - 776,303,574,721,93,4230,113,92,94,95, - 96,97,810,310,241,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,109,776,560,134,297,93,4230, - 1150,92,94,95,96,97,810,310,241,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,109,776,54, - 296,662,93,4230,127,92,94,95,96,97, - 810,310,241,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,109,776,224,661,502,93,4230,123,92, - 94,95,96,97,810,310,241,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,109,776,854,1304,74, - 93,4230,341,92,94,95,96,97,810,310, - 241,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,109, - 776,154,766,770,93,4230,333,92,94,95, - 96,97,810,310,241,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,109,776,977,1306,490,93,4230, - 126,92,94,95,96,97,810,310,241,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,109,776,539, - 1274,550,93,4230,125,92,94,95,96,97, - 810,310,241,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,109,776,1312,1270,1294,93,4230,122,92, - 94,95,96,97,810,310,241,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,109,776,769,857,398, - 93,4230,121,92,94,95,96,97,810,310, - 241,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,109, - 776,415,1254,1257,93,4230,119,92,94,95, - 96,97,810,310,241,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,109,776,1260,1268,1214,93,4230, - 112,92,94,95,96,97,810,310,241,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,109,776,853, - 314,1198,93,4230,340,92,94,95,96,97, - 810,310,241,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,109,776,1308,1313,81,93,4230,339,92, - 94,95,96,97,810,310,241,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,109,776,947,1317,1079, - 93,4230,337,92,94,95,96,97,810,310, - 241,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,109, - 776,1323,1324,1325,93,4230,332,92,94,95, - 96,97,810,310,241,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,109,776,1326,1327,1332,93,4230, - 331,92,94,95,96,97,810,310,241,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,109,776,1333, - 1334,1336,93,4230,329,92,94,95,96,97, - 810,310,241,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,109,776,4644,4644,4644,93,4230,325,92, - 94,95,96,97,810,310,241,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,109,776,4644,4644,4644, - 93,4230,124,92,94,95,96,97,810,310, - 241,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,109, - 776,4644,4644,4644,93,4230,120,92,94,95, - 96,97,810,310,241,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,109,776,4644,4644,4644,93,4230, - 118,92,94,95,96,97,810,310,241,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,109,776,4644, - 4644,4644,93,4230,117,92,94,95,96,97, - 810,310,241,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,109,776,4644,4644,4644,93,4230,338,92, - 94,95,96,97,810,310,241,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,109,776,4644,4644,4644, - 93,4230,336,92,94,95,96,97,810,310, - 241,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,109, - 776,4644,4644,4644,93,4230,335,92,94,95, - 96,97,810,310,241,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,109,776,4644,4644,4644,93,4230, - 330,92,94,95,96,97,810,310,241,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,109,776,4644, - 4644,4644,93,4230,328,92,94,95,96,97, - 810,310,241,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,109,776,4644,4644,4644,93,4230,327,92, - 94,95,96,97,810,310,241,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,109,776,4644,4644,4644, - 93,4230,324,92,94,95,96,97,810,310, - 241,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,109, - 776,4644,4644,4644,93,4230,323,92,94,95, - 96,97,810,310,241,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,109,776,4644,4644,4644,93,4230, - 321,92,94,95,96,97,810,310,241,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,109,776,4644, - 4644,4644,93,4230,116,92,94,95,96,97, - 810,310,241,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,109,776,4644,4644,4644,93,4230,334,92, - 94,95,96,97,810,310,241,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,109,776,4644,4644,4644, - 93,4230,326,92,94,95,96,97,810,310, - 241,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,109, - 776,4644,4644,4644,93,4230,322,92,94,95, - 96,97,810,310,241,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,109,776,4644,4644,4644,93,4230, - 320,92,94,95,96,97,810,310,241,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,109,776,4644, - 4644,4644,93,4230,319,92,94,95,96,97, - 810,310,241,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,109,776,4644,4644,4644,93,4230,318,92, - 94,95,96,97,810,310,1003,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,4644,708,333,4159,3348, - 1123,17,16,19,538,43,45,572,605,912, - 193,1123,17,16,19,538,43,45,572,605, - 913,4468,1027,17,16,19,538,299,3204,1003, - 17,16,19,538,537,45,572,605,573,607, - 606,640,639,673,641,674,75,89,391,708, - 485,4159,3348,1123,17,16,19,538,43,45, - 572,605,945,193,1123,17,16,19,538,43, - 45,572,605,946,4468,1051,17,16,19,538, - 297,3372,1003,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,495,708,4644,4159,3348,1123,17,16,19, - 538,43,45,572,844,4644,193,1123,17,16, - 19,538,43,45,572,845,749,4468,1267,302, - 342,4644,395,392,3483,1003,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,89,218,708,4644,4159,3348,760, - 29,141,301,302,141,301,302,181,4644,193, - 394,219,505,4644,148,140,142,151,140,142, - 4468,4644,138,441,1267,374,147,3529,1003,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,4215,708,4644, - 4159,3348,1123,17,16,19,538,43,45,877, - 231,4644,193,180,826,17,16,19,538,43, - 36,945,24,4468,1075,17,16,19,538,295, - 3553,1003,17,16,19,538,537,45,572,605, - 573,607,606,640,639,673,641,674,75,89, - 194,708,236,4159,3348,1123,17,16,19,538, - 43,45,878,4644,221,193,4644,826,17,16, - 19,538,43,36,287,342,4468,1099,17,16, - 19,538,41,3577,949,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,3038,708,308,4159,4279,1123,17, - 16,19,538,43,40,2495,219,220,4139,1123, - 17,16,19,538,43,45,572,605,573,911, - 3014,949,17,16,19,538,537,45,572,605, - 573,607,606,640,639,673,641,674,75,89, - 3086,708,715,4159,4330,1123,17,16,19,538, - 43,39,4644,760,29,4139,1123,17,16,19, - 538,43,38,223,4226,4644,4644,3062,447,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,4094,1123,17,16, - 19,538,43,45,572,605,573,607,606,640, - 639,673,1014,243,301,302,230,861,17,16, - 19,538,537,45,572,605,573,607,606,640, - 639,673,641,674,75,266,23,32,4644,3601, - 861,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,266,4384, - 526,1174,3601,826,17,16,19,538,43,36, - 32,269,1123,17,16,19,538,43,45,572, - 605,573,607,979,270,1147,17,16,19,538, - 34,4494,4393,4644,269,141,301,302,4644,138, - 1246,237,4644,4644,221,4644,4644,270,154,140, - 142,333,32,4644,4505,664,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,89,4079,708,686,307,342,200, - 664,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,4549, - 708,720,3700,342,724,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,266,718,4551,1203,3601,1123,17,16, - 19,538,43,45,572,605,573,607,606,640, - 639,980,135,268,1123,17,16,19,538,43, - 45,572,605,573,607,606,640,981,271,1123, - 17,16,19,538,43,37,1283,1289,221,1196, - 478,272,724,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 266,344,4339,1310,3601,1123,17,16,19,538, - 43,45,572,605,573,607,606,947,103,261, - 221,28,1123,17,16,19,538,43,35,1123, - 17,16,19,538,43,36,271,1123,17,16, - 19,538,43,48,4644,4644,261,32,4644,272, - 664,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,4491, - 708,992,4644,342,4644,664,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,89,4564,708,1026,4644,342,4644, - 664,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,4565, - 708,1094,4644,342,4644,664,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,89,4566,708,1128,4644,342,4644, - 664,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,4567, - 708,1162,4644,342,4644,664,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,89,4568,708,1400,4644,342,4644, - 664,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,4577, - 708,1502,4644,342,4644,664,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,89,4583,708,1570,4644,342,4644, - 664,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,4584, - 708,1604,4644,342,4644,664,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,89,4592,708,1808,392,342,1123, - 17,16,19,538,537,45,572,605,573,607, - 606,640,639,673,641,674,75,86,222,4593, - 914,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,316, - 708,4644,4644,4243,914,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,314,708,4644,4644,4254,914,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,312,708,1192, - 4644,4255,914,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,131,708,4644,4644,4263,600,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,4322,1123,17,16,19,538, - 43,47,1123,17,16,19,538,43,46,4644, - 4644,243,301,302,914,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,3110,708,4644,276,4394,914,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,3134,708,4644, - 4644,4470,914,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,3182,708,4644,4644,4481,914,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,3206,708,4644,4644,4512, - 914,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,2425, - 708,4644,4644,4517,914,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,2450,708,4644,4644,4520,914,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,3302,708,32, - 4644,4526,890,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,4397,708,618,392,4521,890,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,3469,708,652,4644,4532, - 914,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,3374, - 708,4644,4644,4529,914,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,2635,708,4644,4644,4554,914,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,2685,708,4644, - 4644,4555,914,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,2710,708,32,4644,4557,890,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,89,4417,708,788,392,4558, - 890,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,89,18, - 708,856,392,4559,890,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,89,1049,708,890,4644,4560,914,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,89,2810,708,32, - 4644,4571,890,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 89,4081,708,1298,715,4575,631,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,2082,263,4488,138,4270,690, - 17,16,19,538,43,44,1147,17,16,19, - 538,33,4644,392,229,890,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,30,1081,233,21,1123,17,16, - 19,538,537,45,572,605,573,607,606,640, - 639,673,641,674,75,89,4644,708,4644,392, - 4245,1123,17,16,19,538,537,45,572,605, - 573,607,606,640,639,673,641,674,75,89, - 1082,708,4644,392,1013,1123,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,89,1083,708,3625,392,4197,1123, - 17,16,19,538,537,45,572,605,573,607, - 606,640,639,673,641,674,75,89,1115,708, - 32,112,4319,1123,17,16,19,538,537,45, - 572,605,573,607,606,640,639,673,641,674, - 75,89,2327,708,4644,1202,4371,1123,17,16, - 19,538,537,45,572,605,573,607,606,640, - 639,673,641,674,75,89,22,708,4644,4644, - 4541,802,17,16,19,538,43,45,572,605, - 573,607,606,640,639,673,641,674,91,979, - 17,16,19,538,537,45,572,605,573,607, - 606,640,639,673,641,674,75,3467,275,309, - 4644,4388,4644,4644,4644,4644,4644,4644,3724,2949, - 855,4644,4644,4644,2409,271,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,266,271,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,266,260,4644,4644,4644,4644,4644,4644, - 4644,4644,4644,4644,4644,4644,2563,4644,4644,161, - 1123,17,16,19,538,43,45,572,605,573, - 607,606,640,639,673,641,674,74,273,1123, - 17,16,19,538,537,45,572,605,573,607, - 606,640,639,673,641,674,75,85,1123,17, - 16,19,538,537,45,572,605,573,607,606, - 640,639,673,641,674,75,84,1123,17,16, - 19,538,537,45,572,605,573,607,606,640, - 639,673,641,674,75,83,1123,17,16,19, - 538,537,45,572,605,573,607,606,640,639, - 673,641,674,75,82,1123,17,16,19,538, - 537,45,572,605,573,607,606,640,639,673, - 641,674,75,81,1123,17,16,19,538,537, - 45,572,605,573,607,606,640,639,673,641, - 674,75,80,1123,17,16,19,538,537,45, - 572,605,573,607,606,640,639,673,641,674, - 75,79,1123,17,16,19,538,537,45,572, - 605,573,607,606,640,639,673,641,674,75, - 78,1123,17,16,19,538,537,45,572,605, - 573,607,606,640,639,673,641,674,75,77, - 1123,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,76,1123, - 17,16,19,538,43,45,572,605,573,607, - 606,640,639,673,641,674,91,1123,17,16, - 19,538,537,45,572,605,573,607,606,640, - 639,673,641,674,75,4329,4644,4644,4644,4644, - 4644,4644,4644,4644,4644,4644,1197,4644,4644,4644, - 4644,4644,1048,1123,17,16,19,538,537,45, - 572,605,573,607,606,640,639,673,641,674, - 75,90,1123,17,16,19,538,43,45,572, - 605,573,607,606,640,639,673,641,674,91, - 1123,17,16,19,538,537,45,572,605,573, - 607,606,640,639,673,641,674,75,31,544, - 811,544,4644,4644,4644,4644,4644,208,4644,4644, - 4644,4644,4644,4644,138,210,1123,17,16,19, - 538,43,45,572,605,573,607,606,640,639, - 673,641,674,91,1123,17,16,19,538,43, - 45,572,605,573,607,606,640,639,673,641, - 674,91,232,4644,716,4644,4644,4644,1261,716, - 4644,392,4644,811,4644,811,4644,4644,4644,197, - 207,1151,207,134,486,179,4286,317,134,543, - 179,4361,259,2410,843,4292,843,198,1123,17, - 16,19,538,43,45,572,605,573,607,606, - 640,639,673,641,674,91,141,301,302,141, - 301,302,1261,1261,141,301,302,392,716,157, - 140,142,143,140,142,2030,4644,143,140,142, - 4644,130,129,4644,145,1182,342,192,516,145, - 4369,4561,149,152,155,321,1303,149,152,155, - 1261,2026,2029,2370,4151,4241,2026,2029,2370,4151, - 4241,543,179,1261,285,138,32,4154,4159,110, - 242,301,302,384,1261,1261,2537,219,505,4134, - 4312,1267,315,1261,1267,394,219,367,2350,1261, - 1182,284,285,313,311,4154,141,301,302,1261, - 4350,247,132,20,2857,707,62,4134,128,144, - 140,142,1247,394,219,367,62,445,3158,284, - 183,146,228,182,4644,242,301,302,393,150, - 153,156,267,281,283,365,4644,1267,392,392, - 4644,4400,138,393,4253,445,2371,219,367,138, - 1261,201,940,675,1897,2288,2131,219,220,1182, - 550,282,283,675,262,4414,4644,158,4644,3230, - 1191,191,2131,219,220,260,202,159,2160,675, - 234,62,2493,2131,219,220,260,235,2536,492, - 2033,392,227,249,242,301,302,1244,251,2536, - 4644,4644,2607,392,1259,243,301,302,1182,4141, - 4644,392,584,1259,1261,1267,4644,1259,262,4444, - 1249,2131,219,220,4461,392,4159,392,675,2131, - 219,220,4644,3254,1293,4159,1117,1259,193,4159, - 260,226,158,242,301,302,264,193,265,4198, - 4644,193,4644,2536,203,492,4159,2493,4198,4159, - 4644,189,4198,4141,1293,62,2028,4493,4312,444, - 189,193,194,2976,189,2084,4493,392,4644,4261, - 4493,1213,4198,4332,4644,391,4159,392,758,247, - 1261,4159,4405,707,189,2131,219,220,4312,4264, - 4493,1261,1117,4312,4644,2131,219,220,444,3278, - 2421,32,2033,1269,1252,3700,243,301,302,247, - 3326,1281,4405,707,247,1258,1031,2857,707,4644, - 4159,260,1261,4159,4644,4159,4644,1261,195,4644, - 1261,392,4312,4159,2536,4139,1261,193,4159,1261, - 288,3350,392,267,255,4312,2610,290,4198,2660, - 4139,392,754,247,27,3398,4407,707,3422,392, - 190,392,291,822,1261,1261,248,1261,392,392, - 392,138,4563,1261,392,392,392,392,392,4644, - 958,1261,1060,2735,2760,392,2785,392,4644,1196, - 1230,1264,114,392,392,1332,1366,1434,1468,1536, - 2835,4506,392,392,4644,4644,1638,4644,1672,277, - 4644,4644,4644,4644,1706,1740,4644,4644,4644,4644, - 4644,4644,4644,1774,1842,4644,0,1,4861,0, - 304,3651,0,4653,1,0,1,4647,0,1, - 4646,0,1,777,0,9,11,0,1,4896, - 0,111,924,0 + 106,1,39,39,10,10,43,43,2,2, + 4,4,4,4,5,5,5,6,6,7, + 7,7,7,7,7,7,7,72,72,92, + 92,8,8,8,8,8,8,8,8,8, + 8,8,9,9,11,11,11,11,12,12, + 12,15,15,15,16,16,16,16,16,17, + 17,17,19,19,28,28,29,29,30,30, + 31,31,32,32,34,34,34,34,34,34, + 34,34,34,34,34,34,20,14,3,107, + 107,94,94,57,21,21,21,21,21,21, + 21,22,22,22,18,18,95,95,73,73, + 23,23,24,24,24,65,65,25,25,25, + 25,26,26,26,26,26,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,96,96,88,88,89,53, + 55,55,55,55,55,66,68,68,68,68, + 68,68,68,68,68,68,68,68,77,77, + 13,13,74,74,74,74,75,75,75,78, + 78,79,79,69,69,69,45,108,108,97, + 98,98,98,76,76,99,99,100,100,90, + 90,35,36,36,36,54,56,56,46,46, + 46,46,40,40,41,47,47,48,42,42, + 101,101,49,110,110,109,109,51,51,51, + 51,51,51,51,51,51,102,58,58,58, + 58,80,80,70,70,70,71,71,60,60, + 111,111,59,59,81,81,81,61,61,61, + 62,63,63,63,64,64,64,64,67,67, + 93,93,93,93,91,112,113,113,114,114, + 115,115,106,106,116,116,103,103,103,103, + 117,117,104,104,104,105,105,4,4,4, + 8,8,8,8,8,8,35,35,37,37, + 38,38,118,118,118,21,27,27,27,27, + 27,27,27,25,25,25,25,25,25,25, + 25,25,25,25,25,25,25,25,25,25, + 25,25,25,25,25,25,25,44,44,359, + 399,561,1814,14,19,15,481,1117,44,363, + 488,565,2117,1597,521,724,712,2270,759,1822, + 1887,126,1977,561,1950,2053,127,741,789,777, + 858,74,2129,91,134,211,316,317,2039,1840, + 710,222,227,2271,1815,1096,216,774,219,221, + 2435,136,133,135,159,305,158,355,861,2265, + 452,1963,710,222,227,138,384,165,216,774, + 219,221,2442,142,145,148,151,2055,1455,398, + 1819,2921,661,1926,3030,3034,1848,223,155,421, + 2598,651,1967,1194,134,211,316,317,2771,377, + 222,230,14,19,15,481,42,44,304,488, + 1216,136,133,135,159,1822,848,331,87,197, + 199,1825,207,595,2253,138,332,165,1966,1100, + 1545,835,1103,142,145,148,151,1459,1059,286, + 301,2921,661,1926,3030,3034,1848,2646,385,303, + 542,14,19,15,481,1117,44,318,488,565, + 404,1885,521,724,712,2771,759,388,2269,14, + 19,15,481,42,39,741,789,777,858,74, + 403,278,1955,1822,848,329,87,2646,385,355, + 1270,14,19,15,481,1117,44,1166,488,565, + 2114,1967,521,724,712,1980,759,430,848,110, + 86,183,2117,1673,280,741,789,777,858,74, + 1092,278,377,222,231,95,392,1041,1162,94, + 96,97,98,99,325,1822,2855,126,281,410, + 1400,2457,385,1841,971,14,19,15,481,1117, + 44,271,488,565,280,104,521,724,712,1641, + 759,266,1034,884,269,1967,1806,419,298,741, + 789,777,858,74,2269,278,355,392,281,2269, + 1591,2354,1818,2303,2798,14,19,15,481,1117, + 44,2336,488,565,271,1815,521,724,712,379, + 759,1982,355,868,264,1034,884,269,282,741, + 789,777,858,74,2196,1030,297,182,2185,848, + 237,89,185,3056,263,2926,134,211,316,317, + 2111,1234,283,1822,382,194,134,211,316,317, + 229,2111,1941,136,133,135,159,1877,419,298, + 2060,229,2112,144,133,135,159,138,2129,165, + 252,211,316,317,1813,142,145,148,151,294, + 296,1096,362,2921,661,1926,3030,3034,1848,2522, + 379,2513,707,14,19,15,481,42,44,2183, + 488,565,355,1533,521,724,712,297,759,2122, + 302,225,1822,359,2180,87,23,741,789,777, + 858,93,355,1671,2445,2572,1446,2094,324,14, + 19,15,481,1117,44,1273,488,565,322,1970, + 521,724,712,2771,759,595,749,14,19,15, + 481,42,38,741,789,777,858,74,207,278, + 295,296,2152,355,718,2821,3174,836,1103,14, + 19,15,481,1117,44,226,488,565,2914,2826, + 521,724,712,2671,759,68,68,14,19,15, + 481,314,157,741,789,777,858,74,2771,1136, + 2164,651,14,19,15,481,1117,44,2110,488, + 565,1948,651,521,724,712,2547,759,355,651, + 14,19,15,481,42,35,741,789,777,858, + 74,2407,91,196,2553,14,19,15,481,1117, + 44,2447,488,565,196,693,521,724,712,2450, + 759,595,2253,2191,123,323,693,1323,1471,741, + 789,777,858,74,2191,1268,1096,2572,300,192, + 238,14,19,15,481,1117,44,1338,488,565, + 191,2055,521,724,712,272,759,2775,651,528, + 850,3189,1194,2111,1465,741,789,777,858,74, + 2771,278,2451,275,14,19,15,481,42,44, + 2196,488,565,355,507,521,724,712,2771,759, + 1753,1967,14,19,15,481,42,37,741,789, + 777,858,93,2771,284,450,2055,14,19,15, + 481,42,44,208,488,565,16,257,521,724, + 712,2932,759,1822,848,327,87,1183,2253,2055, + 122,741,789,777,858,93,2771,1272,2482,228, + 14,19,15,481,1117,44,1967,488,565,560, + 2183,521,724,712,2274,759,252,211,316,317, + 210,2253,2519,111,741,789,777,858,74,2771, + 85,2446,22,14,19,15,481,1117,44,2800, + 488,565,355,547,521,724,712,2547,759,239, + 2183,14,19,15,481,42,35,741,789,777, + 858,74,2771,84,1603,273,14,19,15,481, + 1117,44,2576,488,565,2191,2602,521,724,712, + 2253,759,330,212,2109,848,244,87,289,20, + 741,789,777,858,74,2771,83,1812,115,14, + 19,15,481,1117,44,2055,488,565,1834,1965, + 521,724,712,2547,759,1393,2183,14,19,15, + 481,42,35,741,789,777,858,74,2771,82, + 2599,2055,14,19,15,481,1117,44,73,488, + 565,1414,1845,521,724,712,2253,759,328,1569, + 355,848,245,87,287,241,741,789,777,858, + 74,2771,81,2601,1070,14,19,15,481,1117, + 44,2055,488,565,2015,2846,521,724,712,2771, + 759,1426,2858,14,19,15,481,42,36,741, + 789,777,858,74,2771,80,2195,2055,14,19, + 15,481,1117,44,2256,488,565,1433,1968,521, + 724,712,2771,759,2159,651,14,19,15,481, + 42,34,741,789,777,858,74,2771,79,1976, + 2055,14,19,15,481,1117,44,1900,488,565, + 1447,1958,521,724,712,2360,759,1753,2183,2191, + 2020,651,2253,2055,326,741,789,777,858,74, + 2771,78,291,21,14,19,15,481,1117,44, + 2434,488,565,2438,256,521,724,712,2938,759, + 2253,2440,125,196,1009,1128,2344,240,741,789, + 777,858,74,2771,77,693,2269,14,19,15, + 481,1117,44,2269,488,565,2166,2052,521,724, + 712,2609,759,252,211,316,317,232,2253,191, + 121,741,789,777,858,74,2771,76,634,850, + 14,19,15,481,1117,44,2612,488,565,184, + 2802,521,724,712,2771,759,203,2777,14,19, + 15,481,42,35,741,789,777,858,74,2771, + 75,2606,2055,14,19,15,481,1117,44,2055, + 488,565,2035,2607,521,724,712,2771,759,2063, + 2852,14,19,15,481,42,47,741,789,777, + 858,74,2771,92,2610,2055,14,19,15,481, + 42,44,2055,488,565,2091,2611,521,724,712, + 2771,759,270,2864,14,19,15,481,42,46, + 741,789,777,858,93,2771,2253,2866,2264,14, + 19,15,481,1117,44,2855,488,565,396,2750, + 521,724,712,2856,759,2159,651,2109,848,201, + 87,2269,1701,741,789,777,858,74,2771,1499, + 3380,115,14,19,15,481,1117,44,3380,488, + 565,3380,3380,521,724,712,2771,759,1753,2183, + 14,19,15,481,42,45,741,789,777,858, + 74,2771,1590,3380,204,14,19,15,481,42, + 44,3380,488,565,3380,256,521,724,712,2253, + 759,1467,1677,2092,651,1714,1128,3380,242,741, + 789,777,858,93,2771,2849,3380,193,14,19, + 15,481,42,44,3380,488,565,3380,3380,521, + 724,712,2253,759,2292,2253,196,2320,202,2253, + 2055,2376,741,789,777,858,93,2771,693,3380, + 276,14,19,15,481,42,44,3380,488,565, + 2183,2852,521,724,712,3380,759,217,359,110, + 86,1702,191,1837,3380,741,789,777,858,93, + 1092,639,850,3380,2253,95,3222,1041,108,94, + 96,97,98,99,325,1822,848,124,87,243, + 595,2253,3380,3238,1771,1,359,110,86,1300, + 2253,1955,2404,710,222,227,3380,109,1092,217, + 774,219,221,95,271,1041,108,94,96,97, + 98,99,325,1760,266,1034,884,269,595,3380, + 106,2236,651,288,359,110,86,2253,306,2432, + 3380,710,222,227,3380,109,1092,217,774,219, + 221,95,1635,1041,108,94,96,97,98,99, + 325,2269,2183,3380,196,2055,595,3380,107,145, + 359,110,86,2696,2055,1781,693,14,19,15, + 481,312,1092,109,277,355,848,95,87,1041, + 108,94,96,97,98,99,325,2055,2055,1360, + 191,288,595,2253,279,3270,106,2203,2287,1316, + 850,2055,105,1828,1026,2253,3380,3278,2771,109, + 2269,2399,14,19,15,481,42,44,1709,488, + 565,2183,3380,521,724,712,2253,759,3286,399, + 561,2253,107,117,3380,3380,741,789,777,858, + 73,2439,651,710,222,227,1816,3158,2055,216, + 774,219,221,26,271,2253,274,3306,2427,260, + 290,3380,2055,2055,264,1034,884,269,2920,710, + 222,227,2455,2511,1753,216,774,219,221,2055, + 2055,2055,3380,3380,261,437,710,222,227,2539, + 2595,2679,216,774,219,221,3380,271,2336,560, + 3380,256,437,251,211,316,317,264,1034,884, + 269,1570,1128,2771,258,3380,2055,14,19,15, + 481,42,44,3380,488,565,2707,1422,521,724, + 712,3380,759,134,211,316,317,399,625,2055, + 3380,741,789,1367,2857,848,2055,87,1298,2735, + 137,133,135,159,2119,2055,2763,2055,357,1886, + 1791,3380,3380,3380,139,2791,165,2847,3380,274, + 881,3380,143,146,149,152,2054,710,222,432, + 3380,3380,3380,216,774,219,440,3380,1737,3380, + 2771,2259,651,158,14,19,15,481,42,44, + 3380,488,565,3380,3380,521,724,712,3380,759, + 271,134,211,316,317,3380,3380,3380,741,1331, + 264,1034,884,269,1753,154,421,3380,147,133, + 135,159,3380,384,3380,3380,3380,2771,655,3380, + 1422,14,19,15,481,42,44,662,488,565, + 3380,256,521,724,712,3380,759,473,848,110, + 86,1009,1128,3380,3380,1356,3380,3380,3380,3380, + 1092,3380,3380,3380,3380,95,3380,1041,101,94, + 96,97,98,99,325,516,848,110,86,2721, + 3380,3380,3380,14,19,15,481,310,1092,3380, + 1327,3380,3380,95,3380,1041,118,94,96,97, + 98,99,325,559,848,110,86,2746,3380,3380, + 3380,14,19,15,481,40,1092,3380,3380,3380, + 3380,95,3380,1041,114,94,96,97,98,99, + 325,602,848,110,86,2796,3380,3380,3380,14, + 19,15,481,33,1092,3380,3380,3380,3380,95, + 3380,1041,1463,94,96,97,98,99,325,645, + 848,110,86,2796,3380,3380,3380,14,19,15, + 481,32,1092,3380,3380,3380,3380,95,3380,1041, + 356,94,96,97,98,99,325,688,848,110, + 86,3380,1822,848,2208,87,3380,3380,3380,3380, + 1092,3380,3380,3380,3380,95,1562,1041,348,94, + 96,97,98,99,325,731,848,110,86,3380, + 1822,848,2236,87,3380,3380,3380,3380,1092,3380, + 3380,3380,3380,95,1565,1041,113,94,96,97, + 98,99,325,774,848,110,86,3380,1822,848, + 1894,87,3380,3380,3380,3380,1092,3380,3380,3380, + 3380,95,1614,1041,355,94,96,97,98,99, + 325,817,848,110,86,3380,1822,848,3139,87, + 3380,3380,3380,3380,1092,3380,3380,3380,3380,95, + 1631,1041,354,94,96,97,98,99,325,860, + 848,110,86,3380,1822,848,2348,87,3380,3380, + 3380,3380,1092,3380,3380,3380,3380,95,1640,1041, + 352,94,96,97,98,99,325,903,848,110, + 86,3380,1822,848,3230,87,3380,3380,3380,3380, + 1092,3380,3380,3380,3380,95,1743,1041,347,94, + 96,97,98,99,325,946,848,110,86,3380, + 1822,848,3246,87,3380,3380,3380,3380,1092,3380, + 3380,3380,3380,95,1755,1041,346,94,96,97, + 98,99,325,989,848,110,86,3380,1822,848, + 3258,87,3380,3380,3380,3380,1092,3380,3380,3380, + 3380,95,1776,1041,344,94,96,97,98,99, + 325,1032,848,110,86,3380,2109,848,3380,87, + 3380,3380,3380,3380,1092,3380,3380,3380,3380,95, + 115,1041,340,94,96,97,98,99,325,1075, + 848,110,86,3380,1822,848,3294,87,3380,3380, + 3380,3380,1092,3380,3380,3380,3380,95,1805,1041, + 120,94,96,97,98,99,325,1118,848,110, + 86,3380,2109,848,3380,87,3380,3380,3380,3380, + 1092,1751,3380,3380,3380,95,115,1041,353,94, + 96,97,98,99,325,1161,848,110,86,3380, + 355,848,3380,87,3380,3380,3380,3380,1092,3380, + 3380,3380,3380,95,1382,1041,351,94,96,97, + 98,99,325,1204,848,110,86,3380,355,848, + 3380,87,3380,3380,3380,3380,1092,1831,3380,3380, + 3380,95,1389,1041,350,94,96,97,98,99, + 325,1247,848,110,86,3380,355,848,3380,87, + 3380,3380,3380,3380,1092,3380,3380,3380,3380,95, + 1415,1041,345,94,96,97,98,99,325,1290, + 848,110,86,3380,355,848,3380,87,3380,3380, + 3380,3380,1092,3380,3380,3380,3380,95,1705,1041, + 343,94,96,97,98,99,325,1333,848,110, + 86,3380,3380,3380,3380,3380,3380,3380,3380,3380, + 1092,3380,3380,3380,3380,95,3380,1041,342,94, + 96,97,98,99,325,1376,848,110,86,3380, + 3380,3380,3380,3380,3380,3380,3380,3380,1092,3380, + 3380,3380,3380,95,3380,1041,339,94,96,97, + 98,99,325,1419,848,110,86,3380,3380,3380, + 3380,3380,3380,3380,3380,3380,1092,3380,3380,3380, + 3380,95,3380,1041,338,94,96,97,98,99, + 325,1462,848,110,86,3380,3380,3380,3380,3380, + 3380,3380,3380,3380,1092,3380,3380,3380,3380,95, + 3380,1041,336,94,96,97,98,99,325,1505, + 848,110,86,3380,3380,3380,3380,3380,3380,3380, + 3380,3380,1092,3380,3380,3380,3380,95,3380,1041, + 119,94,96,97,98,99,325,1548,848,110, + 86,3380,3380,3380,3380,3380,3380,3380,3380,3380, + 1092,3380,3380,3380,3380,95,3380,1041,349,94, + 96,97,98,99,325,1591,848,110,86,3380, + 3380,3380,3380,3380,3380,3380,3380,3380,1092,3380, + 3380,3380,3380,95,3380,1041,341,94,96,97, + 98,99,325,1634,848,110,86,3380,3380,3380, + 3380,3380,3380,3380,3380,3380,1092,3380,3380,3380, + 3380,95,3380,1041,337,94,96,97,98,99, + 325,1677,848,110,86,3380,3380,3380,2920,3380, + 3380,3380,3380,3380,1092,3380,3380,3380,3380,95, + 3380,1041,335,94,96,97,98,99,325,1720, + 848,110,86,3380,3380,3380,2920,3380,3380,3380, + 3380,3380,1092,251,211,316,317,95,3380,1041, + 334,94,96,97,98,99,325,1763,848,110, + 86,3380,3380,3380,3380,399,561,3380,3380,3380, + 1092,251,211,316,317,95,3380,1041,333,94, + 96,97,98,99,325,2771,3380,3380,685,14, + 19,15,481,42,44,3380,488,565,3380,3380, + 521,724,712,3380,1306,710,222,227,3380,1977, + 561,216,774,219,221,3380,1001,3380,2771,3380, + 3380,158,14,19,15,481,42,44,3380,488, + 565,2443,2771,521,724,1326,14,19,15,481, + 42,44,3380,488,565,3380,3380,521,1257,710, + 222,227,3380,154,421,216,774,219,221,3380, + 3380,384,3380,3380,3380,1455,134,211,316,317, + 2771,3380,3380,3380,14,19,15,481,42,44, + 3380,488,1224,141,133,135,159,2771,3380,3380, + 3380,14,19,15,481,42,44,140,1228,165, + 3380,3380,3380,3380,2771,3380,198,199,14,19, + 15,481,42,44,3380,488,565,2771,3380,521, + 1261,14,19,15,481,42,44,3380,488,565, + 2771,3380,1265,3380,14,19,15,481,42,44, + 2126,488,565,2771,2198,1290,3380,14,19,15, + 481,42,44,3380,488,565,2771,3380,1293,3380, + 14,19,15,481,42,44,1955,488,565,3380, + 3380,1301,3380,3380,3380,134,211,316,317,134, + 211,316,317,3380,3380,3380,355,359,3380,87, + 3380,3380,150,133,135,159,153,133,135,159, + 986,3380,3380,3380,3380,3380,710,222,1150,3380, + 3380,3380,217,774,219,1129,2771,3380,3380,196, + 14,19,15,481,42,44,3380,1249,3380,355, + 359,603,87,355,359,3380,87,355,359,3380, + 87,3380,3380,986,3380,931,3380,986,3380,2857, + 848,986,87,355,359,3380,87,355,359,2147, + 87,3380,196,357,3380,3380,196,986,2439,651, + 196,986,3380,3380,603,3380,3380,3380,603,3380, + 2109,359,603,87,2920,3380,196,3380,1125,3380, + 196,3380,1151,1738,115,3380,1191,3380,603,2621, + 3380,1753,603,14,19,15,481,42,43,3380, + 3380,3380,1217,595,3380,3380,1250,3380,3380,251, + 211,316,317,3380,3380,3380,1603,3380,256,3380, + 1104,3380,2857,848,3380,87,3380,3380,1570,1128, + 2857,848,2231,87,3380,1529,357,3380,2857,848, + 2259,87,3380,3380,357,3380,2857,848,2315,87, + 3380,3380,357,3380,1298,3380,2343,3380,2857,848, + 357,87,3380,3380,3380,3380,1798,3380,2371,3380, + 2857,848,357,87,1812,3380,1445,3380,2857,848, + 2483,87,1813,3380,357,3380,2857,848,2567,87, + 1829,3380,357,3380,2857,848,2623,87,3380,3380, + 357,3380,1830,3380,2651,3380,2857,848,357,87, + 3380,3380,3380,3380,1866,3380,2819,3380,3380,3380, + 357,3380,1889,3380,3380,3380,3380,3380,3380,3380, + 1896,3380,3380,3380,3380,3380,3380,3380,1905,3380, + 3380,3380,3380,3380,3380,3380,3380,3380,3380,3380, + 1907,3380,0,319,739,0,179,224,0,3387, + 1,0,1,3615,0,7,9,0,179,17, + 0,178,18,0,1,3604,0,112,2175,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -984,149 +730,308 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,0,32,0,34,35,36,37,38,39, + 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,0,54,55,56,24,58,59, - 60,0,1,2,64,65,66,67,68,69, - 70,71,72,0,1,75,76,77,78,79, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,0,32,0,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,0,54,55,56,0,58,59, - 60,4,31,90,64,65,66,67,68,69, - 70,71,72,0,1,75,76,77,78,79, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,80,32,0,34,35,36,37,38,39, - 63,41,42,43,44,45,46,47,48,49, - 50,51,52,0,54,55,56,24,58,59, - 60,88,89,0,64,65,66,67,68,69, - 70,71,72,0,0,75,76,77,78,79, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,31,0,1,2,3, - 0,1,2,3,34,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,0,0,31,58,59, - 60,0,0,8,64,65,66,67,68,69, - 70,71,72,0,91,75,76,77,78,79, - 0,1,2,3,4,5,25,26,27,28, - 29,30,0,32,0,3,35,36,37,38, - 39,0,1,2,3,25,26,27,28,29, - 30,0,32,0,34,35,36,37,38,39, - 0,41,42,43,44,45,46,47,48,49, - 50,51,52,0,54,55,56,24,58,83, - 84,85,86,0,1,2,3,4,5,87, - 0,0,0,1,2,4,4,0,25,26, - 27,28,29,30,91,0,1,87,25,26, - 27,28,29,30,0,32,0,34,35,36, - 37,38,39,31,41,42,43,44,45,46, - 47,48,49,50,51,52,31,54,55,56, - 24,58,0,0,53,53,0,1,2,3, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,65,66,0,68,69, + 70,71,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,59,60,61,62,63,64,65,66,72, + 68,69,70,71,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,60,61,62,63,64,65, + 66,0,68,69,70,71,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 87,25,26,27,28,29,30,0,32,0, - 83,84,85,86,0,0,2,2,3,0, - 5,0,1,2,0,0,2,83,84,85, - 86,0,25,26,27,28,29,30,24,63, - 25,26,27,28,29,30,73,32,24,24, - 35,36,37,38,39,0,41,42,43,44, - 45,46,47,48,49,50,51,52,0,54, - 55,56,0,0,2,2,57,5,57,0, - 25,26,27,28,29,30,0,32,0,0, - 35,36,37,38,39,6,7,25,26,27, - 28,29,30,0,32,74,3,35,36,37, - 38,39,24,41,42,43,44,45,46,47, - 48,49,50,51,52,57,54,55,56,0, - 1,2,3,0,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,74,25,26,27,28,29,30, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,81,82,0,1,2,3, - 0,0,32,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,31,0,0, - 1,2,3,63,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,0,0,53,0,4,4, - 0,4,59,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,0,34, - 33,34,0,92,2,95,96,0,1,0, - 3,2,0,40,5,0,1,53,0,0, - 1,3,0,25,26,27,28,29,30,0, - 32,61,62,35,36,37,38,39,31,41, - 42,43,44,45,46,47,48,49,50,51, - 52,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,81, - 82,0,0,0,0,1,0,3,0,3, - 0,1,2,3,63,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,31,33,0,63,0, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,58,59,60,61,62,63, + 64,65,66,72,68,69,70,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 43,44,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,60,61,62, + 63,64,65,66,0,68,69,70,0,1, + 2,3,0,5,2,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,0,1,0,3,0,1,6, + 3,0,1,6,3,0,1,6,0,1, + 2,43,44,45,46,47,48,49,50,51, + 52,53,54,55,56,57,58,59,60,61, + 62,63,64,65,66,0,68,69,70,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, - 21,22,23,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,81,82,0, - 88,89,53,4,0,1,0,34,0,1, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,33,34,0,31,0,1,0,1, - 2,3,34,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,0,1,2,3,60,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,0,1,2,3, - 0,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 0,1,2,3,24,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,0,1,2,3,0,5, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,0,1, - 2,3,24,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,0,1,2,3,0,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,0,1,2,3, - 0,5,6,7,8,9,10,11,12,13, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 0,0,2,0,1,25,26,27,28,29, - 30,0,32,0,1,35,36,37,38,39, - 0,0,9,10,24,0,0,0,2,4, - 74,0,0,1,31,4,25,26,27,28, - 29,30,0,0,31,25,26,27,28,29, - 30,8,31,97,98,99,100,101,102,103, - 104,105,106,31,33,40,0,25,26,27, - 28,29,30,0,1,0,0,4,0,4, - 4,0,4,0,53,4,0,0,0,0, - 0,4,4,80,4,74,0,0,0,0, - 4,80,4,0,31,6,7,94,33,33, - 0,33,0,1,33,40,40,90,0,1, - 33,40,0,0,34,3,53,40,40,6, - 7,53,0,0,2,0,40,0,40,0, - 1,0,0,31,61,62,0,61,62,31, - 61,62,0,0,0,0,0,1,61,62, - 57,0,0,0,2,0,33,2,33,0, - 31,2,0,0,33,0,24,24,24,24, - 0,0,0,73,0,0,0,0,0,0, - 0,0,0,0,57,73,0,0,0,0, - 0,0,0,57,0,73,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,0,92,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,93,0,0,0, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,1,2,3,4, + 5,0,0,0,0,0,1,2,0,4, + 6,0,4,0,0,4,2,0,1,2, + 25,26,5,0,10,11,0,1,2,0, + 0,5,2,25,0,5,25,0,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, + 65,66,28,68,69,70,0,1,2,3, + 4,5,67,0,0,0,75,2,73,4, + 72,67,87,75,67,83,84,85,86,0, + 87,25,26,67,80,72,67,67,97,98, + 99,100,101,102,103,104,105,106,94,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,58,59,60,61,62,63, + 64,65,66,0,68,69,70,0,1,0, + 3,4,67,4,0,1,2,0,73,5, + 76,77,0,87,0,0,0,0,4,0, + 5,5,5,26,25,0,0,1,2,0, + 5,0,83,84,85,86,7,8,0,25, + 43,44,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,60,61,62, + 63,64,65,66,0,68,69,70,71,0, + 1,72,3,4,43,44,45,46,47,48, + 49,50,51,52,53,54,72,75,0,75, + 83,84,85,86,6,26,81,82,81,82, + 74,0,0,0,0,4,81,82,4,0, + 91,2,43,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,59,60, + 61,62,63,64,65,66,72,68,69,70, + 71,0,1,0,3,4,43,44,45,46, + 47,48,49,50,51,52,53,54,0,0, + 0,0,4,0,4,2,0,26,5,67, + 4,0,0,72,73,0,67,73,0,1, + 9,3,80,25,43,44,45,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 59,60,61,62,63,64,65,66,0,68, + 69,70,71,0,1,0,3,4,43,44, + 45,46,47,48,49,50,51,52,53,54, + 67,73,0,73,0,92,4,71,4,26, + 0,1,0,3,0,0,1,0,3,88, + 89,7,8,0,95,96,43,44,45,46, + 47,48,49,50,51,52,53,54,55,56, + 57,58,59,60,61,62,63,64,65,66, + 0,68,69,70,71,0,1,79,3,4, + 43,44,45,46,47,48,49,50,51,52, + 53,54,0,88,89,0,4,73,0,1, + 78,26,7,8,0,1,2,3,0,0, + 0,2,4,0,0,2,6,25,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, + 65,66,0,68,69,70,71,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,60,61,62,63,64,65, + 66,0,68,69,70,0,1,79,3,71, + 67,0,1,0,3,43,44,45,46,47, + 48,0,9,0,1,2,3,4,5,0, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, + 65,66,49,68,69,70,0,1,2,3, + 4,5,0,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,78,0,0,0,76,77,0,0,0, + 6,0,0,5,0,0,0,6,2,0, + 0,2,2,0,0,49,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,0,0,2,78,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,59,60,61,62,63,64,65,66,76, + 77,67,0,76,77,76,77,79,0,74, + 2,0,1,2,3,4,5,71,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,0,1,2,3, + 4,5,0,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,0,1,2,3,0,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,0,0,0,78, + 0,0,90,6,6,0,0,2,0,0, + 0,0,6,0,0,6,6,0,0,67, + 0,1,2,3,78,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,0,1,2,3,74, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 0,1,2,3,74,5,75,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,0,1,2,3,91, + 5,90,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 0,1,2,3,0,5,0,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,0,1,2,3,0, + 5,0,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 0,1,2,3,0,5,0,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,0,1,2,3,0, + 5,0,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 0,1,2,3,75,5,0,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,0,1,2,0,4, + 5,0,4,79,0,0,0,0,1,2, + 4,4,5,0,0,0,67,0,92,6, + 25,6,0,25,0,74,0,0,0,80, + 0,0,25,27,0,0,0,0,43,44, + 45,46,47,48,49,50,51,52,53,54, + 43,44,45,46,47,48,49,50,51,52, + 53,54,67,0,0,0,0,0,73,0, + 72,0,0,72,67,0,0,0,74,73, + 73,0,0,0,0,0,0,0,74,0, + 0,74,0,0,0,0,0,0,93,0, + 0,0,0,0,0,0,43,44,45,46, + 47,48,43,44,45,46,47,48,43,44, + 45,46,47,48,43,44,45,46,47,48, + 43,44,45,46,47,48,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 byte termCheck[] = TermCheck.termCheck; @@ -1134,149 +1039,305 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface TermAction { public final static char termAction[] = {0, - 4644,1876,4632,2589,1015,4626,2529,2276,2582,3476, - 2395,2187,2265,2218,4936,4937,4938,2134,1975,1922, - 4656,4657,4658,4659,2539,1,1,1,1,1, - 1,1,1,220,4654,1,1,1,1,1, - 4652,1,1,1,1,1,1,1,1,1, - 1,1,1,67,1,1,1,224,4742,4193, - 742,1,4445,4861,4192,3969,809,448,741,446, - 775,2952,743,4644,2194,2880,2928,4138,2904,709, - 9,4635,4635,4635,4635,4635,4635,4635,4635,4635, - 4635,4635,4635,4635,4635,4635,4635,4635,4635,4635, - 4635,4635,4635,4635,4635,4635,4635,4635,4635,4635, - 4635,4644,4635,4644,4635,4635,4635,4635,4635,4635, - 4635,4635,4635,4635,4635,4635,4635,4635,4635,4635, - 4635,4635,4635,63,4635,4635,4635,4644,4635,4635, - 4635,4649,4168,2565,4635,4635,4635,4635,4635,4635, - 4635,4635,4635,4644,2241,4635,4635,4635,4635,4635, - 4644,1876,4632,2589,4655,4626,2529,2276,2582,3476, - 2395,2187,2265,2218,4936,4937,4938,2134,1975,1922, - 4656,4657,4658,4659,2539,1,1,1,1,1, - 1,1151,1,4644,4654,1,1,1,1,1, - 4648,1,1,1,1,1,1,1,1,1, - 1,1,1,4644,1,1,1,2539,4742,4193, - 742,2229,379,69,4192,3969,809,448,741,446, - 775,2952,743,4644,304,2880,2928,4138,2904,709, - 4644,1876,777,2589,4655,4647,2529,2276,2582,3476, - 2395,2187,2265,2218,4936,4937,4938,2134,1975,1922, - 4656,4657,4658,4659,2539,4620,250,4323,4861,1, - 4644,1876,4646,2589,4654,4647,2529,2276,2582,3476, - 2395,2187,2265,2218,4936,4937,4938,2134,1975,1922, - 4656,4657,4658,4659,3600,65,60,3446,4742,4193, - 742,137,4644,2382,4192,3969,809,448,741,446, - 775,2952,743,70,2514,2880,2928,4138,2904,709, - 4644,4445,4617,1,4655,1,4855,4856,4857,4949, - 470,4950,4644,4808,4644,2085,4809,4807,4858,4810, - 4806,4644,4445,4861,2540,1,1,1,1,1, - 1,4644,1,185,4654,1,1,1,1,1, - 4644,1,1,1,1,1,1,1,1,1, - 1,1,1,238,1,1,1,3179,4930,1964, - 1953,1911,1900,4644,4445,4617,1,4655,1,4616, - 4644,4644,1,4323,4617,4651,4651,62,1,1, - 1,1,1,1,2514,4644,417,280,1,1, - 1,1,1,1,61,1,184,4654,1,1, - 1,1,1,3446,1,1,1,1,1,1, - 1,1,1,1,1,1,3446,1,1,1, - 3323,4930,4644,1,4650,4650,4644,1876,4646,2373, - 4649,4647,2529,2276,2582,3476,2395,2187,2265,2218, - 4936,4937,4938,2134,1975,1922,4656,4657,4658,4659, - 279,4855,4856,4857,4949,470,4950,239,3987,4644, - 1964,1953,1911,1900,4644,4644,4830,4646,2085,2, - 4647,1,4445,4861,4644,204,4830,1964,1953,1911, - 1900,160,1,1,1,1,1,1,2347,4648, - 4855,4856,4857,4949,470,4950,4890,4808,2380,3419, - 4809,4807,4858,4810,4806,138,4812,4817,4816,4814, - 4815,4813,4818,4819,4811,4820,4821,4822,4644,440, - 2001,1950,4644,206,4646,4843,102,4647,4096,209, - 4855,4856,4857,4949,470,4950,4644,4808,220,52, - 4809,4807,4858,4810,4806,2165,2112,4855,4856,4857, - 4949,470,4950,49,4808,3705,3002,4809,4807,4858, - 4810,4806,225,4812,4817,4816,4814,4815,4813,4818, - 4819,4811,4820,4821,4822,4745,440,2001,1950,4644, - 1876,4646,2589,4644,4647,2529,2276,2582,3476,2395, - 2187,2265,2218,4936,4937,4938,2134,1975,1922,4656, - 4657,4658,4659,4042,4855,4856,4857,4949,470,4950, - 1,1876,4646,2124,4649,4647,2529,2276,2582,3476, - 2395,2187,2265,2218,4936,4937,4938,2134,1975,1922, - 4656,4657,4658,4659,2995,2597,256,4323,4861,2540, - 73,71,3669,4644,1876,4646,2589,4651,4647,2529, - 2276,2582,3476,2395,2187,2265,2218,4936,4937,4938, - 2134,1975,1922,4656,4657,4658,4659,3446,4644,4644, - 1876,4646,2589,4648,4647,2529,2276,2582,3476,2395, - 2187,2265,2218,4936,4937,4938,2134,1975,1922,4656, - 4657,4658,4659,4246,1,1,4650,4644,4651,4655, - 55,4655,4987,1,1876,4646,2589,4653,4647,2529, - 2276,2582,3476,2395,2187,2265,2218,4936,4937,4938, - 2134,1975,1922,4656,4657,4658,4659,3600,136,4654, - 4296,4654,4644,2497,4777,2307,3531,254,4377,4644, - 1,4646,4644,4652,4647,4644,3555,4650,51,4644, - 3579,3002,4644,4855,4856,4857,4949,470,4950,4644, - 4808,2006,2017,4809,4807,4858,4810,4806,3446,4812, - 4817,4816,4814,4815,4813,4818,4819,4811,4820,4821, - 4822,4644,1876,4646,2177,4649,4647,2529,2276,2582, - 3476,2395,2187,2265,2218,4936,4937,4938,2134,1975, - 1922,4656,4657,4658,4659,4644,1876,4646,2589,4649, - 4647,2529,2276,2582,3476,2395,2187,2265,2218,4936, - 4937,4938,2134,1975,1922,4656,4657,4658,4659,2995, - 2597,4644,64,244,256,4377,50,2540,4644,3002, - 1,1876,4646,2589,4648,4647,2529,2276,2582,3476, - 2395,2187,2265,2218,4936,4937,4938,2134,1975,1922, - 4656,4657,4658,4659,3600,3446,4501,4644,4648,4644, - 1876,4646,2589,4651,4647,2529,2276,2582,3476,2395, - 2187,2265,2218,4936,4937,4938,2134,1975,1922,4656, - 4657,4658,4659,4644,1876,4646,2589,4655,4647,2529, - 2276,2582,3476,2395,2187,2265,2218,4936,4937,4938, - 2134,1975,1922,4656,4657,4658,4659,2995,2597,4644, - 2229,379,4650,4655,215,417,4644,4654,1,1876, - 4629,2589,4655,4626,2529,2276,2582,3476,2395,2187, - 2265,2218,4936,4937,4938,2134,1975,1922,4656,4657, - 4658,4659,4435,4654,4644,3446,4644,3603,1,1876, - 4646,2589,4654,4647,2529,2276,2582,3476,2395,2187, - 2265,2218,4936,4937,4938,2134,1975,1922,4656,4657, - 4658,4659,1,1876,4629,2589,1116,4626,2529,2276, - 2582,3476,2395,2187,2265,2218,4936,4937,4938,2134, - 1975,1922,4656,4657,4658,4659,4644,1929,4646,2589, - 1,4647,2529,2276,2582,3476,2395,2187,2265,2218, - 4936,4937,4938,2134,1975,1922,4656,4657,4658,4659, - 4644,1982,4646,2589,2539,4647,2529,2276,2582,3476, - 2395,2187,2265,2218,4936,4937,4938,2134,1975,1922, - 4656,4657,4658,4659,4644,2035,4646,2589,300,4647, - 2529,2276,2582,3476,2395,2187,2265,2218,4936,4937, - 4938,2134,1975,1922,4656,4657,4658,4659,4644,2088, - 4646,2589,4246,4647,2529,2276,2582,3476,2395,2187, - 2265,2218,4936,4937,4938,2134,1975,1922,4656,4657, - 4658,4659,4644,1876,4646,2589,43,4647,2529,2276, - 2582,3476,2395,2187,2265,2218,4936,4937,4938,2134, - 1975,1922,4656,4657,4658,4659,4644,2141,4646,2589, - 139,4647,2529,2276,2582,3476,2395,2187,2265,2218, - 4936,4937,4938,2134,1975,1922,4656,4657,4658,4659, - 4644,4644,4843,215,2262,4855,4856,4857,4949,470, - 4950,4644,4808,32,3485,4809,4807,4858,4810,4806, - 240,4644,4669,4670,2422,1,4644,68,4843,4623, - 3950,4644,216,417,3446,4651,4855,4856,4857,4949, - 470,4950,241,66,3507,4855,4856,4857,4949,470, - 4950,2382,4168,3931,3912,3893,3874,3855,3817,3836, - 3798,3779,2859,3446,4060,4652,4644,4855,4856,4857, - 4949,470,4950,1,4377,4644,4644,4651,4644,4653, - 4653,4644,4651,59,4650,4653,58,4644,1,57, - 4644,4653,188,2273,4655,4918,4644,56,1,54, - 4653,1151,187,4644,3446,2165,2112,2059,4317,4395, - 1,1149,257,3444,2474,4652,4652,2565,216,2262, - 2542,4652,1,53,4654,2085,4650,4652,188,2165, - 2112,4650,1,88,4638,87,4652,4644,187,258, - 3444,205,72,3446,2006,2017,4644,2006,2017,3446, - 2006,2017,298,296,42,4644,4644,3627,2006,2017, - 482,196,4644,111,4897,4644,4023,4922,4023,205, - 3446,4016,4644,4644,6327,4644,4246,4246,4246,4246, - 4644,4644,4644,4889,4644,4644,4644,4644,4644,4644, - 4644,4644,4644,4644,3760,4890,4644,4644,4644,4644, - 4644,4644,4644,4744,4644,4890,4644,4644,4644,4644, - 4644,4644,4644,4644,4644,4644,4644,4644,4114,4644, - 4644,4644,4644,4644,4644,4644,4644,4644,4644,4644, - 4644,4644,4644,4644,2497,4644,4644,4644,4644,4644, - 4644,4644,4644,4644,4644,4644,4644,4644,4644,4644, - 4644,4644,4644,4644,4644,4644,4641 + 3380,6606,1,6603,1158,1,572,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,3388,3480,1008,952,902, + 950,1051,567,899,914,1042,1625,1018,475,1003, + 484,543,891,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,28,1,1, + 1,3386,7,3365,3365,3365,3365,3365,3365,3365, + 3365,3365,3365,3365,3365,3365,3365,3365,3365,3365, + 3365,3365,3365,3365,3365,3365,3365,3365,3365,3365, + 3365,3365,3365,3365,3365,3365,3365,3365,3365,3365, + 3365,3365,3365,3365,3365,3365,3365,3365,3365,3365, + 3365,3365,3365,3365,3365,3365,3365,3365,3365,3365, + 3365,3365,3365,3365,3365,3365,3365,3365,3365,3407, + 3365,3365,3365,3365,3380,6606,1,6603,1158,1, + 572,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3388, + 3480,1008,952,902,950,1051,567,899,914,1042, + 1625,1018,475,1003,484,543,891,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,205,1,1,1,3386,3380,6606,1,6603, + 3389,1,572,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,3388,3480,1008,952,902,950,1051,567,899, + 914,1042,1625,1018,475,1003,484,543,891,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,6080,1,1,1,3380,6606,1, + 6603,3389,1,572,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,3388,3480,1008,952,902,950,1051,567, + 899,914,1042,1625,1018,475,1003,484,543,891, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3380,1195, + 3076,1202,179,1364,3356,1199,968,1232,2123,2095, + 2067,3390,3391,3392,3393,793,525,3687,3688,3689, + 2039,1713,833,3380,3560,3380,3561,3380,3560,417, + 3561,3380,3560,549,3561,3380,3616,636,1,3604, + 1779,3592,3593,3594,3700,399,3701,3542,3543,3541, + 3595,3544,3540,3547,3552,3551,3549,3550,3548,3553, + 3554,3546,3555,3556,3557,3380,586,527,426,3380, + 6606,1,6603,3389,1,572,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3388,3480,1008,952,902,950, + 1051,567,899,914,1042,1625,1018,475,1003,484, + 543,891,3380,6606,1,6603,3389,1,572,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3388,3480,1008, + 952,902,950,1051,567,899,914,1042,1625,1018, + 475,1003,484,543,891,3380,6606,1,6603,3389, + 1,572,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 3388,3480,1008,952,902,950,1051,567,899,914, + 1042,1625,1018,475,1003,484,543,891,3380,6606, + 1,6603,3389,1,572,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,3388,3480,1008,952,902,950,1051, + 567,899,914,1042,1625,1018,475,1003,484,543, + 891,3380,6606,1,6603,3389,1,572,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3388,3480,1008,952, + 902,950,1051,567,899,914,1042,1625,1018,475, + 1003,484,543,891,3380,6606,1,6603,3389,1, + 572,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3388, + 3480,1008,952,902,950,1051,567,899,914,1042, + 1625,1018,475,1003,484,543,891,3380,6606,1, + 6603,3389,1,572,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,3388,3480,1008,952,902,950,1051,567, + 899,914,1042,1625,1018,475,1003,484,543,891, + 3380,6606,1,6603,3389,1,572,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,3388,3480,1008,952,902, + 950,1051,567,899,914,1042,1625,1018,475,1003, + 484,543,891,3380,6606,1,6603,3389,1,572, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3388,3480, + 1008,952,902,950,1051,567,899,914,1042,1625, + 1018,475,1003,484,543,891,3380,6606,1,6603, + 3389,1,572,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,3388,3480,1008,952,902,950,1051,567,899, + 914,1042,1625,1018,475,1003,484,543,891,3380, + 6606,1,6603,3389,1,572,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3388,3480,1008,952,902,950, + 1051,567,899,914,1042,1625,1018,475,1003,484, + 543,891,3380,6606,1,6603,3389,1,572,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3388,3480,1008, + 952,902,950,1051,567,899,914,1042,1625,1018, + 475,1003,484,543,891,3380,6606,1,6603,3389, + 1,572,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 3388,3480,1008,952,902,950,1051,567,899,914, + 1042,1625,1018,475,1003,484,543,891,3380,6606, + 1,6603,3389,1,572,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,3388,3480,1008,952,902,950,1051, + 567,899,914,1042,1625,1018,475,1003,484,543, + 891,3380,6606,1,6603,3389,1,572,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3388,3480,1008,952, + 902,950,1051,567,899,914,1042,1625,1018,475, + 1003,484,543,891,3380,6606,1,6603,3389,1, + 572,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3388, + 3480,1008,952,902,950,1051,567,899,914,1042, + 1625,1018,475,1003,484,543,891,3380,6606,1, + 6603,3389,1,572,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,3388,3480,1008,952,902,950,1051,567, + 899,914,1042,1625,1018,475,1003,484,543,891, + 3380,6606,1,6603,3389,1,572,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,3388,3480,1008,952,902, + 950,1051,567,899,914,1042,1625,1018,475,1003, + 484,543,891,3380,6606,1,6603,3389,1,572, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3388,3480, + 1008,952,902,950,1051,567,899,914,1042,1625, + 1018,475,1003,484,543,891,3380,6606,1,6603, + 3389,1,572,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,3388,3480,1008,952,902,950,1051,567,899, + 914,1042,1625,1018,475,1003,484,543,891,3380, + 6606,1,6603,3389,1,572,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3388,3480,1008,952,902,950, + 1051,567,899,914,1042,1625,1018,475,1003,484, + 543,891,3380,6606,1,6603,3389,1,572,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3388,3480,1008, + 952,902,950,1051,567,899,914,1042,1625,1018, + 475,1003,484,543,891,3380,6606,1,6603,3389, + 1,572,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 3388,3480,1008,952,902,950,1051,567,899,914, + 1042,1625,1018,475,1003,484,543,891,3380,6606, + 1,6603,3389,1,572,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,3388,3480,1008,952,902,950,1051, + 567,899,914,1042,1625,1018,475,1003,484,543, + 891,3380,6606,1,6603,3389,1,572,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3388,3480,1008,952, + 902,950,1051,567,899,914,1042,1625,1018,475, + 1003,484,543,891,3380,6606,1,6603,3389,1, + 572,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3388, + 3480,1008,952,902,950,1051,567,899,914,1042, + 1625,1018,475,1003,484,543,891,3380,6606,1, + 6603,3389,1,572,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,3388,3480,1008,952,902,950,1051,567, + 899,914,1042,1625,1018,475,1003,484,543,891, + 3380,6606,1,6603,3389,1,572,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,3388,3480,1008,952,902, + 950,1051,567,899,914,1042,1625,1018,475,1003, + 484,543,891,3380,6606,1,6603,3389,1,572, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3388,3480, + 1008,952,902,950,1051,567,899,914,1042,1625, + 1018,475,1003,484,543,891,3380,6606,1,6603, + 3389,1,572,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,3388,3480,1008,952,902,950,1051,567,899, + 914,1042,1625,1018,475,1003,484,543,891,3380, + 6606,1,6603,3389,1,572,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3388,3480,1008,952,902,950, + 1051,567,899,914,1042,1625,1018,475,1003,484, + 543,891,3380,6606,1,6603,3389,1,572,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3388,3480,1008, + 952,902,950,1051,567,899,914,1042,1625,1018, + 475,1003,484,543,891,3380,1,1,1,3389, + 1,42,59,3380,3380,1,3374,1796,233,3385, + 372,1,221,3380,31,3389,678,259,3604,1796, + 3388,3679,1,253,3404,3405,265,3604,1796,319, + 262,828,1909,221,3380,1,3388,3380,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1381,1,1,1,3380,1,1,1, + 3389,1,641,3380,54,1,1346,1909,3384,3385, + 221,1170,293,221,641,3046,3033,3020,3007,61, + 3352,3388,3679,641,960,937,3353,641,1313,1280, + 1247,1214,1181,1115,1148,1082,1049,1016,674,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,3380,1,1,1,3380,1,3380, + 1,190,641,3389,3380,3604,1779,60,3384,828, + 458,2960,156,292,234,48,3380,50,221,68, + 1496,643,1496,3575,3388,49,1,3604,1779,51, + 1496,129,3046,3033,3020,3007,3106,2977,3380,221, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,88,1,1,1,190,3380, + 1,360,1,190,3592,3593,3594,3700,399,3701, + 3542,3543,3541,3595,3544,3540,221,775,187,221, + 3046,3033,3020,3007,752,3575,1430,1397,1430,1397, + 1412,3380,3380,130,3380,3385,1430,1397,3385,220, + 1987,701,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1379,1,1,1, + 190,3380,1,70,1,190,3592,3593,3594,3700, + 399,3701,3542,3543,3541,3595,3544,3540,1,72, + 1,62,116,265,3385,1909,1,3575,828,1544, + 3359,64,3380,1458,3384,131,641,3384,206,3560, + 2908,3561,1095,116,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,190,3380,1,63,1,189,3592,3593, + 3594,3700,399,3701,3542,3543,3541,3595,3544,3540, + 641,116,3380,3384,1,1940,3383,3386,90,3575, + 3380,3560,3380,3561,53,3380,3409,132,3410,2994, + 2922,3106,2977,3380,1863,1725,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 3380,1,1,1,189,3380,1,3635,1,190, + 3592,3593,3594,3700,399,3701,3542,3543,3541,3595, + 3544,3540,3380,2994,2922,52,3389,90,1,3362, + 3382,3575,3106,2977,1,369,1779,3558,3380,3380, + 186,690,3387,267,3380,943,772,3388,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,247,1,1,1,190,3592,3593,3594, + 3700,399,3701,3542,3543,3541,3595,3544,3540,3547, + 3552,3551,3549,3550,3548,3553,3554,3546,3555,3556, + 3557,3380,586,527,426,3380,3559,3635,3558,3386, + 641,205,903,65,903,1,1,1,1,1, + 1,3380,2908,1,3397,3076,3398,3383,1067,58, + 1199,968,1232,2123,2095,2067,3390,3391,3392,3393, + 793,525,3687,3688,3689,2039,1713,833,3592,3593, + 3594,3700,399,3701,3542,3543,3541,3595,3544,3540, + 3547,3552,3551,3549,3550,3548,3553,3554,3546,3555, + 3556,3557,815,586,527,426,3380,3397,3076,3398, + 3383,1133,3380,1199,968,1232,2123,2095,2067,3390, + 3391,3392,3393,793,525,3687,3688,3689,2039,1713, + 833,3382,3380,57,188,458,2960,56,1,55, + 813,227,128,643,218,3380,3380,230,762,3380, + 3380,3170,2460,3380,3380,1478,1,3397,3076,3398, + 27,1364,963,1199,968,1232,2123,2095,2067,3390, + 3391,3392,3393,793,525,3687,3688,3689,2039,1713, + 833,3380,3380,2488,3382,3592,3593,3594,3700,399, + 3701,3542,3543,3541,3595,3544,3540,3547,3552,3551, + 3549,3550,3548,3553,3554,3546,3555,3556,3557,458, + 2960,641,66,458,2960,458,2960,3635,3380,3483, + 2516,3380,3397,3076,3398,3383,866,27,1199,968, + 1232,2123,2095,2067,3390,3391,3392,3393,793,525, + 3687,3688,3689,2039,1713,833,3380,3397,3076,3398, + 3383,1364,268,1199,968,1232,2123,2095,2067,3390, + 3391,3392,3393,793,525,3687,3688,3689,2039,1713, + 833,3380,3397,3076,3398,3380,1364,963,1199,968, + 1232,2123,2095,2067,3390,3391,3392,3393,793,525, + 3687,3688,3689,2039,1713,833,3380,1,227,3382, + 3380,209,2875,572,231,3380,315,2544,69,313, + 311,67,1062,3380,3380,1062,1062,3380,3380,641, + 3380,3397,3076,3398,3382,1364,1062,1199,968,1232, + 2123,2095,2067,3390,3391,3392,3393,793,525,3687, + 3688,3689,2039,1713,833,1,3397,3076,3398,2007, + 1364,963,1199,968,1232,2123,2095,2067,3390,3391, + 3392,3393,793,525,3687,3688,3689,2039,1713,833, + 3380,3397,3119,3398,3482,1364,983,1199,968,1232, + 2123,2095,2067,3390,3391,3392,3393,793,525,3687, + 3688,3689,2039,1713,833,3380,3397,3123,3398,1987, + 1364,2875,1199,968,1232,2123,2095,2067,3390,3391, + 3392,3393,793,525,3687,3688,3689,2039,1713,833, + 3380,3397,3127,3398,3380,1364,3380,1199,968,1232, + 2123,2095,2067,3390,3391,3392,3393,793,525,3687, + 3688,3689,2039,1713,833,3380,3397,3143,3398,3380, + 1364,3380,1199,968,1232,2123,2095,2067,3390,3391, + 3392,3393,793,525,3687,3688,3689,2039,1713,833, + 3380,3397,3076,3398,1,1364,71,1199,968,1232, + 2123,2095,2067,3390,3391,3392,3393,793,525,3687, + 3688,3689,2039,1713,833,3380,3397,3147,3398,285, + 1364,3380,1199,968,1232,2123,2095,2067,3390,3391, + 3392,3393,793,525,3687,3688,3689,2039,1713,833, + 1,3397,3076,3398,917,1364,3380,1199,968,1232, + 2123,2095,2067,3390,3391,3392,3393,793,525,3687, + 3688,3689,2039,1713,833,17,179,3368,3380,3368, + 3368,28,3389,3634,200,112,1,18,178,3371, + 3385,3371,3371,41,1,3380,1577,1,1940,1062, + 3368,1062,3380,3388,3380,1758,3380,3380,3380,1269, + 3380,3380,3371,3738,3380,3380,3380,3380,179,179, + 179,179,179,179,179,179,179,179,179,179, + 178,178,178,178,178,178,178,178,178,178, + 178,178,3368,248,3380,3380,3380,3380,3368,3380, + 2899,3380,3380,601,3371,249,3380,3380,1511,3384, + 3371,250,3380,3380,3380,3380,3380,246,3561,3380, + 3380,3560,3380,3380,3380,3380,3380,3380,3377,3380, + 3380,3380,3380,3380,3380,3380,1,1,1,1, + 1,1,3592,3593,3594,3700,399,3701,3592,3593, + 3594,3700,399,3701,3592,3593,3594,3700,399,3701, + 3592,3593,3594,3700,399,3701 }; }; public final static char termAction[] = TermAction.termAction; @@ -1284,45 +1345,44 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Asb { public final static char asb[] = {0, - 458,1,225,3,73,8,597,488,458,100, - 77,112,596,596,112,596,112,226,73,120, - 131,492,297,497,401,185,73,433,11,306, - 11,306,11,338,120,3,249,73,499,404, - 455,249,259,206,54,54,54,54,54,54, - 54,54,433,54,54,54,134,270,275,273, - 281,277,284,283,286,285,287,186,226,597, - 174,300,492,171,455,433,306,306,306,306, - 338,338,249,120,297,131,126,226,130,249, - 455,54,401,54,54,54,54,54,54,54, - 54,54,54,54,131,131,290,562,206,206, - 206,206,206,527,527,344,54,54,54,54, - 54,54,54,54,54,54,54,54,54,54, - 54,54,54,54,54,54,185,175,52,52, - 52,52,175,175,528,75,75,75,34,75, - 75,174,175,137,295,54,295,488,226,73, - 373,73,497,306,335,27,306,306,335,338, - 179,178,179,120,492,128,494,499,404,54, - 455,433,373,54,492,494,131,131,131,131, - 131,130,455,273,273,270,270,277,277,275, - 275,275,275,283,281,285,284,295,286,183, - 175,175,175,175,175,204,204,54,256,54, - 54,295,34,73,568,371,171,499,335,29, - 335,179,335,54,528,126,497,131,530,455, - 455,371,562,530,258,258,258,258,597,54, - 54,52,52,175,52,52,175,131,75,131, - 131,371,130,174,54,292,335,128,499,131, - 371,52,175,52,175,52,344,175,344,175, - 52,34,54,34,34,179,398,528,29,54, - 131,179,343,175,52,343,175,52,52,175, - 34,131,344,34,131,344,344,175,131,184, - 369,373,528,54,397,369,34,131,343,343, - 175,34,131,343,343,175,343,175,52,34, - 34,131,34,34,131,34,131,344,175,34, - 455,34,34,131,34,131,343,34,34,131, - 34,131,343,34,131,343,343,175,34,34, - 34,34,131,34,34,34,131,34,34,34, - 131,34,34,131,34,131,343,34,34,34, - 34,34,34,131,34 + 302,1,461,77,302,179,49,26,61,61, + 177,177,61,177,61,463,618,79,65,336, + 79,422,386,3,83,3,83,338,3,79, + 535,546,618,376,377,649,463,179,221,583, + 582,618,116,423,408,443,245,245,245,245, + 245,245,245,245,386,245,245,245,181,198, + 203,201,209,205,212,211,214,213,215,83, + 83,83,83,338,338,535,486,79,649,344, + 651,463,79,272,79,422,222,243,243,243, + 243,222,222,265,336,336,336,225,336,336, + 222,422,24,245,24,77,443,546,546,296, + 245,443,443,443,443,443,265,265,621,245, + 245,245,245,245,245,245,245,245,245,245, + 245,245,245,245,245,245,245,245,245,83, + 113,19,463,83,83,113,340,415,340,338, + 486,535,651,347,408,486,187,386,546,541, + 545,150,270,116,582,420,222,245,222,222, + 222,222,441,441,245,493,245,245,423,24, + 225,79,218,495,495,272,618,646,544,543, + 546,546,546,546,546,546,408,201,201,198, + 198,205,205,203,203,203,203,211,209,213, + 212,24,214,113,21,113,113,245,265,340, + 535,545,486,408,385,344,245,245,245,245, + 245,245,245,245,245,245,245,646,618,651, + 270,243,243,222,243,222,546,336,546,546, + 422,245,270,296,546,588,649,549,549,549, + 549,179,245,221,245,220,113,81,245,245, + 408,386,588,541,340,412,243,222,243,222, + 243,222,243,225,245,225,225,270,546,651, + 21,245,408,408,113,268,586,265,245,411, + 620,222,243,620,222,243,243,222,621,222, + 546,421,340,546,272,408,265,245,225,546, + 620,620,222,225,546,620,620,222,620,222, + 243,546,621,222,225,113,408,225,225,546, + 225,546,620,225,225,546,225,546,620,225, + 546,620,620,222,225,546,225,225,225,546, + 225,225,225,546,225,225,546,225,546,620, + 225,225,225,225,225,225,546,225 }; }; public final static char asb[] = Asb.asb; @@ -1330,66 +1390,75 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Asr { public final static byte asr[] = {0, - 87,0,24,74,33,34,4,31,1,0, - 35,25,36,37,38,26,32,39,27,31, - 33,28,29,30,53,24,34,4,3,57, - 2,1,0,65,66,24,70,72,67,60, - 68,79,69,59,64,71,76,78,75,77, - 58,34,4,20,21,22,23,14,15,16, - 5,9,10,8,6,7,12,13,11,17, - 18,19,3,2,1,0,54,11,55,56, - 9,10,8,6,7,12,13,14,15,16, - 17,18,19,20,21,22,23,63,5,49, - 41,46,44,45,43,42,47,48,50,51, - 52,57,34,39,36,32,35,38,37,25, - 26,27,28,29,30,3,2,31,1,33, - 53,4,0,63,53,40,57,80,94,9, - 10,8,3,6,7,81,82,61,62,83, - 84,85,86,88,89,90,91,92,95,96, - 97,98,99,100,101,102,103,104,105,106, - 74,31,1,33,34,4,0,74,40,4, - 33,0,87,93,40,65,66,24,70,72, - 67,60,68,79,69,59,64,71,76,78, - 75,77,58,34,4,9,10,8,6,7, - 12,13,11,17,18,19,1,20,21,22, - 23,14,15,16,3,2,5,54,55,56, - 49,41,46,44,45,43,42,47,48,50, - 51,52,39,36,32,35,38,37,25,26, - 27,28,30,29,0,60,0,24,74,97, - 98,99,100,101,103,102,104,105,106,3, - 81,82,6,7,62,61,83,84,85,86, - 88,89,8,90,91,92,40,95,96,63, - 53,33,34,4,57,0,57,31,1,33, - 53,34,4,74,0,35,41,25,42,54, - 36,43,37,44,45,38,26,46,47,32, - 55,39,56,48,49,27,50,51,52,28, - 29,30,2,5,40,4,0,33,2,40, - 4,0,59,1,20,21,22,23,14,15, - 16,2,5,9,10,8,3,6,7,12, - 13,11,17,18,19,53,4,0,40,4, - 31,80,1,20,21,22,23,14,15,16, - 2,5,9,10,8,3,6,7,12,13, - 11,17,18,19,24,0,74,31,80,0, - 63,4,32,25,26,27,28,29,30,9, - 10,8,3,6,7,12,13,11,17,18, - 19,1,2,5,20,21,22,23,14,15, - 16,0,9,10,8,3,6,7,12,13, - 11,17,18,19,1,2,5,20,21,22, - 23,14,15,16,63,4,0,87,35,41, - 25,42,54,36,43,37,44,45,38,26, - 46,47,32,55,39,56,48,49,27,50, - 51,52,28,29,30,5,58,1,2,34, - 4,3,0,3,1,31,53,4,35,41, - 25,42,54,36,43,37,44,45,38,26, - 46,47,32,55,39,56,48,49,27,50, - 51,52,28,29,30,73,5,2,0,35, - 41,25,42,54,36,43,37,44,45,38, - 26,46,47,32,55,39,56,48,49,27, - 50,51,52,28,29,30,2,5,73,3, - 0,53,4,3,1,31,0,35,41,25, - 42,54,36,43,37,44,45,38,26,46, - 47,32,55,39,56,48,49,27,50,51, - 52,28,29,30,5,2,24,0 + 87,0,50,43,51,52,53,44,49,54, + 45,67,72,73,46,47,48,6,25,4, + 5,1,2,74,0,68,12,69,70,13, + 14,15,16,3,10,11,9,7,8,17, + 18,78,19,20,21,22,23,24,63,55, + 60,58,59,57,56,61,62,64,65,66, + 67,74,72,73,50,43,51,52,53,44, + 49,54,45,46,47,48,25,4,5,2, + 1,0,50,55,43,56,68,51,57,52, + 58,59,53,44,60,61,49,69,54,70, + 62,63,45,64,65,66,1,3,46,47, + 48,26,71,4,0,50,55,43,56,68, + 51,57,52,58,59,53,44,60,61,49, + 69,54,70,62,63,45,64,65,66,1, + 3,46,47,48,4,75,72,25,0,50, + 55,43,56,68,51,57,52,58,59,53, + 44,60,61,49,69,54,70,62,63,45, + 64,65,66,46,47,48,1,3,6,0, + 67,2,80,94,10,11,75,97,98,99, + 100,101,103,102,104,105,106,5,81,82, + 7,8,77,76,83,84,85,86,88,89, + 9,90,91,92,71,95,96,78,73,74, + 72,25,4,0,30,31,6,35,37,32, + 28,33,42,34,27,29,36,39,41,38, + 40,26,25,4,2,13,14,15,16,19, + 20,21,10,11,9,5,7,8,17,18, + 12,22,23,24,1,3,0,4,71,67, + 80,2,13,14,15,16,19,20,21,1, + 3,10,11,9,5,7,8,17,18,12, + 22,23,24,6,0,4,73,5,2,67, + 0,87,50,55,43,56,68,51,57,52, + 58,59,53,44,60,61,49,69,54,70, + 62,63,45,64,65,66,1,3,5,46, + 47,48,25,4,26,2,0,1,3,4, + 71,72,0,78,4,49,43,44,45,46, + 47,48,10,11,9,5,7,8,17,18, + 12,22,23,24,2,1,3,13,14,15, + 16,19,20,21,0,2,4,74,75,72, + 73,25,67,0,49,10,11,9,5,7, + 8,17,18,12,22,23,24,2,1,3, + 13,14,15,16,19,20,21,78,4,0, + 75,67,80,0,4,72,71,75,0,87, + 93,71,30,31,6,35,37,32,28,33, + 42,34,27,29,36,39,41,38,40,26, + 25,4,12,13,14,15,16,10,11,9, + 7,8,17,18,19,20,21,22,23,24, + 5,2,3,1,68,69,70,63,55,60, + 58,59,57,56,61,62,64,65,66,54, + 51,49,50,53,52,46,48,47,43,44, + 45,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,99,100,101,102,103, + 104,105,106,25,43,44,45,46,47,48, + 5,1,2,67,72,73,4,0,9,5, + 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, + 71,6,4,72,25,75,0,50,55,43, + 56,68,51,57,52,58,59,53,44,60, + 61,49,69,54,70,62,63,45,64,65, + 66,1,3,46,47,48,79,5,0,27, + 4,73,12,13,14,15,16,1,3,2, + 10,11,9,5,7,8,17,18,19,20, + 21,22,23,24,0,5,2,67,73,4, + 50,55,43,56,68,51,57,52,58,59, + 53,44,60,61,49,69,54,70,62,63, + 45,64,65,66,1,3,46,47,48,79, + 0 }; }; public final static byte asr[] = Asr.asr; @@ -1397,45 +1466,44 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Nasb { public final static char nasb[] = {0, - 79,15,67,15,120,7,134,64,94,91, - 27,92,33,33,92,19,92,88,97,5, - 59,118,7,16,54,49,99,55,15,5, - 15,5,15,5,5,15,74,105,4,13, - 56,74,15,29,14,14,14,14,14,14, - 14,14,55,14,14,14,15,15,15,15, - 15,15,15,15,15,15,15,1,5,134, - 41,15,118,7,56,55,5,112,5,112, - 5,19,74,45,7,59,103,68,15,74, - 56,14,43,14,14,14,14,14,14,14, - 14,14,14,14,59,59,15,109,29,29, - 29,29,29,35,35,58,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,9,41,40,40, - 40,40,41,41,21,15,15,15,23,15, - 15,15,41,15,15,14,15,64,123,120, - 14,76,16,112,50,64,127,112,50,19, - 50,15,15,45,118,7,107,4,44,14, - 56,55,14,14,118,108,59,59,59,59, - 59,59,56,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15, - 41,41,41,41,41,37,37,14,15,14, - 14,15,23,120,131,5,7,84,50,120, - 50,50,50,14,19,104,16,59,116,56, - 56,5,110,116,15,15,15,15,15,14, - 14,40,40,41,40,40,41,59,15,59, - 59,13,59,41,14,15,50,7,4,59, - 13,40,41,40,41,40,58,41,58,41, - 40,23,14,23,23,50,61,15,120,14, - 59,50,58,41,40,58,41,40,40,41, - 23,59,58,23,59,58,58,41,59,15, - 47,14,15,14,52,47,23,59,58,58, - 41,23,59,58,58,41,58,41,40,23, - 23,59,23,23,59,23,59,58,41,23, - 56,23,23,59,23,59,58,23,23,59, - 23,59,58,23,59,58,58,41,23,23, - 23,23,59,23,23,23,59,23,23,23, - 59,23,23,59,23,59,58,23,23,23, - 23,23,23,59,23 + 48,30,21,12,63,19,123,17,124,124, + 95,95,124,95,124,119,110,104,30,30, + 126,9,53,30,102,30,102,102,30,36, + 102,134,110,67,67,133,102,19,13,30, + 30,110,30,91,54,147,7,7,7,7, + 7,7,7,7,53,7,7,7,30,30, + 30,30,30,30,30,30,30,30,30,102, + 81,102,81,95,102,102,145,129,133,52, + 101,85,104,7,127,97,13,71,71,71, + 71,13,13,95,30,30,30,39,30,30, + 13,9,30,7,30,12,1,134,134,137, + 7,147,147,147,147,147,56,56,58,72, + 7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,72,7,81, + 10,12,24,77,81,10,75,30,30,95, + 145,61,141,45,54,145,30,53,134,113, + 30,31,102,30,30,30,13,7,13,13, + 13,13,69,151,72,30,72,72,91,30, + 39,104,30,30,30,7,110,136,67,67, + 134,134,134,134,134,134,54,30,30,30, + 30,30,30,30,30,30,30,30,30,30, + 30,30,30,10,104,10,10,7,95,75, + 61,134,145,54,53,61,7,7,7,7, + 7,7,7,7,7,7,7,112,110,101, + 45,71,71,13,153,13,134,30,134,134, + 97,7,102,116,134,108,133,30,30,30, + 30,30,7,13,7,30,10,30,7,7, + 54,53,108,114,75,15,71,13,71,13, + 71,13,153,39,72,39,39,45,134,101, + 104,7,54,54,10,44,30,95,7,89, + 132,13,71,132,13,71,71,13,153,13, + 134,30,75,134,7,54,95,7,39,134, + 132,132,13,39,134,132,132,13,132,13, + 71,134,153,13,39,10,54,39,39,134, + 39,134,132,39,39,134,39,134,132,39, + 134,132,132,13,39,134,39,39,39,134, + 39,39,39,134,39,39,134,39,134,132, + 39,39,39,39,39,39,134,39 }; }; public final static char nasb[] = Nasb.nasb; @@ -1443,20 +1511,22 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Nasr { public final static char nasr[] = {0, - 32,4,92,34,22,0,43,0,32,34, - 39,75,22,4,0,22,21,0,64,0, - 93,0,32,4,26,0,101,0,22,45, - 4,0,82,0,73,0,22,34,46,4, - 19,0,38,4,35,0,4,67,22,39, - 0,87,0,22,4,38,0,4,21,0, - 98,97,0,19,22,0,51,81,80,79, - 78,77,0,65,0,42,86,0,99,34, - 42,22,0,95,22,34,0,68,69,70, - 60,48,0,34,22,88,42,0,22,42, - 96,0,22,56,40,0,40,21,22,56, - 0,63,22,45,0,22,34,51,0,40, - 22,0,34,22,100,0,22,45,57,0, - 22,34,46,24,0 + 87,86,85,84,83,82,7,0,1,43, + 0,1,2,0,113,0,118,0,105,0, + 40,1,101,87,86,85,84,83,82,0, + 1,33,50,18,0,40,42,0,13,20, + 1,21,0,91,7,1,0,116,33,1, + 0,1,7,39,0,92,0,1,107,0, + 35,0,33,1,103,0,51,0,33,50, + 2,1,14,0,72,0,1,45,69,0, + 79,1,45,0,33,1,117,0,115,0, + 1,33,20,95,13,0,20,13,73,43, + 33,1,0,47,40,1,0,1,33,58, + 0,10,1,40,47,63,62,0,74,75, + 76,77,66,52,0,1,42,49,40,47, + 0,44,1,10,0,10,62,63,1,0, + 109,1,33,0,80,0,1,45,14,0, + 33,50,1,65,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1464,18 +1534,17 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, - 2,99,9,110,109,10,11,8,6,7, - 71,12,13,84,85,86,91,92,93,100, - 101,102,103,3,51,67,79,87,88,89, - 1,72,42,107,47,58,63,66,75,106, - 50,55,59,64,65,69,70,77,78,81, - 82,83,105,57,73,76,29,113,52,80, - 16,17,104,48,49,53,54,60,61,62, - 68,74,30,31,90,94,95,96,97,4, - 14,15,18,19,20,21,98,22,23,24, - 25,26,56,5,27,28,32,33,34,35, - 36,37,38,39,40,41,43,44,45,108, - 111,112 + 85,2,86,87,9,3,10,11,8,6, + 7,68,81,82,83,84,12,13,93,94, + 95,100,101,102,92,107,49,77,45,46, + 50,51,57,58,59,65,71,99,103,104, + 105,106,48,64,76,96,97,98,69,44, + 55,60,63,72,47,52,56,61,62,66, + 67,74,75,78,79,80,1,54,70,73, + 91,42,90,29,31,16,17,89,30,4, + 14,15,18,19,20,21,108,22,23,24, + 25,26,53,5,27,28,32,33,34,35, + 36,37,38,39,40,41,88 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -1483,17 +1552,18 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 0,0,0,119,125,126,127,128,129,130, - 131,132,133,134,135,136,137,124,117,139, - 115,0,118,142,138,141,0,0,0,0, - 0,143,0,148,155,0,0,114,116,173, - 0,175,176,195,167,146,162,154,0,0, - 174,122,140,163,184,186,166,177,183,157, - 161,0,165,170,182,185,187,158,159,160, - 172,178,121,123,145,149,150,151,152,153, - 156,164,169,0,171,179,190,192,0,0, - 120,144,147,168,180,181,188,189,191,193, - 194,0 + 0,112,0,0,0,0,114,118,119,110, + 120,121,137,113,122,123,124,136,125,132, + 135,0,0,0,0,0,0,126,127,128, + 129,130,141,131,149,0,0,0,109,170, + 0,173,111,196,162,167,169,0,171,140, + 172,148,0,0,0,159,134,168,116,181, + 184,185,186,0,0,151,158,0,161,174, + 180,0,139,152,153,154,155,0,160,179, + 183,143,144,145,146,147,150,156,157,166, + 187,115,117,133,138,142,164,0,0,165, + 175,178,192,0,194,0,0,163,176,177, + 182,188,189,0,190,191,193,195,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1501,12 +1571,12 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 204,204,62,72,108,133,139,108,174,38, - 90,98,114,145,150,78,114,6,12,16, - 29,43,86,55,123,183,200,224,228,29, - 55,55,187,55,1,1,24,47,50,95, - 103,50,232,127,194,165,194,194,20,119, - 155,155,155,155 + 218,118,57,67,125,145,151,188,26,33, + 85,103,157,162,73,6,12,16,38,81, + 50,135,197,214,233,237,50,50,201,50, + 1,1,1,42,45,90,113,45,241,20, + 139,208,179,208,131,167,167,167,167,167, + 93,93,93 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -1514,12 +1584,12 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 36,33,4,4,36,36,36,33,180,10, - 4,10,36,36,36,83,33,10,10,10, - 36,10,4,4,121,36,10,10,4,33, - 59,83,191,68,4,4,27,10,53,4, - 10,106,10,130,197,168,218,211,22,121, - 157,159,161,163 + 31,31,4,4,31,31,31,194,31,10, + 4,10,31,31,78,10,10,10,10,4, + 4,133,31,10,10,4,54,78,205,63, + 4,4,4,10,48,4,10,116,10,23, + 142,211,182,226,133,169,171,173,175,177, + 100,95,108 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -1527,12 +1597,12 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 4,4,43,43,69,68,68,69,29,56, - 43,42,69,68,68,43,69,5,5,5, - 54,56,43,43,57,24,5,4,4,54, - 43,43,17,43,101,87,67,56,66,43, - 40,47,3,57,6,30,4,4,97,57, - 80,79,78,77 + 7,76,51,51,76,74,74,24,67,64, + 51,42,74,74,51,8,8,8,64,51, + 51,69,18,8,7,7,51,51,32,51, + 118,115,114,62,81,51,40,56,5,91, + 69,9,25,7,69,86,85,84,83,82, + 42,49,42 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -1540,12 +1610,12 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 40,33,63,63,40,40,40,33,93,53, - 63,53,40,40,40,20,33,53,53,53, - 40,53,63,63,34,40,53,53,63,33, - 3,20,57,32,63,63,20,53,1,63, - 53,2,53,2,53,60,53,53,74,34, - 2,54,55,49 + 71,71,78,78,71,71,71,93,71,73, + 78,73,71,71,13,73,73,73,73,78, + 78,25,71,73,73,78,5,13,74,49, + 78,78,78,73,2,78,73,1,73,75, + 1,73,28,73,25,3,68,69,69,63, + 2,2,2 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -1553,12 +1623,12 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 17,17,226,226,240,240,240,240,131,233, - 226,244,240,240,240,226,240,17,17,17, - 4,233,226,226,11,178,17,17,17,4, - 226,226,51,226,176,1,6,233,235,226, - 244,250,17,11,23,131,17,17,2,11, - 241,241,241,241 + 60,143,49,49,143,143,143,12,121,53, + 49,129,143,143,49,60,60,60,53,49, + 49,5,11,60,60,60,49,49,94,49, + 127,1,3,53,55,49,129,134,60,123, + 5,66,12,60,5,144,144,144,144,144, + 129,131,129 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -1566,30 +1636,31 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 165,31,0,114,0,164,1,19,0,115, - 0,164,1,18,0,164,1,17,0,210, - 0,31,0,209,134,0,163,0,186,134, - 24,0,42,116,0,116,0,170,134,1, - 168,0,170,134,1,0,178,1,0,163, - 134,0,186,0,177,134,31,0,9,114, - 0,130,32,177,134,31,0,72,124,114, - 0,130,177,134,32,31,0,177,134,32, - 31,0,124,114,0,130,32,31,0,130, - 177,134,31,0,130,31,0,170,134,1, - 152,0,159,1,0,173,0,196,134,24, - 176,54,0,196,134,24,54,0,157,0, - 117,0,206,134,157,0,134,157,0,168, - 117,0,174,134,24,194,56,0,174,134, - 24,194,55,0,174,134,24,56,0,174, - 134,24,55,0,193,0,160,0,159,0, - 158,0,157,0,138,67,0,80,2,118, - 115,117,0,138,133,135,1,70,0,56, - 141,0,204,134,24,0,135,96,128,0, - 29,137,0,164,1,0,115,126,0,164, - 1,11,0,186,134,24,133,164,1,0, - 115,3,0,123,42,116,0,115,3,0, - 123,116,0,203,1,116,0,135,31,116, - 0,135,1,0 + 164,67,0,109,0,166,2,24,0,110, + 0,166,2,23,0,166,2,22,0,219, + 108,0,31,158,0,179,200,108,6,0, + 111,0,177,108,2,169,0,177,108,2, + 0,188,2,0,165,108,0,184,0,209, + 108,67,0,9,109,0,141,49,209,108, + 67,0,69,131,109,0,141,209,108,49, + 67,0,209,108,49,67,0,131,109,0, + 141,49,67,0,141,209,108,67,0,141, + 67,0,147,0,2,0,176,110,0,2, + 110,0,177,108,2,147,0,2,0,174, + 110,0,163,2,0,167,0,179,206,108, + 6,120,68,0,179,206,108,6,68,0, + 152,0,112,0,215,108,152,0,108,152, + 0,163,112,0,185,108,6,120,70,0, + 185,108,6,120,69,0,185,108,6,70, + 0,185,108,6,69,0,194,0,155,0, + 154,0,153,0,152,0,151,0,128,32, + 0,77,2,113,110,112,0,128,117,121, + 2,35,0,53,135,0,202,108,6,0, + 121,96,138,0,29,130,0,166,2,0, + 110,119,0,166,2,12,0,179,200,108, + 6,117,166,2,0,110,3,0,117,0, + 111,0,214,2,114,0,121,67,114,0, + 121,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -1597,32 +1668,21 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeState { public final static char scopeState[] = {0, - 2949,3601,0,3724,3705,2542,2474,2350,2327,0, - 4417,4493,4397,4393,4384,0,3476,2395,2187,2134, - 1975,1922,3469,2373,2307,2514,2497,2382,2565,1964, - 1953,1911,1900,2229,379,2165,2112,2017,2006,3002, - 2995,2597,2589,2177,2582,2124,2529,2276,2265,2218, - 2835,2810,2785,2760,2735,3422,3398,2710,2685,2660, - 2635,2610,2542,4168,3724,2474,3374,3350,3326,3302, - 3278,2450,3254,2425,4114,3627,3230,3206,3182,3158, - 3134,3110,2350,4096,2327,3086,3062,3038,3014,3760, - 4060,4042,3603,3579,3555,2241,2194,4023,3987,2976, - 3705,3969,2952,2928,2904,2880,3531,3507,3485,2141, - 2088,2035,1982,1929,3950,3931,3912,3893,3874,3855, - 3836,3817,3798,3779,2859,2288,1876,3669,3651,3446, - 1842,1808,1774,1740,1706,1672,1638,1604,1570,1536, - 1502,1468,1434,1400,1366,1332,1298,1264,1230,1196, - 1162,1128,1094,1060,1026,992,958,924,890,856, - 822,788,754,720,686,652,618,584,550,516, - 482,448,396,344,0,470,0,1842,1808,1774, - 1740,1706,1672,1638,1604,1570,1536,1502,1468,1434, - 1400,1366,1332,1298,1264,1230,1196,1162,1128,1094, - 1060,1026,992,958,924,890,856,822,788,754, - 720,686,652,618,584,550,516,4506,482,448, - 396,2160,344,445,0,2563,2537,2536,2495,2371, - 2131,394,3700,391,4377,4323,4468,4312,0,4241, - 4159,4154,0,391,4216,2185,2030,4253,4225,4435, - 4369,4361,4323,4296,4312,4286,4445,0 + 1059,0,385,0,1671,850,1533,1270,861,0, + 450,2847,2819,2791,2763,2735,2707,2679,2651,2623, + 2595,2567,2539,2511,2483,2455,2427,2399,2371,2343, + 2315,2287,2259,2231,2203,2175,2147,2119,2091,2063, + 2035,1709,2007,1673,567,1635,1597,0,1034,884, + 774,710,1603,560,1796,1909,1753,603,0,2123, + 2095,2067,2039,1713,833,1133,3189,1067,1863,1987, + 1940,2908,2875,3046,3033,3020,3007,2994,2922,3106, + 2977,2960,458,1496,1430,1397,1364,1232,866,1199, + 968,793,525,1577,1544,1511,1478,1445,1412,1758, + 1379,1346,1313,1280,1247,1214,1181,1148,1115,1082, + 1049,1016,881,983,848,815,359,950,641,739, + 917,775,601,547,507,0,399,0,542,419, + 1603,3056,1641,2899,1796,382,2855,1753,360,1887, + 1779,0,1848,651,359,419,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -1630,45 +1690,44 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,202,134,154,1,152,184,146,211,189, - 29,190,56,55,191,54,192,193,163,3, - 159,134,152,1,31,24,134,31,194,24, - 194,24,176,24,3,154,134,163,134,32, - 130,134,117,1,19,18,17,11,13,12, - 7,6,3,8,10,9,116,119,121,120, - 123,122,125,124,127,126,128,134,208,184, - 188,159,134,152,165,3,24,134,24,134, - 24,134,134,177,152,170,146,134,171,134, - 130,3,177,106,105,104,102,103,101,100, - 99,98,97,74,164,135,132,157,1,1, - 1,1,1,94,80,1,31,82,81,3, - 61,62,7,6,89,88,86,85,84,83, - 90,8,92,91,96,95,204,77,75,78, - 76,71,64,59,69,79,68,60,67,72, - 70,132,137,2,66,65,144,146,134,33, - 74,163,1,134,174,157,175,134,174,134, - 196,176,197,177,134,168,1,33,177,32, - 130,3,133,33,134,1,164,164,164,164, - 164,203,135,120,120,119,119,122,122,121, - 121,121,121,124,123,126,125,135,127,4, - 135,135,135,135,205,1,1,1,138,1, - 1,165,57,134,212,24,152,134,174,134, - 174,196,33,74,33,163,1,178,134,130, - 130,24,163,134,133,133,133,133,133,33, - 57,158,131,135,158,131,135,135,60,135, - 135,134,207,206,57,159,33,168,134,170, - 134,131,135,131,135,131,131,135,131,135, - 131,133,1,133,133,186,134,33,33,57, - 170,186,131,135,131,131,135,131,131,135, - 133,135,131,133,135,131,131,135,135,138, - 33,209,80,31,210,33,133,156,131,131, - 135,133,156,131,131,135,131,135,131,133, - 133,135,133,133,135,133,135,131,133,93, - 165,133,133,156,133,156,131,133,133,156, - 133,156,131,133,156,131,131,135,133,133, - 133,133,135,133,133,133,156,133,133,133, - 156,133,133,156,133,156,131,133,133,133, - 133,133,133,156,133 + 0,213,108,140,223,208,189,47,190,191, + 70,69,192,68,193,194,108,2,1,147, + 108,6,67,120,6,120,6,6,120,165, + 5,163,108,147,154,2,217,208,203,196, + 149,108,156,108,164,2,24,23,22,12, + 18,17,8,7,5,9,11,10,114,118, + 122,119,124,123,135,126,137,136,138,6, + 108,6,108,108,6,5,108,165,2,67, + 108,108,72,75,165,202,40,38,41,39, + 36,29,27,34,42,33,28,32,37,35, + 127,6,31,30,120,140,108,166,121,152, + 5,2,2,2,2,2,94,80,2,67, + 82,81,5,76,77,8,7,89,88,86, + 85,84,83,90,9,92,91,96,95,108, + 185,152,108,186,108,185,206,120,207,108, + 108,187,108,49,141,108,115,5,177,140, + 178,224,6,156,149,4,121,108,121,121, + 121,120,2,2,2,128,2,2,108,164, + 74,108,201,1,3,117,108,2,170,169, + 166,166,166,166,166,214,121,119,119,118, + 118,123,123,122,122,122,122,126,124,136, + 135,121,137,185,108,185,179,75,72,206, + 187,216,108,141,209,187,106,105,104,102, + 103,101,100,99,98,97,75,2,108,72, + 108,157,109,121,157,172,121,28,121,121, + 202,72,6,165,188,108,2,117,117,117, + 117,117,74,215,74,163,179,72,209,49, + 141,5,108,165,200,108,109,121,109,121, + 109,172,109,117,2,117,117,108,177,108, + 72,74,141,141,179,72,219,80,67,220, + 109,121,109,109,121,109,109,121,109,172, + 121,128,200,177,75,164,80,67,117,151, + 109,109,121,117,151,109,109,121,109,121, + 109,172,109,117,93,179,164,117,117,151, + 117,151,109,117,117,151,117,151,109,117, + 151,109,109,121,117,172,117,117,117,151, + 117,117,117,151,117,117,151,117,151,109, + 117,117,117,117,117,117,151,117 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1676,213 +1735,217 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Name { public final static String name[] = { - "",//$NON-NLS-1$ - "[",//$NON-NLS-1$ - "(",//$NON-NLS-1$ - "{",//$NON-NLS-1$ - ".",//$NON-NLS-1$ - "->",//$NON-NLS-1$ - "++",//$NON-NLS-1$ - "--",//$NON-NLS-1$ - "&",//$NON-NLS-1$ - "*",//$NON-NLS-1$ - "+",//$NON-NLS-1$ - "-",//$NON-NLS-1$ - "~",//$NON-NLS-1$ - "!",//$NON-NLS-1$ - "/",//$NON-NLS-1$ - "%",//$NON-NLS-1$ - ">>",//$NON-NLS-1$ - "<<",//$NON-NLS-1$ - "<",//$NON-NLS-1$ - ">",//$NON-NLS-1$ - "<=",//$NON-NLS-1$ - ">=",//$NON-NLS-1$ - "==",//$NON-NLS-1$ - "!=",//$NON-NLS-1$ - "^",//$NON-NLS-1$ - "|",//$NON-NLS-1$ - "&&",//$NON-NLS-1$ - "||",//$NON-NLS-1$ - "?",//$NON-NLS-1$ - ":",//$NON-NLS-1$ - "...",//$NON-NLS-1$ - "=",//$NON-NLS-1$ - "*=",//$NON-NLS-1$ - "/=",//$NON-NLS-1$ - "%=",//$NON-NLS-1$ - "+=",//$NON-NLS-1$ - "-=",//$NON-NLS-1$ - ">>=",//$NON-NLS-1$ - "<<=",//$NON-NLS-1$ - "&=",//$NON-NLS-1$ - "^=",//$NON-NLS-1$ - "|=",//$NON-NLS-1$ - ",",//$NON-NLS-1$ - "#",//$NON-NLS-1$ - "##",//$NON-NLS-1$ - "nl",//$NON-NLS-1$ - "$empty",//$NON-NLS-1$ - "auto",//$NON-NLS-1$ - "break",//$NON-NLS-1$ - "case",//$NON-NLS-1$ - "char",//$NON-NLS-1$ - "const",//$NON-NLS-1$ - "continue",//$NON-NLS-1$ - "default",//$NON-NLS-1$ - "do",//$NON-NLS-1$ - "double",//$NON-NLS-1$ - "else",//$NON-NLS-1$ - "enum",//$NON-NLS-1$ - "extern",//$NON-NLS-1$ - "float",//$NON-NLS-1$ - "for",//$NON-NLS-1$ - "goto",//$NON-NLS-1$ - "if",//$NON-NLS-1$ - "inline",//$NON-NLS-1$ - "int",//$NON-NLS-1$ - "long",//$NON-NLS-1$ - "register",//$NON-NLS-1$ - "restrict",//$NON-NLS-1$ - "return",//$NON-NLS-1$ - "short",//$NON-NLS-1$ - "signed",//$NON-NLS-1$ - "sizeof",//$NON-NLS-1$ - "static",//$NON-NLS-1$ - "struct",//$NON-NLS-1$ - "switch",//$NON-NLS-1$ - "typedef",//$NON-NLS-1$ - "union",//$NON-NLS-1$ - "unsigned",//$NON-NLS-1$ - "void",//$NON-NLS-1$ - "volatile",//$NON-NLS-1$ - "while",//$NON-NLS-1$ - "_Bool",//$NON-NLS-1$ - "_Complex",//$NON-NLS-1$ - "_Imaginary",//$NON-NLS-1$ - "MYTHREAD",//$NON-NLS-1$ - "THREADS",//$NON-NLS-1$ - "UPC_MAX_BLOCKSIZE",//$NON-NLS-1$ - "relaxed",//$NON-NLS-1$ - "shared",//$NON-NLS-1$ - "strict",//$NON-NLS-1$ - "upc_barrier",//$NON-NLS-1$ - "upc_localsizeof",//$NON-NLS-1$ - "upc_blocksizeof",//$NON-NLS-1$ - "upc_elemsizeof",//$NON-NLS-1$ - "upc_notify",//$NON-NLS-1$ - "upc_fence",//$NON-NLS-1$ - "upc_wait",//$NON-NLS-1$ - "upc_forall",//$NON-NLS-1$ - "EOF_TOKEN",//$NON-NLS-1$ - "identifier",//$NON-NLS-1$ - "integer",//$NON-NLS-1$ - "floating",//$NON-NLS-1$ - "charconst",//$NON-NLS-1$ - "stringlit",//$NON-NLS-1$ - "RightBracket",//$NON-NLS-1$ - "RightParen",//$NON-NLS-1$ - "RightBrace",//$NON-NLS-1$ - "SemiColon",//$NON-NLS-1$ - "Invalid",//$NON-NLS-1$ - "Completion",//$NON-NLS-1$ - "EndOfCompletion",//$NON-NLS-1$ - "SingleLineComment",//$NON-NLS-1$ - "MultiLineComment",//$NON-NLS-1$ - "ERROR_TOKEN",//$NON-NLS-1$ - "]",//$NON-NLS-1$ - ")",//$NON-NLS-1$ - "}",//$NON-NLS-1$ - ";",//$NON-NLS-1$ - "expression",//$NON-NLS-1$ - "postfix_expression",//$NON-NLS-1$ - "argument_expression_list",//$NON-NLS-1$ - "member_name",//$NON-NLS-1$ - "type_name",//$NON-NLS-1$ - "initializer_list",//$NON-NLS-1$ - "assignment_expression",//$NON-NLS-1$ - "unary_expression",//$NON-NLS-1$ - "cast_expression",//$NON-NLS-1$ - "multiplicative_expression",//$NON-NLS-1$ - "additive_expression",//$NON-NLS-1$ - "shift_expression",//$NON-NLS-1$ - "relational_expression",//$NON-NLS-1$ - "equality_expression",//$NON-NLS-1$ - "AND_expression",//$NON-NLS-1$ - "exclusive_OR_expression",//$NON-NLS-1$ - "inclusive_OR_expression",//$NON-NLS-1$ - "logical_AND_expression",//$NON-NLS-1$ - "logical_OR_expression",//$NON-NLS-1$ - "conditional_expression",//$NON-NLS-1$ - "expression_in_statement",//$NON-NLS-1$ - "expression_list",//$NON-NLS-1$ - "constant_expression",//$NON-NLS-1$ - "statement",//$NON-NLS-1$ - "compound_statement",//$NON-NLS-1$ - "label_identifier",//$NON-NLS-1$ - "block_item_list",//$NON-NLS-1$ - "block_item",//$NON-NLS-1$ - "declaration",//$NON-NLS-1$ - "goto_identifier",//$NON-NLS-1$ - "declaration_specifiers",//$NON-NLS-1$ - "init_declarator_list",//$NON-NLS-1$ - "simple_declaration_specifiers",//$NON-NLS-1$ - "struct_or_union_declaration_sp" +//$NON-NLS-1$ - "ecifiers",//$NON-NLS-1$ - "enum_declaration_specifiers",//$NON-NLS-1$ - "typdef_name_declaration_specif" +//$NON-NLS-1$ - "iers",//$NON-NLS-1$ - "no_type_declaration_specifier",//$NON-NLS-1$ - "type_qualifier",//$NON-NLS-1$ - "no_type_declaration_specifiers",//$NON-NLS-1$ - "type_specifier",//$NON-NLS-1$ - "struct_or_union_specifier",//$NON-NLS-1$ - "enum_specifier",//$NON-NLS-1$ - "typedef_name",//$NON-NLS-1$ - "init_declarator",//$NON-NLS-1$ - "declarator",//$NON-NLS-1$ - "initializer",//$NON-NLS-1$ - "struct_or_union_identifier",//$NON-NLS-1$ - "struct_declaration_list",//$NON-NLS-1$ - "struct_declaration",//$NON-NLS-1$ - "specifier_qualifier_list",//$NON-NLS-1$ - "struct_declarator_list",//$NON-NLS-1$ - "struct_declarator",//$NON-NLS-1$ - "enum_identifier",//$NON-NLS-1$ - "enumerator_list",//$NON-NLS-1$ - "enumerator",//$NON-NLS-1$ - "direct_declarator",//$NON-NLS-1$ - "pointer",//$NON-NLS-1$ - "function_direct_declarator",//$NON-NLS-1$ - "array_modifier",//$NON-NLS-1$ - "parameter_type_list",//$NON-NLS-1$ - "function_declarator",//$NON-NLS-1$ - "knr_direct_declarator",//$NON-NLS-1$ - "identifier_list",//$NON-NLS-1$ - "knr_function_declarator",//$NON-NLS-1$ - "type_qualifier_list",//$NON-NLS-1$ - "parameter_list",//$NON-NLS-1$ - "parameter_declaration",//$NON-NLS-1$ - "abstract_declarator",//$NON-NLS-1$ - "direct_abstract_declarator",//$NON-NLS-1$ - "designated_initializer",//$NON-NLS-1$ - "designation",//$NON-NLS-1$ - "designator_list",//$NON-NLS-1$ - "designator",//$NON-NLS-1$ - "external_declaration_list",//$NON-NLS-1$ - "external_declaration",//$NON-NLS-1$ - "declaration_list",//$NON-NLS-1$ - "layout_qualifier",//$NON-NLS-1$ - "affinity"//$NON-NLS-1$ + "", + "[", + "(", + "{", + ".", + "->", + "++", + "--", + "&", + "*", + "+", + "-", + "~", + "!", + "/", + "%", + ">>", + "<<", + "<", + ">", + "<=", + ">=", + "==", + "!=", + "^", + "|", + "&&", + "||", + "?", + ":", + "...", + "=", + "*=", + "/=", + "%=", + "+=", + "-=", + ">>=", + "<<=", + "&=", + "^=", + "|=", + ",", + "$empty", + "auto", + "break", + "case", + "char", + "const", + "continue", + "default", + "do", + "double", + "else", + "enum", + "extern", + "float", + "for", + "goto", + "if", + "inline", + "int", + "long", + "register", + "restrict", + "return", + "short", + "signed", + "sizeof", + "static", + "struct", + "switch", + "typedef", + "union", + "unsigned", + "void", + "volatile", + "while", + "_Bool", + "_Complex", + "_Imaginary", + "integer", + "floating", + "charconst", + "stringlit", + "identifier", + "Completion", + "EndOfCompletion", + "Invalid", + "RightBracket", + "RightParen", + "RightBrace", + "SemiColon", + "MYTHREAD", + "THREADS", + "UPC_MAX_BLOCKSIZE", + "relaxed", + "shared", + "strict", + "upc_barrier", + "upc_localsizeof", + "upc_blocksizeof", + "upc_elemsizeof", + "upc_notify", + "upc_fence", + "upc_wait", + "upc_forall", + "ERROR_TOKEN", + "EOF_TOKEN", + "]", + ")", + "}", + ";", + "expression", + "postfix_expression", + "member_name", + "type_name", + "initializer_list", + "unary_expression", + "cast_expression", + "multiplicative_expression", + "additive_expression", + "shift_expression", + "relational_expression", + "equality_expression", + "AND_expression", + "exclusive_OR_expression", + "inclusive_OR_expression", + "logical_AND_expression", + "logical_OR_expression", + "conditional_expression", + "assignment_expression", + "expression_in_statement", + "expression_list_actual", + "constant_expression", + "statement", + "compound_statement", + "identifier_or_typedefname", + "block_item_list", + "block_item", + "declaration", + "declaration_specifiers", + "init_declarator_list", + "simple_declaration_specifiers", + "struct_or_union_declaration_sp" + + "ecifiers", + "elaborated_declaration_specifi" + + "ers", + "enum_declaration_specifiers", + "typdef_name_declaration_specif" + + "iers", + "no_type_declaration_specifier", + "type_qualifier", + "no_type_declaration_specifiers", + "simple_type_specifier", + "struct_or_union_specifier", + "elaborated_specifier", + "enum_specifier", + "typedef_name_in_declspec", + "init_declarator", + "complete_declarator", + "initializer", + "declarator", + "struct_declaration_list", + "struct_declaration", + "specifier_qualifier_list", + "struct_declarator_list", + "complete_struct_declarator", + "enumerator_list", + "enumerator", + "direct_declarator", + "pointer_seq", + "array_direct_declarator", + "basic_direct_declarator", + "knr_direct_declarator", + "array_modifier", + "function_direct_declarator", + "parameter_type_list", + "function_declarator", + "identifier_list", + "knr_function_declarator", + "array_modifier_type_qualifiers", + "type_qualifier_list", + "parameter_list", + "parameter_declaration", + "complete_parameter_declarator", + "abstract_declarator", + "direct_abstract_declarator", + "basic_direct_abstract_declarat" + + "or", + "array_direct_abstract_declarat" + + "or", + "designated_initializer", + "designation", + "designator_list", + "designator", + "external_declaration_list", + "external_declaration", + "declaration_list", + "function_body", + "layout_qualifier", + "affinity" }; }; public final static String name[] = Name.name; public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 58, - SCOPE_UBOUND = 53, - SCOPE_SIZE = 54, + ERROR_SYMBOL = 26, + SCOPE_UBOUND = 52, + SCOPE_SIZE = 53, MAX_NAME_LENGTH = 38; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -1891,20 +1954,20 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 385, - NT_OFFSET = 112, - LA_STATE_OFFSET = 4987, + NUM_STATES = 378, + NT_OFFSET = 107, + LA_STATE_OFFSET = 3738, MAX_LA = 2147483647, - NUM_RULES = 343, - NUM_NONTERMINALS = 102, - NUM_SYMBOLS = 214, + NUM_RULES = 358, + NUM_NONTERMINALS = 119, + NUM_SYMBOLS = 226, SEGMENT_SIZE = 8192, - START_STATE = 4225, + START_STATE = 626, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 87, EOLT_SYMBOL = 87, - ACCEPT_ACTION = 4616, - ERROR_ACTION = 4644; + ACCEPT_ACTION = 3352, + ERROR_ACTION = 3380; 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/UPCParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParsersym.java index 663938434b5..85523c6498c 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParsersym.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParsersym.java @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2006, 2007 IBM Corporation and others. +* Copyright (c) 2006, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -15,60 +15,68 @@ package org.eclipse.cdt.internal.core.dom.parser.upc; public interface UPCParsersym { public final static int - TK_auto = 35, - TK_break = 64, - TK_case = 65, - TK_char = 41, - TK_const = 25, - TK_continue = 59, - TK_default = 66, - TK_do = 67, - TK_double = 42, + TK_auto = 50, + TK_break = 29, + TK_case = 30, + TK_char = 55, + TK_const = 43, + TK_continue = 27, + TK_default = 31, + TK_do = 32, + TK_double = 56, TK_else = 93, - TK_enum = 54, - TK_extern = 36, - TK_float = 43, - TK_for = 68, - TK_goto = 69, - TK_if = 70, - TK_inline = 37, - TK_int = 44, - TK_long = 45, - TK_register = 38, - TK_restrict = 26, - TK_return = 71, - TK_short = 46, - TK_signed = 47, - TK_sizeof = 11, - TK_static = 32, - TK_struct = 55, - TK_switch = 72, - TK_typedef = 39, - TK_union = 56, - TK_unsigned = 48, - TK_void = 49, - TK_volatile = 27, - TK_while = 60, - TK__Bool = 50, - TK__Complex = 51, - TK__Imaginary = 52, - TK_LeftBracket = 31, - TK_LeftParen = 1, - TK_LeftBrace = 24, + TK_enum = 68, + TK_extern = 51, + TK_float = 57, + TK_for = 33, + TK_goto = 34, + TK_if = 35, + TK_inline = 52, + TK_int = 58, + TK_long = 59, + TK_register = 53, + TK_restrict = 44, + TK_return = 36, + TK_short = 60, + TK_signed = 61, + TK_sizeof = 12, + TK_static = 49, + TK_struct = 69, + TK_switch = 37, + TK_typedef = 54, + TK_union = 70, + TK_unsigned = 62, + TK_void = 63, + TK_volatile = 45, + TK_while = 28, + TK__Bool = 64, + TK__Complex = 65, + TK__Imaginary = 66, + TK_integer = 13, + TK_floating = 14, + TK_charconst = 15, + TK_stringlit = 16, + TK_identifier = 1, + TK_Completion = 3, + TK_EndOfCompletion = 4, + TK_Invalid = 107, + TK_LeftBracket = 67, + TK_LeftParen = 2, + TK_LeftBrace = 6, TK_Dot = 80, TK_Arrow = 94, - TK_PlusPlus = 9, - TK_MinusMinus = 10, - TK_And = 8, - TK_Star = 3, - TK_Plus = 6, - TK_Minus = 7, - TK_Tilde = 12, - TK_Bang = 13, + TK_PlusPlus = 10, + TK_MinusMinus = 11, + TK_And = 9, + TK_Star = 5, + TK_Plus = 7, + TK_Minus = 8, + TK_Tilde = 17, + TK_Bang = 18, TK_Slash = 81, TK_Percent = 82, - TK_RightShift = 61, - TK_LeftShift = 62, + TK_RightShift = 76, + TK_LeftShift = 77, TK_LT = 83, TK_GT = 84, TK_LE = 85, @@ -80,9 +88,9 @@ public interface UPCParsersym { TK_AndAnd = 92, TK_OrOr = 95, TK_Question = 96, - TK_Colon = 57, - TK_DotDotDot = 73, - TK_Assign = 74, + TK_Colon = 74, + TK_DotDotDot = 79, + TK_Assign = 75, TK_StarAssign = 97, TK_SlashAssign = 98, TK_PercentAssign = 99, @@ -93,155 +101,137 @@ public interface UPCParsersym { TK_AndAssign = 104, TK_CaretAssign = 105, TK_OrAssign = 106, - TK_Comma = 33, - TK_Hash = 107, - TK_HashHash = 108, - TK_NewLine = 109, - TK_MYTHREAD = 14, - TK_THREADS = 15, - TK_UPC_MAX_BLOCKSIZE = 16, - TK_relaxed = 28, - TK_shared = 29, - TK_strict = 30, - TK_upc_barrier = 75, - TK_upc_localsizeof = 17, - TK_upc_blocksizeof = 18, - TK_upc_elemsizeof = 19, - TK_upc_notify = 76, - TK_upc_fence = 77, - TK_upc_wait = 78, - TK_upc_forall = 79, - TK_EOF_TOKEN = 87, - TK_identifier = 2, - TK_integer = 20, - TK_floating = 21, - TK_charconst = 22, - TK_stringlit = 23, - TK_RightBracket = 63, - TK_RightParen = 53, - TK_RightBrace = 40, - TK_SemiColon = 34, - TK_Invalid = 110, - TK_Completion = 5, - TK_EndOfCompletion = 4, - TK_SingleLineComment = 111, - TK_MultiLineComment = 112, - TK_ERROR_TOKEN = 58; + TK_Comma = 72, + TK_RightBracket = 78, + TK_RightParen = 73, + TK_RightBrace = 71, + TK_SemiColon = 25, + TK_MYTHREAD = 19, + TK_THREADS = 20, + TK_UPC_MAX_BLOCKSIZE = 21, + TK_relaxed = 46, + TK_shared = 47, + TK_strict = 48, + TK_upc_barrier = 38, + TK_upc_localsizeof = 22, + TK_upc_blocksizeof = 23, + TK_upc_elemsizeof = 24, + TK_upc_notify = 39, + TK_upc_fence = 40, + TK_upc_wait = 41, + TK_upc_forall = 42, + TK_ERROR_TOKEN = 26, + TK_EOF_TOKEN = 87; public final static String orderedTerminalSymbols[] = { - "",//$NON-NLS-1$ - "LeftParen",//$NON-NLS-1$ - "identifier",//$NON-NLS-1$ - "Star",//$NON-NLS-1$ - "EndOfCompletion",//$NON-NLS-1$ - "Completion",//$NON-NLS-1$ - "Plus",//$NON-NLS-1$ - "Minus",//$NON-NLS-1$ - "And",//$NON-NLS-1$ - "PlusPlus",//$NON-NLS-1$ - "MinusMinus",//$NON-NLS-1$ - "sizeof",//$NON-NLS-1$ - "Tilde",//$NON-NLS-1$ - "Bang",//$NON-NLS-1$ - "MYTHREAD",//$NON-NLS-1$ - "THREADS",//$NON-NLS-1$ - "UPC_MAX_BLOCKSIZE",//$NON-NLS-1$ - "upc_localsizeof",//$NON-NLS-1$ - "upc_blocksizeof",//$NON-NLS-1$ - "upc_elemsizeof",//$NON-NLS-1$ - "integer",//$NON-NLS-1$ - "floating",//$NON-NLS-1$ - "charconst",//$NON-NLS-1$ - "stringlit",//$NON-NLS-1$ - "LeftBrace",//$NON-NLS-1$ - "const",//$NON-NLS-1$ - "restrict",//$NON-NLS-1$ - "volatile",//$NON-NLS-1$ - "relaxed",//$NON-NLS-1$ - "shared",//$NON-NLS-1$ - "strict",//$NON-NLS-1$ - "LeftBracket",//$NON-NLS-1$ - "static",//$NON-NLS-1$ - "Comma",//$NON-NLS-1$ - "SemiColon",//$NON-NLS-1$ - "auto",//$NON-NLS-1$ - "extern",//$NON-NLS-1$ - "inline",//$NON-NLS-1$ - "register",//$NON-NLS-1$ - "typedef",//$NON-NLS-1$ - "RightBrace",//$NON-NLS-1$ - "char",//$NON-NLS-1$ - "double",//$NON-NLS-1$ - "float",//$NON-NLS-1$ - "int",//$NON-NLS-1$ - "long",//$NON-NLS-1$ - "short",//$NON-NLS-1$ - "signed",//$NON-NLS-1$ - "unsigned",//$NON-NLS-1$ - "void",//$NON-NLS-1$ - "_Bool",//$NON-NLS-1$ - "_Complex",//$NON-NLS-1$ - "_Imaginary",//$NON-NLS-1$ - "RightParen",//$NON-NLS-1$ - "enum",//$NON-NLS-1$ - "struct",//$NON-NLS-1$ - "union",//$NON-NLS-1$ - "Colon",//$NON-NLS-1$ - "ERROR_TOKEN",//$NON-NLS-1$ - "continue",//$NON-NLS-1$ - "while",//$NON-NLS-1$ - "RightShift",//$NON-NLS-1$ - "LeftShift",//$NON-NLS-1$ - "RightBracket",//$NON-NLS-1$ - "break",//$NON-NLS-1$ - "case",//$NON-NLS-1$ - "default",//$NON-NLS-1$ - "do",//$NON-NLS-1$ - "for",//$NON-NLS-1$ - "goto",//$NON-NLS-1$ - "if",//$NON-NLS-1$ - "return",//$NON-NLS-1$ - "switch",//$NON-NLS-1$ - "DotDotDot",//$NON-NLS-1$ - "Assign",//$NON-NLS-1$ - "upc_barrier",//$NON-NLS-1$ - "upc_notify",//$NON-NLS-1$ - "upc_fence",//$NON-NLS-1$ - "upc_wait",//$NON-NLS-1$ - "upc_forall",//$NON-NLS-1$ - "Dot",//$NON-NLS-1$ - "Slash",//$NON-NLS-1$ - "Percent",//$NON-NLS-1$ - "LT",//$NON-NLS-1$ - "GT",//$NON-NLS-1$ - "LE",//$NON-NLS-1$ - "GE",//$NON-NLS-1$ - "EOF_TOKEN",//$NON-NLS-1$ - "EQ",//$NON-NLS-1$ - "NE",//$NON-NLS-1$ - "Caret",//$NON-NLS-1$ - "Or",//$NON-NLS-1$ - "AndAnd",//$NON-NLS-1$ - "else",//$NON-NLS-1$ - "Arrow",//$NON-NLS-1$ - "OrOr",//$NON-NLS-1$ - "Question",//$NON-NLS-1$ - "StarAssign",//$NON-NLS-1$ - "SlashAssign",//$NON-NLS-1$ - "PercentAssign",//$NON-NLS-1$ - "PlusAssign",//$NON-NLS-1$ - "MinusAssign",//$NON-NLS-1$ - "RightShiftAssign",//$NON-NLS-1$ - "LeftShiftAssign",//$NON-NLS-1$ - "AndAssign",//$NON-NLS-1$ - "CaretAssign",//$NON-NLS-1$ - "OrAssign",//$NON-NLS-1$ - "Hash",//$NON-NLS-1$ - "HashHash",//$NON-NLS-1$ - "NewLine",//$NON-NLS-1$ - "Invalid",//$NON-NLS-1$ - "SingleLineComment",//$NON-NLS-1$ - "MultiLineComment"//$NON-NLS-1$ + "", + "identifier", + "LeftParen", + "Completion", + "EndOfCompletion", + "Star", + "LeftBrace", + "Plus", + "Minus", + "And", + "PlusPlus", + "MinusMinus", + "sizeof", + "integer", + "floating", + "charconst", + "stringlit", + "Tilde", + "Bang", + "MYTHREAD", + "THREADS", + "UPC_MAX_BLOCKSIZE", + "upc_localsizeof", + "upc_blocksizeof", + "upc_elemsizeof", + "SemiColon", + "ERROR_TOKEN", + "continue", + "while", + "break", + "case", + "default", + "do", + "for", + "goto", + "if", + "return", + "switch", + "upc_barrier", + "upc_notify", + "upc_fence", + "upc_wait", + "upc_forall", + "const", + "restrict", + "volatile", + "relaxed", + "shared", + "strict", + "static", + "auto", + "extern", + "inline", + "register", + "typedef", + "char", + "double", + "float", + "int", + "long", + "short", + "signed", + "unsigned", + "void", + "_Bool", + "_Complex", + "_Imaginary", + "LeftBracket", + "enum", + "struct", + "union", + "RightBrace", + "Comma", + "RightParen", + "Colon", + "Assign", + "RightShift", + "LeftShift", + "RightBracket", + "DotDotDot", + "Dot", + "Slash", + "Percent", + "LT", + "GT", + "LE", + "GE", + "EOF_TOKEN", + "EQ", + "NE", + "Caret", + "Or", + "AndAnd", + "else", + "Arrow", + "OrOr", + "Question", + "StarAssign", + "SlashAssign", + "PercentAssign", + "PlusAssign", + "MinusAssign", + "RightShiftAssign", + "LeftShiftAssign", + "AndAssign", + "CaretAssign", + "OrAssign", + "Invalid" }; public final static boolean isValidForParser = true;