Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/upc
diff options
context:
space:
mode:
authorMike Kucera2008-04-08 22:01:21 +0000
committerMike Kucera2008-04-08 22:01:21 +0000
commit2ae1a301ef89a1a194ddb2a8d2986da4e2cf71d3 (patch)
treea7bbf61440b82f7a0ca282280d4c25e3d175a6b1 /upc
parent1ca857981f6093615295f66ad67264c18b0559e5 (diff)
downloadorg.eclipse.cdt-2ae1a301ef89a1a194ddb2a8d2986da4e2cf71d3.tar.gz
org.eclipse.cdt-2ae1a301ef89a1a194ddb2a8d2986da4e2cf71d3.tar.xz
org.eclipse.cdt-2ae1a301ef89a1a194ddb2a8d2986da4e2cf71d3.zip
working on porting the UPC plugin
Diffstat (limited to 'upc')
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.core.prefs4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml82
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g (renamed from upc/org.eclipse.cdt.core.parser.upc/grammar/UPCParser.g)135
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java7
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java2046
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java3309
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParsersym.java390
8 files changed, 2956 insertions, 3020 deletions
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 @@
+<!--
+ 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
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+-->
+
+<project name="UPC Parser" default="upc" basedir=".">
+ <description>Generates the UPC parser from LPG grammar files</description>
+
+ <fail unless="lpg_exe">
+ Property $${lpg_exe} not set.
+ This property must be set to the full path to the LPG generator executable.
+ </fail>
+
+ <fail unless="lpg_template">
+ Property $${lpg_template} not set.
+ This property must be set to the full path to the LPG templates folder.
+ </fail>
+
+ <property name="upc_location" value="../src/org/eclipse/cdt/internal/core/dom/parser/upc"/>
+
+ <target name="upc">
+ <description>Generate the UPC parser</description>
+ <!-- Generate main parser -->
+ <antcall target="generate_upc">
+ <param name="grammar_name" value="UPCParser"/>
+ </antcall>
+ <!-- Generate parser for disambiguating declarations vs expression statements -->
+ <!--
+ <antcall target="generate_upc">
+ <param name="grammar_name" value="C99ExpressionStatementParser"/>
+ </antcall>
+ -->
+ <!-- Generate parser for disambiguating cast expressions vs binary expressions-->
+ <!--
+ <antcall target="generate_upc">
+ <param name="grammar_name" value="C99NoCastExpressionParser"/>
+ </antcall>
+ -->
+ <!-- Generate parser for disambiguating sizeof expressions -->
+ <!--
+ <antcall target="generate_upc">
+ <param name="grammar_name" value="C99SizeofExpressionParser"/>
+ </antcall>
+ -->
+ </target>
+
+
+ <target name="generate_upc">
+ <antcall target="generate">
+ <param name="grammar_dir" value="upc"/>
+ <param name="output_dir" value="${upc_location}"/>
+ <param name="grammar_name" value="${grammar_name}"/>
+ </antcall>
+ </target>
+
+
+ <target name="generate">
+ <property name="grammar_file" value="${grammar_dir}/${grammar_name}.g"/>
+ <echo message="lpg_exe=${lpg_exe}"/>
+ <echo message="lpg_template=${lpg_template}"/>
+ <echo message="grammar_file=${grammar_file}.g"/>
+ <echo message="output_dir=${output_dir}"/>
+
+ <exec executable="${lpg_exe}">
+ <arg value="${grammar_file}"/>
+ <env key="LPG_TEMPLATE" path="${lpg_template}"/>
+ </exec>
+
+ <move overwrite="true" toDir="${output_dir}">
+ <fileset dir=".">
+ <include name="${grammar_name}*.*"/>
+ </fileset>
+ </move>
+ </target>
+
+</project> \ 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
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.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.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.UPCParserAction;
-import org.eclipse.cdt.core.dom.c99.IPreprocessorTokenCollector;
+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<IToken>
+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 ());
}
-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);
- super.addToken(token);
+private void initActions(IASTTranslationUnit tu) {
+ action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
}
-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 void addToken(IToken token) {
+ token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
+ super.addToken(token);
}
-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);
+ //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));
}
-// implements IParserActionTokenProvider.getEOFToken()
-public IToken getEOFToken() {
- List tokens = getTokens();
- IToken eof = (IToken) tokens.get(tokens.size() - 1);
- return eof;
+public IASTNode getSecondaryParseResult() {
+ return action.getSecondaryParseResult();
}
+public String[] getOrderedTerminalSymbols() {
+ return UPCParsersym.orderedTerminalSymbols;
+}
-// implements IParserActionTokenProvider.getRuleTokenCount()
-public int getRuleTokenCount() {
- return (getRightSpan() - getLeftSpan()) + 1;
+public String getName() {
+ return "UPCParser"; //$NON-NLS-1$
}
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+
+
+private ITokenMap tokenMap = null;
+
+public void setTokens(List<IToken> tokens) {
+ resetTokenStream();
+ addToken(new Token(null, 0, 0, 0)); // dummy token
+ for(IToken token : tokens) {
+ token.setKind(tokenMap.mapKind(token.getKind()));
+ addToken(token);
+ }
+ addToken(new Token(null, 0, 0, UPCParsersym.TK_EOF_TOKEN));
}
+public UPCParser(String[] mapFrom) { // constructor
+ tokenMap = new TokenMap(UPCParsersym.orderedTerminalSymbols, mapFrom);
+}
+
+
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
{
-
+
//
- // Rule 1: <openscope> ::= $Empty
+ // Rule 1: <openscope-ast> ::= $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 ) { <openscope-ast> 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 ) { <openscope> 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 ) { <openscope> 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;
- }
-
- //
- // Rule 78: assignment_expression ::= unary_expression /= assignment_expression
- //
- case 78: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
- }
-
- //
- // Rule 79: assignment_expression ::= unary_expression %= assignment_expression
- //
- case 79: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
- }
-
- //
- // Rule 80: assignment_expression ::= unary_expression += assignment_expression
- //
- case 80: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
- }
-
- //
- // Rule 81: assignment_expression ::= unary_expression -= assignment_expression
- //
- case 81: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
- }
-
- //
- // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression
- //
- case 82: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
- }
-
- //
- // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression
- //
- case 83: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
- }
-
- //
- // Rule 84: assignment_expression ::= unary_expression &= assignment_expression
- //
- case 84: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
- }
-
- //
- // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression
- //
- case 85: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
- }
-
- //
- // Rule 86: assignment_expression ::= unary_expression |= assignment_expression
- //
- case 86: { action.beforeConsume(); action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
- }
-
- //
- // Rule 87: expression_in_statement ::= expression_list
- //
- case 87: { action.beforeConsume(); action. consumeExpression(); break;
- }
-
- //
- // Rule 88: expression ::= expression_list
- //
- case 88: { action.beforeConsume(); action. consumeExpression(); break;
- }
-
- //
- // Rule 89: expression_list ::= assignment_expression
- //
- case 89: { action.beforeConsume(); action. consumeExpressionList(true); break;
- }
-
- //
- // Rule 90: expression_list ::= expression_list , assignment_expression
- //
- case 90: { action.beforeConsume(); action. consumeExpressionList(false); break;
- }
-
- //
- // Rule 98: statement ::= ERROR_TOKEN
- //
- case 98: { action.beforeConsume(); action. consumeStatementProblem(); break;
- }
-
- //
- // Rule 99: labeled_statement ::= label_identifier : statement
- //
- case 99: { action.beforeConsume(); action. consumeStatementLabeled(); break;
- }
-
- //
- // Rule 100: labeled_statement ::= case constant_expression :
- //
- case 100: { action.beforeConsume(); action. consumeStatementCase(); break;
- }
-
- //
- // Rule 101: labeled_statement ::= default :
- //
- case 101: { action.beforeConsume(); action. consumeStatementDefault(); break;
- }
-
- //
- // Rule 102: label_identifier ::= identifier
- //
- case 102: { action.beforeConsume(); action. consumeName(); break;
- }
-
- //
- // Rule 103: compound_statement ::= { }
- //
- case 103: { action.beforeConsume(); action. consumeStatementEmptyCompoundStatement(); break;
- }
-
- //
- // Rule 104: compound_statement ::= { <openscope> block_item_list }
- //
- case 104: { action.beforeConsume(); action. consumeStatementCompoundStatement(); break;
- }
-
- //
- // Rule 108: block_item ::= declaration
- //
- case 108: { action.beforeConsume(); action. consumeStatementDeclaration(); break;
- }
-
- //
- // Rule 109: expression_statement ::= ;
- //
- case 109: { action.beforeConsume(); action. consumeStatementNull(); break;
- }
-
- //
- // Rule 110: expression_statement ::= expression_in_statement ;
- //
- case 110: { action.beforeConsume(); action. consumeStatementExpression(); break;
- }
-
- //
- // Rule 111: selection_statement ::= if ( expression ) statement
- //
- case 111: { action.beforeConsume(); action. consumeStatementIfThen(); break;
- }
-
- //
- // Rule 112: selection_statement ::= if ( expression ) statement else statement
- //
- case 112: { action.beforeConsume(); action. consumeStatementIfThenElse(); break;
- }
-
- //
- // Rule 113: selection_statement ::= switch ( expression ) statement
- //
- case 113: { action.beforeConsume(); action. consumeStatementSwitch(); break;
- }
-
- //
- // Rule 114: iteration_statement ::= do statement while ( expression ) ;
- //
- case 114: { action.beforeConsume(); action. consumeStatementDoLoop(); break;
- }
-
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ }
+
//
- // Rule 115: iteration_statement ::= while ( expression ) statement
+ // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
//
- case 115: { action.beforeConsume(); action. consumeStatementWhileLoop(); break;
- }
-
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ }
+
//
- // Rule 116: iteration_statement ::= for ( expression ; expression ; expression ) statement
+ // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
//
- case 116: { action.beforeConsume(); action. consumeStatementForLoop(true, true, true); break;
- }
-
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ }
+
//
- // Rule 117: iteration_statement ::= for ( expression ; expression ; ) statement
+ // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
//
- case 117: { action.beforeConsume(); action. consumeStatementForLoop(true, true, false); break;
- }
-
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ }
+
//
- // Rule 118: iteration_statement ::= for ( expression ; ; expression ) statement
+ // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
//
- case 118: { action.beforeConsume(); action. consumeStatementForLoop(true, false, true); break;
- }
-
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ }
+
//
- // Rule 119: iteration_statement ::= for ( expression ; ; ) statement
+ // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
//
- case 119: { action.beforeConsume(); action. consumeStatementForLoop(true, false, false); break;
- }
-
+ case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ }
+
//
- // Rule 120: iteration_statement ::= for ( ; expression ; expression ) statement
+ // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
//
- case 120: { action.beforeConsume(); action. consumeStatementForLoop(false, true, true); break;
- }
-
+ case 88: { action. consumeExpressionList(); break;
+ }
+
//
- // Rule 121: iteration_statement ::= for ( ; expression ; ) statement
+ // Rule 90: expression_list_opt ::= $Empty
//
- case 121: { action.beforeConsume(); action. consumeStatementForLoop(false, true, false); break;
- }
-
+ case 90: { action. consumeEmpty(); break;
+ }
+
//
- // Rule 122: iteration_statement ::= for ( ; ; expression ) statement
+ // Rule 100: statement ::= ERROR_TOKEN
//
- case 122: { action.beforeConsume(); action. consumeStatementForLoop(false, false, true); break;
- }
-
+ case 100: { action. consumeStatementProblem(); break;
+ }
+
//
- // Rule 123: iteration_statement ::= for ( ; ; ) statement
+ // Rule 101: labeled_statement ::= identifier_or_typedefname : statement
//
- case 123: { action.beforeConsume(); action. consumeStatementForLoop(false, false, false); break;
- }
-
+ case 101: { action. consumeStatementLabeled(); break;
+ }
+
//
- // Rule 124: iteration_statement ::= for ( declaration expression ; expression ) statement
+ // Rule 102: labeled_statement ::= case constant_expression :
//
- case 124: { action.beforeConsume(); action. consumeStatementForLoop(true, true, true); break;
- }
-
+ case 102: { action. consumeStatementCase(); break;
+ }
+
//
- // Rule 125: iteration_statement ::= for ( declaration expression ; ) statement
+ // Rule 103: labeled_statement ::= default :
//
- case 125: { action.beforeConsume(); action. consumeStatementForLoop(true, true, false); break;
- }
-
+ case 103: { action. consumeStatementDefault(); break;
+ }
+
//
- // Rule 126: iteration_statement ::= for ( declaration ; expression ) statement
+ // Rule 104: compound_statement ::= { }
//
- case 126: { action.beforeConsume(); action. consumeStatementForLoop(true, false, true); break;
- }
-
+ case 104: { action. consumeStatementCompoundStatement(false); break;
+ }
+
//
- // Rule 127: iteration_statement ::= for ( declaration ; ) statement
+ // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
//
- case 127: { action.beforeConsume(); action. consumeStatementForLoop(true, false, false); break;
- }
-
+ case 105: { action. consumeStatementCompoundStatement(true); break;
+ }
+
//
- // Rule 128: jump_statement ::= goto goto_identifier ;
+ // Rule 109: block_item ::= declaration
//
- case 128: { action.beforeConsume(); action. consumeStatementGoto(); break;
- }
-
+ case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ }
+
//
- // Rule 129: jump_statement ::= continue ;
+ // Rule 110: expression_statement ::= ;
//
- case 129: { action.beforeConsume(); action. consumeStatementContinue(); break;
- }
-
+ case 110: { action. consumeStatementNull(); break;
+ }
+
//
- // Rule 130: jump_statement ::= break ;
+ // Rule 111: expression_statement ::= expression_in_statement ;
//
- case 130: { action.beforeConsume(); action. consumeStatementBreak(); break;
- }
-
+ case 111: { action. consumeStatementExpression(); break;
+ }
+
//
- // Rule 131: jump_statement ::= return ;
+ // Rule 112: selection_statement ::= if ( expression ) statement
//
- case 131: { action.beforeConsume(); action. consumeStatementReturn(false); break;
- }
-
+ case 112: { action. consumeStatementIf(false); break;
+ }
+
//
- // Rule 132: jump_statement ::= return expression ;
+ // Rule 113: selection_statement ::= if ( expression ) statement else statement
//
- case 132: { action.beforeConsume(); action. consumeStatementReturn(true); break;
- }
-
+ case 113: { action. consumeStatementIf(true); break;
+ }
+
//
- // Rule 133: goto_identifier ::= identifier
+ // Rule 114: selection_statement ::= switch ( expression ) statement
//
- case 133: { action.beforeConsume(); action. consumeName(); break;
- }
-
+ case 114: { action. consumeStatementSwitch(); break;
+ }
+
//
- // Rule 134: declaration ::= declaration_specifiers ;
+ // Rule 116: expression_opt ::= $Empty
//
- case 134: { action.beforeConsume(); action. consumeDeclaration(false); break;
- }
-
+ case 116: { action. consumeEmpty(); break;
+ }
+
//
- // Rule 135: declaration ::= declaration_specifiers <openscope> init_declarator_list ;
+ // Rule 117: iteration_statement ::= do statement while ( expression ) ;
//
- case 135: { action.beforeConsume(); action. consumeDeclaration(true); break;
- }
-
+ case 117: { action. consumeStatementDoLoop(); break;
+ }
+
//
- // Rule 136: declaration_specifiers ::= <openscope> simple_declaration_specifiers
+ // Rule 118: iteration_statement ::= while ( expression ) statement
//
- case 136: { action.beforeConsume(); action. consumeDeclarationSpecifiersSimple(); break;
- }
-
+ case 118: { action. consumeStatementWhileLoop(); break;
+ }
+
//
- // Rule 137: declaration_specifiers ::= <openscope> struct_or_union_declaration_specifiers
+ // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
//
- case 137: { action.beforeConsume(); action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
+ case 119: { action. consumeStatementForLoop(); break;
+ }
+
//
- // Rule 138: declaration_specifiers ::= <openscope> enum_declaration_specifiers
+ // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
//
- case 138: { action.beforeConsume(); action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
+ case 120: { action. consumeStatementForLoop(); break;
+ }
+
//
- // Rule 139: declaration_specifiers ::= <openscope> typdef_name_declaration_specifiers
+ // Rule 121: jump_statement ::= goto identifier_or_typedefname ;
//
- case 139: { action.beforeConsume(); action. consumeDeclarationSpecifiersTypedefName(); break;
- }
-
+ case 121: { action. consumeStatementGoto(); break;
+ }
+
//
- // Rule 161: init_declarator ::= declarator = initializer
+ // Rule 122: jump_statement ::= continue ;
//
- case 161: { action.beforeConsume(); action. consumeDeclaratorWithInitializer(); break;
- }
-
+ case 122: { action. consumeStatementContinue(); break;
+ }
+
//
- // Rule 162: storage_class_specifier ::= typedef
+ // Rule 123: jump_statement ::= break ;
//
- case 162: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 123: { action. consumeStatementBreak(); break;
+ }
+
//
- // Rule 163: storage_class_specifier ::= extern
+ // Rule 124: jump_statement ::= return ;
//
- case 163: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 124: { action. consumeStatementReturn(false); break;
+ }
+
//
- // Rule 164: storage_class_specifier ::= static
+ // Rule 125: jump_statement ::= return expression ;
//
- case 164: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 125: { action. consumeStatementReturn(true); break;
+ }
+
//
- // Rule 165: storage_class_specifier ::= auto
+ // Rule 126: declaration ::= declaration_specifiers ;
//
- case 165: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 126: { action. consumeDeclarationSimple(false); break;
+ }
+
//
- // Rule 166: storage_class_specifier ::= register
+ // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
//
- case 166: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 127: { action. consumeDeclarationSimple(true); break;
+ }
+
//
- // Rule 167: type_specifier ::= void
+ // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 167: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 128: { action. consumeDeclarationSpecifiersSimple(); break;
+ }
+
//
- // Rule 168: type_specifier ::= char
+ // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
//
- case 168: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
//
- // Rule 169: type_specifier ::= short
+ // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
- case 169: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
//
- // Rule 170: type_specifier ::= int
+ // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 170: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
//
- // Rule 171: type_specifier ::= long
+ // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
//
- case 171: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ }
+
//
- // Rule 172: type_specifier ::= float
+ // Rule 157: init_declarator ::= complete_declarator = initializer
//
- case 172: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 157: { action. consumeDeclaratorWithInitializer(true); break;
+ }
+
//
- // Rule 173: type_specifier ::= double
+ // Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 173: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 159: { action. consumeDeclSpecToken(); break;
+ }
+
//
- // Rule 174: type_specifier ::= signed
+ // Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 174: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 165: { action. consumeDeclSpecToken(); break;
+ }
+
//
- // Rule 175: type_specifier ::= unsigned
+ // Rule 178: typedef_name_in_declspec ::= Completion
//
- case 175: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 178: { action. consumeDeclSpecToken(); break;
+ }
+
//
- // Rule 176: type_specifier ::= _Bool
+ // Rule 179: typedef_name_in_declspec ::= identifier
//
- case 176: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 179: { action. consumeDeclSpecToken(); break;
+ }
+
//
- // Rule 177: type_specifier ::= _Complex
+ // Rule 182: struct_or_union_specifier ::= struct { <openscope-ast> struct_declaration_list_opt }
//
- case 177: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 182: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
//
- // Rule 178: type_specifier ::= _Imaginary
+ // Rule 183: struct_or_union_specifier ::= union { <openscope-ast> struct_declaration_list_opt }
//
- case 178: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 183: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break;
+ }
+
//
- // Rule 179: typedef_name ::= identifier_or_completion
+ // Rule 184: struct_or_union_specifier ::= struct identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
//
- case 179: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 184: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
//
- // Rule 180: struct_or_union_specifier ::= struct { <openscope> struct_declaration_list_opt }
+ // Rule 185: struct_or_union_specifier ::= union identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
//
- case 180: { action.beforeConsume(); action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break;
- }
-
+ case 185: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break;
+ }
+
//
- // Rule 181: struct_or_union_specifier ::= union { <openscope> struct_declaration_list_opt }
+ // Rule 186: elaborated_specifier ::= struct identifier_or_typedefname
//
- case 181: { action.beforeConsume(); action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break;
- }
-
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
//
- // Rule 182: struct_or_union_specifier ::= struct struct_or_union_identifier { <openscope> struct_declaration_list_opt }
+ // Rule 187: elaborated_specifier ::= union identifier_or_typedefname
//
- case 182: { action.beforeConsume(); action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break;
- }
-
+ case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ }
+
//
- // Rule 183: struct_or_union_specifier ::= union struct_or_union_identifier { <openscope> struct_declaration_list_opt }
+ // Rule 188: elaborated_specifier ::= enum identifier_or_typedefname
//
- case 183: { action.beforeConsume(); action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break;
- }
-
+ case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ }
+
//
- // Rule 184: struct_or_union_specifier ::= struct struct_or_union_identifier
+ // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
//
- case 184: { action.beforeConsume(); action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_struct); break;
- }
-
+ case 193: { action. consumeStructDeclaration(true); break;
+ }
+
//
- // Rule 185: struct_or_union_specifier ::= union struct_or_union_identifier
+ // Rule 194: struct_declaration ::= specifier_qualifier_list ;
//
- case 185: { action.beforeConsume(); action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_union); break;
- }
-
+ case 194: { action. consumeStructDeclaration(false); break;
+ }
+
//
- // Rule 186: struct_or_union_identifier ::= identifier
+ // Rule 195: struct_declaration ::= ERROR_TOKEN
//
- case 186: { action.beforeConsume(); action. consumeName(); break;
- }
-
+ case 195: { action. consumeDeclarationProblem(); break;
+ }
+
//
- // Rule 191: struct_declaration ::= specifier_qualifier_list <openscope> struct_declarator_list ;
+ // Rule 201: struct_declarator ::= : constant_expression
//
- case 191: { action.beforeConsume(); action. consumeStructDeclaration(true); break;
- }
-
+ case 201: { action. consumeBitField(false); break;
+ }
+
//
- // Rule 192: struct_declaration ::= specifier_qualifier_list ;
+ // Rule 202: struct_declarator ::= declarator : constant_expression
//
- case 192: { action.beforeConsume(); action. consumeStructDeclaration(false); break;
- }
-
+ case 202: { action. consumeBitField(true); break;
+ }
+
//
- // Rule 197: struct_declarator ::= : constant_expression
+ // Rule 203: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 197: { action.beforeConsume(); action. consumeStructBitField(false); break;
- }
-
+ case 203: { action. consumeTypeSpecifierEnumeration(false); break;
+ }
+
//
- // Rule 198: struct_declarator ::= declarator : constant_expression
+ // Rule 204: enum_specifier ::= enum identifier_or_typedefname { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 198: { action.beforeConsume(); action. consumeStructBitField(true); break;
- }
-
+ case 204: { action. consumeTypeSpecifierEnumeration(true); break;
+ }
+
//
- // Rule 199: enum_identifier ::= identifier
+ // Rule 209: enumerator ::= identifier_or_typedefname
//
- case 199: { action.beforeConsume(); action. consumeName(); break;
- }
-
+ case 209: { action. consumeEnumerator(false); break;
+ }
+
//
- // Rule 200: enum_specifier ::= enum { <openscope> enumerator_list_opt }
+ // Rule 210: enumerator ::= identifier_or_typedefname = constant_expression
//
- case 200: { action.beforeConsume(); action. consumeTypeSpecifierEnumeration(false); break;
- }
-
+ case 210: { action. consumeEnumerator(true); break;
+ }
+
//
- // Rule 201: enum_specifier ::= enum enum_identifier { <openscope> enumerator_list_opt }
+ // Rule 211: type_qualifier ::= type_qualifier_token
//
- case 201: { action.beforeConsume(); action. consumeTypeSpecifierEnumeration(true); break;
- }
-
+ case 211: { action. consumeDeclSpecToken(); break;
+ }
+
//
- // Rule 202: enum_specifier ::= enum { <openscope> enumerator_list_opt , }
+ // Rule 215: function_specifier ::= inline
//
- case 202: { action.beforeConsume(); action. consumeTypeSpecifierEnumeration(false); break;
- }
-
+ case 215: { action. consumeDeclSpecToken(); break;
+ }
+
//
- // Rule 203: enum_specifier ::= enum enum_identifier { <openscope> enumerator_list_opt , }
+ // Rule 217: declarator ::= <openscope-ast> pointer_seq direct_declarator
//
- case 203: { action.beforeConsume(); action. consumeTypeSpecifierEnumeration(true); break;
- }
-
+ case 217: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
//
- // Rule 204: enum_specifier ::= enum enum_identifier
+ // Rule 222: basic_direct_declarator ::= declarator_id_name
//
- case 204: { action.beforeConsume(); action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
- }
-
+ case 222: { action. consumeDirectDeclaratorIdentifier(); break;
+ }
+
//
- // Rule 209: enumerator ::= enum_identifier
+ // Rule 223: basic_direct_declarator ::= ( declarator )
//
- case 209: { action.beforeConsume(); action. consumeEnumerator(false); break;
- }
-
+ case 223: { action. consumeDirectDeclaratorBracketed(); break;
+ }
+
//
- // Rule 210: enumerator ::= enum_identifier = constant_expression
+ // Rule 224: declarator_id_name ::= identifier
//
- case 210: { action.beforeConsume(); action. consumeEnumerator(true); break;
- }
-
+ case 224: { action. consumeIdentifierName(); break;
+ }
+
//
- // Rule 211: type_qualifier ::= const
+ // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 211: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
//
- // Rule 212: type_qualifier ::= restrict
+ // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 212: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
//
- // Rule 213: type_qualifier ::= volatile
+ // Rule 228: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
//
- case 213: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
+
//
- // Rule 214: function_specifier ::= inline
+ // Rule 229: function_direct_declarator ::= basic_direct_declarator ( )
//
- case 214: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ }
+
//
- // Rule 216: declarator ::= <openscope> pointer direct_declarator
+ // Rule 231: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
//
- case 216: { action.beforeConsume(); action. consumeDeclaratorWithPointer(true); break;
- }
-
+ case 231: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
//
- // Rule 217: direct_declarator ::= identifier
+ // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
//
- case 217: { action.beforeConsume(); action. consumeDirectDeclaratorIdentifier(); break;
- }
-
+ case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ }
+
//
- // Rule 218: direct_declarator ::= ( declarator )
+ // Rule 234: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
//
- case 218: { action.beforeConsume(); action. consumeDirectDeclaratorBracketed(); break;
- }
-
+ case 234: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
//
- // Rule 221: array_direct_declarator ::= direct_declarator array_modifier
+ // Rule 235: identifier_list ::= identifier
//
- case 221: { action.beforeConsume(); action. consumeDirectDeclaratorArrayDeclarator(); break;
- }
-
+ case 235: { action. consumeIdentifierKnR(); break;
+ }
+
//
- // Rule 222: function_direct_declarator ::= direct_declarator ( <openscope> parameter_type_list )
+ // Rule 236: identifier_list ::= identifier_list , identifier
//
- case 222: { action.beforeConsume(); action. consumeDirectDeclaratorFunctionDeclarator(true); break;
- }
-
+ case 236: { action. consumeIdentifierKnR(); break;
+ }
+
//
- // Rule 223: function_direct_declarator ::= direct_declarator ( )
+ // Rule 237: array_modifier ::= [ ]
//
- case 223: { action.beforeConsume(); action. consumeDirectDeclaratorFunctionDeclarator(false); break;
- }
-
+ case 237: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ }
+
//
- // Rule 225: function_declarator ::= <openscope> pointer function_direct_declarator
+ // Rule 238: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
//
- case 225: { action.beforeConsume(); action. consumeDeclaratorWithPointer(true); break;
- }
-
+ case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ }
+
//
- // Rule 226: knr_direct_declarator ::= direct_declarator ( <openscope> identifier_list )
+ // Rule 239: array_modifier ::= [ assignment_expression ]
//
- case 226: { action.beforeConsume(); action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
- }
-
+ case 239: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ }
+
//
- // Rule 228: knr_function_declarator ::= <openscope> pointer knr_direct_declarator
+ // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 228: { action.beforeConsume(); action. consumeDeclaratorWithPointer(true); break;
- }
-
+ case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ }
+
//
- // Rule 229: array_modifier ::= [ ]
+ // Rule 241: array_modifier ::= [ static assignment_expression ]
//
- case 229: { action.beforeConsume(); action. consumeDirectDeclaratorArrayModifier(false); break;
- }
-
+ case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ }
+
//
- // Rule 230: array_modifier ::= [ <openscope> type_qualifier_list ]
+ // Rule 242: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 230: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
- }
-
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ }
+
//
- // Rule 231: array_modifier ::= [ assignment_expression ]
+ // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
//
- case 231: { action.beforeConsume(); action. consumeDirectDeclaratorArrayModifier(true ); break;
- }
-
+ case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ }
+
//
- // Rule 232: array_modifier ::= [ <openscope> type_qualifier_list assignment_expression ]
+ // Rule 244: array_modifier ::= [ * ]
//
- case 232: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true ); break;
- }
-
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ }
+
//
- // Rule 233: array_modifier ::= [ static assignment_expression ]
+ // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
//
- case 233: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true ); break;
- }
-
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ }
+
//
- // Rule 234: array_modifier ::= [ static <openscope> type_qualifier_list assignment_expression ]
+ // Rule 247: pointer_seq ::= *
//
- case 234: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true ); break;
- }
-
+ case 247: { action. consumePointer(); break;
+ }
+
//
- // Rule 235: array_modifier ::= [ <openscope> type_qualifier_list static assignment_expression ]
+ // Rule 248: pointer_seq ::= pointer_seq *
//
- case 235: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true ); break;
- }
-
+ case 248: { action. consumePointer(); break;
+ }
+
//
- // Rule 236: array_modifier ::= [ * ]
+ // Rule 249: pointer_seq ::= * <openscope-ast> type_qualifier_list
//
- case 236: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
- }
-
+ case 249: { action. consumePointerTypeQualifierList(); break;
+ }
+
//
- // Rule 237: array_modifier ::= [ <openscope> type_qualifier_list * ]
+ // Rule 250: pointer_seq ::= pointer_seq * <openscope-ast> type_qualifier_list
//
- case 237: { action.beforeConsume(); action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
- }
-
+ case 250: { action. consumePointerTypeQualifierList(); break;
+ }
+
//
- // Rule 238: pointer ::= *
+ // Rule 253: parameter_type_list ::= parameter_list
//
- case 238: { action.beforeConsume(); action. consumePointer(); break;
- }
-
+ case 253: { action. consumeEmpty(); break;
+ }
+
//
- // Rule 239: pointer ::= pointer *
+ // Rule 254: parameter_type_list ::= parameter_list , ...
//
- case 239: { action.beforeConsume(); action. consumePointer(); break;
- }
-
+ case 254: { action. consumePlaceHolder(); break;
+ }
+
//
- // Rule 240: pointer ::= * <openscope> type_qualifier_list
+ // Rule 255: parameter_type_list ::= ...
//
- case 240: { action.beforeConsume(); action. consumePointerTypeQualifierList(); break;
- }
-
+ case 255: { action. consumePlaceHolder(); break;
+ }
+
//
- // Rule 241: pointer ::= pointer * <openscope> type_qualifier_list
+ // Rule 258: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
//
- case 241: { action.beforeConsume(); action. consumePointerTypeQualifierList(); break;
- }
-
+ case 258: { action. consumeParameterDeclaration(); break;
+ }
+
//
- // Rule 249: parameter_declaration ::= declaration_specifiers init_declarator
+ // Rule 259: parameter_declaration ::= declaration_specifiers
//
- case 249: { action.beforeConsume(); action. consumeParameterDeclaration(true); break;
- }
-
+ case 259: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ }
+
//
- // Rule 250: parameter_declaration ::= declaration_specifiers
+ // Rule 262: type_name ::= specifier_qualifier_list
//
- case 250: { action.beforeConsume(); action. consumeParameterDeclaration(false); break;
- }
-
+ case 262: { action. consumeTypeId(false); break;
+ }
+
//
- // Rule 251: parameter_declaration ::= declaration_specifiers abstract_declarator
+ // Rule 263: type_name ::= specifier_qualifier_list abstract_declarator
//
- case 251: { action.beforeConsume(); action. consumeParameterDeclaration(true); break;
- }
-
+ case 263: { action. consumeTypeId(true); break;
+ }
+
//
- // Rule 252: identifier_list ::= identifier
+ // Rule 265: abstract_declarator ::= <openscope-ast> pointer_seq
//
- case 252: { action.beforeConsume(); action. consumeName(); break;
- }
-
+ case 265: { action. consumeDeclaratorWithPointer(false); break;
+ }
+
//
- // Rule 253: identifier_list ::= identifier_list , identifier
+ // Rule 266: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
//
- case 253: { action.beforeConsume(); action. consumeName(); break;
- }
-
+ case 266: { action. consumeDeclaratorWithPointer(false); break;
+ }
+
//
- // Rule 254: type_name ::= specifier_qualifier_list
+ // Rule 270: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 254: { action.beforeConsume(); action. consumeTypeId(false); break;
- }
-
+ case 270: { action. consumeDirectDeclaratorBracketed(); break;
+ }
+
//
- // Rule 255: type_name ::= specifier_qualifier_list abstract_declarator
+ // Rule 271: array_direct_abstract_declarator ::= array_modifier
//
- case 255: { action.beforeConsume(); action. consumeTypeId(true); break;
- }
-
+ case 271: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ }
+
//
- // Rule 256: abstract_declarator ::= <openscope> pointer
+ // Rule 272: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 256: { action.beforeConsume(); action. consumeDeclaratorWithPointer(false); break;
- }
-
+ case 272: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
//
- // Rule 258: abstract_declarator ::= <openscope> pointer direct_abstract_declarator
+ // Rule 273: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 258: { action.beforeConsume(); action. consumeDeclaratorWithPointer(true); break;
- }
-
+ case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
//
- // Rule 259: direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 274: function_direct_abstract_declarator ::= ( )
//
- case 259: { action.beforeConsume(); action. consumeDirectDeclaratorBracketed(); break;
- }
-
+ case 274: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ }
+
//
- // Rule 260: direct_abstract_declarator ::= array_modifier
+ // Rule 275: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
//
- case 260: { action.beforeConsume(); action. consumeAbstractDeclaratorArrayModifier(false); break;
- }
-
+ case 275: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ }
+
//
- // Rule 261: direct_abstract_declarator ::= direct_abstract_declarator array_modifier
+ // Rule 276: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
//
- case 261: { action.beforeConsume(); action. consumeAbstractDeclaratorArrayModifier(true); break;
- }
-
+ case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ }
+
//
- // Rule 262: direct_abstract_declarator ::= ( )
+ // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
//
- case 262: { action.beforeConsume(); action. consumeAbstractDeclaratorFunctionDeclarator(false, false); break;
- }
-
+ case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
+
//
- // Rule 263: direct_abstract_declarator ::= direct_abstract_declarator ( )
+ // Rule 278: initializer ::= assignment_expression
//
- case 263: { action.beforeConsume(); action. consumeAbstractDeclaratorFunctionDeclarator(true, false); break;
- }
-
+ case 278: { action. consumeInitializer(); break;
+ }
+
//
- // Rule 264: direct_abstract_declarator ::= ( <openscope> parameter_type_list )
+ // Rule 279: initializer ::= { <openscope-ast> initializer_list comma_opt }
//
- case 264: { action.beforeConsume(); action. consumeAbstractDeclaratorFunctionDeclarator(false, true); break;
- }
-
+ case 279: { action. consumeInitializerList(); break;
+ }
+
//
- // Rule 265: direct_abstract_declarator ::= direct_abstract_declarator ( <openscope> parameter_type_list )
+ // Rule 284: designated_initializer ::= <openscope-ast> designation = initializer
//
- case 265: { action.beforeConsume(); action. consumeAbstractDeclaratorFunctionDeclarator(true, true); break;
- }
-
+ case 284: { action. consumeInitializerDesignated(); break;
+ }
+
//
- // Rule 266: initializer ::= assignment_expression
+ // Rule 288: designator_base ::= [ constant_expression ]
//
- case 266: { action.beforeConsume(); action. consumeInitializer(); break;
- }
-
+ case 288: { action. consumeDesignatorArray(); break;
+ }
+
//
- // Rule 267: initializer ::= { <openscope> initializer_list }
+ // Rule 289: designator_base ::= . identifier_or_typedefname
//
- case 267: { action.beforeConsume(); action. consumeInitializerList(); break;
- }
-
+ case 289: { action. consumeDesignatorField(); break;
+ }
+
//
- // Rule 268: initializer ::= { <openscope> initializer_list , }
+ // Rule 290: designator ::= [ constant_expression ]
//
- case 268: { action.beforeConsume(); action. consumeInitializerList(); break;
- }
-
+ case 290: { action. consumeDesignatorArray(); break;
+ }
+
//
- // Rule 273: designated_initializer ::= <openscope> designation initializer
+ // Rule 291: designator ::= . identifier_or_typedefname
//
- case 273: { action.beforeConsume(); action. consumeInitializerDesignated(); break;
- }
-
+ case 291: { action. consumeDesignatorField(); break;
+ }
+
//
- // Rule 277: designator ::= [ constant_expression ]
+ // Rule 292: translation_unit ::= external_declaration_list
//
- case 277: { action.beforeConsume(); action. consumeDesignatorArrayDesignator(); break;
- }
-
+ case 292: { action. consumeTranslationUnit(); break;
+ }
+
//
- // Rule 278: designator ::= . identifier
+ // Rule 293: translation_unit ::= $Empty
//
- case 278: { action.beforeConsume(); action. consumeDesignatorFieldDesignator(); break;
- }
-
+ case 293: { action. consumeTranslationUnit(); break;
+ }
+
//
- // Rule 279: translation_unit ::= external_declaration_list
+ // Rule 298: external_declaration ::= ;
//
- case 279: { action.beforeConsume(); action. consumeTranslationUnit(); break;
- }
-
+ case 298: { action. consumeDeclarationEmpty(); break;
+ }
+
//
- // Rule 280: translation_unit ::= $Empty
+ // Rule 299: external_declaration ::= ERROR_TOKEN
//
- case 280: { action.beforeConsume(); action. consumeTranslationUnit(); break;
- }
-
+ case 299: { action. consumeDeclarationProblem(); break;
+ }
+
//
- // Rule 285: external_declaration ::= ;
+ // Rule 302: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
//
- case 285: { action.beforeConsume(); action. consumeDeclarationEmpty(); break;
- }
-
+ case 302: { action. consumeFunctionDefinition(true); break;
+ }
+
//
- // Rule 286: external_declaration ::= ERROR_TOKEN
+ // Rule 303: function_definition ::= <openscope-ast> function_declarator function_body
//
- case 286: { action.beforeConsume(); action. consumeDeclarationProblem(); break;
- }
-
+ case 303: { action. consumeFunctionDefinition(false); break;
+ }
+
//
- // Rule 287: function_definition ::= declaration_specifiers <openscope> function_declarator compound_statement
+ // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
//
- case 287: { action.beforeConsume(); action. consumeFunctionDefinition(true); break;
- }
-
+ case 304: { action. consumeFunctionDefinitionKnR(); break;
+ }
+
//
- // Rule 288: function_definition ::= declaration_specifiers <openscope> knr_function_declarator <openscope> declaration_list compound_statement
+ // Rule 305: function_body ::= { }
//
- case 288: { action.beforeConsume(); action. consumeFunctionDefinitionKnR(); break;
- }
-
+ case 305: { action. consumeStatementCompoundStatement(false); break;
+ }
+
//
- // Rule 289: function_definition ::= function_declarator compound_statement
+ // Rule 306: function_body ::= { <openscope-ast> block_item_list }
//
- case 289: { action.beforeConsume(); action. consumeFunctionDefinition(false); break;
- }
-
+ case 306: { action. consumeStatementCompoundStatement(true); break;
+ }
+
//
- // Rule 292: constant ::= MYTHREAD
+ // Rule 307: literal ::= MYTHREAD
//
- case 292: { action.beforeConsume(); action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
- }
-
+ case 307: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
+ }
+
//
- // Rule 293: constant ::= THREADS
+ // Rule 308: literal ::= THREADS
//
- case 293: { action.beforeConsume(); action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
- }
-
+ case 308: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
+ }
+
//
- // Rule 294: constant ::= UPC_MAX_BLOCKSIZE
+ // Rule 309: literal ::= UPC_MAX_BLOCKSIZE
//
- case 294: { action.beforeConsume(); action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
- }
-
+ case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
+ }
+
//
- // Rule 295: unary_expression ::= upc_localsizeof unary_expression
+ // Rule 310: unary_expression ::= upc_localsizeof unary_expression
//
- case 295: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_localsizeof); break;
- }
-
+ case 310: { action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_localsizeof); break;
+ }
+
//
- // Rule 296: unary_expression ::= upc_localsizeof ( type_name )
+ // Rule 311: unary_expression ::= upc_localsizeof ( type_name )
//
- case 296: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_localsizeof); break;
- }
-
+ case 311: { action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_localsizeof); break;
+ }
+
//
- // Rule 297: unary_expression ::= upc_blocksizeof unary_expression
+ // Rule 312: unary_expression ::= upc_blocksizeof unary_expression
//
- case 297: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
- }
-
+ case 312: { action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
+ }
+
//
- // Rule 298: unary_expression ::= upc_blocksizeof ( type_name )
+ // Rule 313: unary_expression ::= upc_blocksizeof ( type_name )
//
- case 298: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
- }
-
+ case 313: { action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
+ }
+
//
- // Rule 299: unary_expression ::= upc_elemsizeof unary_expression
+ // Rule 314: unary_expression ::= upc_elemsizeof unary_expression
//
- case 299: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
- }
-
+ case 314: { action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
+ }
+
//
- // Rule 300: unary_expression ::= upc_elemsizeof ( type_name )
+ // Rule 315: unary_expression ::= upc_elemsizeof ( type_name )
//
- case 300: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
- }
-
+ case 315: { action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
+ }
+
//
- // Rule 304: shared_type_qualifier ::= shared
+ // Rule 319: shared_type_qualifier ::= shared
//
- case 304: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 319: { action. consumeToken(); break;
+ }
+
//
- // Rule 305: reference_type_qualifier ::= relaxed
+ // Rule 320: reference_type_qualifier ::= relaxed
//
- case 305: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 320: { action. consumeToken(); break;
+ }
+
//
- // Rule 306: reference_type_qualifier ::= strict
+ // Rule 321: reference_type_qualifier ::= strict
//
- case 306: { action.beforeConsume(); action. consumeToken(); break;
- }
-
+ case 321: { action. consumeToken(); break;
+ }
+
//
- // Rule 307: layout_qualifier ::= [ constant_expression ]
+ // Rule 322: layout_qualifier ::= [ constant_expression ]
//
- case 307: { action.beforeConsume(); action. consumeLayoutQualifier(true, false); break;
- }
-
+ case 322: { action. consumeLayoutQualifier(true, false); break;
+ }
+
//
- // Rule 308: layout_qualifier ::= [ * ]
+ // Rule 323: layout_qualifier ::= [ * ]
//
- case 308: { action.beforeConsume(); action. consumeLayoutQualifier(false, true); break;
- }
-
+ case 323: { action. consumeLayoutQualifier(false, true); break;
+ }
+
//
- // Rule 309: layout_qualifier ::= [ ]
+ // Rule 324: layout_qualifier ::= [ ]
//
- case 309: { action.beforeConsume(); action. consumeLayoutQualifier(false, false); break;
- }
-
+ case 324: { action. consumeLayoutQualifier(false, false); break;
+ }
+
//
- // Rule 311: synchronization_statement ::= upc_notify expression ;
+ // Rule 326: synchronization_statement ::= upc_notify expression ;
//
- case 311: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
- }
-
+ case 326: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
+ }
+
//
- // Rule 312: synchronization_statement ::= upc_notify ;
+ // Rule 327: synchronization_statement ::= upc_notify ;
//
- case 312: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
- }
-
+ case 327: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
+ }
+
//
- // Rule 313: synchronization_statement ::= upc_wait expression ;
+ // Rule 328: synchronization_statement ::= upc_wait expression ;
//
- case 313: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
- }
-
+ case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
+ }
+
//
- // Rule 314: synchronization_statement ::= upc_wait ;
+ // Rule 329: synchronization_statement ::= upc_wait ;
//
- case 314: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
- }
-
+ case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
+ }
+
//
- // Rule 315: synchronization_statement ::= upc_barrier expression ;
+ // Rule 330: synchronization_statement ::= upc_barrier expression ;
//
- case 315: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
- }
-
+ case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
+ }
+
//
- // Rule 316: synchronization_statement ::= upc_barrier ;
+ // Rule 331: synchronization_statement ::= upc_barrier ;
//
- case 316: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
- }
-
+ case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
+ }
+
//
- // Rule 317: synchronization_statement ::= upc_fence ;
+ // Rule 332: synchronization_statement ::= upc_fence ;
//
- case 317: { action.beforeConsume(); action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
- }
-
+ case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
+ }
+
//
- // Rule 318: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
+ // Rule 333: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
//
- case 318: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, true, true); break;
- }
-
+ case 333: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ }
+
//
- // Rule 319: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
+ // Rule 334: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
//
- case 319: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, true, false); break;
- }
-
+ case 334: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ }
+
//
- // Rule 320: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
+ // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
//
- case 320: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, false, true); break;
- }
-
+ case 335: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ }
+
//
- // Rule 321: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
+ // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
//
- case 321: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, false, false); break;
- }
-
+ case 336: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ }
+
//
- // Rule 322: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
+ // Rule 337: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
//
- case 322: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, true, true); break;
- }
-
+ case 337: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ }
+
//
- // Rule 323: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
+ // Rule 338: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
//
- case 323: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, true, false); break;
- }
-
+ case 338: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ }
+
//
- // Rule 324: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
+ // Rule 339: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
//
- case 324: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, false, true); break;
- }
-
+ case 339: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ }
+
//
- // Rule 325: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
+ // Rule 340: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
//
- case 325: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, false, false); break;
- }
-
+ case 340: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ }
+
//
- // Rule 326: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
+ // Rule 341: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
//
- case 326: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, true, true, true); break;
- }
-
+ case 341: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
+ }
+
//
- // Rule 327: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
+ // Rule 342: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
//
- case 327: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, true, true, false); break;
- }
-
+ case 342: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
+ }
+
//
- // Rule 328: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
+ // Rule 343: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
//
- case 328: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, true, false, true); break;
- }
-
+ case 343: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
+ }
+
//
- // Rule 329: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
+ // Rule 344: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
//
- case 329: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, true, false, false); break;
- }
-
+ case 344: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
+ }
+
//
- // Rule 330: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
+ // Rule 345: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
//
- case 330: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, false, true, true); break;
- }
-
+ case 345: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
+ }
+
//
- // Rule 331: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
+ // Rule 346: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
//
- case 331: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, false, true, false); break;
- }
-
+ case 346: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
+ }
+
//
- // Rule 332: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
+ // Rule 347: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
//
- case 332: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, false, false, true); break;
- }
-
+ case 347: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
+ }
+
//
- // Rule 333: iteration_statement ::= upc_forall ( ; ; ; ) statement
+ // Rule 348: iteration_statement ::= upc_forall ( ; ; ; ) statement
//
- case 333: { action.beforeConsume(); action. consumeStatementUPCForallLoop(false, false, false, false); break;
- }
-
+ case 348: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
+ }
+
//
- // Rule 334: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
+ // Rule 349: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
//
- case 334: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, true, true); break;
- }
-
+ case 349: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ }
+
//
- // Rule 335: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
+ // Rule 350: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
//
- case 335: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, true, false); break;
- }
-
+ case 350: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ }
+
//
- // Rule 336: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
+ // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
//
- case 336: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, false, true); break;
- }
-
+ case 351: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ }
+
//
- // Rule 337: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
+ // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
//
- case 337: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, true, false, false); break;
- }
-
+ case 352: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ }
+
//
- // Rule 338: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
+ // Rule 353: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
//
- case 338: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, true, true); break;
- }
-
+ case 353: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ }
+
//
- // Rule 339: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
+ // Rule 354: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
//
- case 339: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, true, false); break;
- }
-
+ case 354: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ }
+
//
- // Rule 340: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
+ // Rule 355: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
//
- case 340: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, false, true); break;
- }
-
+ case 355: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ }
+
//
- // Rule 341: iteration_statement ::= upc_forall ( declaration ; ; ) statement
+ // Rule 356: iteration_statement ::= upc_forall ( declaration ; ; ) statement
//
- case 341: { action.beforeConsume(); action. consumeStatementUPCForallLoop(true, false, false, false); break;
- }
-
+ case 356: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ }
+
//
- // Rule 343: affinity ::= continue
+ // Rule 358: 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,
- 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,0,0,0,0,0,0,
- -236,-22,-73,-6,-29,-137,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-24,0,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,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-11,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-223,0,0,0,0,0,0,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,
- 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,
- 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,
- 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,
- 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,
- 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,-333,0,0,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,-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,
+ 0,0,0,0,0,0,-241,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -61,0,0,0,-51,0,-12,-141,0,0,
+ 0,0,0,0,0,0,0,0,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,-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,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,
+ -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,
+ -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,-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,
+ -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,
- -199,-200,-201,0,0,0,0,0,0,0,
- 0,0,0,-340,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,-202,-203,-204,0,0,0,
- 0,0,0,0,0,0,0,-342,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,-205,-206,
- -207,0,0,0,0,0,0,0,0,0,
- 0,-343,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,-208,-209,-210,0,0,0,0,0,
- 0,0,0,0,0,-345,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,0,-219,-222,-245,0,
- 0,0,0,0,0,0,0,0,0,-348,
+ 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,
- -246,-247,-248,0,0,0,0,0,0,0,
- 0,0,0,-349,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-249,-259,-266,0,0,0,
- 0,0,0,0,0,0,0,-351,0,0,
+ 0,0,0,0,0,0,-137,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,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,-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,0,-359,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,0,0,0,0,0,0,0,-360,
+ 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,-361,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,0,0,0,-362,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,-364,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,-365,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,0,0,0,0,0,-366,
+ 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,-368,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,-369,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,0,0,-358,0,0,0,0,-175,
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,-359,0,0,0,0,-177,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,
+ -361,0,0,0,0,-178,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,-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,-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,-375,0,0,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,-378,0,0,
+ 0,0,-366,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -368,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,-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,-380,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,-381,
+ 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,-374,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,
+ -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,-383,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,-385,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,-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,-125,
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,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,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,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,-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,
- 0,0,0,0,0,0,0,0,0,-357,
+ 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,0,0,0,-377,0,0,0,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,-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,-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,-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,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,
+ 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,
+ 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,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,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,
+ 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,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,
+ 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,
- 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,
+ 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,74,25,26,27,28,29,30,
+ 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,81,82,0,1,2,3,
- 0,0,32,0,1,2,3,4,5,6,
+ 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,31,0,0,
- 1,2,3,63,5,6,7,8,9,10,
+ 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,0,0,53,0,4,4,
- 0,4,59,0,1,2,3,4,5,6,
+ 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,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,
+ 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,0,1,2,3,4,
+ 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,81,
- 82,0,0,0,0,1,0,3,0,3,
- 0,1,2,3,63,5,6,7,8,9,
+ 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,31,33,0,63,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,
- 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,
+ 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,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,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,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,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0
+ 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
};
};
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;

Back to the top