Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kucera2009-01-15 11:47:58 -0500
committerMike Kucera2009-01-15 11:47:58 -0500
commit7f0debb02ee3ae69906cf16cd82217d67a01757a (patch)
treec71ebe7c7479865574f59fc82a26fbc1392cc763
parentd52e5c0f1cec1270e4ac69af36727b506b6f209c (diff)
downloadorg.eclipse.cdt-7f0debb02ee3ae69906cf16cd82217d67a01757a.tar.gz
org.eclipse.cdt-7f0debb02ee3ae69906cf16cd82217d67a01757a.tar.xz
org.eclipse.cdt-7f0debb02ee3ae69906cf16cd82217d67a01757a.zip
added ability to "mix-in" grammar extensions and actions, support for extended gnu asm syntax
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguityResolver.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguityResolver.java4
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g18
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/common.g144
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g51
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g9
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g51
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g13
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g (renamed from lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/FixedBtParserTemplateD.g)146
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java232
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java360
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ParserUtil.java102
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java36
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java92
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gcc/GCCBuildASTParserAction.java77
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java25
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java25
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java25
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java25
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java59
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java59
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java59
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java59
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java59
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java59
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java40
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java2212
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java70
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java474
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java4056
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java30
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java5
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java25
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java25
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java25
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java25
36 files changed, 4545 insertions, 4235 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguityResolver.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguityResolver.java
index ba3783ac33..e3ada63e2e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguityResolver.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguityResolver.java
@@ -17,8 +17,8 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTAmbiguousNode;
* Visitor to resolve ast ambiguities in the right order, which is simply a depth
* first traversal.
*/
-final class CASTAmbiguityResolver extends ASTVisitor {
- CASTAmbiguityResolver() {
+public final class CASTAmbiguityResolver extends ASTVisitor {
+ public CASTAmbiguityResolver() {
super(false);
shouldVisitAmbiguousNodes= true;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguityResolver.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguityResolver.java
index 2fa7d19a30..a918e8ca50 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguityResolver.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguityResolver.java
@@ -27,7 +27,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
/**
* Visitor to resolve ast ambiguities in the right order
*/
-final class CPPASTAmbiguityResolver extends ASTVisitor {
+public final class CPPASTAmbiguityResolver extends ASTVisitor {
private static class ClassContext {
ArrayList<IASTNode> fDeferredNodes;
final IASTNode fNode;
@@ -44,7 +44,7 @@ final class CPPASTAmbiguityResolver extends ASTVisitor {
private ClassContext fCurrentContext;
private boolean fSkipInitializers;
- CPPASTAmbiguityResolver() {
+ public CPPASTAmbiguityResolver() {
super(false);
shouldVisitAmbiguousNodes= true;
shouldVisitDeclarations= true;
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g
index 3eabcd7e35..07e488b50f 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g
@@ -9,12 +9,6 @@
-- IBM Corporation - initial API and implementation
-----------------------------------------------------------------------------------
-
-$Include
-../common.g
-$End
-
-
$Terminals
-- Keywords
@@ -549,7 +543,7 @@ complete_declarator
storage_class_specifier
::= storage_class_specifier_token
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
storage_class_specifier_token
@@ -562,7 +556,7 @@ storage_class_specifier_token
simple_type_specifier
::= simple_type_specifier_token
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
simple_type_specifier_token
::= 'void'
@@ -581,9 +575,9 @@ simple_type_specifier_token
typedef_name_in_declspec
::= 'Completion'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'identifier'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
-- | 'TypedefName' -- remove identifier if this is uncommented
@@ -691,7 +685,7 @@ enumerator
type_qualifier
::= type_qualifier_token
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
type_qualifier_token
@@ -702,7 +696,7 @@ type_qualifier_token
function_specifier
::= 'inline'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
declarator
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/common.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/common.g
deleted file mode 100644
index fd36088d53..0000000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/common.g
+++ /dev/null
@@ -1,144 +0,0 @@
------------------------------------------------------------------------------------
--- 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
------------------------------------------------------------------------------------
-
-
-$Notice
--- Copied into all files generated by LPG
-/./*******************************************************************************
- * 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
- *********************************************************************************/
-
- // This file was generated by LPG
-./
-$End
-
-
-$Define
- -- These macros allow the template and header code to be customized by an extending parser.
-
- $ast_class /.Object./
-
- $extra_interfaces /. ./ -- can override this macro to provide additional interfaces
- $additional_interfaces /. , IParserActionTokenProvider, IParser $extra_interfaces ./
-
- $build_action_class /. ./ -- name of the class that has the AST building callbacks
- $node_factory_create_expression /. ./ -- expression that will create the node factory
-
- $Build /. $BeginAction action. ./ -- special action just for calling methods on the builder
- $EndBuild /. $EndAction ./
-$End
-
-
-$Globals
-/.
- 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.lrparser.lpgextensions.FixedBacktrackingParser;
-./
-$End
-
-$Headers
-/.
- private $build_action_class action;
-
- public $action_type() { // constructor
- }
-
- private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new $build_action_class($node_factory_create_expression, this, tu);
- action.setParserOptions(options);
- }
-
-
- public void addToken(IToken token) {
- token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
- super.addToken(token);
- }
-
-
- public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) {
- // this has to be done, or... kaboom!
- setStreamLength(getSize());
- initActions(tu, options);
-
- final int errorRepairCount = -1; // -1 means full error handling
- parser(null, errorRepairCount); // do the actual parse
- super.resetTokenStream(); // allow tokens to be garbage collected
-
- // the completion node may be null
- IASTCompletionNode compNode = action.getASTCompletionNode();
-
- //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));
- }
-
-
- public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
- }
-
- public String[] getOrderedTerminalSymbols() {
- return $sym_type.orderedTerminalSymbols;
- }
-
- @SuppressWarnings("nls")
- public String getName() {
- return "$action_type";
- }
-
-./
-$End
-
-$Globals
-/.
- import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
- import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-./
-$End
-
-$Headers
-/.
-
- 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, $sym_type.TK_EOF_TOKEN));
- }
-
- public $action_type(String[] mapFrom) { // constructor
- tokenMap = new TokenMap($sym_type.orderedTerminalSymbols, mapFrom);
- }
-
-
-./
-$End
-
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g
index 0543d0de1a..0fdc046318 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g
@@ -10,11 +10,6 @@
----------------------------------------------------------------------------------
-$Include
-../common.g
-$End
-
-
$Terminals
-- Keywords
@@ -810,9 +805,9 @@ no_type_declaration_specifier
| function_specifier
| cv_qualifier
| 'friend'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'typedef'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
no_type_declaration_specifiers
@@ -869,24 +864,24 @@ type_name_declaration_specifiers
storage_class_specifier
::= 'auto'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'register'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'static'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'extern'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'mutable'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
function_specifier
::= 'inline'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'virtual'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'explicit'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
-- We have no way to disambiguate token types
@@ -913,27 +908,27 @@ function_specifier
simple_type_specifier
::= 'char'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'wchar_t'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'bool'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'short'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'int'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'long'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'signed'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'unsigned'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'float'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'double'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'void'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
-- last two rules moved here from simple_type_specifier
@@ -1162,9 +1157,9 @@ cv_qualifier_seq_opt
cv_qualifier
::= 'const'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
| 'volatile'
- /. $Build consumeDeclSpecToken(); $EndBuild ./
+ /. $Build consumeToken(); $EndBuild ./
declarator_id_name
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g
index 0ee401193c..c528dc7505 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g
@@ -33,10 +33,17 @@ $Terminals
$End
--- Hook the extensions into the main grammar.
+
+
+
$Rules
+declaration
+ ::= extended_asm_declaration
+
+
+
no_type_declaration_specifier
::= attribute_or_decl_specifier
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g
index 03b9362004..6e07a75371 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g
@@ -26,6 +26,28 @@ $Terminals
$End
+$Globals
+/.
+ import org.eclipse.cdt.core.dom.lrparser.action.gcc.GCCBuildASTParserAction;
+./
+$End
+
+$Headers
+/.
+ private GCCBuildASTParserAction gccAction;
+./
+$End
+
+$Define
+
+ $action_initializations /.
+
+ gccAction = new GCCBuildASTParserAction($node_factory_create_expression, this, tu, astStack);
+ gccAction.setParserOptions(options);
+
+ ./
+
+$End
$Rules
@@ -73,11 +95,8 @@ attribute_parameter
decl_specifier
- ::= '__declspec' '(' extended_decl_modifier_seq_opt ')'
-
-extended_decl_modifier_seq_opt
- ::= extended_decl_modifier_seq
- | $empty
+ ::= '__declspec' '(' extended_decl_modifier_seq ')'
+ | '__declspec' '(' ')'
extended_decl_modifier_seq
::= extended_decl_modifier
@@ -96,9 +115,27 @@ extended_decl_modifier
asm_label
::= 'asm' '(' 'stringlit' ')'
-asm_label_opt
- ::= asm_label
+
+extended_asm_declaration
+ ::= 'asm' volatile_opt '(' extended_asm_param_seq ')' ';'
+ /. $BeginAction gccAction.consumeDeclarationASM(); $EndAction ./
+
+volatile_opt ::= 'volatile' | $empty
+
+extended_asm_param_seq
+ ::= extended_asm_param_with_operand
+ | extended_asm_param_seq ':' extended_asm_param_with_operand
+
+extended_asm_param_with_operand
+ ::= extended_asm_param
+ | extended_asm_param ',' extended_asm_param
| $empty
+
+extended_asm_param
+ ::= 'stringlit'
+ | 'stringlit' '(' 'identifier' ')'
+ | 'stringlit' '(' '*' 'identifier' ')'
+
$End
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g
index eef9432646..a6e52f023c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g
@@ -18,8 +18,17 @@
-- to point at the directory where the CPPParser.g file is located.
$Import
../cpp/CPPParser.g
+
+$DropRules
+
+-- will be replaced by extended asm syntax
+asm_definition
+ ::= 'asm' '(' 'stringlit' ')' ';'
+
+
$End
+
$Import
../gnu/GNUExtensions.g
$End
@@ -28,6 +37,10 @@ $End
$Rules
+asm_definition
+ ::= extended_asm_declaration
+
+
no_type_declaration_specifier
::= attribute_or_decl_specifier
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/FixedBtParserTemplateD.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g
index fc1ef55420..bc5892463c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/FixedBtParserTemplateD.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g
@@ -9,6 +9,13 @@
-- IBM Corporation - initial API and implementation
----------------------------------------------------------------------------------
+
+-- This template is a modified version of BtParserTemplateD.g.
+-- This template contains a fix for an LPG bug:
+-- http://sourceforge.net/tracker/index.php?func=detail&aid=1732851&group_id=155963&atid=797879
+
+
+
--
-- In a parser using this template, the following macro may be redefined:
--
@@ -285,6 +292,145 @@ $Trailers
./
$End
+
+$Notice
+-- Copied into all files generated by LPG
+/./*******************************************************************************
+ * 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
+ *********************************************************************************/
+
+ // This file was generated by LPG
+./
+$End
+
+
+$Define
+ -- These macros allow the template and header code to be customized by an extending parser.
+
+ $ast_class /.Object./
+
+ $extra_interfaces /. ./ -- can override this macro to provide additional interfaces
+ $additional_interfaces /. , IParserActionTokenProvider, IParser $extra_interfaces ./
+
+ $build_action_class /. ./ -- name of the class that has the AST building callbacks
+ $node_factory_create_expression /. ./ -- expression that will create the node factory
+
+ $action_initializations /. ./
+
+ $Build /. $BeginAction action. ./ -- special action just for calling methods on the builder
+ $EndBuild /. $EndAction ./
+$End
+
+
+$Globals
+/.
+ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+ import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+./
+$End
+
+$Headers
+/.
+ private $build_action_class action;
+ private ScopedStack<Object> astStack = new ScopedStack<Object>();
+
+ public $action_type() { // constructor
+ }
+
+ private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
+ action = new $build_action_class($node_factory_create_expression, this, tu, astStack);
+ action.setParserOptions(options);
+
+ $action_initializations
+ }
+
+
+ public void addToken(IToken token) {
+ token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
+ super.addToken(token);
+ }
+
+
+ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) {
+ // this has to be done, or... kaboom!
+ setStreamLength(getSize());
+ initActions(tu, options);
+
+ final int errorRepairCount = -1; // -1 means full error handling
+ parser(null, errorRepairCount); // do the actual parse
+ super.resetTokenStream(); // allow tokens to be garbage collected
+
+ // the completion node may be null
+ IASTCompletionNode compNode = action.getASTCompletionNode();
+
+ //action = null;
+ //parserAction = null;
+ return compNode;
+ }
+
+ // uncomment this method to use with backtracking parser
+ public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
+ }
+
+ public IASTNode getSecondaryParseResult() {
+ return (IASTNode) astStack.pop();
+ }
+
+ public String[] getOrderedTerminalSymbols() {
+ return $sym_type.orderedTerminalSymbols;
+ }
+
+ @SuppressWarnings("nls")
+ public String getName() {
+ return "$action_type";
+ }
+
+./
+$End
+
+$Globals
+/.
+ import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
+ import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+./
+$End
+
+$Headers
+/.
+
+ 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, $sym_type.TK_EOF_TOKEN));
+ }
+
+ public $action_type(String[] mapFrom) { // constructor
+ tokenMap = new TokenMap($sym_type.orderedTerminalSymbols, mapFrom);
+ }
+
+
+./
+$End
+
+
--
-- E N D O F T E M P L A T E
--
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java
new file mode 100644
index 0000000000..ddf394ad72
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java
@@ -0,0 +1,232 @@
+package org.eclipse.cdt.core.dom.lrparser.action;
+
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Set;
+
+import lpg.lpgjavaruntime.IToken;
+
+import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
+import org.eclipse.cdt.core.dom.ast.IASTName;
+import org.eclipse.cdt.core.dom.ast.IASTNode;
+import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
+
+@SuppressWarnings("restriction")
+public abstract class AbstractParserAction {
+
+
+ /**
+ * Used with very simple optional rules that just say
+ * that some particular token or keyword is optional.
+ * The presence of the PLACE_HOLDER on the stack means that the keyword
+ * was parsed, the presence of null means the keyword wasn't parsed.
+ *
+ * @see BuildASTParserAction#consumePlaceHolder()
+ * @see BuildASTParserAction#consumeEmpty()
+ */
+ protected static final Object PLACE_HOLDER = Boolean.TRUE; // any object will do
+
+
+
+ /** Provides an interface to the token stream */
+ protected final IParserActionTokenProvider parser;
+
+ /** Stack that holds the intermediate nodes as the AST is being built */
+ protected final ScopedStack<Object> astStack;
+
+ /** The completion node, only generated during a completion parse */
+ protected ASTCompletionNode completionNode;
+
+ /** The root node is created outside the parser because it is also needed by the preprocessor */
+ protected final IASTTranslationUnit tu;
+
+ /** Options that change the behavior of the parser actions */
+ protected Set<IParser.Options> options = EnumSet.noneOf(IParser.Options.class);
+
+
+
+
+ /**
+ * Completion tokens are represented by different kinds by different parsers.
+ */
+ protected abstract boolean isCompletionToken(IToken token);
+
+
+ protected abstract IASTName createName(char[] image);
+
+
+
+ /**
+ * Create a new parser action.
+ * @param tu Root node of the AST, its list of declarations should be empty.
+ * @throws NullPointerException if any of the parameters are null
+ */
+ public AbstractParserAction(IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
+ if(parser == null)
+ throw new NullPointerException("parser is null"); //$NON-NLS-1$
+ if(tu == null)
+ throw new NullPointerException("tu is null"); //$NON-NLS-1$
+ if(astStack == null)
+ throw new NullPointerException("astStack is null"); //$NON-NLS-1$
+
+ this.parser = parser;
+ this.tu = tu;
+ this.astStack = astStack;
+ }
+
+
+
+ protected void setOffsetAndLength(IASTNode node) {
+ int ruleOffset = parser.getLeftIToken().getStartOffset();
+ int ruleLength = parser.getRightIToken().getEndOffset() - ruleOffset;
+ ((ASTNode)node).setOffsetAndLength(ruleOffset, ruleLength < 0 ? 0 : ruleLength);
+ }
+
+ /**
+ * Creates a IASTName node from an identifier token.
+ * If the token is a completion token then it is added to the completion node.
+ */
+ protected IASTName createName(IToken token) {
+ IASTName name = createName(token.toString().toCharArray()); // TODO, token.toCharArray();
+ ParserUtil.setOffsetAndLength(name, token);
+
+ if(isCompletionToken(token))
+ addNameToCompletionNode(name, token.toString());
+
+ return name;
+ }
+
+ public void setParserOptions(Set<IParser.Options> options) {
+ this.options = options == null ? EnumSet.noneOf(IParser.Options.class) : options;
+ }
+
+ /**
+ * Creates a completion node if one does not yet exist and adds the
+ * given name to it.
+ */
+ protected void addNameToCompletionNode(IASTName name, String prefix) {
+ if(completionNode == null) {
+ prefix = (prefix == null || prefix.length() == 0) ? null : prefix;
+ completionNode = newCompletionNode(prefix, tu);
+ }
+
+ completionNode.addName(name);
+ }
+
+ public ASTCompletionNode newCompletionNode(String prefix, IASTTranslationUnit tu) {
+ return new ASTCompletionNode((prefix == null || prefix.length() == 0) ? null : prefix, tu);
+ }
+
+ /**
+ * Used to combine completion nodes from secondary parsers into
+ * the main completion node.
+ */
+ protected void addNameToCompletionNode(IASTCompletionNode node) {
+ if(node == null)
+ return;
+
+ for(IASTName name : node.getNames())
+ addNameToCompletionNode(name, node.getPrefix());
+ }
+
+
+ /**
+ * Returns the completion node if this is a completion parse, null otherwise.
+ */
+ public IASTCompletionNode getASTCompletionNode() {
+ return completionNode;
+ }
+
+
+ /**
+ * Runs the given parser on the given token list.
+ *
+ */
+ protected IASTNode runSecondaryParser(IParser secondaryParser) {
+ return runSecondaryParser(secondaryParser, parser.getRuleTokens());
+ }
+
+
+ /**
+ * Runs the given parser on the tokens that make up the current rule.
+ */
+ protected IASTNode runSecondaryParser(IParser secondaryParser, List<IToken> tokens) {
+ // the secondary parser will alter the token kinds, which will need to be undone
+ int[] savedKinds = new int[tokens.size()];
+
+ int i = 0;
+ for(IToken token : tokens)
+ savedKinds[i++] = token.getKind();
+
+ secondaryParser.setTokens(tokens);
+
+ // need to pass tu because any new completion nodes need to be linked directly to the root
+ IASTCompletionNode compNode = secondaryParser.parse(tu, options);
+ addNameToCompletionNode(compNode);
+ IASTNode result = secondaryParser.getSecondaryParseResult();
+
+ // restore the token kinds
+ i = 0;
+ for(IToken token : tokens)
+ token.setKind(savedKinds[i++]);
+
+ return result;
+ }
+
+
+
+ /*************************************************************************************************************
+ * Basic Actions
+ ************************************************************************************************************/
+
+
+ /**
+ * Method that is called by the special <openscope> production
+ * in order to create a new scope in the AST stack.
+ */
+ public void openASTScope() {
+ astStack.openScope();
+ }
+
+
+ /**
+ * Place null on the stack.
+ * Usually called for optional element to indicate the element
+ * was not parsed.
+ */
+ public void consumeEmpty() {
+ astStack.push(null);
+ }
+
+
+ /**
+ * Place a marker on the stack.
+ * Usually used for very simple optional elements to indicate
+ * the element was parsed. Usually the existence of an AST node
+ * on the stack is used instead of the marker, but for simple
+ * cases like an optional keyword this action is useful.
+ */
+ public void consumePlaceHolder() {
+ astStack.push(PLACE_HOLDER);
+ }
+
+
+ /**
+ * Just pops the stack, useful if you have a rule that generates
+ * a node but you don't need the node.
+ */
+ public void consumeIgnore() {
+ astStack.pop();
+ }
+
+
+ /**
+ * Gets the current token and places it on the stack for later consumption.
+ */
+ public void consumeToken() {
+ astStack.push(parser.getRightIToken());
+ }
+}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java
index 8188fd5b1f..94df5f9774 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java
@@ -10,14 +10,16 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action;
-import java.util.Arrays;
-import java.util.EnumSet;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.endOffset;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.length;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.offset;
+
import java.util.List;
-import java.util.Set;
import lpg.lpgjavaruntime.IToken;
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
+import org.eclipse.cdt.core.dom.ast.IASTASMDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTArrayModifier;
import org.eclipse.cdt.core.dom.ast.IASTArraySubscriptExpression;
@@ -25,7 +27,6 @@ import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
import org.eclipse.cdt.core.dom.ast.IASTBreakStatement;
import org.eclipse.cdt.core.dom.ast.IASTCaseStatement;
import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
import org.eclipse.cdt.core.dom.ast.IASTConditionalExpression;
import org.eclipse.cdt.core.dom.ast.IASTContinueStatement;
@@ -75,56 +76,22 @@ import org.eclipse.cdt.core.parser.IProblem;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.ASTQueries;
import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit;
+import org.eclipse.cdt.internal.core.dom.parser.AbstractGNUSourceCodeParser;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousExpression;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousStatement;
-
/**
* Parser semantic actions that are common to both C and C++.
*
* @author Mike Kucera
*/
@SuppressWarnings("restriction")
-public abstract class BuildASTParserAction {
-
-
- /**
- * Used with very simple optional rules that just say
- * that some particular token or keyword is optional.
- * The presence of the PLACE_HOLDER on the stack means that the keyword
- * was parsed, the presence of null means the keyword wasn't parsed.
- *
- * @see BuildASTParserAction#consumePlaceHolder()
- * @see BuildASTParserAction#consumeEmpty()
- */
- protected static final Object PLACE_HOLDER = Boolean.TRUE; // any object will do
-
-
-
- /** Stack that holds the intermediate nodes as the AST is being built */
- protected final ScopedStack<Object> astStack = new ScopedStack<Object>();
+public abstract class BuildASTParserAction extends AbstractParserAction {
- /** Provides an interface to the token stream */
- protected final IParserActionTokenProvider parser;
-
- /** The completion node, only generated during a completion parse */
- protected ASTCompletionNode completionNode;
-
- /** The root node is created outside the parser because it is also needed by the preprocessor */
- protected final IASTTranslationUnit tu;
/** Abstract factory for creating AST node objects */
private final INodeFactory nodeFactory;
- /** Options that change the behavior of the parser actions */
- protected Set<IParser.Options> options = EnumSet.noneOf(IParser.Options.class);
-
-
- /**
- * Completion tokens are represented by different kinds by different parsers.
- */
- protected abstract boolean isCompletionToken(IToken token);
-
/**
* Returns true if the token is an identifier.
@@ -158,273 +125,16 @@ public abstract class BuildASTParserAction {
* @param tu Root node of the AST, its list of declarations should be empty.
* @throws NullPointerException if any of the parameters are null
*/
- public BuildASTParserAction(INodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu) {
+ public BuildASTParserAction(INodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
+ super(parser, tu, astStack);
+
if(nodeFactory == null)
throw new NullPointerException("nodeFactory is null"); //$NON-NLS-1$
- if(parser == null)
- throw new NullPointerException("parser is null"); //$NON-NLS-1$
- if(tu == null)
- throw new NullPointerException("tu is null"); //$NON-NLS-1$
this.nodeFactory = nodeFactory;
- this.parser = parser;
- this.tu = tu;
}
-
- public void setParserOptions(Set<IParser.Options> options) {
- this.options = options == null ? EnumSet.noneOf(IParser.Options.class) : options;
- }
-
- /**
- * Creates a completion node if one does not yet exist and adds the
- * given name to it.
- */
- protected void addNameToCompletionNode(IASTName name, String prefix) {
- if(completionNode == null) {
- prefix = (prefix == null || prefix.length() == 0) ? null : prefix;
- completionNode = newCompletionNode(prefix, tu);
- }
-
- completionNode.addName(name);
- }
-
- public ASTCompletionNode newCompletionNode(String prefix, IASTTranslationUnit tu) {
- return new ASTCompletionNode((prefix == null || prefix.length() == 0) ? null : prefix, tu);
- }
-
- /**
- * Used to combine completion nodes from secondary parsers into
- * the main completion node.
- */
- protected void addNameToCompletionNode(IASTCompletionNode node) {
- if(node == null)
- return;
-
- for(IASTName name : node.getNames())
- addNameToCompletionNode(name, node.getPrefix());
- }
-
-
- /**
- * Returns the completion node if this is a completion parse, null otherwise.
- */
- public IASTCompletionNode getASTCompletionNode() {
- return completionNode;
- }
-
-
- /**
- * Used to get the result of secondary parsers.
- */
- public IASTNode getSecondaryParseResult() {
- return (IASTNode) astStack.pop();
- }
-
-
-
- protected static int offset(IToken token) {
- return token.getStartOffset();
- }
-
- protected static int offset(IASTNode node) {
- return ((ASTNode)node).getOffset();
- }
-
- protected static int length(IToken token) {
- return endOffset(token) - offset(token);
- }
-
- protected static int length(IASTNode node) {
- return ((ASTNode)node).getLength();
- }
-
- protected static int endOffset(IASTNode node) {
- return offset(node) + length(node);
- }
-
- protected static int endOffset(IToken token) {
- return token.getEndOffset();
- }
-
- protected void setOffsetAndLength(IASTNode node) {
- int ruleOffset = parser.getLeftIToken().getStartOffset();
- int ruleLength = parser.getRightIToken().getEndOffset() - ruleOffset;
- ((ASTNode)node).setOffsetAndLength(ruleOffset, ruleLength < 0 ? 0 : ruleLength);
- }
-
- protected static void setOffsetAndLength(IASTNode node, IToken token) {
- ((ASTNode)node).setOffsetAndLength(offset(token), length(token));
- }
-
- protected static void setOffsetAndLength(IASTNode node, int offset, int length) {
- ((ASTNode)node).setOffsetAndLength(offset, length);
- }
-
- protected static void setOffsetAndLength(IASTNode node, IASTNode from) {
- setOffsetAndLength(node, offset(from), length(from));
- }
-
-
- protected static boolean isSameName(IASTName name1, IASTName name2) {
- return Arrays.equals(name1.getLookupKey(), name2.getLookupKey());
- }
-
- /**
- * Creates a IASTName node from an identifier token.
- * If the token is a completion token then it is added to the completion node.
- */
- protected IASTName createName(IToken token) {
- IASTName name = nodeFactory.newName(token.toString().toCharArray()); // TODO, token.toCharArray();
- setOffsetAndLength(name, token);
-
- if(isCompletionToken(token))
- addNameToCompletionNode(name, token.toString());
-
- return name;
- }
-
-
- /**
- * Runs the given parser on the given token list.
- *
- */
- protected IASTNode runSecondaryParser(IParser secondaryParser) {
- return runSecondaryParser(secondaryParser, parser.getRuleTokens());
- }
-
-
- /**
- * Runs the given parser on the tokens that make up the current rule.
- */
- protected IASTNode runSecondaryParser(IParser secondaryParser, List<IToken> tokens) {
- // the secondary parser will alter the token kinds, which will need to be undone
- int[] savedKinds = new int[tokens.size()];
-
- int i = 0;
- for(IToken token : tokens)
- savedKinds[i++] = token.getKind();
-
- secondaryParser.setTokens(tokens);
-
- // need to pass tu because any new completion nodes need to be linked directly to the root
- IASTCompletionNode compNode = secondaryParser.parse(tu, options);
- addNameToCompletionNode(compNode);
- IASTNode result = secondaryParser.getSecondaryParseResult();
-
- // restore the token kinds
- i = 0;
- for(IToken token : tokens)
- token.setKind(savedKinds[i++]);
-
- return result;
- }
-
-
-
- /**
- * Allows simple pattern match testing of lists of tokens.
- *
- * TODO: need to take token mapping into account
- *
- * @throws NullPointerException if source or pattern is null
- */
- public static boolean matchTokens(List<IToken> source, ITokenMap tokenMap, Integer ... pattern) {
- if(source.size() != pattern.length) // throws NPE if either parameter is null
- return false;
-
- for(int i = 0, n = pattern.length; i < n; i++) {
- if(tokenMap.mapKind(source.get(i).getKind()) != pattern[i].intValue())
- return false;
- }
- return true;
- }
-
-
- /**
- * Finds the tokens in the given list that are between startOffset and endOffset.
- * Note, the offsets have to be exact.
- */
- public static List<IToken> tokenOffsetSubList(List<IToken> tokens, int startOffset, int endOffset) {
- int first = 0, last = 0;
- int i = 0;
- for(IToken t : tokens) {
- if(offset(t) == startOffset) {
- first = i;
- }
- if(endOffset(t) == endOffset) {
- last = i;
- break;
- }
- i++;
- }
- return tokens.subList(first, last + 1);
- }
-
-
- /*************************************************************************************************************
- * Start of actions.
- ************************************************************************************************************/
-
-
- /**
- * Method that is called by the special <openscope> production
- * in order to create a new scope in the AST stack.
- */
- public void openASTScope() {
- astStack.openScope();
- }
-
-
- /**
- * Place null on the stack.
- * Usually called for optional element to indicate the element
- * was not parsed.
- */
- public void consumeEmpty() {
- astStack.push(null);
- }
-
-
- /**
- * Place a marker on the stack.
- * Usually used for very simple optional elements to indicate
- * the element was parsed. Usually the existence of an AST node
- * on the stack is used instead of the marker, but for simple
- * cases like an optional keyword this action is useful.
- */
- public void consumePlaceHolder() {
- astStack.push(PLACE_HOLDER);
- }
-
-
- /**
- * Just pops the stack, useful if you have a rule that generates
- * a node but you don't need the node.
- */
- public void consumeIgnore() {
- astStack.pop();
- }
-
-
- /**
- * Gets the current token and places it on the stack for later consumption.
- */
- public void consumeDeclSpecToken() {
- astStack.push(parser.getRightIToken());
- }
-
-
- /**
- * Gets the current token and places it on the stack for later consumption.
- */
- public void consumeToken() {
- astStack.push(parser.getRightIToken());
- }
-
-
-
public void consumeTranslationUnit() {
// can't close the outermost scope
// the outermost scope may be empty if there are no tokens in the file
@@ -436,7 +146,7 @@ public abstract class BuildASTParserAction {
IASTDeclaration[] declarations = tu.getDeclarations();
if (declarations.length != 0) {
IASTNode d = declarations[declarations.length-1];
- setOffsetAndLength(tu, 0, offset(d) + length(d));
+ ParserUtil.setOffsetAndLength(tu, 0, offset(d) + length(d));
}
resolveAmbiguityNodes();
@@ -446,29 +156,18 @@ public abstract class BuildASTParserAction {
/**
* Removes ambiguity nodes from the AST by resolving them.
- * The ambiguity nodes resolve themselves when visited for the first time.
- * All ambiguities must be resolved before the AST is returned.
*
- * @see CPPASTAmbiguity.accept()
- * @see CASTAmbiguity.accept()
- *
- * TODO Ambiguity resolution may be avoided in the case that no
- * ambiguity nodes were created.
+ * @see AbstractGNUSourceCodeParser#resolveAmbiguities()
*/
private void resolveAmbiguityNodes() {
- tu.accept(EMPTY_VISITOR);
+ tu.accept(createAmbiguityNodeVisitor());
if (tu instanceof ASTTranslationUnit) {
((ASTTranslationUnit)tu).cleanupAfterAmbiguityResolution();
}
}
- /**
- * When applied to the AST causes ambiguity nodes to be resolved.
- */
- protected static final ASTVisitor EMPTY_VISITOR = new ASTVisitor() {
- { shouldVisitStatements = true; }
- };
+ protected abstract ASTVisitor createAmbiguityNodeVisitor();
/**
@@ -583,7 +282,7 @@ public abstract class BuildASTParserAction {
// }
IASTLiteralExpression expr = nodeFactory.newLiteralExpression(kind, rep);
- setOffsetAndLength(expr, token);
+ ParserUtil.setOffsetAndLength(expr, token);
astStack.push(expr);
}
@@ -795,7 +494,7 @@ public abstract class BuildASTParserAction {
List<IToken> tokens = parser.getRuleTokens();
IToken defaultToken = tokens.get(0);
IToken colonToken = tokens.get(1);
- setOffsetAndLength(stat, offset(defaultToken), offset(colonToken) - offset(defaultToken) + 1);
+ ParserUtil.setOffsetAndLength(stat, offset(defaultToken), offset(colonToken) - offset(defaultToken) + 1);
IASTCompoundStatement compound = nodeFactory.newCompoundStatement();
setOffsetAndLength(compound);
@@ -917,7 +616,7 @@ public abstract class BuildASTParserAction {
declarator = (IASTDeclarator) astStack.pop();
else {
declarator = nodeFactory.newDeclarator(nodeFactory.newName());
- setOffsetAndLength(declarator, parser.getRightIToken().getEndOffset(), 0);
+ ParserUtil.setOffsetAndLength(declarator, parser.getRightIToken().getEndOffset(), 0);
}
IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop();
@@ -976,6 +675,19 @@ public abstract class BuildASTParserAction {
setOffsetAndLength(declarator); // adjust the length to include the initializer
}
+
+ /**
+ * asm_definition
+ * ::= 'asm' '(' 'stringlit' ')' ';'
+ */
+ public void consumeDeclarationASM() {
+ String s = parser.getRuleTokens().get(2).toString();
+ IASTASMDeclaration asm = nodeFactory.newASMDeclaration(s);
+
+ setOffsetAndLength(asm);
+ astStack.push(asm);
+ }
+
/**
@@ -999,11 +711,11 @@ public abstract class BuildASTParserAction {
final int endOffset = parser.getRightIToken().getEndOffset();
IASTName name = nodeFactory.newName();
- setOffsetAndLength(name, endOffset, 0);
+ ParserUtil.setOffsetAndLength(name, endOffset, 0);
// it appears that a declarator is always required in the AST here
IASTDeclarator declarator = nodeFactory.newDeclarator(name);
- setOffsetAndLength(declarator, endOffset, 0);
+ ParserUtil.setOffsetAndLength(declarator, endOffset, 0);
IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop();
IASTParameterDeclaration declaration = nodeFactory.newParameterDeclaration(declSpec, declarator);
@@ -1113,7 +825,7 @@ public abstract class BuildASTParserAction {
int offset = offset(nested);
int length = endOffset(arrayModifier) - offset;
- setOffsetAndLength(declarator, offset, length);
+ ParserUtil.setOffsetAndLength(declarator, offset, length);
declarator.addArrayModifier(arrayModifier);
astStack.push(declarator);
@@ -1133,7 +845,7 @@ public abstract class BuildASTParserAction {
int offset = offset(name);
int length = endOffset(arrayModifier) - offset;
- setOffsetAndLength(decl, offset, length);
+ ParserUtil.setOffsetAndLength(decl, offset, length);
decl.addArrayModifier(arrayModifier);
astStack.push(decl);
@@ -1155,7 +867,7 @@ public abstract class BuildASTParserAction {
declarator.setNestedDeclarator(decl);
declarator.setName(nodeFactory.newName());
int offset = offset(decl);
- setOffsetAndLength(declarator, offset, endOffset - offset);
+ ParserUtil.setOffsetAndLength(declarator, offset, endOffset - offset);
astStack.push(declarator);
}
else {
@@ -1171,7 +883,7 @@ public abstract class BuildASTParserAction {
}
int offset = offset(name); // TODO
- setOffsetAndLength(declarator, offset, endOffset - offset);
+ ParserUtil.setOffsetAndLength(declarator, offset, endOffset - offset);
astStack.push(declarator);
}
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ParserUtil.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ParserUtil.java
new file mode 100644
index 0000000000..44885fcb9c
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ParserUtil.java
@@ -0,0 +1,102 @@
+package org.eclipse.cdt.core.dom.lrparser.action;
+
+import java.util.Arrays;
+import java.util.List;
+
+import lpg.lpgjavaruntime.IToken;
+
+import org.eclipse.cdt.core.dom.ast.IASTName;
+import org.eclipse.cdt.core.dom.ast.IASTNode;
+import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
+
+@SuppressWarnings("restriction")
+public final class ParserUtil {
+
+ private ParserUtil() {}
+
+
+ public static int offset(IToken token) {
+ return token.getStartOffset();
+ }
+
+ public static int offset(IASTNode node) {
+ return ((ASTNode)node).getOffset();
+ }
+
+ public static int length(IToken token) {
+ return endOffset(token) - offset(token);
+ }
+
+ public static int length(IASTNode node) {
+ return ((ASTNode)node).getLength();
+ }
+
+ public static int endOffset(IASTNode node) {
+ return offset(node) + length(node);
+ }
+
+ public static int endOffset(IToken token) {
+ return token.getEndOffset();
+ }
+
+
+
+
+ public static void setOffsetAndLength(IASTNode node, IToken token) {
+ ((ASTNode)node).setOffsetAndLength(offset(token), length(token));
+ }
+
+ public static void setOffsetAndLength(IASTNode node, int offset, int length) {
+ ((ASTNode)node).setOffsetAndLength(offset, length);
+ }
+
+ public static void setOffsetAndLength(IASTNode node, IASTNode from) {
+ setOffsetAndLength(node, offset(from), length(from));
+ }
+
+
+ public static boolean isSameName(IASTName name1, IASTName name2) {
+ return Arrays.equals(name1.getLookupKey(), name2.getLookupKey());
+ }
+
+
+ /**
+ * Allows simple pattern match testing of lists of tokens.
+ *
+ * @throws NullPointerException if source or pattern is null
+ */
+ public static boolean matchTokens(List<IToken> source, ITokenMap tokenMap, Integer ... pattern) {
+ if(source.size() != pattern.length) // throws NPE if either parameter is null
+ return false;
+
+ for(int i = 0, n = pattern.length; i < n; i++) {
+ if(tokenMap.mapKind(source.get(i).getKind()) != pattern[i].intValue())
+ return false;
+ }
+ return true;
+ }
+
+
+ /**
+ * Finds the tokens in the given list that are between startOffset and endOffset.
+ * Note, the offsets have to be exact.
+ */
+ public static List<IToken> tokenOffsetSubList(List<IToken> tokens, int startOffset, int endOffset) {
+ int first = 0, last = 0;
+ int i = 0;
+ for(IToken t : tokens) {
+ if(offset(t) == startOffset) {
+ first = i;
+ }
+ if(endOffset(t) == endOffset) {
+ last = i;
+ break;
+ }
+ i++;
+ }
+ return tokens.subList(first, last + 1);
+ }
+
+
+
+}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
index c4b351d9e6..cdb81619f8 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
@@ -12,12 +12,17 @@
package org.eclipse.cdt.core.dom.lrparser.action.c99;
import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.*;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.endOffset;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.length;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.offset;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.matchTokens;
import java.util.Collections;
import java.util.List;
import lpg.lpgjavaruntime.IToken;
+import org.eclipse.cdt.core.dom.ast.ASTVisitor;
import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
@@ -62,15 +67,19 @@ import org.eclipse.cdt.core.dom.lrparser.IParser;
import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
+import org.eclipse.cdt.core.dom.lrparser.action.ParserUtil;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
import org.eclipse.cdt.core.parser.util.CollectionUtils;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionParser;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99NoCastExpressionParser;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99SizeofExpressionParser;
+import org.eclipse.cdt.internal.core.dom.parser.ASTAmbiguousNode;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousExpression;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousStatement;
+import org.eclipse.cdt.internal.core.dom.parser.c.CASTAmbiguityResolver;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTAmbiguousExpression;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTAmbiguousStatement;
@@ -92,8 +101,9 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
* @param orderedTerminalSymbols When an instance of this class is created for a parser
* that parsers token kinds will be mapped back to the base C99 parser's token kinds.
*/
- public C99BuildASTParserAction(ICNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu) {
- super(nodeFactory, parser, tu);
+ public C99BuildASTParserAction(ICNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
+ super(nodeFactory, parser, tu, astStack);
+
this.nodeFactory = nodeFactory;
this.tokenMap = new TokenMap(C99Parsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
@@ -129,13 +139,16 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
return new C99SizeofExpressionParser(parser.getOrderedTerminalSymbols());
}
+ @Override
+ protected IASTName createName(char[] image) {
+ return nodeFactory.newName(image);
+ }
+
/********************************************************************
* Start of semantic actions.
********************************************************************/
-
-
/**
@@ -322,7 +335,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
public void consumePointer() {
IASTPointer pointer = nodeFactory.newPointer();
IToken star = parser.getRightIToken();
- setOffsetAndLength(pointer, star);
+ ParserUtil.setOffsetAndLength(pointer, star);
astStack.push(pointer);
}
@@ -618,14 +631,14 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
TK_for, TK_LeftParen, TK_Completion, TK_EOC, TK_EOC, TK_EOC, TK_EOC)) {
IASTName name = createName(tokens.get(2));
IASTIdExpression idExpression = nodeFactory.newIdExpression(name);
- setOffsetAndLength(idExpression, offset(name), length(name));
+ ParserUtil.setOffsetAndLength(idExpression, offset(name), length(name));
initializer = nodeFactory.newExpressionStatement(idExpression);
- setOffsetAndLength(initializer, offset(name), length(name));
+ ParserUtil.setOffsetAndLength(initializer, offset(name), length(name));
}
if(node != null)
- setOffsetAndLength(initializer, offset(node), length(node));
+ ParserUtil.setOffsetAndLength(initializer, offset(node), length(node));
IASTForStatement forStat = nodeFactory.newForStatement(initializer, expr2, expr3, body);
setOffsetAndLength(forStat);
@@ -727,4 +740,11 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
protected IASTAmbiguousStatement createAmbiguousStatement(IASTStatement... statements) {
return new CASTAmbiguousStatement(statements);
}
+
+ @Override
+ protected ASTVisitor createAmbiguityNodeVisitor() {
+ return new CASTAmbiguityResolver();
+ }
+
+
} \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
index 1860a18032..aa5d43d261 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
@@ -10,6 +10,10 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action.cpp;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.endOffset;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.length;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.matchTokens;
+import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.offset;
import static org.eclipse.cdt.core.parser.util.CollectionUtils.findFirstAndRemove;
import static org.eclipse.cdt.core.parser.util.CollectionUtils.reverseIterable;
import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.*;
@@ -21,7 +25,7 @@ import java.util.List;
import lpg.lpgjavaruntime.IToken;
-import org.eclipse.cdt.core.dom.ast.IASTASMDeclaration;
+import org.eclipse.cdt.core.dom.ast.ASTVisitor;
import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
@@ -95,6 +99,8 @@ import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
import org.eclipse.cdt.core.dom.lrparser.LPGTokenAdapter;
import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
+import org.eclipse.cdt.core.dom.lrparser.action.ParserUtil;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser;
@@ -105,6 +111,7 @@ import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPTemplateTypeParameterPa
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousExpression;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousStatement;
+import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguityResolver;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousDeclarator;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousExpression;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousStatement;
@@ -137,8 +144,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
* @param orderedTerminalSymbols When an instance of this class is created for a parser
* that parsers token kinds will be mapped back to the base C99 parser's token kinds.
*/
- public CPPBuildASTParserAction(ICPPNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu) {
- super(nodeFactory, parser, tu);
+ public CPPBuildASTParserAction(ICPPNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
+ super(nodeFactory, parser, tu, astStack);
+
this.nodeFactory = nodeFactory;
this.tokenMap = new TokenMap(CPPParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
@@ -158,7 +166,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
return baseKind(token) == TK_identifier;
}
-
+ @Override
+ protected IASTName createName(char[] image) {
+ return nodeFactory.newName(image);
+ }
+
@Override
protected IParser getExpressionParser() {
return new CPPExpressionParser(parser.getOrderedTerminalSymbols());
@@ -224,17 +236,17 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
IASTName secondName = ((IASTNamedTypeSpecifier)typeId.getDeclSpecifier()).getName();
IASTNamedTypeSpecifier newTypeSpecifier = nodeFactory.newTypedefNameSpecifier(firstName.copy());
- setOffsetAndLength(newTypeSpecifier, firstName);
+ ParserUtil.setOffsetAndLength(newTypeSpecifier, firstName);
IASTDeclarator newDeclarator = nodeFactory.newDeclarator(nodeFactory.newName());
- setOffsetAndLength(newDeclarator, endOffset(firstName), 0);
+ ParserUtil.setOffsetAndLength(newDeclarator, endOffset(firstName), 0);
IASTTypeId newTypeId = nodeFactory.newTypeId(newTypeSpecifier, newDeclarator);
- setOffsetAndLength(newTypeId, firstName);
+ ParserUtil.setOffsetAndLength(newTypeId, firstName);
IASTIdExpression newInitializer = nodeFactory.newIdExpression(secondName.copy());
- setOffsetAndLength(newInitializer, secondName);
+ ParserUtil.setOffsetAndLength(newInitializer, secondName);
ICPPASTNewExpression alternate = nodeFactory.newNewExpression(null, newInitializer, newTypeId);
- setOffsetAndLength(alternate, newExpression);
+ ParserUtil.setOffsetAndLength(alternate, newExpression);
newExpression.setIsGlobal(hasDoubleColon);
newExpression.setIsNewTypeId(isNewTypeId);
@@ -384,7 +396,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop();
IASTInitializerExpression initializer = nodeFactory.newInitializerExpression(expr);
- setOffsetAndLength(initializer, offset(expr), length(expr));
+ ParserUtil.setOffsetAndLength(initializer, offset(expr), length(expr));
declarator.setInitializer(initializer);
IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpec);
@@ -457,10 +469,10 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
IASTName name = ((IASTIdExpression)expr).getName().copy();
IASTNamedTypeSpecifier declSpec = nodeFactory.newTypedefNameSpecifier(name);
- setOffsetAndLength(declSpec, name);
+ ParserUtil.setOffsetAndLength(declSpec, name);
IASTDeclarator declarator = nodeFactory.newDeclarator(nodeFactory.newName());
- setOffsetAndLength(declarator, endOffset(declSpec), 0);
+ ParserUtil.setOffsetAndLength(declarator, endOffset(declSpec), 0);
IASTTypeId typeId = nodeFactory.newTypeId(declSpec, declarator);
setOffsetAndLength(typeId);
@@ -556,7 +568,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
int offset = offset(parser.getLeftIToken());
int length = offset - endOffset(oldName);
- setOffsetAndLength(newName, offset, length);
+ ParserUtil.setOffsetAndLength(newName, offset, length);
templateId.setTemplateName(newName);
}
@@ -651,9 +663,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
TK_for, TK_LeftParen, TK_Completion, TK_EOC, TK_EOC, TK_EOC, TK_EOC)) {
IASTName name = createName(tokens.get(2));
IASTIdExpression idExpression = nodeFactory.newIdExpression(name);
- setOffsetAndLength(idExpression, offset(name), length(name));
+ ParserUtil.setOffsetAndLength(idExpression, offset(name), length(name));
initializer = nodeFactory.newExpressionStatement(idExpression);
- setOffsetAndLength(initializer, offset(name), length(name));
+ ParserUtil.setOffsetAndLength(initializer, offset(name), length(name));
}
@@ -779,13 +791,13 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
ICPPASTQualifiedName qualifiedName = nodeFactory.newQualifiedName();
qualifiedName.setFullyQualified(startsWithColonColon);
- setOffsetAndLength(qualifiedName, startOffset, endOffset - startOffset);
+ ParserUtil.setOffsetAndLength(qualifiedName, startOffset, endOffset - startOffset);
for(IASTName name : reverseIterable(names))
qualifiedName.addName(name);
if(qualifiedName instanceof CPPASTQualifiedName) {
// compute the signature, find the tokens that make up the name
- List<IToken> nameTokens = tokenOffsetSubList(parser.getRuleTokens(), startOffset, endOffset);
+ List<IToken> nameTokens = ParserUtil.tokenOffsetSubList(parser.getRuleTokens(), startOffset, endOffset);
String signature = createStringRepresentation(nameTokens);
((CPPASTQualifiedName)qualifiedName).setSignature(signature);
}
@@ -793,7 +805,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
// there must be a dummy name in the AST after the last double colon, this happens with pointer to member names
if(endsWithColonColon) {
IASTName dummyName = nodeFactory.newName();
- setOffsetAndLength(dummyName, endOffset, 0);
+ ParserUtil.setOffsetAndLength(dummyName, endOffset, 0);
qualifiedName.addName(dummyName);
}
@@ -892,18 +904,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
/**
- * asm_definition
- * ::= 'asm' '(' 'stringlit' ')' ';'
- */
- public void consumeDeclarationASM() {
- String s = parser.getRuleTokens().get(2).toString();
- IASTASMDeclaration asm = nodeFactory.newASMDeclaration(s);
-
- setOffsetAndLength(asm);
- astStack.push(asm);
- }
-
- /**
* namespace_alias_definition
* ::= 'namespace' 'identifier' '=' dcolon_opt nested_name_specifier_opt namespace_name ';'
*/
@@ -1213,14 +1213,14 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
else if(matchTokens(ruleTokens, tokenMap, TK_Completion, TK_EndOfCompletion)) {
IASTName name = createName(parser.getLeftIToken());
declSpec = nodeFactory.newTypedefNameSpecifier(name);
- setOffsetAndLength(declSpec, offset(name), length(name));
+ ParserUtil.setOffsetAndLength(declSpec, offset(name), length(name));
declarators = Collections.emptyList(); // throw away the bogus declarator
}
// can happen if implicit int is used
else if(declSpec == null) {
declSpec = nodeFactory.newSimpleDeclSpecifier();
- setOffsetAndLength(declSpec, parser.getLeftIToken().getStartOffset(), 0);
+ ParserUtil.setOffsetAndLength(declSpec, parser.getLeftIToken().getStartOffset(), 0);
}
@@ -1242,11 +1242,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
int offset = offset(parser.getLeftIToken());
int length = endOffset(ruleTokens.get(ruleTokens.size()-2)) - offset;
- setOffsetAndLength(declSpec, offset, length);
+ ParserUtil.setOffsetAndLength(declSpec, offset, length);
IASTName name = createName(nameToken);
IASTDeclarator declarator = nodeFactory.newDeclarator(name);
- setOffsetAndLength(declarator, nameToken);
+ ParserUtil.setOffsetAndLength(declarator, nameToken);
declarators.add(declarator);
}
@@ -1280,23 +1280,23 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
IASTDeclarator nested = declarator.getNestedDeclarator();
ICPPASTSimpleDeclSpecifier simpleDeclSpec = nodeFactory.newSimpleDeclSpecifier(); // empty
- setOffsetAndLength(simpleDeclSpec, parser.getLeftIToken().getStartOffset(), 0);
+ ParserUtil.setOffsetAndLength(simpleDeclSpec, parser.getLeftIToken().getStartOffset(), 0);
- if(!classNames.isEmpty() && nested != null && isSameName(name, classNames.getLast())) {
+ if(!classNames.isEmpty() && nested != null && ParserUtil.isSameName(name, classNames.getLast())) {
IASTName paramTypeName = nested.getName(); // reuse the parameter name node
IASTNamedTypeSpecifier paramName = nodeFactory.newTypedefNameSpecifier(paramTypeName);
- setOffsetAndLength(paramName, paramTypeName);
+ ParserUtil.setOffsetAndLength(paramName, paramTypeName);
IASTDeclarator paramDeclarator = nodeFactory.newDeclarator(nodeFactory.newName());
- setOffsetAndLength(paramDeclarator, offset(paramName) + length(paramName), 0);
+ ParserUtil.setOffsetAndLength(paramDeclarator, offset(paramName) + length(paramName), 0);
ICPPASTParameterDeclaration parameter = nodeFactory.newParameterDeclaration(paramName, paramDeclarator);
- setOffsetAndLength(parameter, paramName);
+ ParserUtil.setOffsetAndLength(parameter, paramName);
ICPPASTFunctionDeclarator constructorDeclarator = nodeFactory.newFunctionDeclarator(name); // reuse the name node
constructorDeclarator.addParameterDeclaration(parameter);
- setOffsetAndLength(constructorDeclarator, offset(simpleDeclSpec), endOffset(paramDeclarator) - offset(simpleDeclSpec) + 1);
+ ParserUtil.setOffsetAndLength(constructorDeclarator, offset(simpleDeclSpec), endOffset(paramDeclarator) - offset(simpleDeclSpec) + 1);
astStack.push(constructorDeclarator);
astStack.push(simpleDeclSpec);
@@ -1314,11 +1314,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
for(IASTName n : qualifiedName.getNames())
newQualifiedName.addName(n);
- setOffsetAndLength(newQualifiedName, offset(name), endOffset(qualifiedName.getLastName()) - offset(name));
+ ParserUtil.setOffsetAndLength(newQualifiedName, offset(name), endOffset(qualifiedName.getLastName()) - offset(name));
declarator.setName(newQualifiedName);
- setOffsetAndLength(declarator, offset(name), length(declarator) + offset(declarator) - offset(name));
+ ParserUtil.setOffsetAndLength(declarator, offset(name), length(declarator) + offset(declarator) - offset(name));
astStack.push(declarator);
astStack.push(simpleDeclSpec);
@@ -1598,7 +1598,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
*/
public void consumeAbstractDeclaratorEmpty() {
IASTName name = nodeFactory.newName();
- setOffsetAndLength(name, offset(parser.getLeftIToken())+1, 0);
+ ParserUtil.setOffsetAndLength(name, offset(parser.getLeftIToken())+1, 0);
IASTDeclarator declarator = nodeFactory.newDeclarator(name);
setOffsetAndLength(declarator);
astStack.push(declarator);
@@ -1637,7 +1637,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
if(declSpec == null) { // can happen if implicit int is used
declSpec = nodeFactory.newSimpleDeclSpecifier();
- setOffsetAndLength(declSpec, parser.getLeftIToken().getStartOffset(), 0);
+ ParserUtil.setOffsetAndLength(declSpec, parser.getLeftIToken().getStartOffset(), 0);
}
else if(disambiguateToConstructor(declSpec, declarator)) {
declSpec = (IASTDeclSpecifier) astStack.pop();
@@ -1793,4 +1793,8 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
return new CPPASTAmbiguousStatement(statements);
}
+ @Override
+ protected ASTVisitor createAmbiguityNodeVisitor() {
+ return new CPPASTAmbiguityResolver();
+ }
} \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gcc/GCCBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gcc/GCCBuildASTParserAction.java
new file mode 100644
index 0000000000..21fc6b69b2
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gcc/GCCBuildASTParserAction.java
@@ -0,0 +1,77 @@
+package org.eclipse.cdt.core.dom.lrparser.action.gcc;
+
+import java.util.List;
+
+import lpg.lpgjavaruntime.IToken;
+
+import org.eclipse.cdt.core.dom.ast.IASTASMDeclaration;
+import org.eclipse.cdt.core.dom.ast.IASTName;
+import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
+import org.eclipse.cdt.core.dom.ast.INodeFactory;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.AbstractParserAction;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym;
+
+public class GCCBuildASTParserAction extends AbstractParserAction {
+
+ private final INodeFactory nodeFactory;
+
+ private final TokenMap tokenMap;
+
+ public GCCBuildASTParserAction(INodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
+ super(parser, tu, astStack);
+
+ this.nodeFactory = nodeFactory;
+ this.tokenMap = new TokenMap(GCCParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
+ }
+
+
+ @Override
+ protected IASTName createName(char[] image) {
+ return nodeFactory.newName(image);
+ }
+
+ @Override
+ protected boolean isCompletionToken(IToken token) {
+ return tokenMap.mapKind(token.getKind()) == GCCParsersym.TK_Completion;
+ }
+
+
+
+ /**
+ * Add support for GCC extended ASM declaration syntax.
+ *
+ *
+ * asm_definition -- same as in C++ but its not in C99 spec so we put it here
+ * ::= 'asm' '(' 'stringlit' ')' ';'
+ *
+ * extended_asm_declaration
+ * ::= 'asm' 'volatile' '(' extended_asm_param_seq ')' ';'
+ * | 'asm' '(' extended_asm_param_seq ')' ';'
+ *
+ */
+ public void consumeDeclarationASM() {
+ List<IToken> tokens = parser.getRuleTokens();
+
+ int firstToken = 2;
+ if(tokenMap.mapKind(tokens.get(1).getKind()) == GCCParsersym.TK_volatile)
+ firstToken = 3;
+
+ StringBuilder sb = new StringBuilder();
+ boolean first = true;
+ for(IToken token : tokens.subList(firstToken, tokens.size()-2)) {
+ if(!first)
+ sb.append(' ');
+ sb.append(token.toString());
+ first = false;
+ }
+
+ IASTASMDeclaration asm = nodeFactory.newASMDeclaration(sb.toString());
+ setOffsetAndLength(asm);
+ astStack.push(asm);
+ }
+
+
+}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java
index 9577abc7af..22f5f9a489 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -165,13 +166,16 @@ public class C99ExpressionParser extends PrsStream implements RuleAction , IPars
private C99BuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public C99ExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu);
+ action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -199,13 +203,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -767,25 +770,25 @@ public C99ExpressionParser(String[] mapFrom) { // constructor
//
// Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 159: { action. consumeDeclSpecToken(); break;
+ case 159: { action. consumeToken(); break;
}
//
// Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 165: { action. consumeDeclSpecToken(); break;
+ case 165: { action. consumeToken(); break;
}
//
// Rule 178: typedef_name_in_declspec ::= Completion
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 178: { action. consumeToken(); break;
}
//
// Rule 179: typedef_name_in_declspec ::= identifier
//
- case 179: { action. consumeDeclSpecToken(); break;
+ case 179: { action. consumeToken(); break;
}
//
@@ -875,13 +878,13 @@ public C99ExpressionParser(String[] mapFrom) { // constructor
//
// Rule 215: type_qualifier ::= type_qualifier_token
//
- case 215: { action. consumeDeclSpecToken(); break;
+ case 215: { action. consumeToken(); break;
}
//
// Rule 219: function_specifier ::= inline
//
- case 219: { action. consumeDeclSpecToken(); break;
+ case 219: { action. consumeToken(); break;
}
//
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
index 635a675bd5..044093e8dd 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -165,13 +166,16 @@ public class C99NoCastExpressionParser extends PrsStream implements RuleAction ,
private C99BuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public C99NoCastExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu);
+ action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -199,13 +203,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -761,25 +764,25 @@ public C99NoCastExpressionParser(String[] mapFrom) { // constructor
//
// Rule 158: storage_class_specifier ::= storage_class_specifier_token
//
- case 158: { action. consumeDeclSpecToken(); break;
+ case 158: { action. consumeToken(); break;
}
//
// Rule 164: simple_type_specifier ::= simple_type_specifier_token
//
- case 164: { action. consumeDeclSpecToken(); break;
+ case 164: { action. consumeToken(); break;
}
//
// Rule 177: typedef_name_in_declspec ::= Completion
//
- case 177: { action. consumeDeclSpecToken(); break;
+ case 177: { action. consumeToken(); break;
}
//
// Rule 178: typedef_name_in_declspec ::= identifier
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 178: { action. consumeToken(); break;
}
//
@@ -869,13 +872,13 @@ public C99NoCastExpressionParser(String[] mapFrom) { // constructor
//
// Rule 214: type_qualifier ::= type_qualifier_token
//
- case 214: { action. consumeDeclSpecToken(); break;
+ case 214: { action. consumeToken(); break;
}
//
// Rule 218: function_specifier ::= inline
//
- case 218: { action. consumeDeclSpecToken(); break;
+ case 218: { action. consumeToken(); break;
}
//
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java
index 5b123b462f..b75d93191e 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -165,13 +166,16 @@ public class C99Parser extends PrsStream implements RuleAction , IParserActionTo
private C99BuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public C99Parser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu);
+ action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -199,13 +203,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -767,25 +770,25 @@ public C99Parser(String[] mapFrom) { // constructor
//
// Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 159: { action. consumeDeclSpecToken(); break;
+ case 159: { action. consumeToken(); break;
}
//
// Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 165: { action. consumeDeclSpecToken(); break;
+ case 165: { action. consumeToken(); break;
}
//
// Rule 178: typedef_name_in_declspec ::= Completion
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 178: { action. consumeToken(); break;
}
//
// Rule 179: typedef_name_in_declspec ::= identifier
//
- case 179: { action. consumeDeclSpecToken(); break;
+ case 179: { action. consumeToken(); break;
}
//
@@ -875,13 +878,13 @@ public C99Parser(String[] mapFrom) { // constructor
//
// Rule 215: type_qualifier ::= type_qualifier_token
//
- case 215: { action. consumeDeclSpecToken(); break;
+ case 215: { action. consumeToken(); break;
}
//
// Rule 219: function_specifier ::= inline
//
- case 219: { action. consumeDeclSpecToken(); break;
+ case 219: { action. consumeToken(); break;
}
//
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java
index 3f67e667f9..7bc098faf1 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -165,13 +166,16 @@ public class C99SizeofExpressionParser extends PrsStream implements RuleAction ,
private C99BuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public C99SizeofExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu);
+ action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -199,13 +203,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -761,25 +764,25 @@ public C99SizeofExpressionParser(String[] mapFrom) { // constructor
//
// Rule 158: storage_class_specifier ::= storage_class_specifier_token
//
- case 158: { action. consumeDeclSpecToken(); break;
+ case 158: { action. consumeToken(); break;
}
//
// Rule 164: simple_type_specifier ::= simple_type_specifier_token
//
- case 164: { action. consumeDeclSpecToken(); break;
+ case 164: { action. consumeToken(); break;
}
//
// Rule 177: typedef_name_in_declspec ::= Completion
//
- case 177: { action. consumeDeclSpecToken(); break;
+ case 177: { action. consumeToken(); break;
}
//
// Rule 178: typedef_name_in_declspec ::= identifier
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 178: { action. consumeToken(); break;
}
//
@@ -869,13 +872,13 @@ public C99SizeofExpressionParser(String[] mapFrom) { // constructor
//
// Rule 214: type_qualifier ::= type_qualifier_token
//
- case 214: { action. consumeDeclSpecToken(); break;
+ case 214: { action. consumeToken(); break;
}
//
// Rule 218: function_specifier ::= inline
//
- case 218: { action. consumeDeclSpecToken(); break;
+ case 218: { action. consumeToken(); break;
}
//
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java
index ce11ca8d98..dd43000448 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -166,13 +167,16 @@ public class CPPExpressionParser extends PrsStream implements RuleAction , IPars
private CPPBuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public CPPExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu);
+ action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -200,13 +204,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -1110,127 +1113,127 @@ public CPPExpressionParser(String[] mapFrom) { // constructor
//
// Rule 234: no_type_declaration_specifier ::= friend
//
- case 234: { action. consumeDeclSpecToken(); break;
+ case 234: { action. consumeToken(); break;
}
//
// Rule 235: no_type_declaration_specifier ::= typedef
//
- case 235: { action. consumeDeclSpecToken(); break;
+ case 235: { action. consumeToken(); break;
}
//
// Rule 255: storage_class_specifier ::= auto
//
- case 255: { action. consumeDeclSpecToken(); break;
+ case 255: { action. consumeToken(); break;
}
//
// Rule 256: storage_class_specifier ::= register
//
- case 256: { action. consumeDeclSpecToken(); break;
+ case 256: { action. consumeToken(); break;
}
//
// Rule 257: storage_class_specifier ::= static
//
- case 257: { action. consumeDeclSpecToken(); break;
+ case 257: { action. consumeToken(); break;
}
//
// Rule 258: storage_class_specifier ::= extern
//
- case 258: { action. consumeDeclSpecToken(); break;
+ case 258: { action. consumeToken(); break;
}
//
// Rule 259: storage_class_specifier ::= mutable
//
- case 259: { action. consumeDeclSpecToken(); break;
+ case 259: { action. consumeToken(); break;
}
//
// Rule 260: function_specifier ::= inline
//
- case 260: { action. consumeDeclSpecToken(); break;
+ case 260: { action. consumeToken(); break;
}
//
// Rule 261: function_specifier ::= virtual
//
- case 261: { action. consumeDeclSpecToken(); break;
+ case 261: { action. consumeToken(); break;
}
//
// Rule 262: function_specifier ::= explicit
//
- case 262: { action. consumeDeclSpecToken(); break;
+ case 262: { action. consumeToken(); break;
}
//
// Rule 263: simple_type_specifier ::= char
//
- case 263: { action. consumeDeclSpecToken(); break;
+ case 263: { action. consumeToken(); break;
}
//
// Rule 264: simple_type_specifier ::= wchar_t
//
- case 264: { action. consumeDeclSpecToken(); break;
+ case 264: { action. consumeToken(); break;
}
//
// Rule 265: simple_type_specifier ::= bool
//
- case 265: { action. consumeDeclSpecToken(); break;
+ case 265: { action. consumeToken(); break;
}
//
// Rule 266: simple_type_specifier ::= short
//
- case 266: { action. consumeDeclSpecToken(); break;
+ case 266: { action. consumeToken(); break;
}
//
// Rule 267: simple_type_specifier ::= int
//
- case 267: { action. consumeDeclSpecToken(); break;
+ case 267: { action. consumeToken(); break;
}
//
// Rule 268: simple_type_specifier ::= long
//
- case 268: { action. consumeDeclSpecToken(); break;
+ case 268: { action. consumeToken(); break;
}
//
// Rule 269: simple_type_specifier ::= signed
//
- case 269: { action. consumeDeclSpecToken(); break;
+ case 269: { action. consumeToken(); break;
}
//
// Rule 270: simple_type_specifier ::= unsigned
//
- case 270: { action. consumeDeclSpecToken(); break;
+ case 270: { action. consumeToken(); break;
}
//
// Rule 271: simple_type_specifier ::= float
//
- case 271: { action. consumeDeclSpecToken(); break;
+ case 271: { action. consumeToken(); break;
}
//
// Rule 272: simple_type_specifier ::= double
//
- case 272: { action. consumeDeclSpecToken(); break;
+ case 272: { action. consumeToken(); break;
}
//
// Rule 273: simple_type_specifier ::= void
//
- case 273: { action. consumeDeclSpecToken(); break;
+ case 273: { action. consumeToken(); break;
}
//
@@ -1446,13 +1449,13 @@ public CPPExpressionParser(String[] mapFrom) { // constructor
//
// Rule 338: cv_qualifier ::= const
//
- case 338: { action. consumeDeclSpecToken(); break;
+ case 338: { action. consumeToken(); break;
}
//
// Rule 339: cv_qualifier ::= volatile
//
- case 339: { action. consumeDeclSpecToken(); break;
+ case 339: { action. consumeToken(); break;
}
//
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java
index 31bfccba97..f097e86450 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -166,13 +167,16 @@ public class CPPNoCastExpressionParser extends PrsStream implements RuleAction ,
private CPPBuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public CPPNoCastExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu);
+ action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -200,13 +204,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -1104,127 +1107,127 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
//
// Rule 233: no_type_declaration_specifier ::= friend
//
- case 233: { action. consumeDeclSpecToken(); break;
+ case 233: { action. consumeToken(); break;
}
//
// Rule 234: no_type_declaration_specifier ::= typedef
//
- case 234: { action. consumeDeclSpecToken(); break;
+ case 234: { action. consumeToken(); break;
}
//
// Rule 254: storage_class_specifier ::= auto
//
- case 254: { action. consumeDeclSpecToken(); break;
+ case 254: { action. consumeToken(); break;
}
//
// Rule 255: storage_class_specifier ::= register
//
- case 255: { action. consumeDeclSpecToken(); break;
+ case 255: { action. consumeToken(); break;
}
//
// Rule 256: storage_class_specifier ::= static
//
- case 256: { action. consumeDeclSpecToken(); break;
+ case 256: { action. consumeToken(); break;
}
//
// Rule 257: storage_class_specifier ::= extern
//
- case 257: { action. consumeDeclSpecToken(); break;
+ case 257: { action. consumeToken(); break;
}
//
// Rule 258: storage_class_specifier ::= mutable
//
- case 258: { action. consumeDeclSpecToken(); break;
+ case 258: { action. consumeToken(); break;
}
//
// Rule 259: function_specifier ::= inline
//
- case 259: { action. consumeDeclSpecToken(); break;
+ case 259: { action. consumeToken(); break;
}
//
// Rule 260: function_specifier ::= virtual
//
- case 260: { action. consumeDeclSpecToken(); break;
+ case 260: { action. consumeToken(); break;
}
//
// Rule 261: function_specifier ::= explicit
//
- case 261: { action. consumeDeclSpecToken(); break;
+ case 261: { action. consumeToken(); break;
}
//
// Rule 262: simple_type_specifier ::= char
//
- case 262: { action. consumeDeclSpecToken(); break;
+ case 262: { action. consumeToken(); break;
}
//
// Rule 263: simple_type_specifier ::= wchar_t
//
- case 263: { action. consumeDeclSpecToken(); break;
+ case 263: { action. consumeToken(); break;
}
//
// Rule 264: simple_type_specifier ::= bool
//
- case 264: { action. consumeDeclSpecToken(); break;
+ case 264: { action. consumeToken(); break;
}
//
// Rule 265: simple_type_specifier ::= short
//
- case 265: { action. consumeDeclSpecToken(); break;
+ case 265: { action. consumeToken(); break;
}
//
// Rule 266: simple_type_specifier ::= int
//
- case 266: { action. consumeDeclSpecToken(); break;
+ case 266: { action. consumeToken(); break;
}
//
// Rule 267: simple_type_specifier ::= long
//
- case 267: { action. consumeDeclSpecToken(); break;
+ case 267: { action. consumeToken(); break;
}
//
// Rule 268: simple_type_specifier ::= signed
//
- case 268: { action. consumeDeclSpecToken(); break;
+ case 268: { action. consumeToken(); break;
}
//
// Rule 269: simple_type_specifier ::= unsigned
//
- case 269: { action. consumeDeclSpecToken(); break;
+ case 269: { action. consumeToken(); break;
}
//
// Rule 270: simple_type_specifier ::= float
//
- case 270: { action. consumeDeclSpecToken(); break;
+ case 270: { action. consumeToken(); break;
}
//
// Rule 271: simple_type_specifier ::= double
//
- case 271: { action. consumeDeclSpecToken(); break;
+ case 271: { action. consumeToken(); break;
}
//
// Rule 272: simple_type_specifier ::= void
//
- case 272: { action. consumeDeclSpecToken(); break;
+ case 272: { action. consumeToken(); break;
}
//
@@ -1440,13 +1443,13 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
//
// Rule 337: cv_qualifier ::= const
//
- case 337: { action. consumeDeclSpecToken(); break;
+ case 337: { action. consumeToken(); break;
}
//
// Rule 338: cv_qualifier ::= volatile
//
- case 338: { action. consumeDeclSpecToken(); break;
+ case 338: { action. consumeToken(); break;
}
//
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java
index b4a2669bc1..8bbfe08c2e 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -166,13 +167,16 @@ public class CPPNoFunctionDeclaratorParser extends PrsStream implements RuleActi
private CPPBuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public CPPNoFunctionDeclaratorParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu);
+ action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -200,13 +204,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -1110,127 +1113,127 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor
//
// Rule 234: no_type_declaration_specifier ::= friend
//
- case 234: { action. consumeDeclSpecToken(); break;
+ case 234: { action. consumeToken(); break;
}
//
// Rule 235: no_type_declaration_specifier ::= typedef
//
- case 235: { action. consumeDeclSpecToken(); break;
+ case 235: { action. consumeToken(); break;
}
//
// Rule 255: storage_class_specifier ::= auto
//
- case 255: { action. consumeDeclSpecToken(); break;
+ case 255: { action. consumeToken(); break;
}
//
// Rule 256: storage_class_specifier ::= register
//
- case 256: { action. consumeDeclSpecToken(); break;
+ case 256: { action. consumeToken(); break;
}
//
// Rule 257: storage_class_specifier ::= static
//
- case 257: { action. consumeDeclSpecToken(); break;
+ case 257: { action. consumeToken(); break;
}
//
// Rule 258: storage_class_specifier ::= extern
//
- case 258: { action. consumeDeclSpecToken(); break;
+ case 258: { action. consumeToken(); break;
}
//
// Rule 259: storage_class_specifier ::= mutable
//
- case 259: { action. consumeDeclSpecToken(); break;
+ case 259: { action. consumeToken(); break;
}
//
// Rule 260: function_specifier ::= inline
//
- case 260: { action. consumeDeclSpecToken(); break;
+ case 260: { action. consumeToken(); break;
}
//
// Rule 261: function_specifier ::= virtual
//
- case 261: { action. consumeDeclSpecToken(); break;
+ case 261: { action. consumeToken(); break;
}
//
// Rule 262: function_specifier ::= explicit
//
- case 262: { action. consumeDeclSpecToken(); break;
+ case 262: { action. consumeToken(); break;
}
//
// Rule 263: simple_type_specifier ::= char
//
- case 263: { action. consumeDeclSpecToken(); break;
+ case 263: { action. consumeToken(); break;
}
//
// Rule 264: simple_type_specifier ::= wchar_t
//
- case 264: { action. consumeDeclSpecToken(); break;
+ case 264: { action. consumeToken(); break;
}
//
// Rule 265: simple_type_specifier ::= bool
//
- case 265: { action. consumeDeclSpecToken(); break;
+ case 265: { action. consumeToken(); break;
}
//
// Rule 266: simple_type_specifier ::= short
//
- case 266: { action. consumeDeclSpecToken(); break;
+ case 266: { action. consumeToken(); break;
}
//
// Rule 267: simple_type_specifier ::= int
//
- case 267: { action. consumeDeclSpecToken(); break;
+ case 267: { action. consumeToken(); break;
}
//
// Rule 268: simple_type_specifier ::= long
//
- case 268: { action. consumeDeclSpecToken(); break;
+ case 268: { action. consumeToken(); break;
}
//
// Rule 269: simple_type_specifier ::= signed
//
- case 269: { action. consumeDeclSpecToken(); break;
+ case 269: { action. consumeToken(); break;
}
//
// Rule 270: simple_type_specifier ::= unsigned
//
- case 270: { action. consumeDeclSpecToken(); break;
+ case 270: { action. consumeToken(); break;
}
//
// Rule 271: simple_type_specifier ::= float
//
- case 271: { action. consumeDeclSpecToken(); break;
+ case 271: { action. consumeToken(); break;
}
//
// Rule 272: simple_type_specifier ::= double
//
- case 272: { action. consumeDeclSpecToken(); break;
+ case 272: { action. consumeToken(); break;
}
//
// Rule 273: simple_type_specifier ::= void
//
- case 273: { action. consumeDeclSpecToken(); break;
+ case 273: { action. consumeToken(); break;
}
//
@@ -1440,13 +1443,13 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor
//
// Rule 336: cv_qualifier ::= const
//
- case 336: { action. consumeDeclSpecToken(); break;
+ case 336: { action. consumeToken(); break;
}
//
// Rule 337: cv_qualifier ::= volatile
//
- case 337: { action. consumeDeclSpecToken(); break;
+ case 337: { action. consumeToken(); break;
}
//
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java
index 57ea5df341..8d5a94fc2f 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -166,13 +167,16 @@ public class CPPParser extends PrsStream implements RuleAction , IParserActionTo
private CPPBuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public CPPParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu);
+ action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -200,13 +204,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -1110,127 +1113,127 @@ public CPPParser(String[] mapFrom) { // constructor
//
// Rule 234: no_type_declaration_specifier ::= friend
//
- case 234: { action. consumeDeclSpecToken(); break;
+ case 234: { action. consumeToken(); break;
}
//
// Rule 235: no_type_declaration_specifier ::= typedef
//
- case 235: { action. consumeDeclSpecToken(); break;
+ case 235: { action. consumeToken(); break;
}
//
// Rule 255: storage_class_specifier ::= auto
//
- case 255: { action. consumeDeclSpecToken(); break;
+ case 255: { action. consumeToken(); break;
}
//
// Rule 256: storage_class_specifier ::= register
//
- case 256: { action. consumeDeclSpecToken(); break;
+ case 256: { action. consumeToken(); break;
}
//
// Rule 257: storage_class_specifier ::= static
//
- case 257: { action. consumeDeclSpecToken(); break;
+ case 257: { action. consumeToken(); break;
}
//
// Rule 258: storage_class_specifier ::= extern
//
- case 258: { action. consumeDeclSpecToken(); break;
+ case 258: { action. consumeToken(); break;
}
//
// Rule 259: storage_class_specifier ::= mutable
//
- case 259: { action. consumeDeclSpecToken(); break;
+ case 259: { action. consumeToken(); break;
}
//
// Rule 260: function_specifier ::= inline
//
- case 260: { action. consumeDeclSpecToken(); break;
+ case 260: { action. consumeToken(); break;
}
//
// Rule 261: function_specifier ::= virtual
//
- case 261: { action. consumeDeclSpecToken(); break;
+ case 261: { action. consumeToken(); break;
}
//
// Rule 262: function_specifier ::= explicit
//
- case 262: { action. consumeDeclSpecToken(); break;
+ case 262: { action. consumeToken(); break;
}
//
// Rule 263: simple_type_specifier ::= char
//
- case 263: { action. consumeDeclSpecToken(); break;
+ case 263: { action. consumeToken(); break;
}
//
// Rule 264: simple_type_specifier ::= wchar_t
//
- case 264: { action. consumeDeclSpecToken(); break;
+ case 264: { action. consumeToken(); break;
}
//
// Rule 265: simple_type_specifier ::= bool
//
- case 265: { action. consumeDeclSpecToken(); break;
+ case 265: { action. consumeToken(); break;
}
//
// Rule 266: simple_type_specifier ::= short
//
- case 266: { action. consumeDeclSpecToken(); break;
+ case 266: { action. consumeToken(); break;
}
//
// Rule 267: simple_type_specifier ::= int
//
- case 267: { action. consumeDeclSpecToken(); break;
+ case 267: { action. consumeToken(); break;
}
//
// Rule 268: simple_type_specifier ::= long
//
- case 268: { action. consumeDeclSpecToken(); break;
+ case 268: { action. consumeToken(); break;
}
//
// Rule 269: simple_type_specifier ::= signed
//
- case 269: { action. consumeDeclSpecToken(); break;
+ case 269: { action. consumeToken(); break;
}
//
// Rule 270: simple_type_specifier ::= unsigned
//
- case 270: { action. consumeDeclSpecToken(); break;
+ case 270: { action. consumeToken(); break;
}
//
// Rule 271: simple_type_specifier ::= float
//
- case 271: { action. consumeDeclSpecToken(); break;
+ case 271: { action. consumeToken(); break;
}
//
// Rule 272: simple_type_specifier ::= double
//
- case 272: { action. consumeDeclSpecToken(); break;
+ case 272: { action. consumeToken(); break;
}
//
// Rule 273: simple_type_specifier ::= void
//
- case 273: { action. consumeDeclSpecToken(); break;
+ case 273: { action. consumeToken(); break;
}
//
@@ -1446,13 +1449,13 @@ public CPPParser(String[] mapFrom) { // constructor
//
// Rule 338: cv_qualifier ::= const
//
- case 338: { action. consumeDeclSpecToken(); break;
+ case 338: { action. consumeToken(); break;
}
//
// Rule 339: cv_qualifier ::= volatile
//
- case 339: { action. consumeDeclSpecToken(); break;
+ case 339: { action. consumeToken(); break;
}
//
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java
index 8b9afc78db..1f068d5311 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -166,13 +167,16 @@ public class CPPSizeofExpressionParser extends PrsStream implements RuleAction ,
private CPPBuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public CPPSizeofExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu);
+ action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -200,13 +204,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -1098,127 +1101,127 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor
//
// Rule 232: no_type_declaration_specifier ::= friend
//
- case 232: { action. consumeDeclSpecToken(); break;
+ case 232: { action. consumeToken(); break;
}
//
// Rule 233: no_type_declaration_specifier ::= typedef
//
- case 233: { action. consumeDeclSpecToken(); break;
+ case 233: { action. consumeToken(); break;
}
//
// Rule 253: storage_class_specifier ::= auto
//
- case 253: { action. consumeDeclSpecToken(); break;
+ case 253: { action. consumeToken(); break;
}
//
// Rule 254: storage_class_specifier ::= register
//
- case 254: { action. consumeDeclSpecToken(); break;
+ case 254: { action. consumeToken(); break;
}
//
// Rule 255: storage_class_specifier ::= static
//
- case 255: { action. consumeDeclSpecToken(); break;
+ case 255: { action. consumeToken(); break;
}
//
// Rule 256: storage_class_specifier ::= extern
//
- case 256: { action. consumeDeclSpecToken(); break;
+ case 256: { action. consumeToken(); break;
}
//
// Rule 257: storage_class_specifier ::= mutable
//
- case 257: { action. consumeDeclSpecToken(); break;
+ case 257: { action. consumeToken(); break;
}
//
// Rule 258: function_specifier ::= inline
//
- case 258: { action. consumeDeclSpecToken(); break;
+ case 258: { action. consumeToken(); break;
}
//
// Rule 259: function_specifier ::= virtual
//
- case 259: { action. consumeDeclSpecToken(); break;
+ case 259: { action. consumeToken(); break;
}
//
// Rule 260: function_specifier ::= explicit
//
- case 260: { action. consumeDeclSpecToken(); break;
+ case 260: { action. consumeToken(); break;
}
//
// Rule 261: simple_type_specifier ::= char
//
- case 261: { action. consumeDeclSpecToken(); break;
+ case 261: { action. consumeToken(); break;
}
//
// Rule 262: simple_type_specifier ::= wchar_t
//
- case 262: { action. consumeDeclSpecToken(); break;
+ case 262: { action. consumeToken(); break;
}
//
// Rule 263: simple_type_specifier ::= bool
//
- case 263: { action. consumeDeclSpecToken(); break;
+ case 263: { action. consumeToken(); break;
}
//
// Rule 264: simple_type_specifier ::= short
//
- case 264: { action. consumeDeclSpecToken(); break;
+ case 264: { action. consumeToken(); break;
}
//
// Rule 265: simple_type_specifier ::= int
//
- case 265: { action. consumeDeclSpecToken(); break;
+ case 265: { action. consumeToken(); break;
}
//
// Rule 266: simple_type_specifier ::= long
//
- case 266: { action. consumeDeclSpecToken(); break;
+ case 266: { action. consumeToken(); break;
}
//
// Rule 267: simple_type_specifier ::= signed
//
- case 267: { action. consumeDeclSpecToken(); break;
+ case 267: { action. consumeToken(); break;
}
//
// Rule 268: simple_type_specifier ::= unsigned
//
- case 268: { action. consumeDeclSpecToken(); break;
+ case 268: { action. consumeToken(); break;
}
//
// Rule 269: simple_type_specifier ::= float
//
- case 269: { action. consumeDeclSpecToken(); break;
+ case 269: { action. consumeToken(); break;
}
//
// Rule 270: simple_type_specifier ::= double
//
- case 270: { action. consumeDeclSpecToken(); break;
+ case 270: { action. consumeToken(); break;
}
//
// Rule 271: simple_type_specifier ::= void
//
- case 271: { action. consumeDeclSpecToken(); break;
+ case 271: { action. consumeToken(); break;
}
//
@@ -1434,13 +1437,13 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor
//
// Rule 336: cv_qualifier ::= const
//
- case 336: { action. consumeDeclSpecToken(); break;
+ case 336: { action. consumeToken(); break;
}
//
// Rule 337: cv_qualifier ::= volatile
//
- case 337: { action. consumeDeclSpecToken(); break;
+ case 337: { action. consumeToken(); break;
}
//
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java
index 4d68b802e2..8849971b65 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -166,13 +167,16 @@ public class CPPTemplateTypeParameterParser extends PrsStream implements RuleAct
private CPPBuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public CPPTemplateTypeParameterParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu);
+ action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -200,13 +204,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -1110,127 +1113,127 @@ public CPPTemplateTypeParameterParser(String[] mapFrom) { // constructor
//
// Rule 234: no_type_declaration_specifier ::= friend
//
- case 234: { action. consumeDeclSpecToken(); break;
+ case 234: { action. consumeToken(); break;
}
//
// Rule 235: no_type_declaration_specifier ::= typedef
//
- case 235: { action. consumeDeclSpecToken(); break;
+ case 235: { action. consumeToken(); break;
}
//
// Rule 255: storage_class_specifier ::= auto
//
- case 255: { action. consumeDeclSpecToken(); break;
+ case 255: { action. consumeToken(); break;
}
//
// Rule 256: storage_class_specifier ::= register
//
- case 256: { action. consumeDeclSpecToken(); break;
+ case 256: { action. consumeToken(); break;
}
//
// Rule 257: storage_class_specifier ::= static
//
- case 257: { action. consumeDeclSpecToken(); break;
+ case 257: { action. consumeToken(); break;
}
//
// Rule 258: storage_class_specifier ::= extern
//
- case 258: { action. consumeDeclSpecToken(); break;
+ case 258: { action. consumeToken(); break;
}
//
// Rule 259: storage_class_specifier ::= mutable
//
- case 259: { action. consumeDeclSpecToken(); break;
+ case 259: { action. consumeToken(); break;
}
//
// Rule 260: function_specifier ::= inline
//
- case 260: { action. consumeDeclSpecToken(); break;
+ case 260: { action. consumeToken(); break;
}
//
// Rule 261: function_specifier ::= virtual
//
- case 261: { action. consumeDeclSpecToken(); break;
+ case 261: { action. consumeToken(); break;
}
//
// Rule 262: function_specifier ::= explicit
//
- case 262: { action. consumeDeclSpecToken(); break;
+ case 262: { action. consumeToken(); break;
}
//
// Rule 263: simple_type_specifier ::= char
//
- case 263: { action. consumeDeclSpecToken(); break;
+ case 263: { action. consumeToken(); break;
}
//
// Rule 264: simple_type_specifier ::= wchar_t
//
- case 264: { action. consumeDeclSpecToken(); break;
+ case 264: { action. consumeToken(); break;
}
//
// Rule 265: simple_type_specifier ::= bool
//
- case 265: { action. consumeDeclSpecToken(); break;
+ case 265: { action. consumeToken(); break;
}
//
// Rule 266: simple_type_specifier ::= short
//
- case 266: { action. consumeDeclSpecToken(); break;
+ case 266: { action. consumeToken(); break;
}
//
// Rule 267: simple_type_specifier ::= int
//
- case 267: { action. consumeDeclSpecToken(); break;
+ case 267: { action. consumeToken(); break;
}
//
// Rule 268: simple_type_specifier ::= long
//
- case 268: { action. consumeDeclSpecToken(); break;
+ case 268: { action. consumeToken(); break;
}
//
// Rule 269: simple_type_specifier ::= signed
//
- case 269: { action. consumeDeclSpecToken(); break;
+ case 269: { action. consumeToken(); break;
}
//
// Rule 270: simple_type_specifier ::= unsigned
//
- case 270: { action. consumeDeclSpecToken(); break;
+ case 270: { action. consumeToken(); break;
}
//
// Rule 271: simple_type_specifier ::= float
//
- case 271: { action. consumeDeclSpecToken(); break;
+ case 271: { action. consumeToken(); break;
}
//
// Rule 272: simple_type_specifier ::= double
//
- case 272: { action. consumeDeclSpecToken(); break;
+ case 272: { action. consumeToken(); break;
}
//
// Rule 273: simple_type_specifier ::= void
//
- case 273: { action. consumeDeclSpecToken(); break;
+ case 273: { action. consumeToken(); break;
}
//
@@ -1446,13 +1449,13 @@ public CPPTemplateTypeParameterParser(String[] mapFrom) { // constructor
//
// Rule 338: cv_qualifier ::= const
//
- case 338: { action. consumeDeclSpecToken(); break;
+ case 338: { action. consumeToken(); break;
}
//
// Rule 339: cv_qualifier ::= volatile
//
- case 339: { action. consumeDeclSpecToken(); break;
+ case 339: { action. consumeToken(); break;
}
//
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java
index 4c722f2ebd..4e617e150f 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -27,6 +28,8 @@ import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
+import org.eclipse.cdt.core.dom.lrparser.action.gcc.GCCBuildASTParserAction;
+
public class GCCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
{
private static ParseTable prs = new GCCParserprs();
@@ -165,13 +168,21 @@ public class GCCParser extends PrsStream implements RuleAction , IParserActionTo
private C99BuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public GCCParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu);
+ action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
+
+ gccAction = new GCCBuildASTParserAction( CNodeFactory.getDefault() , this, tu, astStack);
+ gccAction.setParserOptions(options);
+
+
}
@@ -199,13 +210,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -237,6 +247,8 @@ public GCCParser(String[] mapFrom) { // constructor
+private GCCBuildASTParserAction gccAction;
+
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
@@ -767,25 +779,25 @@ public GCCParser(String[] mapFrom) { // constructor
//
// Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 159: { action. consumeDeclSpecToken(); break;
+ case 159: { action. consumeToken(); break;
}
//
// Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 165: { action. consumeDeclSpecToken(); break;
+ case 165: { action. consumeToken(); break;
}
//
// Rule 178: typedef_name_in_declspec ::= Completion
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 178: { action. consumeToken(); break;
}
//
// Rule 179: typedef_name_in_declspec ::= identifier
//
- case 179: { action. consumeDeclSpecToken(); break;
+ case 179: { action. consumeToken(); break;
}
//
@@ -875,13 +887,13 @@ public GCCParser(String[] mapFrom) { // constructor
//
// Rule 215: type_qualifier ::= type_qualifier_token
//
- case 215: { action. consumeDeclSpecToken(); break;
+ case 215: { action. consumeToken(); break;
}
//
// Rule 219: function_specifier ::= inline
//
- case 219: { action. consumeDeclSpecToken(); break;
+ case 219: { action. consumeToken(); break;
}
//
@@ -1261,6 +1273,12 @@ public GCCParser(String[] mapFrom) { // constructor
//
case 331: { action. consumeIgnore(); break;
}
+
+ //
+ // Rule 341: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
+ //
+ case 341: { gccAction.consumeDeclarationASM(); break;
+ }
default:
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java
index fa8185c63a..e52ea0f95b 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java
@@ -67,254 +67,254 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
0,1,2,1,1,1,1,1,2,4,
3,6,2,4,1,1,1,1,2,6,
3,1,3,1,4,0,1,1,1,3,
- 1,0,4,1,0,1,2,1,3,4,
- 4,1,0,1,2,2,3,2,2,3,
- 1,1,1,1,1,-92,-29,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-6,-25,
- 0,0,-2,-102,0,0,0,-214,-297,0,
- 0,0,0,0,0,0,0,-45,0,-8,
- -42,0,0,0,0,0,0,0,-12,0,
- 0,0,0,0,0,-3,0,-9,0,0,
- 0,0,0,-27,0,0,0,0,0,0,
- 0,0,0,0,0,0,-31,-26,0,0,
- 0,0,0,0,-10,0,0,-269,0,0,
- 0,0,0,0,-58,-131,-105,0,0,0,
- 0,0,-22,0,0,0,0,0,0,0,
- 0,0,0,-157,0,-109,0,0,0,0,
- 0,0,0,-313,0,0,0,-23,0,-106,
- 0,0,0,0,0,-33,0,-28,0,0,
- 0,0,0,0,0,0,-219,0,0,0,
- 0,0,0,0,0,0,-30,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-166,0,0,0,
- 0,0,0,0,-271,0,0,0,0,0,
- 0,0,0,0,-237,-34,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-46,-306,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-11,0,-114,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -35,0,0,-133,0,-293,0,0,0,0,
- 0,0,0,0,0,0,0,-61,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-43,0,0,0,-38,0,0,
- 0,0,0,-63,0,-50,-309,0,0,0,
- 0,0,0,0,0,0,0,0,-80,0,
- 0,0,0,0,0,0,0,0,0,-87,
- 0,0,0,-68,0,0,0,0,0,0,
- 0,0,0,-65,0,0,0,0,0,0,
- 0,0,0,0,0,0,-51,-77,0,0,
- -53,-210,-57,0,0,0,0,0,0,0,
- 0,-62,-55,-60,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-40,-74,0,
- 0,0,0,0,0,0,0,0,-194,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-56,-159,0,0,0,0,0,0,
- 0,0,0,0,-173,-145,0,0,0,0,
- 0,0,0,0,0,0,0,-64,-209,0,
- 0,0,0,0,0,0,0,0,-4,0,
- 0,-81,0,0,0,0,0,0,-59,-321,
- 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,-101,0,-24,0,
- -243,0,0,0,0,0,0,0,0,0,
- 0,0,-211,0,0,0,0,0,0,0,
- 0,0,-82,-172,0,0,0,0,0,0,
- 0,0,0,0,0,-234,0,0,-84,-164,
- 0,0,0,0,0,0,-91,0,0,0,
- -21,0,-162,0,0,0,-104,0,0,0,
- 0,0,0,0,0,0,-135,0,0,0,
- 0,0,0,0,0,0,0,0,0,-14,
- -85,-93,0,-88,0,0,0,0,0,0,
- 0,0,0,-95,0,0,0,0,0,0,
- -90,0,0,0,0,0,0,-142,0,0,
- 0,0,0,0,0,0,0,0,-44,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-174,0,0,0,0,0,0,0,
- 0,0,0,-67,0,-94,0,0,0,0,
- 0,0,0,0,0,-161,0,-278,0,0,
- 0,0,0,0,0,0,0,0,-267,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-96,-89,0,0,0,0,0,0,0,
- 0,0,0,-163,0,-47,0,0,0,0,
- 0,0,0,0,0,0,-176,-78,0,0,
- 0,0,0,0,0,0,0,-107,0,-79,
- 0,0,0,0,0,0,0,0,0,-215,
+ 1,0,4,3,1,2,1,3,4,4,
+ 6,1,0,1,3,1,3,0,1,4,
+ 5,1,1,2,2,3,2,2,3,1,
+ 1,1,1,1,-101,-50,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-2,0,0,0,-8,0,
+ 0,-81,-5,0,0,0,-225,-114,0,0,
+ 0,0,0,0,0,0,-100,0,-28,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-86,0,-7,-4,0,-10,-107,0,
+ 0,-11,0,-49,0,0,0,0,0,-12,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-109,-32,0,-96,0,-205,0,-221,
+ -82,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-140,-309,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-48,0,0,0,
+ 0,0,0,0,0,0,0,0,-66,0,
+ -222,0,0,0,0,0,0,0,0,0,
+ -168,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-220,0,0,0,0,0,
+ 0,0,0,0,0,-184,0,0,0,0,
+ 0,0,0,0,0,0,0,-29,0,0,
+ 0,0,0,0,0,0,-283,0,0,0,
+ 0,0,0,0,0,0,0,0,-68,0,
+ 0,0,0,0,0,0,-24,0,0,0,
+ -174,0,0,0,-318,0,0,0,0,0,
+ 0,0,0,0,-332,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-13,-212,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-3,0,0,0,-70,0,-153,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -108,0,0,0,0,0,0,0,-33,0,
+ 0,0,0,0,0,0,-35,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -321,0,0,0,0,0,0,0,0,0,
+ 0,-34,-61,0,0,0,0,0,0,0,
+ -173,0,0,0,-36,-45,0,-73,0,0,
+ 0,0,0,0,0,0,0,-110,0,0,
+ -37,0,0,0,0,0,0,-84,0,0,
+ 0,0,0,0,-47,0,-25,-214,0,0,
+ 0,0,0,0,0,0,0,-30,0,0,
+ 0,0,0,0,0,0,-79,0,0,0,
+ 0,0,0,0,0,0,-249,0,-87,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -31,-170,0,0,0,0,0,0,0,0,
+ 0,-38,0,-203,0,0,0,0,0,0,
+ 0,-46,0,0,0,0,0,0,-181,-210,
+ -21,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-41,-333,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-204,0,
+ 0,0,-254,0,0,-88,-176,-43,-26,0,
+ -53,0,-39,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-186,0,0,0,
+ 0,-144,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-54,0,0,-56,-115,
+ 0,0,0,0,0,0,0,0,-119,0,
+ 0,0,0,0,0,0,0,-113,0,0,
+ 0,0,0,0,0,0,0,-72,0,0,
+ 0,0,0,0,0,0,0,-250,0,0,
+ 0,-62,-226,0,-172,0,0,0,0,0,
+ -215,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-89,
+ -185,-95,0,0,0,0,0,0,0,0,
+ 0,-230,0,0,0,0,0,0,0,0,
+ -58,0,0,0,0,0,0,0,-290,-59,
+ 0,0,0,0,0,0,0,0,0,-152,
0,-177,0,0,0,0,0,0,0,0,
- 0,0,0,-118,-129,0,0,0,0,0,
- 0,0,0,0,-216,-221,0,0,-178,-86,
- 0,0,0,0,0,0,0,0,0,-158,
- 0,-141,0,0,0,0,0,0,0,0,
- 0,0,0,-179,0,0,0,0,0,0,
- 0,0,0,0,0,-143,-160,0,0,0,
- 0,0,0,0,0,0,0,-171,-180,0,
- 0,0,0,0,0,0,0,0,0,-187,
- 0,-188,0,0,0,0,0,0,0,0,
- 0,0,-220,-181,0,0,0,0,0,0,
- 0,0,0,0,-224,0,-223,0,0,0,
- 0,0,0,0,0,0,-235,-226,-182,0,
- 0,0,0,0,0,0,0,0,0,0,
- -227,-231,0,0,0,0,0,0,0,0,
- 0,0,0,-183,0,0,0,0,0,0,
- 0,0,0,-119,0,0,-242,0,0,0,
- 0,0,0,0,0,0,0,-247,-184,0,
- 0,0,0,0,0,0,0,0,-120,-248,
- -250,-279,0,0,0,0,0,0,0,0,
- 0,0,-249,-185,0,0,0,0,0,0,
- 0,0,0,0,0,-192,-193,0,0,0,
- 0,0,0,0,0,0,0,-268,-186,0,
- 0,0,0,0,0,0,0,0,0,-285,
- -272,0,0,0,0,0,0,0,0,0,
- 0,0,-296,-230,0,0,0,0,0,0,
- 0,0,0,0,-121,-280,-286,0,0,0,
- 0,0,0,0,0,0,-287,-122,-236,0,
+ 0,0,-63,-98,0,0,0,0,0,0,
+ 0,0,0,0,-154,-156,0,0,0,0,
+ 0,0,0,0,0,0,0,-187,-67,0,
+ 0,0,0,0,0,0,0,0,0,-227,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-246,-188,0,0,0,0,0,0,0,
+ 0,0,-323,0,-69,0,0,0,0,0,
+ 0,0,-57,0,0,0,-232,0,0,-231,
+ -189,-83,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -288,0,0,0,0,0,0,0,0,0,
- 0,-240,-123,0,0,0,0,0,0,0,
- 0,0,0,-299,0,0,0,0,0,0,
- 0,0,0,0,0,0,-241,0,0,0,
- 0,0,0,0,0,0,0,0,-320,-124,
- 0,0,0,0,0,0,0,0,0,-270,
- -295,-110,0,0,0,0,0,0,0,0,
- 0,0,0,-212,-316,0,0,0,0,0,
- 0,0,0,-125,0,-300,0,0,0,0,
- 0,0,-311,0,0,0,-116,0,0,0,
- 0,0,0,0,0,0,0,-170,0,0,
- -199,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-281,-126,0,0,0,
- 0,0,0,0,0,-307,-314,0,0,0,
- 0,0,0,0,0,0,0,0,-303,-127,
- 0,0,0,0,0,0,0,0,-326,0,
- 0,-128,0,0,0,0,0,0,0,0,
- 0,-312,0,0,0,0,0,0,0,0,
- 0,-132,0,-136,0,0,0,0,0,0,
- 0,0,0,0,-324,-319,0,0,0,0,
- 0,0,0,0,-138,-139,-308,0,0,0,
- 0,0,0,0,0,0,0,-140,-146,-175,
- -200,-19,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-153,0,-111,-151,0,
+ -247,0,0,0,-291,-190,0,0,0,0,
+ 0,0,0,0,0,-90,-235,-262,-284,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -191,0,0,0,0,0,0,0,0,0,
+ 0,-297,0,-292,0,0,0,0,0,0,
+ 0,0,0,0,0,-192,0,0,0,0,
+ 0,0,0,0,0,0,-311,0,-298,0,
+ 0,0,0,0,0,-320,0,0,0,-339,
+ -193,0,0,0,0,0,0,0,0,0,
+ 0,0,-299,-308,0,0,0,0,0,0,
+ -91,0,0,0,-93,-194,0,0,0,0,
+ 0,0,0,0,0,-94,0,-300,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -195,0,0,0,0,0,0,0,0,0,
+ 0,-328,-331,-334,0,0,0,0,0,0,
+ -97,0,0,0,-99,-196,0,0,0,0,
+ 0,0,0,0,0,0,-103,0,-105,0,
+ 0,0,0,0,0,-325,0,0,0,-116,
+ -197,0,0,0,0,0,0,0,0,0,
+ -335,0,-340,-127,0,0,0,0,0,0,
+ -128,0,0,0,-129,-242,0,0,0,0,
+ 0,0,0,0,0,-130,0,-131,0,0,
+ 0,0,0,0,0,-132,0,0,0,-133,
+ -248,0,0,0,0,0,0,0,0,0,
+ 0,-134,-158,0,0,0,0,0,0,0,
+ -135,0,0,0,-252,-136,0,0,0,0,
+ 0,0,0,0,-137,-141,-145,0,0,0,
+ 0,0,0,0,0,0,0,0,-147,-253,
+ 0,0,0,0,0,0,0,0,0,-148,
+ 0,-149,-151,0,0,0,0,0,0,-282,
+ 0,0,0,-279,0,0,0,-157,-162,0,
+ 0,0,0,-223,-165,0,0,0,0,0,
+ 0,0,0,0,-166,-167,0,0,0,0,
+ 0,0,-178,0,0,0,-118,-179,0,0,
+ 0,0,0,0,0,0,0,-27,0,-237,
+ -251,0,-293,-263,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-7,-117,0,0,0,0,
- 0,0,0,-323,0,0,0,0,0,0,
- 0,0,-154,-155,-322,0,0,0,0,0,
- 0,0,0,-238,0,0,0,-156,0,-167,
- 0,0,-233,0,-327,-168,0,0,0,0,
- 0,-328,0,0,0,0,-225,-239,0,0,
- 0,0,-251,0,0,-252,-253,-54,0,0,
- -48,0,0,0,0,0,0,0,0,-254,
- 0,0,0,0,-255,0,0,0,0,0,
- 0,-256,0,0,0,0,0,0,-257,0,
- 0,-258,-71,0,0,0,0,0,0,0,
- 0,-259,0,0,0,0,-260,-261,-262,-203,
+ 0,0,-264,0,0,0,-315,-265,0,0,
+ 0,0,0,0,0,0,-266,-267,-159,0,
+ 0,0,0,0,0,0,-268,0,0,0,
+ -324,-269,0,0,0,0,0,0,0,0,
+ -270,-271,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-336,-272,0,0,0,0,
+ 0,0,0,0,-60,0,0,-273,0,0,
+ 0,0,0,0,0,0,0,0,-211,-64,
0,0,0,0,0,0,0,0,0,0,
- -263,-76,0,0,0,0,0,0,0,-264,
- -265,0,-266,-282,-291,0,0,0,0,0,
- -292,-130,0,0,0,-301,0,-147,0,0,
- 0,0,-310,0,0,0,0,-17,0,0,
+ 0,-274,0,0,0,-85,0,0,-301,0,
+ -275,0,0,0,0,0,0,0,0,0,
+ 0,0,-276,-277,0,0,-278,0,-294,0,
+ 0,-183,0,0,0,0,-303,-304,0,-102,
+ -313,-322,0,0,0,0,0,0,0,0,
+ -75,0,0,-160,0,0,-22,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-169,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-149,0,0,0,
- -13,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-217,0,0,0,
+ 0,0,0,0,-117,0,0,-164,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-73,0,0,0,0,0,0,0,
+ 0,0,0,0,-104,0,0,-138,0,0,
+ -150,0,0,0,0,0,0,-169,-240,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-228,0,0,0,-112,
+ 0,0,0,0,0,0,0,0,0,-258,
+ 0,0,-245,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-70,0,-100,0,0,0,
- 0,0,0,0,0,0,0,0,0,-302,
+ -171,0,-182,0,-198,-199,0,0,0,0,
+ -233,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-148,0,0,-283,
- 0,0,0,-246,0,0,0,0,0,0,
+ 0,0,-305,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-15,
+ 0,0,-14,0,0,0,-76,0,-236,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-98,0,0,
- 0,-49,0,0,0,0,0,0,0,0,
+ -6,0,0,-238,-139,0,0,0,0,0,
+ -206,0,0,0,-175,0,-239,0,0,0,
+ 0,0,0,0,0,-243,-259,-228,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-66,-195,
+ 0,0,0,0,-260,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -261,0,0,0,0,-74,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-75,0,-165,0,
+ 0,-280,0,-307,-312,0,0,-314,0,0,
+ 0,0,0,0,0,-111,0,0,0,0,
+ 0,0,0,0,0,-295,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,-83,0,0,-20,0,0,0,0,0,
+ 0,0,0,0,0,-19,0,0,0,0,
+ 0,0,0,0,-180,0,0,0,0,0,
+ 0,0,0,-40,0,0,0,-326,-338,-52,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-150,0,0,
+ 0,0,0,-71,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-32,0,-152,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-80,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-229,0,0,0,0,0,
+ 0,-9,0,0,0,0,0,0,0,-92,
+ 0,0,0,0,0,0,0,0,-125,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-36,0,-274,0,0,0,0,
+ 0,0,0,0,0,-161,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-42,0,0,0,0,0,
+ 0,-163,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,
+ -44,-241,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -39,0,-277,0,0,0,0,0,0,0,
- 0,0,0,0,0,-189,0,0,0,0,
- 0,0,0,0,0,0,0,0,-213,0,
- 0,-317,0,0,0,0,-290,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -286,0,0,0,0,-281,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -288,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,-201,0,0,0,0,0,
+ 0,0,0,0,0,0,-289,0,0,-306,
0,0,0,0,0,0,0,0,0,0,
- 0,-329,0,0,0,0,0,0,0,-289,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-5,0,0,
- 0,0,0,0,0,-16,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-275,0,0,-222,0,0,-18,0,0,
+ -302,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-329,0,-216,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-77,-1,0,-337,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-1,0,0,0,0,0,0,0,0,
- 0,0,0,-204,0,0,0,0,0,0,
- 0,0,0,0,0,-37,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-205,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-341,0,0,0,0,
+ -15,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-18,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-20,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-206,0,0,0,0,0,0,0,
- 0,0,0,0,0,-207,0,0,0,0,
- 0,0,0,0,0,0,0,0,-208,0,
+ 0,0,0,0,0,0,-123,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-41,0,0,0,0,0,-52,0,0,
+ 0,0,0,-23,0,0,-16,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,-202,0,0,0,0,0,0,
- 0,0,-218,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-108,0,0,
- -245,0,0,0,0,0,0,0,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,0,-144,0,-190,0,0,-115,
- 0,0,0,0,0,0,0,0,-137,0,
+ 0,0,-106,0,0,0,0,0,0,0,
+ -200,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-217,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-218,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-219,
+ 0,0,0,0,0,0,0,0,0,-55,
+ 0,0,0,0,-155,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-213,0,0,
+ 0,0,0,0,0,0,0,-229,0,0,
+ -112,0,0,0,0,0,0,0,0,0,
+ 0,-126,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-191,
- 0,-196,0,0,0,0,0,0,0,0,
- 0,-232,0,0,-69,0,-197,0,0,0,
+ 0,-255,0,0,0,0,0,0,0,-257,
+ 0,0,0,0,0,0,0,-17,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-198,0,0,0,0,0,0,0,
- 0,0,0,0,0,-284,0,-244,0,0,
+ 0,0,0,0,0,-65,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -294,0,0,-273,0,0,-304,0,0,0,
+ -120,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-121,0,0,
+ 0,0,0,0,0,-122,0,0,0,0,
+ 0,0,0,-124,0,0,0,0,0,0,
+ 0,-201,0,-146,0,0,0,0,0,0,
+ 0,-202,0,0,0,0,0,0,-207,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-72,0,0,0,
- -298,0,0,0,-97,0,0,0,0,0,
+ 0,-244,0,0,0,0,0,0,-224,0,
+ 0,0,-208,0,0,0,0,0,0,0,
+ -209,0,0,0,0,0,0,0,-287,0,
+ 0,0,0,0,0,0,0,0,0,-51,
+ 0,-256,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-78,-142,0,
+ 0,-296,0,0,0,-316,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-134,0,-315,0,0,0,
- 0,0,0,-305,0,0,0,0,0,0,
- 0,0,-318,0,0,0,0,0,0,0,
+ 0,-234,0,0,0,-143,0,0,0,-285,
+ 0,0,0,0,0,0,0,0,0,-310,
+ 0,-327,0,0,0,0,0,-317,0,0,
0,0,0,0,0,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,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0
+ 0,0,0,0,0,0,0,0,0,0
};
};
public final static short baseCheck[] = BaseCheck.baseCheck;
@@ -324,298 +324,299 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface BaseAction {
public final static char baseAction[] = {
- 115,1,48,48,24,24,50,50,23,23,
+ 118,1,48,48,20,20,50,50,24,24,
2,2,2,2,3,3,3,4,4,5,
- 5,5,5,5,5,5,5,73,73,96,
- 96,6,6,6,6,6,6,6,6,6,
+ 5,5,5,5,5,5,5,74,74,98,
+ 98,6,6,6,6,6,6,6,6,6,
6,6,7,7,8,8,8,8,9,9,
9,14,14,14,15,15,15,15,15,16,
- 16,16,17,17,18,18,19,19,20,20,
- 21,21,22,22,26,26,26,26,26,26,
- 26,26,26,26,26,26,37,32,25,116,
- 116,98,98,59,38,38,38,38,38,38,
- 38,39,39,39,33,33,99,99,74,74,
- 40,40,41,41,41,66,66,42,42,42,
+ 16,16,17,17,18,18,19,19,21,21,
+ 22,22,23,23,26,26,26,26,26,26,
+ 26,26,26,26,26,26,37,32,25,119,
+ 119,100,100,60,38,38,38,38,38,38,
+ 38,39,39,39,33,33,101,101,75,75,
+ 40,40,41,41,41,67,67,42,42,42,
42,43,43,43,43,43,53,53,29,29,
- 29,29,29,54,54,54,88,88,83,83,
- 83,83,84,84,84,85,85,85,86,86,
- 86,87,87,87,100,100,89,89,90,55,
- 57,57,57,57,57,67,69,69,69,69,
- 69,69,69,69,69,69,69,69,78,78,
- 28,28,75,75,117,118,79,79,76,76,
- 76,91,101,101,102,102,92,92,92,60,
- 119,119,103,93,93,93,77,77,120,104,
- 104,105,105,94,94,30,31,31,31,56,
+ 29,29,29,54,54,54,89,89,84,84,
+ 84,84,85,85,85,86,86,86,87,87,
+ 87,88,88,88,102,102,90,90,91,55,
+ 57,57,57,57,57,68,70,70,70,70,
+ 70,70,70,70,70,70,70,70,79,79,
+ 28,28,76,76,120,121,80,80,77,77,
+ 77,92,103,103,104,104,93,93,93,61,
+ 122,122,105,94,94,94,78,78,123,106,
+ 106,107,107,95,95,30,31,31,31,56,
51,51,44,44,44,44,34,34,35,45,
- 45,46,36,36,106,106,47,122,122,121,
- 121,52,52,52,52,52,52,52,52,52,
- 107,58,58,58,58,49,80,80,70,70,
- 70,71,71,61,61,123,123,82,82,81,
- 81,81,62,62,62,63,64,64,64,65,
- 65,65,65,68,68,68,72,124,97,97,
- 97,97,95,125,126,126,127,127,128,128,
- 115,115,129,129,108,108,108,108,130,130,
- 109,109,109,110,110,10,10,10,27,27,
- 11,11,131,131,111,111,111,112,112,132,
- 132,113,113,12,133,133,134,134,114,114,
- 114,13,136,136,54,90,90,90,103,103,
- 103,120,117,118,49,91,312,385,14,19,
- 15,1084,1058,44,1234,1335,344,315,316,317,
- 1259,1373,1348,1444,1410,1510,1487,1522,74,409,
- 505,1678,91,444,1062,724,134,215,1552,821,
- 14,19,15,1084,42,44,1234,1335,171,1905,
- 713,688,1259,1373,1348,1444,1410,1510,1753,1241,
- 136,133,135,159,256,215,1102,2075,845,318,
- 315,316,317,138,45,165,344,315,316,317,
- 313,142,145,148,151,409,517,447,1489,1615,
- 596,1821,2346,2368,1582,952,134,215,1300,456,
- 488,226,234,229,1633,234,1163,1602,318,315,
- 316,317,321,996,1468,189,344,315,316,317,
- 136,133,135,159,1041,2211,1596,1762,14,19,
- 15,1084,40,138,866,165,134,215,1203,311,
- 1062,142,145,148,151,409,447,648,337,1615,
- 596,1821,2346,2368,1582,243,1420,1513,456,261,
- 136,133,135,159,1773,484,294,1435,1421,1542,
- 256,215,379,138,188,165,357,319,315,316,
- 317,142,145,148,151,409,1762,1134,336,1615,
- 596,1821,2346,2368,1582,1486,389,14,19,15,
- 1084,1058,44,1234,1335,447,1665,763,455,1259,
- 1373,1348,1444,1410,1510,1487,1522,74,262,337,
- 1580,283,409,1508,389,14,19,15,1084,1058,
- 44,1234,1335,1650,722,323,986,1259,1373,1348,
- 1444,1410,1510,1487,1522,74,384,973,1402,283,
- 14,19,15,1084,42,35,344,315,316,317,
- 1197,447,295,288,1166,456,1552,1544,14,19,
- 15,1084,42,44,1234,1335,134,215,171,1988,
- 1259,1373,1348,1444,1410,1510,1487,1522,73,190,
- 289,288,1323,887,539,1544,248,312,471,212,
- 144,133,135,159,171,1907,108,1380,389,14,
- 19,15,1084,1058,44,1234,1335,309,289,447,
- 1556,1259,1373,1348,1444,1410,1510,1487,1522,74,
- 505,1817,310,283,1260,490,14,19,15,1084,
- 1058,44,1234,1335,642,384,230,1136,1259,1373,
- 1348,1444,1410,1510,1487,1522,74,637,503,948,
- 457,1140,1552,1283,14,19,15,1084,42,44,
- 1234,1335,970,1041,1686,290,1259,1373,1729,1544,
- 104,124,241,87,318,315,316,317,1759,1436,
- 1112,14,19,15,1084,1058,44,1234,1335,1768,
- 948,2715,291,1259,1373,1348,1444,1410,1510,1487,
- 1522,74,227,1759,1640,283,14,19,15,1084,
- 1058,44,1234,1335,89,1602,171,948,1259,1373,
- 1348,1444,1410,1510,1487,1522,74,333,623,1552,
- 331,14,19,15,1084,42,44,1234,1335,503,
- 839,87,1351,1259,1373,1348,1728,157,1185,1759,
- 1530,1544,14,19,15,1084,1058,44,1234,1335,
- 171,2049,126,245,1259,1373,1348,1444,1410,1510,
- 1487,1522,74,341,322,986,283,754,1799,838,
- 2498,1402,1022,14,19,15,1084,42,35,318,
- 315,316,317,1552,922,14,19,15,1084,42,
- 44,1234,1335,1458,1062,1273,1992,1259,1373,1348,
- 1444,1410,1741,401,226,707,1134,329,292,1459,
- 558,456,1544,220,644,223,711,503,1596,249,
- 1681,570,2492,1764,256,215,1212,1574,864,14,
- 19,15,1084,1058,44,1234,1335,171,1173,199,
- 126,1259,1373,1348,1444,1410,1510,1487,1522,74,
- 629,1735,1704,775,62,401,226,231,154,656,
- 318,315,316,317,1511,220,644,223,225,1036,
- 1034,497,738,182,1580,572,1110,2117,1552,1310,
- 14,19,15,1084,1058,44,1234,1335,339,1763,
- 2635,398,1259,1373,1348,1444,1410,1510,1487,1522,
- 74,1372,195,1358,91,14,19,15,1084,1058,
- 44,1234,1335,233,1763,2513,1773,1259,1373,1348,
- 1444,1410,1510,1487,1522,74,171,2632,1640,1237,
- 14,19,15,1084,1058,44,1234,1335,233,1763,
- 2681,437,1259,1373,1348,1444,1410,1510,1487,1522,
- 74,242,1058,1552,331,14,19,15,1084,42,
- 44,1234,1335,280,503,1653,1621,1259,1373,1348,
- 1444,1410,1510,1487,1522,93,1633,1552,1171,14,
- 19,15,1084,1058,44,1234,1335,197,568,127,
- 1171,1259,1373,1348,1444,1410,1510,1487,1522,74,
- 820,123,1552,85,14,19,15,1084,1058,44,
- 1234,1335,1599,122,1662,1759,1259,1373,1348,1444,
- 1410,1510,1487,1522,74,689,171,545,84,1552,
- 1171,14,19,15,1084,1058,44,1234,1335,232,
- 1759,330,1171,1259,1373,1348,1444,1410,1510,1487,
- 1522,74,278,111,1552,83,14,19,15,1084,
- 1058,44,1234,1335,320,125,1171,1759,1259,1373,
- 1348,1444,1410,1510,1487,1522,74,277,1715,1552,
- 82,14,19,15,1084,1058,44,1234,1335,121,
- 1759,340,1759,1259,1373,1348,1444,1410,1510,1487,
- 1522,74,236,1764,1552,81,14,19,15,1084,
- 1058,44,1234,1335,2668,1759,16,1171,1259,1373,
- 1348,1444,1410,1510,1487,1522,74,1764,1759,1552,
- 80,14,19,15,1084,1058,44,1234,1335,2166,
- 2684,1759,1716,1259,1373,1348,1444,1410,1510,1487,
- 1522,74,2192,285,1552,79,14,19,15,1084,
- 1058,44,1234,1335,346,2213,325,1602,1259,1373,
- 1348,1444,1410,1510,1487,1522,74,206,1759,1552,
- 78,14,19,15,1084,1058,44,1234,1335,1557,
- 1759,1602,1764,1259,1373,1348,1444,1410,1510,1487,
- 1522,74,1755,1759,1552,77,14,19,15,1084,
- 1058,44,1234,1335,1761,244,1014,1014,1259,1373,
- 1348,1444,1410,1510,1487,1522,74,21,1759,1552,
- 76,14,19,15,1084,1058,44,1234,1335,20,
- 1764,1171,183,1259,1373,1348,1444,1410,1510,1487,
- 1522,74,275,1748,1552,75,14,19,15,1084,
- 1058,44,1234,1335,2711,1172,1721,1602,1259,1373,
- 1348,1444,1410,1510,1487,1522,74,1602,1330,1552,
- 92,14,19,15,1084,42,44,1234,1335,196,
- 207,171,573,1259,1373,1348,1444,1410,1510,1487,
- 1522,93,1552,504,14,19,15,1084,1058,44,
- 1234,1335,23,22,1171,246,1259,1373,1348,1444,
- 1410,1510,1487,1522,74,247,1567,1552,1337,14,
- 19,15,1084,1058,44,1234,1335,2737,214,295,
- 109,1259,1373,1348,1444,1410,1510,1487,1522,74,
- 347,1759,1552,1347,14,19,15,1084,42,39,
- 318,315,316,317,1552,1171,14,19,15,1084,
- 42,44,1234,1335,344,281,1759,2211,1259,1373,
- 1348,1444,1750,447,401,226,231,1618,117,14,
- 19,15,1084,33,221,644,223,225,1577,788,
- 1435,1552,276,14,19,15,1084,42,44,1234,
- 1673,297,271,1070,1095,274,1552,601,14,19,
- 15,1084,42,44,1234,1335,1759,1759,257,215,
- 1259,1373,1348,1444,1410,1510,1487,1522,93,1552,
- 387,14,19,15,1084,42,44,1234,1335,1759,
- 282,2286,1340,1259,1373,1348,1444,1410,1510,1487,
- 1522,93,1552,284,14,19,15,1084,42,44,
- 1234,1335,296,2312,1227,204,1259,1373,1348,1444,
- 1410,1510,1487,1522,93,1552,1748,14,19,15,
- 1084,42,44,1234,1335,1173,1298,1764,205,1259,
- 1373,1348,1444,1410,1510,1487,1522,93,64,1269,
- 1703,1552,1163,14,19,15,1084,42,44,1234,
- 1676,1635,344,315,316,317,838,2492,1552,556,
- 14,19,15,1084,42,38,318,315,316,317,
- 257,215,134,215,1662,1202,1618,1409,14,19,
- 15,1084,32,1992,447,344,315,316,317,1655,
- 401,226,231,1127,1287,1602,137,133,135,159,
- 220,644,223,225,1717,134,215,1681,1319,139,
- 933,165,299,1238,2492,1764,1736,143,146,149,
- 152,409,1602,318,315,316,317,1778,802,141,
- 133,135,159,1326,257,215,1684,445,190,356,
- 1940,1683,140,296,165,154,656,401,226,231,
- 532,318,315,316,317,566,1036,220,644,223,
- 225,110,1282,86,1754,26,941,887,2707,1579,
- 298,95,1720,838,2492,1100,108,94,96,97,
- 98,99,1722,318,315,316,317,1729,443,1723,
- 1552,109,14,19,15,1084,42,44,1234,1335,
- 1992,514,1,356,1259,1695,2666,401,226,231,
- 1678,846,106,1184,953,1770,200,220,644,223,
- 225,1774,1136,2533,1681,110,1303,86,171,948,
- 941,887,1336,1235,2914,95,2914,1742,794,1100,
- 108,94,96,97,98,99,2914,2914,318,315,
- 316,317,314,87,2914,109,401,226,231,1062,
- 1198,2914,155,656,2914,2164,220,644,223,225,
- 2914,2914,2914,265,276,2914,107,251,356,2914,
- 2914,446,2914,2914,269,1070,1095,274,2914,256,
- 215,344,315,316,317,2914,2914,974,448,2914,
- 110,2914,86,266,2914,941,887,2914,2914,2914,
- 95,134,215,1696,1100,108,94,96,97,98,
- 99,279,2914,318,315,316,317,2914,2914,611,
- 109,401,226,231,2914,147,133,135,159,1644,
- 2735,220,644,223,225,263,127,356,738,276,
- 1552,106,14,19,15,1084,42,37,556,269,
- 1070,1095,274,2914,2914,171,456,971,2914,110,
- 2914,86,2914,2914,941,887,1886,2914,1298,95,
- 1427,2492,2914,1100,108,94,96,97,98,99,
- 318,315,316,317,887,1650,105,171,948,109,
- 1238,2492,2914,2914,1294,2247,2914,1940,2914,2914,
- 319,315,316,317,401,226,231,2914,308,2914,
- 107,2914,87,2914,220,644,223,225,279,1211,
- 751,1754,2914,2914,401,226,231,2914,2914,2914,
- 318,315,316,317,220,644,223,225,495,456,
- 2914,1754,838,2492,2914,2914,276,2117,2914,2914,
- 2914,211,319,315,316,317,269,1070,1095,274,
- 2914,537,1656,2666,2914,2914,2914,199,2914,926,
- 171,948,2914,201,2914,1298,401,226,231,318,
- 315,316,317,2687,2914,614,220,644,223,225,
- 2914,2914,2914,1853,2914,87,2211,926,1034,971,
- 2914,2914,1261,401,226,231,2914,318,315,316,
- 317,496,2914,221,644,223,225,2914,788,2914,
- 2914,2914,684,948,2211,1329,2914,1650,2914,2914,
- 194,401,226,1566,2914,318,315,316,317,893,
- 880,221,644,223,1565,110,788,86,728,948,
- 941,2914,2211,2914,2914,95,2914,2914,2914,1100,
- 1579,94,96,97,98,99,2914,1463,2914,772,
- 948,110,2914,86,648,2914,941,319,315,316,
- 317,95,2914,2416,2914,1100,103,94,96,97,
- 98,99,110,211,86,816,948,941,2914,2914,
- 2914,2914,95,876,1656,2914,1100,101,94,96,
- 97,98,99,2914,882,2914,860,948,110,2914,
- 86,2914,2914,941,319,315,316,317,95,2914,
- 2914,2914,1100,102,94,96,97,98,99,110,
- 2914,86,904,948,941,2914,2914,2914,2914,95,
- 2914,2914,2914,1100,118,94,96,97,98,99,
- 2914,1675,2914,948,948,110,2914,86,2914,2914,
- 941,319,315,316,317,95,1020,2551,2914,1100,
- 114,94,96,97,98,99,110,2914,86,171,
- 948,941,992,948,2914,2914,95,1663,456,2914,
- 1100,1766,94,96,97,98,99,318,315,316,
- 317,2914,2914,2914,87,110,2914,86,2914,2914,
- 941,1751,2914,2914,2211,95,1762,2914,276,1100,
- 113,94,96,97,98,99,1036,948,269,1070,
- 1095,274,2914,2914,2914,1552,648,14,19,15,
- 1084,42,44,1677,2914,2320,2914,268,261,110,
- 2914,86,1080,948,941,2914,2914,1421,1542,95,
- 706,2914,2914,1100,120,94,96,97,98,99,
- 318,315,316,317,2914,110,2914,86,434,416,
- 941,2914,2914,2914,2914,95,507,2211,2914,1100,
- 119,94,96,97,98,99,344,315,316,317,
- 2914,306,171,948,2914,1533,948,799,569,788,
- 2914,2914,276,2914,2914,2914,134,215,344,315,
- 316,317,271,1070,1095,274,2914,87,2914,2914,
- 87,305,373,416,1446,2914,2914,115,134,215,
- 150,133,135,159,1552,2914,14,19,15,1084,
- 42,44,1234,1335,2914,306,926,2914,1259,1702,
- 2914,799,153,133,135,159,318,315,316,317,
- 1552,1311,14,19,15,1084,42,44,1234,1335,
- 2914,2914,2914,2211,1709,305,303,304,2914,2914,
- 488,226,235,1552,2914,14,19,15,1084,42,
- 44,1234,1335,2914,2914,788,1552,1712,14,19,
- 15,1084,42,44,1234,1335,2914,2914,2914,1552,
- 1722,14,19,15,1084,42,44,1234,1335,2914,
- 2914,2914,1329,1727,2914,2914,2914,2914,1329,2914,
- 302,304,318,315,316,317,2914,383,318,315,
- 316,317,2914,1199,456,2914,2914,2914,2914,2211,
- 2914,2338,2914,2914,1552,2211,14,19,15,1084,
- 42,44,1690,1329,2914,2914,2914,2914,2914,2914,
- 2914,648,1762,318,315,316,317,648,171,356,
- 2019,1329,2914,2914,2914,2914,2047,2914,2914,2914,
- 2211,318,315,316,317,1552,2914,14,19,15,
- 1084,42,36,87,261,2914,2914,199,2211,2914,
- 1162,2914,648,1085,1542,1533,356,171,356,2914,
- 1552,1420,14,19,15,1084,42,34,2914,1552,
- 648,14,19,15,1084,42,35,2914,2226,2320,
- 87,2914,87,2914,887,2914,199,115,2914,1162,
- 171,356,1552,2914,14,19,15,1084,42,47,
- 1160,2914,621,456,1148,315,456,1552,2365,14,
- 19,15,1084,42,46,87,2914,2226,2914,199,
- 2914,1187,1162,1552,2914,14,19,15,1084,42,
- 45,199,2914,2914,1762,2914,1728,2914,1464,1248,
- 14,19,15,1084,42,43,318,315,316,317,
- 2226,315,456,2914,1533,948,2914,1738,2914,2914,
- 2914,2914,1034,2744,2914,2914,261,318,315,316,
- 317,2914,1260,2914,2914,1085,1542,1693,2914,87,
- 1762,1533,948,2914,2753,1705,115,319,315,316,
- 317,2914,2914,2914,194,319,315,316,317,2914,
- 2914,2914,2914,1262,880,1708,87,1533,948,2914,
- 2914,2914,261,115,1747,319,315,316,317,2914,
- 1384,1496,1542,1750,319,315,316,317,2914,2914,
- 2914,2914,87,319,315,316,317,2914,2914,115,
- 2914,2914,2914,2914,2914,2914,2914,1497,2914,2914,
- 2914,2914,2914,2914,2914,2914,2914,2914,2914,2914,
- 2914,2914,2914,2914,2914,2914,2914,2914,2914,2914,
- 2914,2914,2914,1519,2914,0,1,400,0,1,
- 418,0,1,445,0,400,128,0,418,128,
- 0,445,128,0,400,129,0,418,129,0,
- 445,129,0,400,130,0,418,130,0,445,
- 130,0,445,187,0,418,187,0,400,187,
- 0,187,191,0,445,186,0,418,186,0,
- 400,186,0,186,191,0,400,131,0,418,
- 131,0,445,131,0,400,132,0,418,132,
- 0,445,132,0,179,228,0,2921,1,0,
- 225,237,0,1,3153,0,225,238,0,7,
- 9,0,179,17,0,178,18,0,1,3142,
- 0,112,2242,0
+ 45,46,36,36,108,108,47,125,125,124,
+ 124,52,52,52,52,52,52,52,52,52,
+ 109,59,59,59,59,49,81,81,71,71,
+ 71,72,72,62,62,126,126,83,83,82,
+ 82,82,63,63,63,64,65,65,65,66,
+ 66,66,66,69,69,69,73,127,99,99,
+ 99,99,96,128,129,129,130,130,131,131,
+ 118,118,132,132,110,110,110,110,133,133,
+ 111,111,111,112,112,10,10,10,27,27,
+ 11,11,134,134,113,113,113,114,114,135,
+ 135,115,115,12,12,136,136,116,116,116,
+ 13,58,137,137,138,138,117,117,117,97,
+ 97,97,53,54,91,91,91,105,105,105,
+ 123,120,121,49,92,317,1345,14,19,15,
+ 1324,1310,44,1331,1346,353,315,316,317,1335,
+ 1356,1348,1372,1360,1386,34,1381,1395,74,512,
+ 127,91,565,1166,869,134,215,1614,1329,14,
+ 19,15,1324,42,44,1331,1346,1166,1678,388,
+ 1565,1335,1356,1348,1372,1360,1386,126,1617,136,
+ 133,135,159,1166,649,459,1145,1647,816,503,
+ 487,126,906,138,512,165,353,315,316,317,
+ 1014,142,145,148,151,1813,243,124,87,2052,
+ 629,2311,2325,2340,821,1020,134,215,199,313,
+ 747,226,234,1158,453,1445,388,1644,1800,649,
+ 1614,1799,14,19,15,1324,42,44,1331,1346,
+ 136,133,135,159,1335,1356,1592,1207,355,1010,
+ 601,1463,2556,89,138,341,165,353,315,316,
+ 317,311,142,145,148,151,1813,63,1641,345,
+ 2052,629,2311,2325,2340,821,104,134,215,63,
+ 429,1614,194,14,19,15,1324,42,44,1331,
+ 1346,611,711,1845,389,1335,1356,1348,1372,1360,
+ 1601,136,133,135,159,1614,310,14,19,15,
+ 1324,42,44,1331,1346,138,1329,165,211,1335,
+ 1356,1348,1568,142,145,148,151,1813,359,1022,
+ 1468,2052,629,2311,2325,2340,821,1548,488,14,
+ 19,15,1324,1310,44,1331,1346,1891,321,63,
+ 463,1335,1356,1348,1372,1360,1386,1059,1381,1395,
+ 74,1166,1743,283,245,1570,488,14,19,15,
+ 1324,1310,44,1331,1346,174,1632,1306,294,1335,
+ 1356,1348,1372,1360,1386,197,1381,1395,74,390,
+ 1614,283,14,19,15,1324,42,44,1508,353,
+ 315,316,317,476,323,1297,288,1473,1926,1614,
+ 1397,14,19,15,1324,1310,44,1331,1346,134,
+ 215,63,867,1335,1356,1348,1372,1360,1386,1032,
+ 1381,1395,74,289,288,91,1224,1035,1397,319,
+ 315,316,317,144,133,135,159,319,315,316,
+ 317,1442,488,14,19,15,1324,1310,44,1331,
+ 1346,289,640,611,1273,1335,1356,1348,1372,1360,
+ 1386,1085,1381,1395,74,640,546,283,1323,910,
+ 14,19,15,1324,1310,44,1331,1346,1551,1975,
+ 189,515,1335,1356,1348,1372,1360,1386,988,1381,
+ 1395,74,284,188,398,1798,1896,1104,1614,1445,
+ 14,19,15,1324,42,44,1331,1346,1239,1059,
+ 290,182,1335,1518,1397,233,241,1499,229,14,
+ 19,15,1324,1310,44,1331,1346,640,334,1799,
+ 425,1335,1356,1348,1372,1360,1386,291,1381,1395,
+ 74,853,1702,283,14,19,15,1324,1310,44,
+ 1331,1346,640,123,1275,1463,1335,1356,1348,1372,
+ 1360,1386,789,1381,1395,74,322,1297,331,1639,
+ 1614,1207,14,19,15,1324,42,44,1331,1484,
+ 190,353,315,316,317,347,157,1630,561,1592,
+ 1397,14,19,15,1324,1310,44,1331,1346,257,
+ 215,134,215,1335,1356,1348,1372,1360,1386,1275,
+ 1381,1395,74,1329,230,283,1799,1158,1772,855,
+ 2460,59,212,897,335,137,133,135,159,318,
+ 315,316,317,319,315,316,317,1683,227,139,
+ 122,165,63,1110,952,1463,1990,143,146,149,
+ 152,1813,23,716,226,906,538,329,292,1157,
+ 1595,244,1397,220,812,223,909,257,215,1614,
+ 2680,14,19,15,1324,42,39,1856,1636,1622,
+ 14,19,15,1324,1310,44,1331,1346,1798,2491,
+ 256,215,1335,1356,1348,1372,1360,1386,1754,1381,
+ 1395,74,1239,699,556,63,2642,22,233,154,
+ 871,1614,211,14,19,15,1324,42,44,1331,
+ 1346,366,333,1082,1468,1335,1527,434,257,215,
+ 640,1420,1799,14,19,15,1324,1310,44,1331,
+ 1346,887,1552,487,507,1335,1356,1348,1372,1360,
+ 1386,1218,1381,1395,74,278,111,863,1045,1702,
+ 341,14,19,15,1324,1310,44,1331,1346,981,
+ 1799,1835,1771,1335,1356,1348,1372,1360,1386,242,
+ 1381,1395,74,1402,1614,331,14,19,15,1324,
+ 42,44,1331,1346,125,1799,63,649,1335,1356,
+ 1348,1372,1360,1386,262,1381,1395,93,1614,655,
+ 14,19,15,1324,1310,44,1331,1346,336,121,
+ 1015,87,1335,1356,1348,1372,1360,1386,1819,1381,
+ 1395,74,1771,1614,85,14,19,15,1324,1310,
+ 44,1331,1346,640,1439,1299,1131,1335,1356,1348,
+ 1372,1360,1386,577,1381,1395,74,63,577,84,
+ 1085,1614,1209,14,19,15,1324,1310,44,1331,
+ 1346,297,277,471,330,1335,1356,1348,1372,1360,
+ 1386,1085,1381,1395,74,1085,1614,83,14,19,
+ 15,1324,1310,44,1331,1346,1416,1799,1329,1799,
+ 1335,1356,1348,1372,1360,1386,1172,1381,1395,74,
+ 285,1614,82,14,19,15,1324,1310,44,1331,
+ 1346,2730,1085,2740,1756,1335,1356,1348,1372,1360,
+ 1386,206,1381,1395,74,183,1614,81,14,19,
+ 15,1324,1310,44,1331,1346,20,1799,196,1329,
+ 1335,1356,1348,1372,1360,1386,1085,1381,1395,74,
+ 1085,1614,80,14,19,15,1324,1310,44,1331,
+ 1346,2742,207,1329,1794,1335,1356,1348,1372,1360,
+ 1386,1468,1381,1395,74,1487,1614,79,14,19,
+ 15,1324,1310,44,1331,1346,1502,246,63,605,
+ 1335,1356,1348,1372,1360,1386,615,1381,1395,74,
+ 26,1614,78,14,19,15,1324,1310,44,1331,
+ 1346,247,1799,1794,1329,1335,1356,1348,1372,1360,
+ 1386,226,1381,1395,74,238,1614,77,14,19,
+ 15,1324,1310,44,1331,1346,117,1596,1206,1077,
+ 1335,1356,1348,1372,1360,1386,879,1381,1395,74,
+ 579,1614,76,14,19,15,1324,1310,44,1331,
+ 1346,640,296,1329,1724,1335,1356,1348,1372,1360,
+ 1386,414,1381,1395,74,815,1614,75,14,19,
+ 15,1324,1310,44,1331,1346,1273,1210,693,299,
+ 1335,1356,1348,1372,1360,1386,513,1381,1395,74,
+ 523,1614,92,14,19,15,1324,42,44,1331,
+ 1346,298,313,63,649,1335,1356,1348,1372,1360,
+ 1386,46,1381,1395,93,1614,953,14,19,15,
+ 1324,1310,44,1331,1346,858,1755,1289,87,1335,
+ 1356,1348,1372,1360,1386,1834,1381,1395,74,1219,
+ 1614,1199,14,19,15,1324,1310,44,1331,1346,
+ 1821,214,725,65,1335,1356,1348,1372,1360,1386,
+ 352,1381,1395,74,1798,2210,1223,295,1252,375,
+ 318,315,316,317,1614,1767,14,19,15,1324,
+ 42,44,1331,1346,280,1350,1384,2105,1335,1356,
+ 1348,1372,1613,98,716,226,231,1658,1778,14,
+ 19,15,1324,40,221,812,223,225,565,1095,
+ 1640,745,276,1614,1804,14,19,15,1324,42,
+ 44,1331,1346,271,953,1070,274,1335,1356,1348,
+ 1372,1360,1386,1806,1381,1395,93,1614,720,14,
+ 19,15,1324,42,44,1331,1346,765,1081,63,
+ 649,1335,1356,1348,1372,1360,1386,1105,1381,1395,
+ 93,1614,905,14,19,15,1324,42,44,1331,
+ 1346,1281,1300,204,87,1335,1356,1348,1372,1360,
+ 1386,1847,1381,1395,93,1614,1359,14,19,15,
+ 1324,42,44,1331,1346,193,365,205,1733,1335,
+ 1356,1348,1372,1360,1386,1010,1381,1395,93,1614,
+ 1772,14,19,15,1324,42,44,1331,1503,110,
+ 86,1274,1370,1285,407,344,1,365,95,644,
+ 340,1247,982,108,94,96,97,98,99,318,
+ 315,316,317,1684,1357,1323,1103,1711,109,1623,
+ 110,86,1595,352,1285,407,2105,1828,1832,95,
+ 642,423,1810,982,108,94,96,97,98,99,
+ 106,187,487,2923,255,365,314,990,1095,109,
+ 1708,276,256,215,352,2923,2923,318,315,316,
+ 317,2923,271,953,1070,274,1596,2923,110,86,
+ 407,107,1285,407,2105,63,365,95,855,2131,
+ 2923,982,108,94,96,97,98,99,318,315,
+ 316,317,2923,2923,308,1521,838,109,1772,352,
+ 87,1772,352,887,199,1990,1984,1766,1772,129,
+ 365,2923,716,226,231,338,2923,2923,232,106,
+ 2923,350,220,812,223,225,2923,2923,320,2680,
+ 2923,1385,2923,110,86,2923,2411,1285,407,2923,
+ 1729,2241,95,1125,2131,1709,982,108,94,96,
+ 97,98,99,318,315,316,317,2923,1765,105,
+ 279,1772,109,1368,2923,1772,1772,352,154,871,
+ 1936,1772,2923,2923,2699,2923,2923,716,226,231,
+ 366,339,2923,236,107,2682,16,220,812,223,
+ 225,351,276,1614,1619,14,19,15,1324,42,
+ 44,1331,1346,269,953,1070,274,1335,1356,1348,
+ 1372,1360,1386,987,1381,1395,73,855,2131,1772,
+ 2923,2923,1912,318,315,316,317,318,315,316,
+ 317,441,426,2923,1772,1183,2488,2702,2923,2161,
+ 669,63,649,2923,1990,567,487,1772,200,2923,
+ 2923,716,226,231,2181,306,1750,1772,1360,2166,
+ 393,220,812,223,225,1174,87,2207,2680,716,
+ 226,231,2923,1148,199,1772,325,1627,279,220,
+ 812,223,225,2923,305,2923,265,276,2923,352,
+ 2923,1772,716,226,231,1628,1164,487,269,953,
+ 1070,274,220,812,223,225,601,155,871,868,
+ 276,21,1772,2923,1772,1772,2923,266,1244,2131,
+ 2923,269,953,1070,274,1835,1595,2923,318,315,
+ 316,317,275,464,281,1272,1125,2131,195,1772,
+ 1912,303,304,2923,2923,1936,319,315,316,317,
+ 2923,2923,716,226,231,2923,256,215,261,282,
+ 2923,263,220,812,223,225,807,1698,1396,1619,
+ 716,226,231,2923,2923,1595,318,315,316,317,
+ 220,812,223,225,945,2923,2923,1619,1772,1772,
+ 855,2131,2923,873,318,315,316,317,2923,2923,
+ 319,315,316,317,945,256,215,819,2277,2306,
+ 2923,2105,2702,2923,318,315,316,317,747,226,
+ 235,2923,2923,201,716,226,231,2923,2923,2923,
+ 2706,2105,945,1095,220,812,223,225,716,226,
+ 231,2698,318,315,316,317,2923,2923,221,812,
+ 223,225,1265,1095,2923,2923,948,2923,802,2105,
+ 695,649,353,315,316,317,716,226,1420,1680,
+ 2923,14,19,15,1324,33,221,812,223,1409,
+ 2923,1095,134,215,110,86,740,649,1285,731,
+ 2923,2923,2923,95,2923,2923,2923,982,1438,94,
+ 96,97,98,99,2923,1078,141,133,135,159,
+ 110,86,785,649,1285,319,315,316,317,95,
+ 140,2923,165,982,103,94,96,97,98,99,
+ 2923,990,830,649,2923,2923,110,86,2923,2923,
+ 1285,318,315,316,317,95,2923,2923,2923,982,
+ 101,94,96,97,98,99,110,86,2105,2923,
+ 1285,875,649,2923,2923,95,1297,487,2923,982,
+ 102,94,96,97,98,99,318,315,316,317,
+ 838,920,649,2923,2923,110,86,2923,2923,1285,
+ 2004,2923,2923,2105,95,1835,2923,2923,982,118,
+ 94,96,97,98,99,110,86,965,649,1285,
+ 1164,487,2923,2923,95,838,2923,2923,982,114,
+ 94,96,97,98,99,1430,2923,2923,261,2923,
+ 2923,110,86,2923,2923,1285,2923,1914,1396,1835,
+ 95,1486,487,2923,982,1631,94,96,97,98,
+ 99,318,315,316,317,1010,649,1614,2923,14,
+ 19,15,1324,42,44,1331,1346,2923,2105,2923,
+ 1835,1532,261,2923,1394,379,426,1055,649,110,
+ 86,1939,1396,1285,319,315,316,317,95,2923,
+ 838,2923,982,113,94,96,97,98,99,306,
+ 1599,110,86,261,393,1285,1100,649,2923,2923,
+ 95,452,1914,1396,982,120,94,96,97,98,
+ 99,353,315,316,317,514,2923,2923,305,2923,
+ 110,86,2923,352,1285,353,315,316,317,95,
+ 578,134,215,982,119,94,96,97,98,99,
+ 353,315,316,317,2923,134,215,1464,2923,14,
+ 19,15,1324,42,35,147,133,135,159,2923,
+ 134,215,2923,2923,349,2131,2923,717,2923,150,
+ 133,135,159,2923,2923,302,304,318,315,316,
+ 317,2923,2923,385,153,133,135,159,2923,2923,
+ 2923,2923,2923,1730,677,248,2923,1831,716,226,
+ 231,1725,2530,319,315,316,317,2923,220,812,
+ 223,225,2923,2923,1614,868,14,19,15,1324,
+ 42,44,1331,1346,2923,2923,2923,1614,1541,14,
+ 19,15,1324,42,44,1331,1346,2923,2923,2923,
+ 1614,1542,14,19,15,1324,42,44,1331,1346,
+ 990,2923,2923,276,1556,1744,365,2923,2923,702,
+ 318,315,316,317,269,953,1070,274,1614,2923,
+ 14,19,15,1324,42,44,1517,2105,990,2923,
+ 87,1122,487,268,407,2923,2923,115,318,315,
+ 316,317,1680,2923,14,19,15,1324,32,838,
+ 2923,2923,2923,2923,2923,2105,2923,2923,2722,2032,
+ 1835,2923,1464,352,14,19,15,1324,42,35,
+ 990,2923,1147,2923,2923,2923,2923,838,762,2923,
+ 318,315,316,317,2923,2923,2923,1430,318,315,
+ 316,317,2923,261,2923,2923,1304,2105,2923,2923,
+ 2923,2923,1698,1396,2923,677,318,315,316,317,
+ 249,1614,2923,14,19,15,1324,42,38,838,
+ 2923,2923,2923,2403,2923,2923,2923,2923,1614,1599,
+ 14,19,15,1324,42,37,1614,2923,14,19,
+ 15,1324,42,36,1614,2923,14,19,15,1324,
+ 42,34,63,365,1614,1763,14,19,15,1324,
+ 42,35,63,365,2923,2923,2923,2923,2923,1614,
+ 715,14,19,15,1324,42,47,87,2923,2923,
+ 2923,199,631,487,1766,2923,2923,87,2923,63,
+ 649,199,2923,1614,1766,14,19,15,1324,42,
+ 46,1614,2923,14,19,15,1324,42,45,63,
+ 649,199,2923,2411,87,2923,2923,1299,2923,2923,
+ 1274,1614,1526,2411,14,19,15,1324,42,43,
+ 318,315,316,317,87,1857,2923,2923,1525,389,
+ 487,1915,1760,601,2923,1875,1781,2274,318,315,
+ 316,317,318,315,316,317,318,315,316,317,
+ 2923,2923,1749,649,2923,2726,1737,2923,407,2748,
+ 1749,649,312,2766,2923,194,319,315,316,317,
+ 1749,649,1749,649,2923,1135,1845,87,1784,2923,
+ 2923,2923,309,2923,115,87,2923,352,319,315,
+ 316,317,115,2923,2923,87,1791,87,2923,2923,
+ 2923,2923,115,2923,115,2923,319,315,316,317,
+ 2923,2923,2923,2923,2923,2923,2923,2923,2923,1149,
+ 2923,2923,2923,2923,2923,2923,2923,1197,2923,2923,
+ 2923,2923,2923,2923,2923,2923,2923,1988,2923,1989,
+ 2923,0,1,643,0,1,428,0,1,432,
+ 0,1,440,0,428,128,0,432,128,0,
+ 440,128,0,428,129,0,432,129,0,440,
+ 129,0,428,130,0,432,130,0,440,130,
+ 0,440,187,0,432,187,0,428,187,0,
+ 187,191,0,440,186,0,432,186,0,428,
+ 186,0,186,191,0,428,131,0,432,131,
+ 0,440,131,0,428,132,0,432,132,0,
+ 440,132,0,179,228,0,2930,1,0,225,
+ 237,0,1,3162,0,225,238,0,7,9,
+ 0,179,17,0,178,18,0,1,3151,0,
+ 112,2255,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -628,192 +629,197 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
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,0,1,46,47,48,49,
- 50,51,52,53,54,55,56,57,58,59,
- 60,0,62,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,0,0,46,
- 47,48,49,50,51,52,53,54,55,56,
- 57,58,59,60,63,62,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,
- 0,64,46,47,48,49,50,51,52,53,
- 54,55,56,57,58,59,60,79,62,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,0,1,46,47,48,49,50,
- 51,52,53,54,55,56,57,58,59,60,
- 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,0,0,46,47,48,49,
- 50,51,52,53,54,55,56,57,58,59,
- 60,0,1,2,0,4,5,6,7,8,
- 0,10,11,12,13,14,15,16,17,18,
- 19,20,21,22,23,24,0,26,27,28,
- 29,30,31,0,0,0,0,1,2,13,
- 4,5,6,8,8,12,61,46,47,48,
- 49,50,51,52,53,54,55,56,57,58,
- 59,60,0,1,2,3,4,5,6,7,
- 8,67,0,0,0,1,0,4,5,6,
- 44,7,0,9,22,23,24,25,26,27,
- 28,29,30,31,32,22,23,24,0,26,
- 27,28,29,30,31,70,71,9,46,47,
+ 30,31,32,0,34,35,36,37,38,39,
+ 40,41,42,43,44,0,46,47,48,49,
+ 50,51,52,53,54,55,56,57,0,59,
+ 60,61,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,24,25,
+ 26,27,28,29,30,31,32,0,34,35,
+ 36,37,38,39,40,41,42,43,44,76,
+ 46,47,48,49,50,51,52,53,54,55,
+ 56,57,64,59,60,61,81,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,24,25,26,27,28,29,30,31,
+ 32,64,34,35,36,37,38,39,40,41,
+ 42,43,44,0,46,47,48,49,50,51,
+ 52,53,54,55,56,57,0,59,60,61,
+ 4,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,24,25,26,27,
+ 28,29,30,31,32,0,34,35,36,37,
+ 38,39,40,41,42,43,44,0,46,47,
48,49,50,51,52,53,54,55,56,57,
- 58,59,60,0,1,2,3,4,5,6,
- 7,8,0,0,0,0,0,1,76,4,
- 5,6,8,7,12,22,23,24,25,26,
- 27,28,29,30,31,32,80,22,23,24,
- 0,26,27,28,29,30,31,0,8,46,
- 47,48,49,50,51,52,53,54,55,56,
- 57,58,59,60,0,1,0,3,4,5,
- 6,7,0,0,0,3,0,3,0,76,
- 4,5,6,0,70,71,22,23,24,76,
- 26,27,28,29,30,31,32,25,22,23,
- 24,0,26,27,28,29,30,31,0,8,
+ 0,59,60,61,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,62,34,35,
+ 36,37,38,39,40,41,42,43,44,62,
46,47,48,49,50,51,52,53,54,55,
- 56,57,58,59,60,0,62,0,1,63,
- 3,4,5,6,7,0,62,0,0,0,
- 1,2,4,5,6,72,73,74,75,22,
- 23,24,44,26,27,28,29,30,31,32,
- 22,23,24,80,26,27,28,29,30,31,
- 0,70,71,46,47,48,49,50,51,52,
- 53,54,55,56,57,58,59,60,63,62,
- 0,1,0,3,4,5,6,7,0,1,
- 8,64,4,5,6,7,0,72,73,74,
- 75,0,22,23,24,9,26,27,28,29,
- 30,31,32,86,87,88,89,90,91,92,
- 93,94,95,22,23,24,46,47,48,49,
- 50,51,52,53,54,55,56,57,58,59,
- 60,81,62,0,1,2,3,0,0,2,
- 7,8,9,10,11,12,13,14,15,16,
- 17,18,19,20,21,0,0,2,25,4,
- 5,6,0,8,2,32,33,34,35,36,
- 37,38,39,40,41,42,43,0,1,2,
- 3,44,44,0,7,8,9,10,11,12,
- 13,14,15,16,17,18,19,20,21,44,
- 0,1,25,0,4,5,6,7,0,32,
- 33,34,35,36,37,38,39,40,41,42,
- 43,0,1,2,3,22,23,24,7,8,
- 9,10,11,12,13,14,15,16,17,18,
- 19,20,21,0,1,0,25,4,5,6,
- 7,0,1,32,33,34,35,36,37,38,
- 39,40,41,42,43,0,1,2,3,0,
- 0,2,7,8,9,10,11,12,13,14,
- 15,16,17,18,19,20,21,0,1,2,
- 25,4,5,6,0,0,2,32,33,34,
- 35,36,37,38,39,40,41,42,43,0,
- 1,2,3,44,44,0,7,8,9,10,
+ 56,57,0,59,60,61,0,1,2,0,
+ 4,5,6,7,8,13,10,11,12,13,
+ 14,15,16,17,18,19,20,21,22,23,
+ 0,25,26,27,28,29,30,31,0,1,
+ 2,0,1,2,0,4,5,6,0,8,
+ 2,3,46,47,48,49,50,51,52,53,
+ 54,55,56,57,0,59,60,61,0,1,
+ 2,3,4,5,6,7,8,0,0,0,
+ 3,33,4,4,5,6,45,9,58,45,
+ 22,23,24,25,26,27,28,29,30,31,
+ 32,22,23,0,25,26,27,28,29,30,
+ 31,8,0,69,46,47,48,49,50,51,
+ 52,53,54,55,56,57,62,59,60,61,
+ 0,1,2,3,4,5,6,7,8,0,
+ 63,0,0,1,76,4,5,6,0,7,
+ 2,9,22,23,24,25,26,27,28,29,
+ 30,31,32,22,23,0,25,26,27,28,
+ 29,30,31,70,71,0,46,47,48,49,
+ 50,51,52,53,54,55,56,57,23,59,
+ 60,61,0,1,82,3,4,5,6,7,
+ 0,0,0,0,0,1,76,4,5,6,
+ 9,7,0,9,22,23,0,25,26,27,
+ 28,29,30,31,32,22,23,0,25,26,
+ 27,28,29,30,31,0,9,2,46,47,
+ 48,49,50,51,52,53,54,55,56,57,
+ 0,59,60,61,0,63,0,1,8,3,
+ 4,5,6,7,10,0,0,0,0,3,
+ 0,4,5,6,72,73,74,75,22,23,
+ 45,25,26,27,28,29,30,31,32,22,
+ 23,79,25,26,27,28,29,30,31,33,
+ 0,1,46,47,48,49,50,51,52,53,
+ 54,55,56,57,0,59,60,61,0,63,
+ 0,1,22,3,4,5,6,7,62,0,
+ 1,0,64,0,3,2,7,4,5,6,
+ 0,8,22,23,0,25,26,27,28,29,
+ 30,31,32,9,86,87,88,89,90,91,
+ 92,93,94,95,33,0,46,47,48,49,
+ 50,51,52,53,54,55,56,57,45,59,
+ 60,61,0,63,0,1,2,3,0,58,
+ 2,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,0,1,24,0,
+ 4,5,6,7,0,1,32,8,34,35,
+ 36,37,38,39,40,41,42,43,44,0,
+ 1,2,3,45,0,1,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
- 21,0,1,0,25,4,5,6,7,69,
- 0,32,33,34,35,36,37,38,39,40,
- 41,42,43,0,1,2,3,0,63,44,
- 7,8,9,10,11,12,13,14,15,16,
- 17,18,19,20,21,0,1,2,25,4,
- 5,6,0,0,69,32,33,34,35,36,
- 37,38,39,40,41,42,43,0,1,2,
- 3,0,0,2,7,8,9,10,11,12,
- 13,14,15,16,17,18,19,20,21,0,
- 0,1,25,0,1,2,3,7,9,32,
- 33,34,35,36,37,38,39,40,41,42,
- 43,0,1,2,3,0,64,2,7,8,
- 9,10,11,12,13,14,15,16,17,18,
- 19,20,21,0,1,63,25,44,45,0,
- 7,2,3,32,33,34,35,36,37,38,
- 39,40,41,42,43,0,1,2,3,0,
- 0,1,7,8,9,10,11,12,13,14,
- 15,16,17,18,19,20,21,0,0,1,
- 25,0,22,44,45,7,9,32,33,34,
- 35,36,37,38,39,40,41,42,43,0,
- 1,2,3,22,23,24,7,8,9,10,
+ 21,0,1,24,0,4,5,6,7,77,
+ 78,32,8,34,35,36,37,38,39,40,
+ 41,42,43,44,0,1,2,3,0,70,
+ 71,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,0,1,24,0,
+ 4,5,6,7,0,0,32,2,34,35,
+ 36,37,38,39,40,41,42,43,44,0,
+ 1,2,3,45,70,71,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
- 21,0,1,2,25,4,5,6,7,0,
- 0,32,33,34,35,36,37,38,39,40,
- 41,42,43,22,23,24,0,26,27,28,
- 29,30,31,0,0,0,1,2,3,0,
- 0,0,3,4,5,6,0,46,47,48,
- 49,50,51,52,53,54,55,56,57,58,
- 59,60,0,1,25,0,4,5,6,7,
- 0,0,0,3,9,3,4,5,6,44,
- 45,10,11,0,22,23,24,61,26,27,
- 28,29,30,31,61,25,61,25,0,1,
- 61,0,0,64,2,4,5,6,46,47,
- 48,49,50,51,52,53,54,55,56,57,
- 58,59,60,22,23,24,0,26,27,28,
- 29,30,31,61,0,9,64,0,1,2,
- 0,4,5,6,4,5,6,46,47,48,
- 49,50,51,52,53,54,55,56,57,0,
- 1,2,3,0,81,67,7,8,0,10,
+ 21,0,0,24,0,1,2,0,4,5,
+ 6,32,10,34,35,36,37,38,39,40,
+ 41,42,43,44,0,1,2,3,0,65,
+ 66,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,0,1,24,0,
+ 4,5,6,7,0,0,32,2,34,35,
+ 36,37,38,39,40,41,42,43,44,0,
+ 1,2,3,45,0,0,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
- 21,0,0,0,2,26,0,1,2,3,
- 4,5,6,0,8,2,3,0,64,0,
- 63,33,0,4,5,6,9,8,22,23,
- 24,25,26,27,28,29,30,31,0,1,
- 2,3,4,5,6,0,8,68,0,0,
- 44,45,4,5,6,10,11,44,45,0,
- 22,23,24,25,26,27,28,29,30,31,
- 0,0,2,72,73,74,75,0,1,2,
- 3,0,44,45,7,8,67,10,11,12,
- 13,14,15,16,17,18,19,20,21,0,
- 1,2,3,26,82,0,7,8,9,10,
+ 21,84,85,24,0,1,2,69,4,5,
+ 6,32,0,34,35,36,37,38,39,40,
+ 41,42,43,44,0,1,2,3,0,65,
+ 66,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,0,0,24,0,
+ 4,5,6,4,5,6,32,10,34,35,
+ 36,37,38,39,40,41,42,43,44,0,
+ 1,2,3,0,0,2,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
- 21,0,1,2,3,0,77,78,7,8,
- 0,10,11,12,13,14,15,16,17,18,
- 19,20,21,84,85,68,0,1,2,0,
- 4,5,6,0,0,0,1,2,4,5,
- 6,62,7,8,9,10,11,12,13,14,
- 15,16,17,18,19,20,21,0,0,2,
- 2,0,0,0,1,2,4,5,6,68,
- 7,8,9,10,11,12,13,14,15,16,
- 17,18,19,20,21,0,1,2,0,63,
- 2,3,7,8,9,10,11,12,13,14,
+ 21,0,80,24,0,4,5,6,4,5,
+ 6,32,0,34,35,36,37,38,39,40,
+ 41,42,43,44,0,1,2,3,0,45,
+ 2,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,0,0,24,0,
+ 0,4,5,6,0,9,32,3,34,35,
+ 36,37,38,39,40,41,42,43,44,0,
+ 1,2,3,0,0,2,7,8,9,10,
+ 11,12,13,14,15,16,17,18,19,20,
+ 21,0,1,24,0,1,2,0,4,5,
+ 6,32,0,34,35,36,37,38,39,40,
+ 41,42,43,44,0,1,2,63,4,5,
+ 6,7,72,73,74,75,0,0,1,3,
+ 4,5,6,0,7,0,22,23,3,25,
+ 26,27,28,29,30,31,72,73,74,75,
+ 24,0,0,1,2,3,62,0,67,24,
+ 46,47,48,49,50,51,52,53,54,55,
+ 56,57,0,59,60,61,0,1,0,1,
+ 4,5,6,7,58,33,8,0,0,2,
+ 64,3,4,5,6,0,0,45,22,23,
+ 67,25,26,27,28,29,30,31,0,1,
+ 58,3,24,0,1,2,0,4,5,6,
+ 0,0,46,47,48,49,50,51,52,53,
+ 54,55,56,57,0,59,60,61,4,5,
+ 6,33,0,0,0,1,58,4,5,6,
+ 0,7,64,11,12,34,22,23,0,25,
+ 26,27,28,29,30,31,0,9,0,0,
+ 4,5,6,0,8,62,8,4,5,6,
+ 46,47,48,49,50,51,52,53,54,55,
+ 56,57,0,1,2,3,80,0,0,7,
+ 8,3,10,11,12,13,14,15,16,17,
+ 18,19,20,21,0,65,66,3,26,0,
+ 1,2,3,4,5,6,0,8,0,0,
+ 1,2,3,67,65,66,0,0,24,0,
+ 3,22,23,24,25,26,27,28,29,30,
+ 31,0,33,0,1,2,3,4,5,6,
+ 68,8,33,0,45,0,68,4,5,6,
+ 33,0,58,2,45,22,23,24,25,26,
+ 27,28,29,30,31,0,33,2,62,0,
+ 1,2,3,65,66,58,7,8,45,10,
+ 11,12,13,14,15,16,17,18,19,20,
+ 21,0,1,2,3,26,77,78,7,8,
+ 9,10,11,12,13,14,15,16,17,18,
+ 19,20,21,0,1,2,3,0,0,2,
+ 7,8,0,10,11,12,13,14,15,16,
+ 17,18,19,20,21,0,0,68,2,4,
+ 5,6,0,8,22,23,0,25,0,1,
+ 2,0,0,2,63,7,8,9,10,11,
+ 12,13,14,15,16,17,18,19,20,21,
+ 0,1,0,3,0,0,1,2,4,5,
+ 6,68,7,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,0,1,2,
- 0,1,0,3,7,8,9,10,11,12,
+ 0,0,67,33,7,8,9,10,11,12,
13,14,15,16,17,18,19,20,21,0,
- 1,2,0,45,0,3,7,8,9,10,
+ 1,2,22,23,0,25,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
- 21,0,1,2,0,45,0,25,7,8,
- 0,10,11,12,13,14,15,16,17,18,
- 19,20,21,0,1,2,0,45,0,67,
+ 21,0,1,2,0,0,0,2,7,8,
+ 9,10,11,12,13,14,15,16,17,18,
+ 19,20,21,0,1,2,22,23,67,25,
7,8,0,10,11,12,13,14,15,16,
- 17,18,19,20,21,0,1,2,22,23,
- 24,0,7,8,3,10,11,12,13,14,
+ 17,18,19,20,21,0,1,2,0,0,
+ 0,2,7,8,0,10,11,12,13,14,
15,16,17,18,19,20,21,0,1,2,
- 0,65,66,3,7,8,0,10,11,12,
+ 22,23,0,25,7,8,0,10,11,12,
13,14,15,16,17,18,19,20,21,0,
- 1,2,0,65,66,25,7,8,0,10,
+ 1,2,0,0,62,0,7,8,0,10,
11,12,13,14,15,16,17,18,19,20,
- 21,0,0,2,0,1,4,5,6,68,
- 8,7,0,9,0,14,15,0,4,5,
- 6,61,0,0,0,0,4,5,6,4,
- 5,6,0,10,11,0,4,5,6,4,
- 5,6,0,0,0,44,3,0,4,5,
- 6,4,5,6,0,0,0,3,3,0,
- 0,0,0,3,22,23,24,0,0,67,
- 69,4,5,6,0,0,2,0,22,23,
- 24,4,5,6,83,25,0,0,45,0,
- 4,5,6,4,5,6,79,0,0,45,
- 45,3,0,0,61,3,3,0,0,0,
- 3,3,0,0,2,61,61,0,9,2,
- 0,61,9,0,65,66,65,66,0,9,
- 0,0,9,65,66,0,61,0,0,77,
- 78,0,0,45,0,0,0,45,61,0,
- 0,0,45,0,0,0,0,0,0,0,
- 63,0,0,0,0,62,0,0,0,0,
- 62,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,63,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0
+ 21,0,1,2,22,23,62,25,7,8,
+ 0,10,11,12,13,14,15,16,17,18,
+ 19,20,21,0,0,2,2,3,0,0,
+ 2,3,0,4,5,6,0,14,15,0,
+ 4,5,6,0,0,13,3,4,0,0,
+ 62,3,3,0,0,0,0,33,3,0,
+ 0,33,79,4,5,6,0,24,45,45,
+ 0,0,24,45,3,22,23,0,25,24,
+ 0,33,33,0,4,5,6,4,5,6,
+ 0,81,69,0,4,5,6,0,0,0,
+ 3,3,3,0,33,0,83,58,0,0,
+ 0,3,58,58,11,12,11,12,0,1,
+ 0,0,24,0,58,7,0,0,58,9,
+ 33,0,33,0,0,58,9,0,0,0,
+ 9,0,9,9,0,0,0,0,0,0,
+ 0,58,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,63,0,64,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,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;
@@ -821,192 +827,194 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface TermAction {
public final static char termAction[] = {0,
- 2914,5058,1,1578,1,1,1,5027,1,680,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,2922,1,1,1,1,
- 1,1,3014,863,1048,1023,1060,924,2072,802,
- 669,921,708,879,335,713,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,2914,2920,7,2899,2899,2899,2899,2899,2899,
- 2899,2899,2899,2899,2899,2899,2899,2899,2899,2899,
- 2899,2899,2899,2899,2899,2899,2899,2899,2899,2899,
- 2899,2899,2899,2899,2899,2899,2899,2899,2899,2899,
- 2899,2899,2899,2899,2899,2899,2899,156,66,2899,
- 2899,2899,2899,2899,2899,2899,2899,2899,2899,2899,
- 2899,2899,2899,2899,2098,2899,2914,5058,1,1578,
- 1,1,1,5027,1,680,1,1,1,1,
+ 2923,4976,1,1423,2812,1,1,4932,1,466,
1,1,1,1,1,1,1,1,1,1,
- 1,2922,1,1,1,1,1,1,3014,863,
- 1048,1023,1060,924,2072,802,669,921,708,879,
- 1,739,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,789,2920,2914,
- 5058,1,2923,1,1,1,5027,1,680,1,
+ 1,1,1,1,2931,1,1,1,1,1,
+ 1,1,3023,2923,1231,779,1034,866,1281,2060,
+ 1146,980,1246,423,1235,70,1,1,1,1,
+ 1,1,1,1,1,1,1,1,156,1,
+ 1,1,1,2929,7,2908,2908,2908,2908,2908,
+ 2908,2908,2908,2908,2908,2908,2908,2908,2908,2908,
+ 2908,2908,2908,2908,2908,2908,2908,2908,2908,2908,
+ 2908,2908,2908,2908,2908,2908,2908,213,2908,2908,
+ 2908,2908,2908,2908,2908,2908,2908,2908,2908,2811,
+ 2908,2908,2908,2908,2908,2908,2908,2908,2908,2908,
+ 2908,2908,767,2908,2908,2908,521,2908,2923,4976,
+ 1,1423,2812,1,1,4932,1,466,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,2922,1,1,1,1,1,
- 1,3014,863,1048,1023,1060,924,2072,802,669,
- 921,708,879,334,713,1,1,1,1,1,
+ 1,1,2931,1,1,1,1,1,1,1,
+ 3023,1361,1231,779,1034,866,1281,2060,1146,980,
+ 1246,423,1235,287,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 2914,5058,1,2923,1,1,1,5027,1,680,
+ 2812,2929,2923,4976,1,2932,2812,1,1,4932,
+ 1,466,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,2931,1,1,1,
+ 1,1,1,1,3023,2923,1231,779,1034,866,
+ 1281,2060,1146,980,1246,423,1235,2923,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,2922,1,1,1,1,
- 1,1,3014,863,1048,1023,1060,924,2072,802,
- 669,921,708,879,287,258,1,1,1,1,
+ 2923,1,1,1,2923,4976,1,2932,2812,1,
+ 1,4932,1,466,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,2931,1,
+ 1,1,1,1,1,1,3023,2086,1231,779,
+ 1034,866,1281,2060,1146,980,1246,423,1235,2112,
1,1,1,1,1,1,1,1,1,1,
- 1,2914,1634,2548,1,400,418,445,1648,2599,
- 2914,2565,1890,2590,2927,1616,1457,476,2924,2925,
- 2926,1598,1422,3130,3131,3132,2914,3076,3077,3075,
- 3133,3078,3074,64,2914,48,270,3142,1837,809,
- 400,418,445,2653,255,712,507,3081,3086,3085,
- 3083,3084,3082,3087,3088,3080,3089,3090,3091,1778,
- 1970,920,2914,1,1,2923,1,1,1,1,
- 1,3174,2914,129,2914,3094,68,2824,2827,2830,
- 684,3095,2914,628,1,1,1,2922,1,1,
- 1,1,1,1,3221,3130,3131,3132,2914,3076,
- 3077,3075,3133,3078,3074,2637,2622,380,1,1,
+ 1,1,64,1,1,1,2923,1455,1675,2923,
+ 440,428,432,1456,2614,470,2936,2596,2588,2604,
+ 2502,2069,1467,2933,2934,2935,2571,919,3139,3141,
+ 346,3140,3085,3086,3084,3142,3087,3083,1,3151,
+ 2374,270,3151,1858,2923,440,428,432,2923,255,
+ 703,2928,3090,3095,3094,3092,3093,3091,3096,3097,
+ 3089,3098,3099,3100,2923,1966,2538,2377,2923,1,
+ 1,2932,2812,1,1,1,1,1,1,129,
+ 2896,2927,2812,2839,2833,2836,718,466,738,1531,
+ 1,1,2931,1,1,1,1,1,1,1,
+ 3230,3139,3141,48,3140,3085,3086,3084,3142,3087,
+ 3083,2661,112,1093,1,1,1,1,1,1,
+ 1,1,1,1,1,1,2132,1,1,1,
+ 2923,1,1,2932,2812,1,1,1,1,2923,
+ 2929,130,2923,3103,301,2848,2842,2845,2923,3104,
+ 1478,519,1,1,2931,1,1,1,1,1,
+ 1,1,3230,3139,3141,343,3140,3085,3086,3084,
+ 3142,3087,3083,2653,2629,2923,1,1,1,1,
+ 1,1,1,1,1,1,1,1,3265,1,
+ 1,1,2923,1,2920,193,1,1,1,1,
+ 2923,2923,59,131,2923,3103,300,2881,2875,2878,
+ 409,3104,66,589,1,1,2923,1,1,1,
+ 1,1,1,1,3121,3139,3141,231,3140,3085,
+ 3086,3084,3142,3087,3083,224,234,938,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,2914,1,1,2923,1,1,1,
- 1,1,65,2914,50,130,2914,3094,301,2833,
- 2836,2839,2653,3095,712,1,1,1,2922,1,
- 1,1,1,1,1,3221,1434,3130,3131,3132,
- 2914,3076,3077,3075,3133,3078,3074,2914,694,1,
+ 2923,1,1,1,348,193,2923,1,647,192,
+ 1,1,1,1,1001,2923,2923,132,42,2928,
+ 2923,2890,2884,2887,2450,2437,2424,2257,1,1,
+ 718,1,1,1,1,1,1,1,3121,3139,
+ 3141,545,3140,3085,3086,3084,3142,3087,3083,2927,
+ 326,3250,1,1,1,1,1,1,1,1,
+ 1,1,1,1,2923,1,1,1,2923,192,
+ 2923,1,3251,193,1,1,1,1,392,2923,
+ 3103,2923,1311,270,2928,1740,3104,440,428,432,
+ 2923,255,1,1,2923,1,1,1,1,1,
+ 1,1,3121,661,1286,1261,1236,1211,1186,1136,
+ 1161,1111,1083,1058,2927,2923,1,1,1,1,
+ 1,1,1,1,1,1,1,1,718,1,
+ 1,1,62,193,2923,4976,1,2932,272,531,
+ 1434,4932,1,466,1,1,1,1,1,1,
+ 1,1,1,1,1,1,187,2860,2931,50,
+ 2851,2857,2854,2860,2923,1771,3023,2661,1231,779,
+ 1034,866,1281,2060,1146,980,1246,423,1235,2923,
+ 4976,1,2932,718,2923,3163,4932,1,466,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,2914,1,2914,193,1,1,
- 1,1,1,59,1,2923,131,2887,2914,300,
- 2866,2869,2872,69,2637,2622,1,1,1,2805,
- 1,1,1,1,1,1,3112,2922,3130,3131,
- 3132,49,3076,3077,3075,3133,3078,3074,222,2653,
+ 1,186,2872,2931,49,2863,2869,2866,2872,961,
+ 748,3023,2661,1231,779,1034,866,1281,2060,1146,
+ 980,1246,423,1235,2923,4976,1,2932,222,2653,
+ 2629,4932,1,466,1,1,1,1,1,1,
+ 1,1,1,1,1,1,208,5121,2931,2923,
+ 440,428,432,5121,54,2923,3023,568,1231,779,
+ 1034,866,1281,2060,1146,980,1246,423,1235,2923,
+ 4976,1,2932,718,2653,2629,4932,1,466,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,2914,193,2914,1,2119,
- 192,1,1,1,1,61,2920,42,132,1,
- 3142,891,2875,2878,2881,2479,2466,2453,2430,1,
- 1,1,684,1,1,1,1,1,1,3112,
- 3130,3131,3132,1434,3076,3077,3075,3133,3078,3074,
- 70,2637,2622,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,2145,192,
- 2914,1,2914,193,1,1,1,1,187,2851,
- 837,1299,2848,2845,2842,2851,231,2479,2466,2453,
- 2430,251,1,1,1,234,1,1,1,1,
- 1,1,3112,1274,1249,1224,1199,1174,1124,1149,
- 1099,1072,1047,1,1,1,1,1,1,1,
+ 1,2923,2923,2931,1,3151,2374,72,2821,2815,
+ 2818,3023,1580,1231,779,1034,866,1281,2060,1146,
+ 980,1246,423,1235,2923,4976,1,2932,293,820,
+ 1579,4932,1,466,1,1,1,1,1,1,
+ 1,1,1,1,1,1,360,5122,2931,2923,
+ 440,428,432,5122,58,2923,3023,758,1231,779,
+ 1034,866,1281,2060,1146,980,1246,423,1235,2923,
+ 4976,1,2932,1555,2923,2923,4932,1,466,1,
1,1,1,1,1,1,1,1,1,1,
- 1,853,193,2914,5058,1,2923,224,273,984,
- 5027,1,680,1,1,1,1,1,1,1,
- 1,1,1,1,1,270,2914,1944,2922,400,
- 418,445,2914,255,438,3014,863,1048,1023,1060,
- 924,2072,802,669,921,708,879,2914,5058,1,
- 2923,684,684,2914,5027,1,680,1,1,1,
- 1,1,1,1,1,1,1,1,1,684,
- 186,2863,2922,252,2860,2857,2854,2863,2914,3014,
- 863,1048,1023,1060,924,2072,802,669,921,708,
- 879,2914,5058,1,2923,1,1,1,5027,1,
- 680,1,1,1,1,1,1,1,1,1,
- 1,1,1,208,5050,2914,2922,400,418,445,
- 5050,2914,3154,3014,863,1048,1023,1060,924,2072,
- 802,669,921,708,879,2914,5058,1,2923,272,
- 2914,1009,5027,1,680,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,3142,891,
- 2922,2806,2809,2812,2914,2914,424,3014,863,1048,
- 1023,1060,924,2072,802,669,921,708,879,2914,
- 5058,1,2923,684,1532,293,5027,1,680,1,
+ 1,397,2649,2931,255,3151,2374,1321,440,428,
+ 432,3023,68,1231,779,1034,866,1281,2060,1146,
+ 980,1246,423,1235,2923,4976,1,2932,2923,820,
+ 1579,4932,1,466,1,1,1,1,1,1,
+ 1,1,1,1,1,1,184,2923,2931,255,
+ 440,428,432,440,428,432,3023,1001,1231,779,
+ 1034,866,1281,2060,1146,980,1246,423,1235,2923,
+ 4976,1,2932,2923,273,791,4932,1,466,1,
1,1,1,1,1,1,1,1,1,1,
- 1,351,5053,2914,2922,400,418,445,5053,1453,
- 2914,3014,863,1048,1023,1060,924,2072,802,669,
- 921,708,879,2914,5058,1,2923,2914,616,1555,
- 5027,1,680,1,1,1,1,1,1,1,
- 1,1,1,1,1,255,3142,891,2922,400,
- 418,445,213,2914,1624,3014,863,1048,1023,1060,
- 924,2072,802,669,921,708,879,2914,5058,1,
- 2923,2914,203,498,5027,1,680,1,1,1,
- 1,1,1,1,1,1,1,1,1,2914,
- 210,3094,2922,1,2908,1837,2919,3095,820,3014,
- 863,1048,1023,1060,924,2072,802,669,921,708,
- 879,2914,5058,1,2923,179,1349,2884,5027,1,
- 680,1,1,1,1,1,1,1,1,1,
- 1,1,1,2914,2943,1509,2922,684,2918,1,
- 2944,1944,267,3014,863,1048,1023,1060,924,2072,
- 802,669,921,708,879,2914,5058,1,2923,2914,
- 326,3241,5027,1,680,1,1,1,1,1,
- 1,1,1,1,1,1,1,2914,209,555,
- 2922,2914,3242,684,267,555,996,3014,863,1048,
- 1023,1060,924,2072,802,669,921,708,879,2914,
- 5058,1,2923,3130,3131,3132,5027,1,680,1,
+ 1,361,1444,2931,364,440,428,432,440,428,
+ 432,3023,2923,1231,779,1034,866,1281,2060,1146,
+ 980,1246,423,1235,2923,4976,1,2932,179,718,
+ 2893,4932,1,466,1,1,1,1,1,1,
+ 1,1,1,1,1,1,2923,363,2931,2923,
+ 61,440,428,432,2923,955,3023,2930,1231,779,
+ 1034,866,1281,2060,1146,980,1246,423,1235,2923,
+ 4976,1,2932,2923,60,745,4932,1,466,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,463,891,2922,2806,2809,2812,3092,2914,
- 2914,3014,863,1048,1023,1060,924,2072,802,669,
- 921,708,879,3130,3131,3132,88,3076,3077,3075,
- 3133,3078,3074,28,2914,1,3142,1837,264,237,
- 2914,2914,225,2890,2890,2890,2914,3081,3086,3085,
- 3083,3084,3082,3087,3088,3080,3089,3090,3091,1778,
- 1970,920,2914,3093,225,1,400,418,445,3092,
- 2914,51,238,2923,680,225,2896,2896,2896,684,
- 264,2524,2295,71,3130,3131,3132,1324,3076,3077,
- 3075,3133,3078,3074,2941,2922,264,225,1,2893,
- 225,128,2914,225,959,2815,2818,2821,3081,3086,
- 3085,3083,3084,3082,3087,3088,3080,3089,3090,3091,
- 1778,1970,920,3130,3131,3132,2914,3076,3077,3075,
- 3133,3078,3074,225,2914,1096,225,1,3142,891,
- 184,2806,2809,2812,400,418,445,3081,3086,3085,
- 3083,3084,3082,3087,3088,3080,3089,3090,3091,1,
- 2931,2548,2917,2914,853,3174,2932,598,2914,2565,
- 1890,2590,2927,1616,1457,476,2924,2925,2926,1598,
- 1422,60,338,2914,934,897,17,179,2902,2902,
- 179,179,179,1,2902,1944,2919,231,810,1,
- 1486,1667,112,2806,2809,2812,235,255,179,179,
- 179,2902,179,179,179,179,179,179,18,178,
- 2905,2905,178,178,178,53,2905,2916,255,62,
- 2902,2902,400,418,445,2524,2295,684,2918,72,
- 178,178,178,2905,178,178,178,178,178,178,
- 2914,2914,2585,2479,2466,2453,2430,2914,2931,2548,
- 2917,2914,2905,2905,2932,841,3174,2565,1890,2590,
- 2927,1616,1457,476,2924,2925,2926,1598,1422,1,
- 2931,2548,27,1397,2911,2914,2932,2599,5038,2565,
- 1890,2590,2927,1616,1457,476,2924,2925,2926,1598,
- 1422,2914,2931,2548,2917,2914,2404,1730,2932,2599,
- 2914,2565,1890,2590,2927,1616,1457,476,2924,2925,
- 2926,1598,1422,388,2239,2916,1,3142,891,2914,
- 2806,2809,2812,2914,352,2914,2931,2548,400,418,
- 445,27,2932,2599,5038,2565,1890,2590,2927,1616,
- 1457,476,2924,2925,2926,1598,1422,2914,2914,776,
- 1768,2914,355,2914,2931,2548,400,418,445,2916,
- 2932,2599,1361,2565,1890,2590,2927,1616,1457,476,
- 2924,2925,2926,1598,1422,1,2931,2548,2914,1486,
- 723,2919,2932,2599,5038,2565,1890,2590,2927,1616,
- 1457,476,2924,2925,2926,1598,1422,1,2931,2548,
- 2914,1137,1,2919,2932,2599,5038,2565,1890,2590,
- 2927,1616,1457,476,2924,2925,2926,1598,1422,2914,
- 2931,2548,1,2918,2914,116,2932,2599,5038,2565,
- 1890,2590,2927,1616,1457,476,2924,2925,2926,1598,
- 1422,2914,2931,2548,2914,2918,54,116,2932,2599,
- 2914,2565,1890,2590,2927,1616,1457,476,2924,2925,
- 2926,1598,1422,1,2931,2548,253,116,58,3173,
- 2932,2599,2914,2565,1890,2590,2927,1616,1457,476,
- 2924,2925,2926,1598,1422,2914,2931,2587,3130,3131,
- 3132,2914,2932,2599,2917,2565,1890,2590,2927,1616,
- 1457,476,2924,2925,2926,1598,1422,2914,2931,2620,
- 2914,1471,1581,2923,2932,2599,2914,2565,1890,2590,
- 2927,1616,1457,476,2924,2925,2926,1598,1422,332,
- 2931,2548,2914,1471,1581,2922,2932,2599,2914,2565,
- 1890,2590,2927,1616,1457,476,2924,2925,2926,1598,
- 1422,31,1,749,2914,3094,2806,2809,2812,2916,
- 255,3095,2914,654,354,2938,2939,67,400,418,
- 445,1713,158,52,2914,185,400,418,445,400,
- 418,445,346,2524,2295,345,400,418,445,400,
- 418,445,250,2914,353,2020,2919,347,400,418,
- 445,400,418,445,2914,2914,254,2919,2919,57,
- 2914,56,63,2923,3130,3131,3132,202,55,3174,
- 1287,400,418,445,2914,209,1937,348,3130,3131,
- 3132,400,418,445,1286,2922,349,28,2918,350,
- 400,418,445,400,418,445,789,1,2914,2918,
- 2918,2919,1,2914,474,2919,2921,1,286,41,
- 90,907,324,2914,764,1668,998,2914,1361,2362,
- 191,1920,1361,355,1471,1581,1471,1581,1,208,
- 2914,2914,351,1471,1581,2914,4328,2914,2914,2404,
- 1730,2914,2914,2918,2914,2914,2914,2918,657,2914,
- 2914,2914,90,2914,2914,2914,2914,2914,2914,2914,
- 3095,2914,2914,2914,2914,2920,2914,2914,2914,2914,
- 907,2914,2914,2914,2914,2914,2914,2914,2914,2914,
- 2914,2914,2914,2914,2914,2914,2914,2914,2914,2914,
- 2914,3094
+ 1,1,2902,2931,1,3151,2374,2923,2821,2815,
+ 2818,3023,2923,1231,779,1034,866,1281,2060,1146,
+ 980,1246,423,1235,1,597,2374,2929,2821,2815,
+ 2818,3101,2450,2437,2424,2257,237,210,3103,225,
+ 2899,2899,2899,1,3104,1,3139,3141,2932,3140,
+ 3085,3086,3084,3142,3087,3083,2450,2437,2424,2257,
+ 225,2923,1,3151,1858,264,1483,2923,3183,2931,
+ 3090,3095,3094,3092,3093,3091,3096,3097,3089,3098,
+ 3099,3100,2923,1966,2538,2377,2923,3102,2923,1701,
+ 440,428,432,3101,225,264,1422,349,238,1112,
+ 225,225,2905,2905,2905,2923,2923,718,3139,3141,
+ 3183,3140,3085,3086,3084,3142,3087,3083,2923,1033,
+ 264,2928,225,1,3151,2374,69,2821,2815,2818,
+ 2923,2923,3090,3095,3094,3092,3093,3091,3096,3097,
+ 3089,3098,3099,3100,128,1966,2538,2377,2830,2824,
+ 2827,2927,51,158,2923,2952,225,440,428,432,
+ 57,2953,225,2478,630,1480,3139,3141,2923,3140,
+ 3085,3086,3084,3142,3087,3083,1,1107,2923,56,
+ 2821,2815,2818,185,255,1483,728,440,428,432,
+ 3090,3095,3094,3092,3093,3091,3096,3097,3089,3098,
+ 3099,3100,1,2940,1675,2926,1444,2923,2923,2941,
+ 2357,2926,2936,2596,2588,2604,2502,2069,1467,2933,
+ 2934,2935,2571,919,2923,820,1579,2932,928,17,
+ 179,2911,2911,179,179,179,2923,2911,55,1,
+ 2917,1858,2928,3183,820,1579,2923,2923,2931,63,
+ 2928,179,179,2911,179,179,179,179,179,179,
+ 179,2923,2911,18,178,2914,2914,178,178,178,
+ 2925,2914,2927,355,2911,2923,2925,440,428,432,
+ 2927,337,1817,1695,718,178,178,2914,178,178,
+ 178,178,178,178,178,2923,2914,2465,1793,2923,
+ 2940,1675,2926,820,1579,1481,2941,2522,2914,2936,
+ 2596,2588,2604,2502,2069,1467,2933,2934,2935,2571,
+ 919,1,2940,1675,27,1410,961,748,2941,2614,
+ 5096,2936,2596,2588,2604,2502,2069,1467,2933,2934,
+ 2935,2571,919,2923,2940,1675,2926,2923,2923,1046,
+ 2941,2614,251,2936,2596,2588,2604,2502,2069,1467,
+ 2933,2934,2935,2571,919,1,2923,2925,1373,2821,
+ 2815,2818,2923,255,1,1,2923,1,2923,2940,
+ 1675,2923,2923,1519,27,2941,2614,5096,2936,2596,
+ 2588,2604,2502,2069,1467,2933,2934,2935,2571,919,
+ 2923,1761,2923,2928,354,2923,2940,1675,440,428,
+ 432,2925,2941,2614,1248,2936,2596,2588,2604,2502,
+ 2069,1467,2933,2934,2935,2571,919,1,2940,1675,
+ 252,1,3183,2927,2941,2614,5096,2936,2596,2588,
+ 2604,2502,2069,1467,2933,2934,2935,2571,919,1,
+ 2940,1675,1,1,2923,1,2941,2614,5096,2936,
+ 2596,2588,2604,2502,2069,1467,2933,2934,2935,2571,
+ 919,2923,2940,1675,2923,324,2923,792,2941,2614,
+ 5096,2936,2596,2588,2604,2502,2069,1467,2933,2934,
+ 2935,2571,919,2923,2940,1675,3139,3141,3182,3140,
+ 2941,2614,203,2936,2596,2588,2604,2502,2069,1467,
+ 2933,2934,2935,2571,919,1,2940,1675,253,2923,
+ 2923,2669,2941,2614,1,2936,2596,2588,2604,2502,
+ 2069,1467,2933,2934,2935,2571,919,2923,2940,2612,
+ 3139,3141,2923,3140,2941,2614,2923,2936,2596,2588,
+ 2604,2502,2069,1467,2933,2934,2935,2571,919,2923,
+ 2940,2622,250,67,1507,2923,2941,2614,1,2936,
+ 2596,2588,2604,2502,2069,1467,2933,2934,2935,2571,
+ 919,332,2940,1675,3139,3141,3104,3140,2941,2614,
+ 71,2936,2596,2588,2604,2502,2069,1467,2933,2934,
+ 2935,2571,919,31,1,468,1740,267,1,362,
+ 1740,2928,65,440,428,432,356,2947,2948,2923,
+ 440,428,432,1,2923,470,116,2812,1,2923,
+ 3103,116,2928,254,258,2923,2923,267,2932,202,
+ 2923,2927,545,440,428,432,88,116,1841,718,
+ 28,2923,116,718,2928,3139,3141,209,3140,2931,
+ 357,116,2927,358,440,428,432,440,428,432,
+ 359,521,859,28,440,428,432,1,2923,1,
+ 2928,2932,90,53,2927,52,804,1009,286,2923,
+ 2923,892,992,1918,2478,630,2478,630,209,777,
+ 231,2923,2931,2923,1336,777,2923,41,2950,235,
+ 2927,2923,90,191,364,5106,1248,2923,2923,2923,
+ 1248,2923,208,360,2923,2923,2923,2923,2923,2923,
+ 2923,691,2923,2923,2923,2923,2923,2923,2923,2923,
+ 2923,2923,2923,2923,2923,2923,2923,2923,2923,2923,
+ 2923,892,2923,839
};
};
public final static char termAction[] = TermAction.termAction;
@@ -1014,39 +1022,41 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface Asb {
public final static char asb[] = {0,
- 590,1,353,466,590,80,387,624,624,624,
- 399,75,399,75,75,399,75,399,355,470,
- 468,457,624,468,325,417,231,588,139,75,
- 382,379,382,139,382,75,468,473,470,315,
- 470,3,4,525,355,80,518,201,468,204,
- 166,470,175,326,209,315,230,231,315,77,
- 82,80,115,473,407,468,525,143,527,355,
- 468,201,201,125,468,325,571,519,519,382,
- 624,624,558,624,624,519,325,263,573,263,
- 466,341,314,266,231,80,77,82,115,115,
- 407,554,527,235,163,554,280,341,573,573,
- 573,573,573,147,573,573,573,271,492,497,
- 495,503,499,506,505,508,507,509,315,410,
- 355,314,51,201,112,80,573,175,166,323,
- 519,573,519,339,573,385,573,573,326,558,
- 263,558,468,311,421,421,209,315,215,315,
- 82,112,255,82,115,117,475,117,554,407,
- 314,554,163,146,143,573,573,573,573,573,
- 573,573,573,573,573,573,315,315,412,341,
- 341,382,382,216,573,573,573,573,573,573,
- 573,573,573,573,573,573,573,573,573,573,
- 573,573,573,573,265,10,522,470,527,112,
- 123,571,519,315,624,315,315,325,558,573,
- 314,82,257,117,112,573,382,407,383,573,
- 573,163,147,125,470,522,315,315,315,163,
- 495,495,492,492,499,499,497,497,497,497,
- 505,503,507,506,263,508,525,315,15,410,
- 123,519,571,558,573,558,558,215,112,518,
- 573,514,257,515,112,163,163,123,412,15,
- 480,80,573,527,315,117,48,216,519,315,
- 324,257,573,515,515,123,315,112,121,207,
- 382,573,47,315,216,519,558,515,117,318,
- 125,163,382,573,558,315,112,163,558
+ 570,1,200,296,375,570,504,635,472,504,
+ 504,504,484,630,484,630,630,484,630,484,
+ 298,379,377,366,504,377,389,268,502,136,
+ 536,75,630,325,322,325,75,325,630,377,
+ 382,379,263,379,85,86,439,298,635,432,
+ 175,377,178,140,379,149,211,209,261,269,
+ 79,136,135,263,632,3,635,36,382,492,
+ 377,439,97,441,298,377,175,175,61,377,
+ 389,433,603,536,268,519,433,433,325,504,
+ 504,506,504,504,433,268,50,521,50,375,
+ 284,262,204,136,635,632,3,36,36,492,
+ 468,441,183,117,468,228,284,521,521,521,
+ 521,521,101,521,521,521,219,406,411,409,
+ 417,413,420,419,422,421,423,263,495,298,
+ 262,606,175,33,635,521,149,140,326,263,
+ 266,433,521,433,282,521,328,521,521,269,
+ 506,50,506,377,259,330,330,79,263,120,
+ 263,3,33,42,3,36,38,384,38,468,
+ 492,262,468,117,100,97,521,521,521,521,
+ 521,521,521,521,521,521,521,263,263,497,
+ 284,284,325,325,121,521,521,521,521,521,
+ 521,521,521,521,521,521,521,521,521,521,
+ 521,521,521,521,521,203,92,436,379,441,
+ 33,59,263,519,433,263,504,263,263,268,
+ 506,521,262,3,44,38,33,521,325,492,
+ 326,521,521,117,101,61,379,436,263,263,
+ 263,117,409,409,406,406,413,413,411,411,
+ 411,411,419,417,421,420,50,422,439,263,
+ 538,495,59,433,519,506,521,506,506,120,
+ 33,432,521,428,44,429,33,117,117,59,
+ 497,538,394,635,521,441,263,38,216,121,
+ 433,263,267,44,521,429,429,59,263,33,
+ 57,181,325,521,215,263,121,433,506,429,
+ 38,52,61,117,325,521,506,263,33,117,
+ 506
};
};
public final static char asb[] = Asb.asb;
@@ -1054,69 +1064,70 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface Asr {
public final static byte asr[] = {0,
- 76,0,2,63,64,25,4,5,6,3,
- 61,45,44,0,8,27,46,22,47,58,
- 28,48,29,49,50,30,23,51,52,26,
- 59,31,60,53,54,24,55,56,57,1,
- 7,67,6,5,4,0,64,44,69,0,
- 27,46,22,47,58,28,48,29,49,50,
- 30,23,51,52,26,59,31,60,53,54,
- 24,55,56,57,1,7,4,5,6,9,
- 0,27,46,22,47,58,28,48,29,49,
- 50,30,23,51,52,26,59,31,60,53,
- 54,24,55,56,57,1,7,4,5,6,
- 32,3,62,0,1,7,3,62,61,0,
- 3,62,44,69,2,17,18,19,13,14,
- 15,12,8,10,11,20,21,16,1,7,
- 9,0,22,23,24,26,14,15,12,8,
- 10,11,20,21,16,2,1,7,17,18,
- 19,13,68,3,0,9,3,64,61,25,
- 4,5,6,0,47,58,28,48,29,49,
- 50,30,23,51,52,26,59,31,60,53,
- 54,24,55,56,57,1,7,22,46,27,
- 4,5,6,3,61,25,64,0,3,61,
- 45,1,22,0,61,16,17,18,19,13,
- 7,14,15,12,8,10,11,20,21,2,
- 3,45,1,0,22,23,24,14,15,12,
- 8,10,11,20,21,16,2,1,7,17,
- 18,19,13,0,25,3,8,1,2,6,
- 5,4,63,0,44,3,61,45,2,0,
- 4,5,6,44,2,69,83,14,15,12,
- 8,10,11,70,71,65,66,72,73,74,
- 75,77,78,79,80,81,84,85,62,64,
- 86,87,88,89,90,92,91,93,94,95,
- 63,68,25,61,45,3,0,3,61,62,
- 25,0,76,82,62,35,37,9,41,43,
- 38,33,39,40,36,34,42,32,3,25,
- 17,18,19,13,14,15,12,10,11,20,
- 21,16,8,2,58,59,60,54,46,51,
- 49,50,48,47,52,53,55,56,57,31,
- 28,26,27,30,22,23,24,29,4,5,
- 6,7,1,0,33,0,54,46,51,49,
- 50,48,47,52,53,55,56,57,63,25,
- 31,28,26,27,30,29,22,23,24,61,
- 1,8,4,5,6,44,45,3,2,0,
- 69,83,14,15,12,10,11,70,71,65,
- 66,72,73,74,75,77,78,79,80,81,
- 84,85,64,86,87,88,89,90,91,92,
- 93,94,95,61,44,45,27,22,28,29,
- 30,23,26,31,24,25,3,2,1,4,
- 5,6,8,0,3,61,62,64,0,64,
- 86,87,88,89,90,91,92,93,94,95,
- 9,8,70,71,10,11,66,65,72,73,
- 74,75,77,78,12,79,80,81,68,45,
- 62,84,85,63,4,5,6,61,25,3,
- 0,8,2,44,45,3,27,46,47,58,
- 28,48,29,49,50,30,51,52,26,59,
- 31,60,53,54,55,56,57,1,7,4,
- 5,6,67,22,23,24,0,35,37,9,
- 41,43,38,33,39,40,36,34,42,32,
- 25,3,14,15,12,8,10,11,20,21,
- 16,2,1,7,17,18,19,13,0,76,
- 27,46,22,47,58,28,48,29,49,50,
- 30,23,51,52,26,59,31,60,53,54,
- 24,55,56,57,1,7,8,4,5,6,
- 25,3,32,2,0
+ 76,0,27,46,22,47,59,28,48,29,
+ 49,50,30,25,51,52,26,60,31,61,
+ 53,54,23,55,56,57,1,7,5,6,
+ 4,32,3,63,0,1,7,3,63,58,
+ 0,24,3,8,1,2,4,6,5,62,
+ 0,3,58,63,24,0,3,63,45,69,
+ 2,17,18,19,10,14,15,13,8,11,
+ 12,20,21,16,1,7,9,0,3,58,
+ 33,1,22,0,2,62,64,24,5,6,
+ 4,3,58,33,45,0,22,25,23,26,
+ 14,15,13,8,11,12,20,21,16,2,
+ 1,7,17,18,19,10,68,3,0,58,
+ 16,17,18,19,10,7,14,15,13,8,
+ 11,12,20,21,2,33,3,1,0,9,
+ 3,64,58,24,5,6,4,0,47,59,
+ 28,48,29,49,50,30,25,51,52,26,
+ 60,31,61,53,54,23,55,56,57,1,
+ 7,22,46,27,5,6,4,3,58,24,
+ 64,0,22,25,14,15,13,8,11,12,
+ 20,21,16,1,7,17,18,19,10,2,
+ 23,0,45,3,58,33,2,0,58,2,
+ 33,3,62,0,64,45,69,0,5,6,
+ 4,45,2,69,83,14,15,13,8,11,
+ 12,70,71,65,66,72,73,74,75,77,
+ 78,79,80,81,84,85,63,64,86,87,
+ 88,89,90,92,91,93,94,95,68,24,
+ 62,58,33,3,0,76,82,63,36,38,
+ 9,42,44,39,34,40,41,37,35,43,
+ 32,3,24,17,18,19,10,14,15,13,
+ 11,12,20,21,16,8,2,59,60,61,
+ 54,46,51,49,50,48,47,52,53,55,
+ 56,57,31,28,26,27,30,22,25,23,
+ 29,5,6,4,7,1,0,34,0,69,
+ 83,14,15,13,11,12,70,71,65,66,
+ 72,73,74,75,77,78,79,80,81,84,
+ 85,64,86,87,88,89,90,91,92,93,
+ 94,95,58,45,33,27,22,28,29,30,
+ 25,26,31,23,24,3,2,1,5,6,
+ 4,8,0,3,58,63,64,0,3,62,
+ 33,10,0,64,86,87,88,89,90,91,
+ 92,93,94,95,9,8,70,71,11,12,
+ 66,65,72,73,74,75,77,78,13,79,
+ 80,81,68,33,63,84,85,62,5,6,
+ 4,58,24,3,0,8,2,45,33,3,
+ 27,46,47,59,28,48,29,49,50,30,
+ 51,52,26,60,31,61,53,54,55,56,
+ 57,1,7,5,6,4,67,22,25,23,
+ 0,54,46,51,49,50,48,47,52,53,
+ 55,56,57,62,24,31,28,26,27,30,
+ 29,22,25,23,58,1,8,5,6,4,
+ 45,33,3,2,0,36,38,9,42,44,
+ 39,34,40,41,37,35,43,32,24,3,
+ 14,15,13,8,11,12,20,21,16,2,
+ 1,7,17,18,19,10,0,8,27,46,
+ 22,47,59,28,48,29,49,50,30,25,
+ 51,52,26,60,31,61,53,54,23,55,
+ 56,57,1,7,67,4,6,5,0,76,
+ 27,46,22,47,59,28,48,29,49,50,
+ 30,25,51,52,26,60,31,61,53,54,
+ 23,55,56,57,7,2,5,6,24,3,
+ 32,4,1,8,0,27,46,22,47,59,
+ 28,48,29,49,50,30,25,51,52,26,
+ 60,31,61,53,54,23,55,56,57,1,
+ 7,5,6,4,9,0
};
};
public final static byte asr[] = Asr.asr;
@@ -1124,39 +1135,41 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface Nasb {
public final static char nasb[] = {0,
- 154,31,21,60,150,10,99,31,31,31,
- 100,76,100,76,76,100,76,100,94,36,
- 109,31,31,71,12,134,32,31,106,143,
- 106,143,106,106,106,143,158,31,143,134,
- 36,19,19,133,125,10,61,76,140,31,
- 31,36,31,102,63,134,31,39,134,76,
- 125,31,125,31,125,74,133,55,117,127,
- 108,143,76,65,72,113,59,61,61,106,
- 31,31,145,31,31,61,12,31,8,31,
- 60,1,134,31,134,31,143,136,125,106,
- 125,15,162,52,57,15,31,166,8,8,
- 8,8,8,56,8,8,8,31,31,31,
- 31,31,31,31,31,31,31,31,134,121,
- 24,31,45,143,125,31,8,31,31,31,
- 61,8,61,170,167,31,167,167,102,145,
- 31,145,108,31,31,31,63,134,8,134,
- 125,13,60,78,106,43,31,31,15,92,
- 134,15,57,56,92,8,8,8,8,8,
- 8,8,8,8,8,8,134,134,123,166,
- 166,82,82,68,167,8,8,8,8,8,
+ 163,29,41,19,16,127,29,10,71,29,
+ 29,29,72,79,72,79,79,72,79,72,
+ 66,160,123,29,29,74,94,12,120,56,
+ 29,100,151,100,151,100,100,100,151,144,
+ 29,151,120,160,50,50,119,140,10,17,
+ 79,148,29,29,160,29,120,29,29,96,
+ 48,81,29,120,79,140,29,140,29,140,
+ 77,119,52,106,109,122,151,79,59,75,
+ 94,17,29,94,102,15,17,17,100,29,
+ 29,153,29,29,17,12,29,8,29,16,
+ 1,120,29,120,29,151,30,140,100,140,
+ 142,172,45,54,142,29,113,8,8,8,
+ 8,8,53,8,8,8,29,29,29,29,
+ 29,29,29,29,29,29,29,120,136,22,
+ 29,176,151,140,29,8,29,29,29,120,
+ 29,17,8,17,167,114,29,114,114,96,
+ 153,29,153,122,29,29,29,48,120,8,
+ 120,140,13,16,131,100,84,29,29,142,
+ 64,120,142,54,53,64,8,8,8,8,
+ 8,8,8,8,8,8,8,120,120,138,
+ 113,113,62,62,34,114,8,8,8,8,
8,8,8,8,8,8,8,8,8,8,
- 8,8,167,8,19,19,120,36,117,13,
- 125,172,61,134,31,134,134,113,145,8,
- 134,136,108,43,13,8,106,92,31,8,
- 8,57,56,8,36,131,134,134,134,57,
- 31,31,31,31,31,31,31,31,31,31,
- 31,31,31,31,31,31,133,134,34,86,
- 51,61,172,145,167,145,145,8,13,61,
- 8,31,140,76,13,57,57,125,88,34,
- 31,31,8,117,134,43,17,172,61,134,
- 31,108,8,76,143,51,134,13,50,31,
- 106,8,41,134,172,61,145,143,43,84,
- 65,57,106,8,145,134,13,57,145
+ 8,8,8,114,8,50,50,135,160,106,
+ 13,140,120,169,17,120,29,120,120,102,
+ 153,8,120,30,122,84,13,8,100,64,
+ 29,8,8,54,53,8,160,117,120,120,
+ 120,54,29,29,29,29,29,29,29,29,
+ 29,29,29,29,29,29,29,29,119,120,
+ 158,88,44,17,169,153,114,153,153,8,
+ 13,17,8,29,148,79,13,54,54,140,
+ 90,158,29,29,8,106,120,84,37,169,
+ 17,120,29,122,8,79,151,44,120,13,
+ 43,29,100,8,86,120,169,17,153,151,
+ 84,39,59,54,100,8,153,120,13,54,
+ 153
};
};
public final static char nasb[] = Nasb.nasb;
@@ -1164,24 +1177,24 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface Nasr {
public final static char nasr[] = {0,
- 88,87,86,85,79,84,83,5,0,110,
- 0,1,50,0,80,0,126,0,52,0,
- 34,1,106,88,87,86,85,79,84,83,
- 0,134,0,1,29,27,58,0,114,0,
- 128,0,73,0,1,29,53,33,0,95,
- 72,5,1,0,1,5,48,0,32,1,
- 23,0,112,0,5,72,0,1,116,0,
- 1,36,47,34,45,27,0,1,60,92,
- 0,96,0,124,0,34,45,64,63,27,
- 0,30,0,79,75,76,77,78,67,54,
- 0,1,29,37,99,28,0,27,45,34,
- 1,0,37,28,74,50,1,29,0,24,
- 34,45,63,64,1,0,29,1,130,0,
- 63,64,1,24,0,102,1,60,0,45,
- 34,1,10,0,28,37,1,38,0,29,
- 1,108,0,129,29,1,0,27,34,36,
- 0,121,1,29,0,60,1,32,0,29,
- 53,1,66,0
+ 89,88,87,86,80,85,84,5,0,112,
+ 0,1,50,0,32,1,24,0,34,1,
+ 108,89,88,87,86,80,85,84,0,104,
+ 1,61,0,1,119,0,129,0,127,0,
+ 137,0,96,73,5,1,0,114,0,52,
+ 0,1,5,48,0,136,20,0,5,73,
+ 0,98,0,30,0,80,76,77,78,79,
+ 68,54,0,1,36,47,34,45,27,0,
+ 20,116,0,74,0,131,0,34,45,65,
+ 64,27,0,97,0,1,29,37,101,28,
+ 0,37,28,75,50,1,29,0,29,1,
+ 133,0,61,1,32,0,64,65,1,20,
+ 0,27,45,34,1,0,29,1,110,0,
+ 1,61,93,0,20,34,45,64,65,1,
+ 0,81,0,27,34,36,0,45,34,1,
+ 10,0,28,37,1,38,0,1,29,27,
+ 59,0,132,29,1,0,29,53,1,67,
+ 0,124,1,29,0,1,29,53,33,0
};
};
public final static char nasr[] = Nasr.nasr;
@@ -1189,13 +1202,13 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface TerminalIndex {
public final static char terminalIndex[] = {0,
- 85,2,87,97,98,99,86,9,3,10,
- 11,8,84,6,7,68,81,82,83,12,
- 13,48,64,76,92,69,44,55,60,63,
- 72,100,77,45,46,49,50,51,57,58,
- 59,65,71,1,90,47,52,56,61,62,
- 66,67,74,75,78,79,80,54,70,73,
- 42,91,29,31,16,17,30,89,4,14,
+ 85,2,87,99,97,98,86,9,3,84,
+ 10,11,8,6,7,68,81,82,83,12,
+ 13,48,76,92,64,69,44,55,60,63,
+ 72,100,90,77,45,46,49,50,51,57,
+ 58,59,65,71,1,47,52,56,61,62,
+ 66,67,74,75,78,79,80,42,54,70,
+ 73,29,91,31,16,17,30,89,4,14,
15,18,19,20,21,101,22,23,24,25,
26,53,5,27,28,32,33,34,35,36,
37,38,39,40,41,88,93,94,95,96
@@ -1207,19 +1220,19 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface NonterminalIndex {
public final static char nonterminalIndex[] = {0,
0,0,0,0,107,111,112,113,114,190,
- 0,0,0,115,116,117,118,119,120,121,
- 122,123,105,103,0,124,191,130,134,142,
+ 0,0,0,115,116,117,118,119,120,103,
+ 121,122,123,105,0,124,191,130,134,142,
0,106,129,165,0,168,125,128,0,0,
0,0,0,162,164,0,166,102,0,104,
- 152,167,133,141,0,0,0,163,127,156,
- 176,179,180,181,0,0,144,151,0,169,
- 175,0,0,132,145,146,147,148,153,174,
- 178,109,136,137,138,139,140,143,149,150,
- 0,155,159,161,182,108,110,126,131,135,
- 0,154,158,0,160,170,173,187,0,189,
- 0,192,0,194,0,0,0,0,157,0,
- 171,172,177,0,183,184,0,185,186,188,
- 0,0,0,193,0,0
+ 152,167,133,141,0,0,0,0,163,127,
+ 156,176,179,180,181,0,0,144,151,0,
+ 169,175,0,0,132,145,146,147,148,153,
+ 174,178,109,136,137,138,139,140,143,149,
+ 150,0,155,159,161,182,195,108,110,126,
+ 131,135,0,154,158,0,160,170,173,187,
+ 0,189,0,192,0,194,0,0,0,0,
+ 0,157,0,171,172,177,0,183,184,0,
+ 185,186,188,0,0,193,0,0,0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
@@ -1253,12 +1266,12 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface ScopeLhs {
public final static char scopeLhs[] = {
- 77,75,5,77,52,52,75,68,41,65,
- 52,36,11,75,111,65,52,92,33,6,
- 5,5,22,103,128,127,63,81,58,52,
- 34,51,76,76,76,3,95,92,7,58,
- 75,77,42,77,75,5,103,58,92,87,
- 86,85,84,83,103,36,58,47,36
+ 78,76,5,78,52,52,76,69,41,66,
+ 52,36,11,76,113,66,52,93,33,6,
+ 5,5,23,105,131,130,64,82,59,52,
+ 34,51,77,77,77,3,96,93,7,59,
+ 76,78,42,78,76,5,105,59,93,88,
+ 87,86,85,84,105,36,59,47,36
};
};
public final static char scopeLhs[] = ScopeLhs.scopeLhs;
@@ -1266,12 +1279,12 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface ScopeLa {
public final static byte scopeLa[] = {
- 62,62,62,62,68,68,62,62,82,45,
- 68,45,45,9,45,45,68,25,62,45,
- 45,68,63,4,68,68,45,2,8,68,
- 45,1,1,1,1,45,64,1,45,8,
- 9,9,33,1,1,45,1,8,25,7,
- 58,59,59,54,1,2,8,2,2
+ 63,63,63,63,68,68,63,63,82,33,
+ 68,33,33,9,33,33,68,24,63,33,
+ 33,68,62,5,68,68,33,2,8,68,
+ 33,1,1,1,1,33,64,1,33,8,
+ 9,9,34,1,1,33,1,8,24,7,
+ 59,60,60,54,1,2,8,2,2
};
};
public final static byte scopeLa[] = ScopeLa.scopeLa;
@@ -1292,35 +1305,35 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 193,127,0,191,0,127,0,159,191,0,
- 159,0,232,2,212,0,103,0,231,2,
- 2,4,0,103,103,0,159,44,0,102,
- 0,225,101,0,31,151,0,173,197,101,
- 9,172,0,104,0,0,170,101,2,163,
- 0,170,101,2,0,181,2,0,158,101,
- 0,179,0,149,158,0,9,0,174,0,
- 149,0,9,0,126,26,207,101,44,0,
- 126,207,101,26,44,0,126,26,44,0,
- 126,207,101,44,0,126,44,0,134,0,
- 2,0,171,103,0,2,103,0,170,101,
+ 194,127,0,191,0,127,0,159,191,0,
+ 159,0,235,2,214,0,103,0,234,2,
+ 2,5,0,103,103,0,160,45,0,102,
+ 0,228,101,0,31,151,0,174,199,101,
+ 9,173,0,104,0,0,171,101,2,164,
+ 0,171,101,2,0,182,2,0,159,101,
+ 0,179,0,149,159,0,9,0,174,0,
+ 149,0,9,0,126,26,209,101,45,0,
+ 126,209,101,26,45,0,126,26,45,0,
+ 126,209,101,45,0,126,45,0,134,0,
+ 2,0,171,103,0,2,103,0,171,101,
2,134,0,2,0,169,103,0,151,2,
- 0,162,0,173,204,101,9,128,220,58,
- 0,104,0,220,58,0,130,3,0,0,
- 0,104,0,173,204,101,9,220,58,0,
- 3,0,0,0,104,0,160,0,105,0,
- 219,101,160,0,101,160,0,157,105,0,
- 191,58,0,130,0,191,60,0,191,59,
- 0,201,101,9,218,128,217,179,0,218,
- 128,217,179,0,3,0,0,104,0,217,
- 179,0,130,0,3,0,0,104,0,201,
- 101,9,217,179,0,188,0,148,0,147,
- 0,146,0,145,0,144,0,138,38,0,
- 77,2,106,103,105,0,138,124,132,2,
- 41,0,53,128,0,199,101,9,0,132,
- 85,121,0,29,123,0,182,2,0,103,
- 112,0,182,2,16,0,173,197,101,9,
- 124,182,2,0,103,3,0,110,0,104,
- 0,216,2,105,0,132,44,105,0,132,
+ 0,162,0,174,206,101,9,128,223,59,
+ 0,104,0,223,59,0,130,3,0,0,
+ 0,104,0,174,206,101,9,223,59,0,
+ 3,0,0,0,104,0,161,0,105,0,
+ 222,101,161,0,101,161,0,157,105,0,
+ 192,59,0,130,0,192,61,0,192,60,
+ 0,203,101,9,221,128,220,180,0,221,
+ 128,220,180,0,3,0,0,104,0,220,
+ 180,0,130,0,3,0,0,104,0,203,
+ 101,9,220,180,0,189,0,148,0,147,
+ 0,146,0,145,0,144,0,138,39,0,
+ 77,2,106,103,105,0,138,120,132,2,
+ 42,0,53,128,0,201,101,9,0,132,
+ 85,122,0,29,123,0,183,2,0,103,
+ 112,0,183,2,16,0,174,199,101,9,
+ 120,183,2,0,103,3,0,110,0,104,
+ 0,219,2,105,0,132,45,105,0,132,
2,0
};
};
@@ -1329,23 +1342,23 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface ScopeState {
public final static char scopeState[] = {0,
- 484,0,389,0,2632,880,1988,0,1616,1457,
- 476,2668,841,388,1434,853,712,789,2479,2466,
- 2453,2430,2404,1730,2524,2295,1581,1471,2653,2637,
- 2622,2599,2590,598,2565,1890,1598,1422,1555,1532,
- 1509,616,1486,998,1397,1372,1349,1324,1299,1274,
- 1249,1224,1199,1174,1149,1124,1099,1072,1047,973,
- 764,948,897,356,1023,684,810,739,657,573,
- 545,0,474,723,0,614,2312,2286,2242,2213,
- 2192,2166,2145,1886,2119,2098,1817,2072,1742,1678,
- 0,1095,1070,644,401,2320,1420,1944,1837,2226,
- 1762,0,2416,416,1420,2047,2019,1940,1837,1596,
- 1762,1713,1992,839,891,1920,1653,0,1582,456,
- 356,416,0,2753,2744,2687,1920,2320,2666,1940,
- 1420,1653,1596,2735,456,2715,356,2047,1853,2707,
- 1713,2019,724,1992,1681,2211,2416,2164,2117,517,
- 839,1582,2368,1778,2346,1970,920,1821,409,596,
- 1615,416,2247,448,2551,2533,2498,2492,2075,0
+ 1306,0,488,0,2642,1845,429,0,2502,2069,
+ 1467,2682,2522,397,1444,521,470,545,2450,2437,
+ 2424,2257,961,748,2478,630,1579,820,2661,2653,
+ 2629,2614,2604,2357,2596,2588,2571,919,1555,1531,
+ 1507,1793,1483,1009,1410,1385,1361,1336,1311,1286,
+ 1261,1236,1211,1186,1161,1136,1111,1083,1058,981,
+ 792,649,928,365,1034,718,839,767,691,605,
+ 577,0,531,703,0,2699,2306,2277,2255,2207,
+ 2181,2161,2132,1709,2112,2086,1644,2060,1596,1565,
+ 0,1070,953,812,716,1599,1430,1740,1858,2411,
+ 1835,0,1984,426,1430,2032,2004,1936,1858,1678,
+ 1835,1817,1990,869,2374,1918,1743,0,821,487,
+ 365,426,0,2766,2748,2706,1918,1599,2702,1936,
+ 1430,1743,1678,2726,487,2403,365,2032,2698,2274,
+ 1817,2004,2556,1990,2680,2105,1984,873,677,669,
+ 869,821,2340,1966,2325,2538,2377,2311,1813,629,
+ 2052,426,2241,2166,2530,2488,2460,2131,1647,0
};
};
public final static char scopeState[] = ScopeState.scopeState;
@@ -1353,39 +1366,41 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public interface InSymb {
public final static char inSymb[] = {0,
- 0,215,101,129,229,206,183,4,5,6,
- 184,179,185,60,59,186,58,187,188,101,
- 2,1,134,101,9,2,2,2,217,127,
- 191,127,191,220,191,127,158,149,127,151,
- 101,134,145,2,222,206,200,151,127,190,
- 136,101,147,101,2,233,1,234,13,128,
- 9,128,9,149,8,158,2,44,101,101,
- 61,127,151,64,158,199,42,34,36,40,
- 39,33,38,43,41,137,9,37,35,128,
- 129,101,231,212,2,218,127,101,9,101,
- 8,101,101,26,126,101,106,2,16,21,
- 20,11,10,8,12,15,14,105,108,114,
- 109,116,115,118,117,120,119,121,170,129,
- 101,171,230,127,9,172,8,147,136,3,
- 132,101,128,2,2,138,2,2,101,63,
- 159,63,101,198,1,7,61,124,2,1,
- 9,201,160,202,101,204,128,205,101,180,
- 221,101,126,207,180,95,94,93,91,92,
- 90,89,88,87,86,64,182,132,160,2,
- 2,83,69,2,44,71,70,8,65,66,
- 11,10,78,77,75,74,73,72,79,12,
- 81,80,85,84,163,164,2,101,61,101,
- 9,153,166,132,33,132,132,199,63,61,
- 232,101,101,204,173,64,61,180,61,207,
- 26,126,8,124,101,2,182,182,216,132,
- 109,109,108,108,115,115,114,114,114,114,
- 117,116,119,118,132,120,2,181,101,158,
- 101,166,123,124,2,124,124,61,201,219,
- 63,151,127,193,173,126,126,9,158,101,
- 124,124,63,101,170,197,101,123,166,132,
- 138,61,63,193,127,101,170,173,61,225,
- 69,44,226,166,123,124,82,127,197,150,
- 64,159,69,44,124,166,173,159,124
+ 0,218,4,101,129,232,237,208,184,5,
+ 6,4,185,180,186,61,60,187,59,188,
+ 189,101,2,1,134,101,2,9,2,2,
+ 2,220,127,192,127,192,223,192,127,159,
+ 149,127,151,101,134,145,2,225,208,202,
+ 151,127,191,136,101,147,238,10,197,101,
+ 2,236,1,10,128,9,128,9,149,8,
+ 159,2,45,101,101,58,127,151,64,159,
+ 62,120,2,58,201,43,35,37,41,40,
+ 34,39,44,42,137,9,38,36,128,129,
+ 101,234,214,2,221,127,101,9,101,8,
+ 101,101,26,126,101,106,2,16,21,20,
+ 12,11,8,13,15,14,105,108,114,109,
+ 116,115,118,117,121,119,122,171,129,101,
+ 172,233,127,9,173,8,147,136,8,1,
+ 3,132,101,128,2,2,138,2,2,101,
+ 62,160,62,101,200,1,7,58,120,2,
+ 1,9,203,161,204,101,206,128,207,101,
+ 181,224,101,126,209,181,95,94,93,91,
+ 92,90,89,88,87,86,64,183,132,161,
+ 2,2,83,69,2,45,71,70,8,65,
+ 66,12,11,78,77,75,74,73,72,79,
+ 13,81,80,85,84,164,165,2,101,58,
+ 101,9,1,153,167,132,34,132,132,201,
+ 62,58,235,101,101,206,174,64,58,181,
+ 58,209,26,126,8,120,101,2,183,183,
+ 219,132,109,109,108,108,115,115,114,114,
+ 114,114,117,116,119,118,132,121,2,182,
+ 101,159,101,167,124,120,2,120,120,58,
+ 203,222,62,151,127,194,174,126,126,9,
+ 159,101,120,120,62,101,171,199,101,124,
+ 167,132,138,58,62,194,127,101,171,174,
+ 58,228,69,45,229,167,124,120,82,127,
+ 199,150,64,160,69,45,120,167,174,160,
+ 120
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -1593,7 +1608,8 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
"q",
"word",
"extended_decl_modifier_seq",
- "extended_decl_modifier"
+ "extended_decl_modifier",
+ "extended_asm_param"
};
};
public final static String name[] = Name.name;
@@ -1611,20 +1627,20 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym
public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
public final static int
- NUM_STATES = 329,
+ NUM_STATES = 341,
NT_OFFSET = 100,
- LA_STATE_OFFSET = 3269,
+ LA_STATE_OFFSET = 3287,
MAX_LA = 2147483647,
- NUM_RULES = 355,
- NUM_NONTERMINALS = 136,
- NUM_SYMBOLS = 236,
+ NUM_RULES = 364,
+ NUM_NONTERMINALS = 139,
+ NUM_SYMBOLS = 239,
SEGMENT_SIZE = 8192,
- START_STATE = 2392,
+ START_STATE = 2275,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 76,
EOLT_SYMBOL = 76,
- ACCEPT_ACTION = 2805,
- ERROR_ACTION = 2914;
+ ACCEPT_ACTION = 2811,
+ ERROR_ACTION = 2923;
public final static boolean BACKTRACK = true;
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java
index fa23f1ba53..c168c6827a 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java
@@ -16,61 +16,61 @@ package org.eclipse.cdt.internal.core.dom.lrparser.gcc;
public interface GCCParsersym {
public final static int
TK_auto = 27,
- TK_break = 34,
- TK_case = 35,
+ TK_break = 35,
+ TK_case = 36,
TK_char = 46,
TK_const = 22,
- TK_continue = 36,
- TK_default = 37,
- TK_do = 38,
+ TK_continue = 37,
+ TK_default = 38,
+ TK_do = 39,
TK_double = 47,
TK_else = 82,
- TK_enum = 58,
+ TK_enum = 59,
TK_extern = 28,
TK_float = 48,
- TK_for = 39,
- TK_goto = 40,
- TK_if = 41,
+ TK_for = 40,
+ TK_goto = 41,
+ TK_if = 42,
TK_inline = 29,
TK_int = 49,
TK_long = 50,
TK_register = 30,
- TK_restrict = 23,
- TK_return = 42,
+ TK_restrict = 25,
+ TK_return = 43,
TK_short = 51,
TK_signed = 52,
TK_sizeof = 16,
TK_static = 26,
- TK_struct = 59,
- TK_switch = 43,
+ TK_struct = 60,
+ TK_switch = 44,
TK_typedef = 31,
- TK_union = 60,
+ TK_union = 61,
TK_unsigned = 53,
TK_void = 54,
- TK_volatile = 24,
- TK_while = 33,
+ TK_volatile = 23,
+ TK_while = 34,
TK__Bool = 55,
TK__Complex = 56,
TK__Imaginary = 57,
TK_integer = 17,
TK_floating = 18,
TK_charconst = 19,
- TK_stringlit = 13,
+ TK_stringlit = 10,
TK_identifier = 1,
TK_Completion = 7,
TK_EndOfCompletion = 3,
TK_Invalid = 96,
- TK_LeftBracket = 44,
+ TK_LeftBracket = 45,
TK_LeftParen = 2,
TK_LeftBrace = 9,
TK_Dot = 69,
TK_Arrow = 83,
TK_PlusPlus = 14,
TK_MinusMinus = 15,
- TK_And = 12,
+ TK_And = 13,
TK_Star = 8,
- TK_Plus = 10,
- TK_Minus = 11,
+ TK_Plus = 11,
+ TK_Minus = 12,
TK_Tilde = 20,
TK_Bang = 21,
TK_Slash = 70,
@@ -88,7 +88,7 @@ public interface GCCParsersym {
TK_AndAnd = 81,
TK_OrOr = 84,
TK_Question = 85,
- TK_Colon = 63,
+ TK_Colon = 62,
TK_DotDotDot = 67,
TK_Assign = 64,
TK_StarAssign = 86,
@@ -101,18 +101,18 @@ public interface GCCParsersym {
TK_AndAssign = 93,
TK_CaretAssign = 94,
TK_OrAssign = 95,
- TK_Comma = 61,
+ TK_Comma = 58,
TK_RightBracket = 68,
- TK_RightParen = 45,
- TK_RightBrace = 62,
- TK_SemiColon = 25,
+ TK_RightParen = 33,
+ TK_RightBrace = 63,
+ TK_SemiColon = 24,
TK_typeof = 97,
TK___alignof__ = 98,
TK_MAX = 99,
TK_MIN = 100,
- TK___attribute__ = 4,
- TK___declspec = 5,
- TK_asm = 6,
+ TK___attribute__ = 5,
+ TK___declspec = 6,
+ TK_asm = 4,
TK_ERROR_TOKEN = 32,
TK_EOF_TOKEN = 76;
@@ -121,16 +121,16 @@ public interface GCCParsersym {
"identifier",
"LeftParen",
"EndOfCompletion",
+ "asm",
"__attribute__",
"__declspec",
- "asm",
"Completion",
"Star",
"LeftBrace",
+ "stringlit",
"Plus",
"Minus",
"And",
- "stringlit",
"PlusPlus",
"MinusMinus",
"sizeof",
@@ -140,9 +140,9 @@ public interface GCCParsersym {
"Tilde",
"Bang",
"const",
- "restrict",
"volatile",
"SemiColon",
+ "restrict",
"static",
"auto",
"extern",
@@ -150,6 +150,7 @@ public interface GCCParsersym {
"register",
"typedef",
"ERROR_TOKEN",
+ "RightParen",
"while",
"break",
"case",
@@ -162,7 +163,6 @@ public interface GCCParsersym {
"return",
"switch",
"LeftBracket",
- "RightParen",
"char",
"double",
"float",
@@ -175,12 +175,12 @@ public interface GCCParsersym {
"_Bool",
"_Complex",
"_Imaginary",
+ "Comma",
"enum",
"struct",
"union",
- "Comma",
- "RightBrace",
"Colon",
+ "RightBrace",
"Assign",
"RightShift",
"LeftShift",
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java
index 854eba5efd..7927c636f9 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -28,6 +29,8 @@ import org.eclipse.cdt.core.dom.ast.cpp.*;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
+import org.eclipse.cdt.core.dom.lrparser.action.gcc.GCCBuildASTParserAction;
+
public class GPPParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
{
private static ParseTable prs = new GPPParserprs();
@@ -166,13 +169,21 @@ public class GPPParser extends PrsStream implements RuleAction , IParserActionTo
private CPPBuildASTParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public GPPParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu);
+ action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack);
action.setParserOptions(options);
+
+
+
+ gccAction = new GCCBuildASTParserAction( CPPNodeFactory.getDefault() , this, tu, astStack);
+ gccAction.setParserOptions(options);
+
+
}
@@ -200,13 +211,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -238,6 +248,8 @@ public GPPParser(String[] mapFrom) { // constructor
+private GCCBuildASTParserAction gccAction;
+
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
@@ -1110,127 +1122,127 @@ public GPPParser(String[] mapFrom) { // constructor
//
// Rule 234: no_type_declaration_specifier ::= friend
//
- case 234: { action. consumeDeclSpecToken(); break;
+ case 234: { action. consumeToken(); break;
}
//
// Rule 235: no_type_declaration_specifier ::= typedef
//
- case 235: { action. consumeDeclSpecToken(); break;
+ case 235: { action. consumeToken(); break;
}
//
// Rule 255: storage_class_specifier ::= auto
//
- case 255: { action. consumeDeclSpecToken(); break;
+ case 255: { action. consumeToken(); break;
}
//
// Rule 256: storage_class_specifier ::= register
//
- case 256: { action. consumeDeclSpecToken(); break;
+ case 256: { action. consumeToken(); break;
}
//
// Rule 257: storage_class_specifier ::= static
//
- case 257: { action. consumeDeclSpecToken(); break;
+ case 257: { action. consumeToken(); break;
}
//
// Rule 258: storage_class_specifier ::= extern
//
- case 258: { action. consumeDeclSpecToken(); break;
+ case 258: { action. consumeToken(); break;
}
//
// Rule 259: storage_class_specifier ::= mutable
//
- case 259: { action. consumeDeclSpecToken(); break;
+ case 259: { action. consumeToken(); break;
}
//
// Rule 260: function_specifier ::= inline
//
- case 260: { action. consumeDeclSpecToken(); break;
+ case 260: { action. consumeToken(); break;
}
//
// Rule 261: function_specifier ::= virtual
//
- case 261: { action. consumeDeclSpecToken(); break;
+ case 261: { action. consumeToken(); break;
}
//
// Rule 262: function_specifier ::= explicit
//
- case 262: { action. consumeDeclSpecToken(); break;
+ case 262: { action. consumeToken(); break;
}
//
// Rule 263: simple_type_specifier ::= char
//
- case 263: { action. consumeDeclSpecToken(); break;
+ case 263: { action. consumeToken(); break;
}
//
// Rule 264: simple_type_specifier ::= wchar_t
//
- case 264: { action. consumeDeclSpecToken(); break;
+ case 264: { action. consumeToken(); break;
}
//
// Rule 265: simple_type_specifier ::= bool
//
- case 265: { action. consumeDeclSpecToken(); break;
+ case 265: { action. consumeToken(); break;
}
//
// Rule 266: simple_type_specifier ::= short
//
- case 266: { action. consumeDeclSpecToken(); break;
+ case 266: { action. consumeToken(); break;
}
//
// Rule 267: simple_type_specifier ::= int
//
- case 267: { action. consumeDeclSpecToken(); break;
+ case 267: { action. consumeToken(); break;
}
//
// Rule 268: simple_type_specifier ::= long
//
- case 268: { action. consumeDeclSpecToken(); break;
+ case 268: { action. consumeToken(); break;
}
//
// Rule 269: simple_type_specifier ::= signed
//
- case 269: { action. consumeDeclSpecToken(); break;
+ case 269: { action. consumeToken(); break;
}
//
// Rule 270: simple_type_specifier ::= unsigned
//
- case 270: { action. consumeDeclSpecToken(); break;
+ case 270: { action. consumeToken(); break;
}
//
// Rule 271: simple_type_specifier ::= float
//
- case 271: { action. consumeDeclSpecToken(); break;
+ case 271: { action. consumeToken(); break;
}
//
// Rule 272: simple_type_specifier ::= double
//
- case 272: { action. consumeDeclSpecToken(); break;
+ case 272: { action. consumeToken(); break;
}
//
// Rule 273: simple_type_specifier ::= void
//
- case 273: { action. consumeDeclSpecToken(); break;
+ case 273: { action. consumeToken(); break;
}
//
@@ -1342,640 +1354,640 @@ public GPPParser(String[] mapFrom) { // constructor
}
//
- // Rule 304: asm_definition ::= asm ( stringlit ) ;
+ // Rule 304: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
//
- case 304: { action. consumeDeclarationASM(); break;
+ case 304: { action. consumeLinkageSpecification(); break;
}
//
- // Rule 305: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
+ // Rule 305: linkage_specification ::= extern stringlit <openscope-ast> declaration
//
case 305: { action. consumeLinkageSpecification(); break;
}
//
- // Rule 306: linkage_specification ::= extern stringlit <openscope-ast> declaration
+ // Rule 310: init_declarator_complete ::= init_declarator
//
- case 306: { action. consumeLinkageSpecification(); break;
+ case 310: { action. consumeInitDeclaratorComplete(); break;
}
//
- // Rule 311: init_declarator_complete ::= init_declarator
+ // Rule 312: init_declarator ::= complete_declarator initializer
//
- case 311: { action. consumeInitDeclaratorComplete(); break;
+ case 312: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 313: init_declarator ::= complete_declarator initializer
+ // Rule 315: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 313: { action. consumeDeclaratorWithInitializer(true); break;
+ case 315: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 316: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 317: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 316: { action. consumeDeclaratorWithPointer(true); break;
+ case 317: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 318: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 321: basic_direct_declarator ::= declarator_id_name
//
- case 318: { action. consumeDeclaratorWithPointer(true); break;
+ case 321: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 322: basic_direct_declarator ::= declarator_id_name
+ // Rule 322: basic_direct_declarator ::= ( declarator )
//
- case 322: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 322: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 323: basic_direct_declarator ::= ( declarator )
+ // Rule 323: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 323: { action. consumeDirectDeclaratorBracketed(); break;
+ case 323: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 324: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 324: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
+ case 324: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 325: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier
//
case 325: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 326: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 326: array_modifier ::= [ constant_expression ]
//
- case 326: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 326: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 327: array_modifier ::= [ constant_expression ]
+ // Rule 327: array_modifier ::= [ ]
//
- case 327: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 327: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 328: array_modifier ::= [ ]
+ // Rule 328: ptr_operator ::= pointer_hook * <openscope-ast> cv_qualifier_seq_opt
//
- case 328: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 328: { action. consumePointer(); break;
}
//
- // Rule 329: ptr_operator ::= pointer_hook * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 329: ptr_operator ::= pointer_hook &
//
- case 329: { action. consumePointer(); break;
+ case 329: { action. consumeReferenceOperator(); break;
}
//
- // Rule 330: ptr_operator ::= pointer_hook &
+ // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * <openscope-ast> cv_qualifier_seq_opt
//
- case 330: { action. consumeReferenceOperator(); break;
+ case 330: { action. consumePointerToMember(); break;
}
//
- // Rule 331: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 337: cv_qualifier ::= const
//
- case 331: { action. consumePointerToMember(); break;
+ case 337: { action. consumeToken(); break;
}
//
- // Rule 338: cv_qualifier ::= const
+ // Rule 338: cv_qualifier ::= volatile
//
- case 338: { action. consumeDeclSpecToken(); break;
+ case 338: { action. consumeToken(); break;
}
//
- // Rule 339: cv_qualifier ::= volatile
+ // Rule 340: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 339: { action. consumeDeclSpecToken(); break;
+ case 340: { action. consumeQualifiedId(false); break;
}
//
- // Rule 341: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 341: type_id ::= type_specifier_seq
//
- case 341: { action. consumeQualifiedId(false); break;
+ case 341: { action. consumeTypeId(false); break;
}
//
- // Rule 342: type_id ::= type_specifier_seq
+ // Rule 342: type_id ::= type_specifier_seq abstract_declarator
//
- case 342: { action. consumeTypeId(false); break;
+ case 342: { action. consumeTypeId(true); break;
}
//
- // Rule 343: type_id ::= type_specifier_seq abstract_declarator
+ // Rule 345: abstract_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 343: { action. consumeTypeId(true); break;
+ case 345: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 346: abstract_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 346: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
//
- case 346: { action. consumeDeclaratorWithPointer(false); break;
+ case 346: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 347: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
+ // Rule 350: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 347: { action. consumeDeclaratorWithPointer(true); break;
+ case 350: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 351: basic_direct_abstract_declarator ::= ( )
//
- case 351: { action. consumeDirectDeclaratorBracketed(); break;
+ case 351: { action. consumeAbstractDeclaratorEmpty(); break;
}
//
- // Rule 352: basic_direct_abstract_declarator ::= ( )
+ // Rule 352: array_direct_abstract_declarator ::= array_modifier
//
- case 352: { action. consumeAbstractDeclaratorEmpty(); break;
+ case 352: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 353: array_direct_abstract_declarator ::= array_modifier
+ // Rule 353: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 353: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 353: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 354: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
case 354: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 355: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 355: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 355: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 356: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 356: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
+ case 356: { action. consumeDirectDeclaratorFunctionDeclarator(false); break;
}
//
- // Rule 357: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt ...
//
- case 357: { action. consumeDirectDeclaratorFunctionDeclarator(false); break;
+ case 357: { action. consumePlaceHolder(); break;
}
//
- // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt
//
- case 358: { action. consumePlaceHolder(); break;
+ case 358: { action. consumeEmpty(); break;
}
//
- // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt
+ // Rule 359: parameter_declaration_clause ::= parameter_declaration_list , ...
//
- case 359: { action. consumeEmpty(); break;
+ case 359: { action. consumePlaceHolder(); break;
}
//
- // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ...
+ // Rule 365: abstract_declarator_opt ::= $Empty
//
- case 360: { action. consumePlaceHolder(); break;
+ case 365: { action. consumeEmpty(); break;
}
//
- // Rule 366: abstract_declarator_opt ::= $Empty
+ // Rule 366: parameter_declaration ::= declaration_specifiers parameter_init_declarator
//
- case 366: { action. consumeEmpty(); break;
+ case 366: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ // Rule 367: parameter_declaration ::= declaration_specifiers
//
- case 367: { action. consumeParameterDeclaration(); break;
+ case 367: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 368: parameter_declaration ::= declaration_specifiers
+ // Rule 369: parameter_init_declarator ::= declarator = parameter_initializer
//
- case 368: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 369: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer
+ // Rule 371: parameter_init_declarator ::= abstract_declarator = parameter_initializer
//
- case 370: { action. consumeDeclaratorWithInitializer(true); break;
+ case 371: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ // Rule 372: parameter_init_declarator ::= = parameter_initializer
//
- case 372: { action. consumeDeclaratorWithInitializer(true); break;
+ case 372: { action. consumeDeclaratorWithInitializer(false); break;
}
//
- // Rule 373: parameter_init_declarator ::= = parameter_initializer
+ // Rule 373: parameter_initializer ::= assignment_expression
//
- case 373: { action. consumeDeclaratorWithInitializer(false); break;
+ case 373: { action. consumeInitializer(); break;
}
//
- // Rule 374: parameter_initializer ::= assignment_expression
+ // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
//
- case 374: { action. consumeInitializer(); break;
+ case 374: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
//
- case 375: { action. consumeFunctionDefinition(false); break;
+ case 375: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ // Rule 378: initializer ::= ( expression_list )
//
- case 376: { action. consumeFunctionDefinition(true); break;
+ case 378: { action. consumeInitializerConstructor(); break;
}
//
- // Rule 379: initializer ::= ( expression_list )
+ // Rule 379: initializer_clause ::= assignment_expression
//
- case 379: { action. consumeInitializerConstructor(); break;
+ case 379: { action. consumeInitializer(); break;
}
//
- // Rule 380: initializer_clause ::= assignment_expression
+ // Rule 380: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list
//
- case 380: { action. consumeInitializer(); break;
+ case 380: { action. consumeInitializerList(); break;
}
//
- // Rule 381: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list
+ // Rule 381: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list
//
case 381: { action. consumeInitializerList(); break;
}
//
- // Rule 382: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list
+ // Rule 382: initializer_clause ::= { <openscope-ast> }
//
case 382: { action. consumeInitializerList(); break;
}
//
- // Rule 383: initializer_clause ::= { <openscope-ast> }
+ // Rule 383: start_initializer_list ::= $Empty
//
- case 383: { action. consumeInitializerList(); break;
+ case 383: { action. initializerListStart(); break;
}
//
- // Rule 384: start_initializer_list ::= $Empty
+ // Rule 384: end_initializer_list ::= $Empty
//
- case 384: { action. initializerListStart(); break;
+ case 384: { action. initializerListEnd(); break;
}
//
- // Rule 385: end_initializer_list ::= $Empty
+ // Rule 389: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
//
- case 385: { action. initializerListEnd(); break;
+ case 389: { action. consumeClassSpecifier(); break;
}
//
- // Rule 390: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ // Rule 390: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
//
- case 390: { action. consumeClassSpecifier(); break;
+ case 390: { action. consumeClassHead(false); break;
}
//
- // Rule 391: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 391: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
//
case 391: { action. consumeClassHead(false); break;
}
//
- // Rule 392: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 392: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
//
- case 392: { action. consumeClassHead(false); break;
+ case 392: { action. consumeClassHead(true); break;
}
//
- // Rule 393: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 393: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
//
case 393: { action. consumeClassHead(true); break;
}
//
- // Rule 394: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 397: identifier_name_opt ::= $Empty
//
- case 394: { action. consumeClassHead(true); break;
- }
+ case 397: { action. consumeEmpty(); break;
+ }
//
- // Rule 398: identifier_name_opt ::= $Empty
+ // Rule 401: visibility_label ::= access_specifier_keyword :
//
- case 398: { action. consumeEmpty(); break;
- }
+ case 401: { action. consumeVisibilityLabel(); break;
+ }
//
- // Rule 402: visibility_label ::= access_specifier_keyword :
+ // Rule 402: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
//
- case 402: { action. consumeVisibilityLabel(); break;
+ case 402: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 403: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ // Rule 403: member_declaration ::= declaration_specifiers_opt ;
//
- case 403: { action. consumeDeclarationSimple(true); break;
+ case 403: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 404: member_declaration ::= declaration_specifiers_opt ;
+ // Rule 406: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
//
- case 404: { action. consumeDeclarationSimple(false); break;
+ case 406: { action. consumeMemberDeclarationQualifiedId(); break;
}
//
- // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ // Rule 412: member_declaration ::= ERROR_TOKEN
//
- case 407: { action. consumeMemberDeclarationQualifiedId(); break;
+ case 412: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 413: member_declaration ::= ERROR_TOKEN
+ // Rule 421: member_declarator ::= declarator constant_initializer
//
- case 413: { action. consumeDeclarationProblem(); break;
+ case 421: { action. consumeMemberDeclaratorWithInitializer(); break;
}
//
- // Rule 422: member_declarator ::= declarator constant_initializer
+ // Rule 422: member_declarator ::= bit_field_declarator : constant_expression
//
- case 422: { action. consumeMemberDeclaratorWithInitializer(); break;
+ case 422: { action. consumeBitField(true); break;
}
//
- // Rule 423: member_declarator ::= bit_field_declarator : constant_expression
+ // Rule 423: member_declarator ::= : constant_expression
//
- case 423: { action. consumeBitField(true); break;
+ case 423: { action. consumeBitField(false); break;
}
//
- // Rule 424: member_declarator ::= : constant_expression
+ // Rule 424: bit_field_declarator ::= identifier_name
//
- case 424: { action. consumeBitField(false); break;
+ case 424: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 425: bit_field_declarator ::= identifier_name
+ // Rule 425: constant_initializer ::= = constant_expression
//
- case 425: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 425: { action. consumeInitializer(); break;
}
//
- // Rule 426: constant_initializer ::= = constant_expression
+ // Rule 431: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 426: { action. consumeInitializer(); break;
+ case 431: { action. consumeBaseSpecifier(false, false); break;
}
//
- // Rule 432: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 432: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
//
- case 432: { action. consumeBaseSpecifier(false, false); break;
+ case 432: { action. consumeBaseSpecifier(true, true); break;
}
//
- // Rule 433: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ // Rule 433: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
//
case 433: { action. consumeBaseSpecifier(true, true); break;
}
//
- // Rule 434: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ // Rule 434: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
//
- case 434: { action. consumeBaseSpecifier(true, true); break;
+ case 434: { action. consumeBaseSpecifier(true, false); break;
}
//
- // Rule 435: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ // Rule 435: access_specifier_keyword ::= private
//
- case 435: { action. consumeBaseSpecifier(true, false); break;
+ case 435: { action. consumeToken(); break;
}
//
- // Rule 436: access_specifier_keyword ::= private
+ // Rule 436: access_specifier_keyword ::= protected
//
case 436: { action. consumeToken(); break;
}
//
- // Rule 437: access_specifier_keyword ::= protected
+ // Rule 437: access_specifier_keyword ::= public
//
case 437: { action. consumeToken(); break;
}
//
- // Rule 438: access_specifier_keyword ::= public
+ // Rule 439: access_specifier_keyword_opt ::= $Empty
//
- case 438: { action. consumeToken(); break;
+ case 439: { action. consumeEmpty(); break;
}
//
- // Rule 440: access_specifier_keyword_opt ::= $Empty
+ // Rule 441: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
//
- case 440: { action. consumeEmpty(); break;
+ case 441: { action. consumeTemplateId(); break;
}
//
- // Rule 442: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
+ // Rule 442: conversion_function_id ::= operator conversion_type_id
//
- case 442: { action. consumeTemplateId(); break;
+ case 442: { action. consumeConversionName(); break;
}
//
- // Rule 443: conversion_function_id ::= operator conversion_type_id
+ // Rule 443: conversion_type_id ::= type_specifier_seq conversion_declarator
//
- case 443: { action. consumeConversionName(); break;
+ case 443: { action. consumeTypeId(true); break;
}
//
- // Rule 444: conversion_type_id ::= type_specifier_seq conversion_declarator
+ // Rule 444: conversion_type_id ::= type_specifier_seq
//
- case 444: { action. consumeTypeId(true); break;
+ case 444: { action. consumeTypeId(false); break;
}
//
- // Rule 445: conversion_type_id ::= type_specifier_seq
+ // Rule 445: conversion_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 445: { action. consumeTypeId(false); break;
+ case 445: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 446: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 451: mem_initializer ::= mem_initializer_name ( expression_list_opt )
//
- case 446: { action. consumeDeclaratorWithPointer(false); break;
+ case 451: { action. consumeConstructorChainInitializer(); break;
}
//
- // Rule 452: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ // Rule 452: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 452: { action. consumeConstructorChainInitializer(); break;
+ case 452: { action. consumeQualifiedId(false); break;
}
//
- // Rule 453: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 455: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
//
- case 453: { action. consumeQualifiedId(false); break;
+ case 455: { action. consumeTemplateId(); break;
}
//
- // Rule 456: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ // Rule 456: operator_id_name ::= operator overloadable_operator
//
- case 456: { action. consumeTemplateId(); break;
+ case 456: { action. consumeOperatorName(); break;
}
//
- // Rule 457: operator_id_name ::= operator overloadable_operator
+ // Rule 499: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
//
- case 457: { action. consumeOperatorName(); break;
+ case 499: { action. consumeTemplateDeclaration(); break;
}
//
- // Rule 500: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ // Rule 500: export_opt ::= export
//
- case 500: { action. consumeTemplateDeclaration(); break;
+ case 500: { action. consumePlaceHolder(); break;
}
//
- // Rule 501: export_opt ::= export
+ // Rule 501: export_opt ::= $Empty
//
- case 501: { action. consumePlaceHolder(); break;
+ case 501: { action. consumeEmpty(); break;
}
//
- // Rule 502: export_opt ::= $Empty
+ // Rule 505: template_parameter ::= parameter_declaration
//
- case 502: { action. consumeEmpty(); break;
+ case 505: { action. consumeTemplateParamterDeclaration(); break;
}
//
- // Rule 506: template_parameter ::= parameter_declaration
+ // Rule 506: type_parameter ::= class identifier_name_opt
//
- case 506: { action. consumeTemplateParamterDeclaration(); break;
+ case 506: { action. consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 507: type_parameter ::= class identifier_name_opt
+ // Rule 507: type_parameter ::= class identifier_name_opt = type_id
//
- case 507: { action. consumeSimpleTypeTemplateParameter(false); break;
+ case 507: { action. consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 508: type_parameter ::= class identifier_name_opt = type_id
+ // Rule 508: type_parameter ::= typename identifier_name_opt
//
- case 508: { action. consumeSimpleTypeTemplateParameter(true); break;
+ case 508: { action. consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 509: type_parameter ::= typename identifier_name_opt
+ // Rule 509: type_parameter ::= typename identifier_name_opt = type_id
//
- case 509: { action. consumeSimpleTypeTemplateParameter(false); break;
+ case 509: { action. consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 510: type_parameter ::= typename identifier_name_opt = type_id
+ // Rule 510: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
//
- case 510: { action. consumeSimpleTypeTemplateParameter(true); break;
+ case 510: { action. consumeTemplatedTypeTemplateParameter(false); break;
}
//
- // Rule 511: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ // Rule 511: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
//
- case 511: { action. consumeTemplatedTypeTemplateParameter(false); break;
+ case 511: { action. consumeTemplatedTypeTemplateParameter(true); break;
}
//
- // Rule 512: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ // Rule 512: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
//
- case 512: { action. consumeTemplatedTypeTemplateParameter(true); break;
+ case 512: { action. consumeTemplateId(); break;
}
//
- // Rule 513: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
+ // Rule 517: template_argument ::= assignment_expression
//
- case 513: { action. consumeTemplateId(); break;
+ case 517: { action. consumeTemplateArgumentExpression(); break;
}
//
- // Rule 518: template_argument ::= assignment_expression
+ // Rule 518: template_argument ::= type_id
//
- case 518: { action. consumeTemplateArgumentExpression(); break;
+ case 518: { action. consumeTemplateArgumentTypeId(); break;
}
//
- // Rule 519: template_argument ::= type_id
+ // Rule 519: explicit_instantiation ::= template declaration
//
- case 519: { action. consumeTemplateArgumentTypeId(); break;
+ case 519: { action. consumeTemplateExplicitInstantiation(); break;
}
//
- // Rule 520: explicit_instantiation ::= template declaration
+ // Rule 520: explicit_specialization ::= template < > declaration
//
- case 520: { action. consumeTemplateExplicitInstantiation(); break;
+ case 520: { action. consumeTemplateExplicitSpecialization(); break;
}
//
- // Rule 521: explicit_specialization ::= template < > declaration
+ // Rule 521: try_block ::= try compound_statement <openscope-ast> handler_seq
//
- case 521: { action. consumeTemplateExplicitSpecialization(); break;
+ case 521: { action. consumeStatementTryBlock(); break;
}
//
- // Rule 522: try_block ::= try compound_statement <openscope-ast> handler_seq
+ // Rule 524: handler ::= catch ( exception_declaration ) compound_statement
//
- case 522: { action. consumeStatementTryBlock(); break;
+ case 524: { action. consumeStatementCatchHandler(false); break;
}
//
- // Rule 525: handler ::= catch ( exception_declaration ) compound_statement
+ // Rule 525: handler ::= catch ( ... ) compound_statement
//
- case 525: { action. consumeStatementCatchHandler(false); break;
+ case 525: { action. consumeStatementCatchHandler(true); break;
}
//
- // Rule 526: handler ::= catch ( ... ) compound_statement
+ // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
//
- case 526: { action. consumeStatementCatchHandler(true); break;
+ case 526: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 527: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
+ // Rule 527: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
//
case 527: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 528: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
+ // Rule 528: exception_declaration ::= type_specifier_seq
//
- case 528: { action. consumeDeclarationSimple(true); break;
+ case 528: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 529: exception_declaration ::= type_specifier_seq
+ // Rule 530: exception_specification ::= throw ( )
//
- case 529: { action. consumeDeclarationSimple(false); break;
+ case 530: { action. consumePlaceHolder(); break;
}
//
- // Rule 531: exception_specification ::= throw ( )
+ // Rule 551: attribute_parameter ::= assignment_expression
//
- case 531: { action. consumePlaceHolder(); break;
+ case 551: { action. consumeIgnore(); break;
}
-
+
//
- // Rule 552: attribute_parameter ::= assignment_expression
+ // Rule 561: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
//
- case 552: { action. consumeIgnore(); break;
- }
+ case 561: { gccAction.consumeDeclarationASM(); break;
+ }
default:
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java
index 63e98fbcba..27929ad52c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java
@@ -67,553 +67,560 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
1,1,1,1,1,3,4,4,5,2,
5,6,5,0,6,7,0,1,3,1,
0,1,3,1,1,1,6,5,7,6,
- 1,0,6,5,6,4,1,3,1,0,
- 1,1,2,1,1,3,1,3,1,1,
- 1,1,3,9,2,2,3,2,4,2,
- 6,0,1,2,2,1,0,1,1,1,
- 3,1,2,1,1,2,3,1,1,1,
- 3,2,1,2,2,9,8,2,1,3,
- 1,3,1,0,1,0,2,1,1,3,
- 1,3,2,1,5,8,1,2,3,1,
- 7,6,3,0,0,1,3,1,1,5,
- 6,6,7,7,0,0,1,0,1,1,
- 1,2,4,2,2,1,5,1,1,1,
- 1,1,1,1,2,1,0,1,3,1,
- 1,2,3,2,1,2,2,1,0,1,
- 3,3,5,5,4,1,1,1,1,0,
- 1,5,2,2,1,2,2,1,0,1,
- 3,4,3,1,1,5,2,1,1,3,
- 3,1,1,1,1,1,1,1,1,1,
+ 1,0,6,6,4,1,3,1,0,1,
+ 1,2,1,1,3,1,3,1,1,1,
+ 1,3,9,2,2,3,2,4,2,6,
+ 0,1,2,2,1,0,1,1,1,3,
+ 1,2,1,1,2,3,1,1,1,3,
+ 2,1,2,2,9,8,2,1,3,1,
+ 3,1,0,1,0,2,1,1,3,1,
+ 3,2,1,5,8,1,2,3,1,7,
+ 6,3,0,0,1,3,1,1,5,6,
+ 6,7,7,0,0,1,0,1,1,1,
+ 2,4,2,2,1,5,1,1,1,1,
+ 1,1,1,2,1,0,1,3,1,1,
+ 2,3,2,1,2,2,1,0,1,3,
+ 3,5,5,4,1,1,1,1,0,1,
+ 5,2,2,1,2,2,1,0,1,3,
+ 4,3,1,1,5,2,1,1,3,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,1,1,1,2,2,7,
- 1,0,1,3,1,1,2,4,2,4,
- 7,9,5,1,3,1,0,1,1,2,
- 4,4,1,2,5,5,3,3,1,4,
- 3,1,0,1,3,1,1,1,1,2,
- 6,3,1,3,1,4,0,1,1,1,
- 3,1,0,4,1,0,1,2,1,3,
- 4,4,1,0,1,2,2,3,2,2,
- 3,1,1,1,1,1,-263,0,0,0,
- -2,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-4,
- 0,0,0,0,0,0,0,-66,0,0,
- 0,0,0,-56,0,0,0,0,-28,0,
- 0,0,0,0,-157,0,0,0,0,0,
- 0,0,0,0,0,0,0,-7,0,0,
- 0,0,-505,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,2,2,7,1,
+ 0,1,3,1,1,2,4,2,4,7,
+ 9,5,1,3,1,0,1,1,2,4,
+ 4,1,2,5,5,3,3,1,4,3,
+ 1,0,1,3,1,1,1,1,2,6,
+ 3,1,3,1,4,0,1,1,1,3,
+ 1,0,4,3,1,2,1,3,4,4,
+ 6,1,0,1,3,1,3,0,1,4,
+ 5,1,1,2,2,3,2,2,3,1,
+ 1,1,1,1,-270,0,0,0,-2,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-67,0,0,
+ 0,0,0,0,-7,0,0,0,0,0,
+ 0,-56,0,0,0,0,-122,0,0,0,
+ 0,0,-9,-162,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-513,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-50,0,0,0,0,0,
+ 0,-103,0,0,0,0,0,0,0,0,
+ 0,0,-59,0,0,0,0,0,0,-33,
+ 0,0,0,-3,0,0,0,0,0,0,
+ 0,0,0,0,0,-14,-12,0,0,0,
+ 0,0,-16,0,-72,0,-276,0,0,0,
+ -17,0,0,0,0,0,0,0,0,0,
+ -18,0,0,0,0,0,0,-116,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-316,0,0,-161,0,0,0,0,
+ 0,0,0,0,-19,0,0,0,0,0,
+ -352,0,0,0,-28,0,0,0,-211,0,
+ -27,0,0,0,0,0,-98,0,0,0,
+ 0,0,0,0,-134,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-453,0,0,0,0,
- 0,0,0,-432,0,0,0,0,0,0,
- 0,0,0,0,0,0,-9,0,0,0,
- -33,0,0,0,-3,-14,0,0,0,0,
- 0,0,0,0,0,0,-37,0,0,0,
- -107,0,0,0,0,0,-269,0,0,0,
- -16,0,0,0,0,0,0,0,0,0,
- -72,0,0,0,0,0,0,-115,0,0,
+ 0,0,0,0,0,0,0,0,0,-13,
+ -24,-57,0,0,0,0,0,0,0,0,
+ 0,-78,0,0,0,0,-66,-30,-123,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-34,0,-171,0,0,-20,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-416,
+ 0,-35,0,-135,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-51,-121,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-126,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-361,0,0,0,0,0,
- 0,-99,0,0,0,-403,0,0,0,0,
- 0,0,0,-133,0,0,0,0,0,0,
+ -330,0,0,0,0,-349,0,0,0,0,
+ 0,0,-38,0,0,0,0,0,-120,0,
+ 0,0,-40,0,0,-45,0,0,-4,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,-17,-59,
- -43,-20,0,0,0,0,0,0,0,0,
- -18,0,0,0,-117,0,0,0,0,0,
- -167,0,0,0,0,0,0,0,0,0,
- -27,-57,0,0,-138,0,0,0,0,-67,
+ 0,0,0,0,0,-37,0,0,0,0,
+ -89,0,0,0,0,0,0,-128,0,0,
+ 0,0,0,0,0,0,0,-172,0,0,
+ 0,-41,-277,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-209,0,
+ 0,0,0,0,0,0,0,0,0,-419,
0,0,0,0,0,0,0,0,0,0,
- -34,-134,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-35,-122,0,-38,
- 0,0,0,0,0,0,0,0,-206,0,
- 0,0,0,0,-355,0,0,0,-120,-407,
- 0,0,0,0,0,0,-166,0,0,0,
- 0,-82,0,-45,0,0,0,-305,0,0,
+ 0,0,0,0,-108,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -449,0,0,0,0,0,0,-129,0,0,
+ 0,-69,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-447,0,0,0,0,0,
- 0,0,0,0,-127,0,0,0,0,-125,
- 0,0,0,0,0,0,-235,0,-101,-574,
+ 0,0,-118,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-207,0,
+ 0,0,0,0,0,-244,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-30,-12,
- 0,0,0,0,0,-411,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-43,0,
+ -55,0,0,-512,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-113,
+ 0,0,-219,0,0,0,-250,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-58,-117,0,
+ 0,0,0,0,0,0,0,0,0,-279,
+ 0,0,0,0,0,0,0,0,0,-62,
+ 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,-40,0,
- -202,0,0,0,0,0,-41,0,0,0,
- 0,0,-13,0,0,0,0,0,0,0,
- 0,0,0,-128,0,0,0,-42,0,0,
+ 0,0,0,0,0,0,0,0,-42,-10,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-239,0,0,-82,0,0,
+ 0,-422,0,0,0,-46,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -81,-335,0,0,0,0,0,0,0,0,
- -46,0,0,0,-245,0,0,0,0,0,
- 0,-367,0,0,0,-52,0,0,0,0,
- 0,0,0,0,-237,0,0,0,-63,0,
+ 0,0,0,0,0,0,0,-44,0,-52,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-521,0,-64,
- 0,0,0,0,0,-100,0,0,0,0,
- 0,-145,0,0,0,0,0,0,0,0,
- 0,-69,-104,-214,0,0,0,-408,0,0,
+ 0,0,-99,0,0,0,0,0,0,0,
+ 0,0,0,0,-53,0,-399,0,0,-317,
+ 0,0,0,-423,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-97,0,
+ -440,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-146,-83,0,-70,0,0,
+ -429,0,0,0,-259,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-391,0,0,0,0,0,0,0,0,
- 0,0,0,0,-10,0,0,-73,0,0,
- -318,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-180,0,0,-148,0,0,0,
+ -221,0,0,0,0,0,0,0,0,0,
+ 0,-252,0,0,0,0,0,-124,0,0,
+ 0,-137,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-77,-154,0,0,0,
- 0,-489,0,0,0,0,0,0,0,0,
- 0,0,-98,0,0,0,0,-55,-414,0,
+ 0,0,-159,0,0,-63,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -100,0,-204,0,0,0,-64,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-162,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-331,
+ 0,0,0,0,0,-73,0,0,-81,0,
+ 0,0,0,0,0,0,0,0,0,-267,
+ 0,0,0,0,-511,-77,0,0,0,-51,
+ 0,-299,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-70,-142,-415,
+ 0,0,0,0,-60,0,0,-151,0,0,
+ 0,0,0,0,0,0,0,0,-65,0,
+ 0,0,0,0,0,0,0,0,-300,0,
+ 0,0,-84,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-439,-169,0,0,0,0,0,
+ 0,0,0,0,0,-79,0,0,0,0,
+ -138,-85,0,0,0,-301,0,0,0,-260,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-44,0,0,0,0,0,0,0,
- -112,0,0,0,0,0,-58,0,0,0,
- 0,0,-84,0,0,0,-421,0,0,0,
- -555,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-216,0,0,0,0,0,
- 0,0,0,0,0,0,0,-440,0,0,
- 0,0,0,-123,0,0,0,0,0,0,
+ -369,0,0,-86,0,0,0,0,0,0,
+ 0,0,-87,0,0,0,-448,0,0,0,
+ 0,0,-302,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-234,0,
- 0,0,0,0,-85,0,0,0,0,0,
- -341,0,0,0,0,0,-97,-199,0,0,
+ 0,0,0,0,0,0,0,-495,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-101,0,0,0,0,-303,
+ 0,0,0,-102,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -175,0,-230,0,0,0,0,0,-86,0,
- 0,0,0,0,-260,0,0,0,0,-87,
- -365,0,0,0,0,-146,-292,0,0,0,
+ 0,0,0,0,-500,0,0,0,0,-105,
+ 0,0,0,0,0,0,-111,0,0,0,
+ -501,0,0,0,0,0,-304,0,0,0,
+ -150,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-563,
+ 0,-527,0,0,0,0,-153,0,0,0,
+ 0,0,0,-373,0,0,0,0,-106,-411,
+ 0,0,0,-305,0,0,0,-158,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-556,
- 0,0,-441,0,0,0,0,0,0,0,
- 0,0,0,-136,0,0,0,0,0,0,
- -504,0,0,-293,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-455,
+ 0,-160,0,0,0,0,0,0,0,0,
+ -80,0,0,0,0,-152,0,-154,0,0,
+ -306,0,0,0,-173,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-487,0,
- 0,0,0,0,-252,0,0,0,0,0,
- -53,0,0,0,0,0,0,0,0,0,
- -294,0,0,0,-243,0,0,0,0,0,
+ 0,0,0,-564,0,0,-90,0,-343,0,
+ 0,0,0,0,0,0,0,-91,0,0,
+ 0,0,-215,-175,-218,0,0,-307,0,0,
+ 0,-176,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-492,0,0,0,0,
- 0,0,0,0,0,0,0,-103,0,0,
- 0,-493,0,0,0,0,0,-295,0,0,
+ 0,0,-177,-94,0,-371,0,0,0,0,
+ 0,0,0,0,-96,0,0,0,0,-229,
+ 0,-533,0,0,-308,0,0,0,-178,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-114,0,0,
+ -133,0,-179,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-147,-241,-143,-272,0,
+ 0,-309,0,0,0,-181,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-519,0,0,0,0,0,-110,0,
- 0,0,0,0,-148,0,0,0,-49,-344,
- 0,-503,0,0,-296,0,0,0,-205,0,
+ 0,0,0,0,0,0,0,-246,0,-193,
+ 0,-149,0,0,0,0,0,0,0,0,
+ 0,0,-157,-243,-155,-562,0,0,-418,0,
+ 0,0,-194,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-431,0,0,
+ 0,0,0,0,0,-242,0,0,-379,0,
+ 0,0,0,0,0,0,0,0,0,-195,
+ -245,0,-196,0,0,-460,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-153,0,0,0,-50,-78,-155,-83,0,
- 0,-297,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-60,0,
- 0,0,0,0,0,0,0,0,-65,0,
- 0,0,0,-168,-170,-102,0,0,-298,0,
- 0,0,-244,0,0,0,0,0,0,0,
+ 0,-494,0,0,0,-197,0,0,0,0,
+ 0,0,-166,0,0,0,0,-235,0,0,
+ 0,0,-566,0,0,0,-198,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-79,0,-171,0,0,0,0,0,0,
- 0,0,0,0,0,-80,0,0,0,0,
- -105,-172,-147,0,0,-299,0,0,0,-339,
+ 0,0,0,0,0,-168,0,0,-170,0,
+ 0,0,0,0,0,0,0,0,0,-220,
+ 0,0,0,0,-237,0,-238,0,0,-341,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-173,0,
- 0,0,-89,0,0,0,0,0,0,0,
- 0,0,-90,0,0,0,0,-149,-538,-150,
- 0,0,-300,0,0,0,-340,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-174,0,-232,0,0,
- -156,0,0,0,0,0,0,0,0,-91,
- 0,0,0,0,-213,-176,-224,0,0,-301,
+ 0,0,-199,0,-485,0,0,0,0,-200,
+ 0,0,0,0,0,0,-201,0,0,0,
+ -351,0,0,0,-273,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-233,0,0,0,0,0,
- 0,0,0,0,0,0,-94,0,0,0,
- 0,-236,-188,-238,0,0,-302,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-189,
+ 0,-139,0,0,0,-202,-254,0,0,0,
+ 0,0,-203,-402,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-96,0,0,0,0,-261,-190,
- -247,0,0,-410,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-516,0,
+ 0,0,0,-205,0,0,0,0,0,0,
+ -206,0,0,0,-432,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-113,0,-313,0,
- 0,-191,0,0,-137,0,0,0,0,0,
- -132,0,0,0,0,-262,-192,-330,0,0,
- -452,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-248,0,0,
+ 0,0,-208,0,-251,0,0,0,0,0,
+ 0,-212,0,0,0,-339,0,0,0,-214,
+ -104,0,0,0,0,0,-216,-433,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-342,0,-152,0,0,
- 0,-253,0,0,0,0,0,-271,0,0,
- 0,0,-346,-210,-349,0,0,-558,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-551,0,0,0,0,-224,0,0,
+ 0,0,0,0,-226,0,0,0,-560,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,-161,0,0,0,0,-193,
- -239,-194,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,0,0,-310,
- 0,0,0,0,0,-195,0,0,0,0,
- 0,0,0,0,0,-343,0,0,0,0,
+ 0,-249,0,0,-278,0,-227,0,0,0,
+ 0,0,0,0,0,-547,0,0,0,-31,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-139,0,
- 0,0,0,-196,0,0,0,0,0,0,
- 0,0,-163,0,0,0,0,-477,0,0,
- 0,0,-539,-508,0,0,0,-394,0,0,
+ 0,0,0,-415,0,0,0,-61,0,0,
+ 0,0,-529,-347,0,0,0,0,-32,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-483,-582,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -197,0,-543,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-424,0,
+ 0,0,0,0,0,0,0,-268,0,0,
+ -88,0,0,0,-247,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-363,0,0,-451,0,0,0,
+ 0,0,0,-182,-121,-400,-314,0,-497,0,
+ 0,0,-375,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-321,0,-230,0,0,
+ -232,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-322,0,0,0,
+ 0,0,0,0,-459,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-218,0,0,0,-165,-198,0,0,0,
- 0,0,0,0,0,-215,0,0,0,0,
- 0,0,0,-116,0,0,0,0,0,0,
- -425,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-233,0,-234,0,0,
+ 0,0,0,0,0,0,0,-240,-119,-269,
+ -236,0,0,0,0,0,-311,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,-200,0,-265,-246,0,-550,0,
- 0,-525,0,0,0,0,0,-201,0,0,
0,-552,0,0,0,0,0,0,0,0,
+ 0,0,0,-337,0,-298,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-231,0,0,-203,
- 0,0,0,0,0,0,0,0,-426,0,
- 0,0,-31,0,0,0,0,0,0,0,
- 0,0,0,0,0,-207,-329,0,-350,-61,
0,0,0,0,0,0,0,0,0,0,
- 0,-32,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-270,0,0,0,0,
+ 0,0,0,0,0,-461,0,0,0,0,
+ 0,0,-338,-354,0,0,-296,0,0,0,
+ -256,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-514,
+ 0,-167,0,0,-357,0,0,0,0,0,
+ 0,0,-425,0,0,0,-320,0,0,0,
+ 0,0,0,0,0,-313,0,0,0,0,
+ -29,0,0,0,0,0,0,0,0,0,
+ 0,-6,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-561,-275,-319,-543,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-404,
- 0,0,-209,0,-211,0,0,-240,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-468,0,0,-219,0,
- 0,0,0,0,0,0,0,-392,0,0,
- -241,0,0,0,0,-369,0,0,0,0,
- 0,0,0,0,0,0,0,0,-242,0,
- 0,-266,0,0,0,0,0,0,0,0,
- 0,0,-221,-364,0,0,0,0,-307,-108,
- 0,0,0,-314,0,-222,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-119,
- -443,-225,0,0,0,0,0,0,-332,0,
- 0,0,0,0,0,0,0,0,-227,-118,
- -315,0,0,0,0,0,0,0,-304,0,
+ -358,0,-326,0,0,0,0,-174,-558,0,
+ 0,0,-127,0,0,0,-327,0,0,0,
+ 0,0,0,0,-5,0,0,0,-336,0,
+ 0,0,0,0,0,-334,-335,0,0,0,
+ 0,0,0,-550,0,0,-575,-340,0,0,
+ 0,0,0,0,0,-546,-39,0,0,0,
+ 0,0,-324,0,0,0,0,-297,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-62,0,0,0,0,0,-554,
- 0,0,0,0,0,-228,0,-291,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-342,-350,0,0,0,0,0,0,
+ 0,0,0,-210,0,-344,-333,0,0,0,
+ 0,-356,-476,-359,0,0,-364,-374,0,0,
+ -377,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-360,-361,0,-156,0,0,0,
+ 0,0,0,0,0,-362,0,0,0,0,
+ 0,0,-366,0,-130,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-367,0,
+ 0,0,0,0,0,0,0,0,-573,0,
+ 0,0,0,-577,0,0,0,0,-253,0,
+ 0,-368,-185,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-451,-229,0,0,0,0,-356,0,
- 0,0,0,0,-248,0,-289,0,0,0,
- -249,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-380,
+ -293,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-126,0,0,0,0,0,-268,0,0,
- 0,0,-417,0,0,0,-312,0,0,0,
- 0,0,0,0,0,-366,0,-220,0,-29,
+ 0,0,0,-68,0,-381,-404,-382,-413,0,
+ -21,0,0,0,-346,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-223,0,0,
+ 0,0,0,0,-383,0,0,0,0,0,
+ 0,0,0,-384,-385,0,0,0,0,0,
+ -378,0,0,0,0,0,0,-225,-386,-387,
+ -431,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-319,0,0,-320,-151,0,0,0,0,
- 0,-560,-306,0,0,0,0,-535,0,0,
+ 0,0,0,-131,0,0,0,0,0,-436,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-327,
- 0,-396,0,0,0,0,0,-371,0,-542,
- 0,0,-328,0,0,0,0,0,0,0,
- -334,-475,-5,0,0,0,0,0,-336,-15,
- 0,0,0,0,-19,0,0,0,0,0,
- 0,-317,0,0,0,0,0,0,0,0,
- 0,0,0,-476,0,0,0,0,0,0,
- 0,0,0,0,-290,0,0,0,-405,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-326,0,-316,
- -351,0,0,0,0,0,0,0,0,0,
- -544,0,0,0,0,-370,-352,-472,0,0,
- 0,0,-24,-353,0,0,0,0,0,-354,
- -358,0,0,0,0,0,0,0,0,-359,
- -360,0,0,0,0,0,0,0,0,0,
- 0,0,0,-178,0,0,0,0,0,0,
- 0,0,-348,-272,0,-506,0,0,0,0,
- 0,-129,0,0,0,0,0,0,0,0,
- 0,0,0,0,-372,-567,-373,0,0,0,
- 0,0,0,-374,0,-375,0,0,0,0,
- 0,0,0,0,0,-376,-553,0,-377,-179,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-378,-286,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-379,
- 0,-380,-406,-303,-381,0,0,0,0,0,
- -338,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-382,-569,-383,-54,0,0,
- 0,-164,0,0,0,0,0,0,0,0,
- 0,-384,0,0,0,0,-446,0,0,-467,
- 0,-385,0,0,0,-423,0,0,0,0,
+ 0,0,0,0,0,0,-388,-323,0,0,
+ 0,0,0,0,0,0,0,0,-414,-389,
+ 0,0,0,0,0,0,-430,-484,0,-390,
+ 0,0,0,0,0,0,-231,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-21,0,
- 0,0,0,0,-428,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-88,0,
- 0,0,0,0,0,0,0,-565,-422,0,
- 0,0,0,0,0,0,0,0,0,-409,
- -386,-251,-387,-469,0,0,0,0,0,0,
- 0,-478,-169,-388,-389,0,0,-434,-448,0,
- -390,-393,0,0,0,0,0,0,0,-479,
- 0,0,0,0,-226,0,0,0,0,0,
- 0,0,0,0,0,0,0,-395,0,0,
- 0,0,0,0,0,0,-287,0,0,0,
+ 0,0,0,0,-47,0,0,0,-434,0,
+ -391,0,0,0,-417,-74,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-397,
- 0,0,0,0,0,0,0,0,0,-68,
- -486,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-575,-500,-398,0,-399,0,
- 0,0,0,0,0,0,0,0,0,-400,
- 0,0,-309,0,0,-480,-402,0,-429,0,
- 0,0,0,0,0,0,-288,0,0,0,
+ 0,0,-392,0,0,0,0,-583,-442,-109,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-311,
- 0,0,0,0,-430,0,0,-436,0,0,
- -321,0,0,0,0,0,0,0,0,0,
- 0,0,0,-497,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-280,0,0,
+ 0,-454,0,0,-393,0,0,0,0,0,
+ 0,-49,0,0,0,0,0,0,0,-394,
+ -475,-395,0,0,0,0,0,0,0,0,
+ 0,0,-456,-472,0,0,0,0,0,-294,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -488,0,-496,-464,-465,-437,0,0,0,0,
- 0,0,0,0,0,-438,-512,-23,0,0,
- 0,-439,0,0,0,0,0,0,-454,-455,
- -520,0,0,0,0,-473,0,-534,-457,-462,
+ 0,0,0,0,-183,0,0,0,0,-396,
+ 0,0,-295,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,-315,0,-473,-15,0,
+ -542,0,-217,0,0,0,0,-397,-398,-480,
+ -477,0,0,0,0,-486,-508,-520,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-498,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,0,0,0,0,-502,0,
- 0,0,0,0,-283,0,0,0,-466,0,
+ 0,-528,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-538,0,-412,-401,0,
+ -420,0,0,-348,-403,-421,-405,0,0,0,
+ 0,0,0,0,0,0,0,-328,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-308,0,0,
- -561,0,0,0,0,-6,0,0,0,0,
- 0,0,0,0,0,0,0,0,-470,-572,
- 0,-557,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-255,-513,-484,-530,0,
- 0,0,0,0,0,-485,-491,-514,0,0,
- 0,0,0,0,0,0,-545,-566,0,-501,
+ -569,0,0,0,0,-406,0,-407,-310,-487,
+ 0,0,0,-287,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -515,0,0,0,0,0,0,0,0,-516,
- 0,0,0,0,0,0,-74,0,0,0,
- 0,0,0,0,0,0,0,0,0,-507,
- 0,0,-522,-39,0,0,0,0,-526,-527,
- 0,0,0,0,0,-532,-540,-541,-549,0,
- 0,0,0,-559,-564,0,0,0,0,0,
- -124,0,0,0,-22,0,0,0,0,0,
- 0,0,0,-528,0,0,0,0,0,0,
- 0,0,0,-109,0,0,0,0,0,0,
- 0,0,0,-435,0,-323,-529,0,0,0,
+ 0,0,0,0,0,0,0,0,-408,0,
+ -580,0,0,0,0,0,0,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,0,0,0,0,0,-410,-553,-481,
+ 0,0,0,0,0,-437,0,0,0,0,
+ -496,0,-504,-506,0,0,0,-288,0,0,
+ 0,-438,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-284,
- 0,0,0,-412,0,0,0,0,0,0,
+ 0,0,0,0,-444,-445,0,-446,0,-289,
+ 0,0,0,-447,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-285,0,0,0,0,0,
+ 0,0,-462,0,-54,0,0,0,0,-510,
+ 0,-290,0,0,0,-463,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-401,0,0,
- 0,0,0,0,0,-130,0,0,-547,0,
- -25,0,-548,0,0,0,0,0,0,0,
- 0,0,0,0,-481,0,0,0,0,-562,
+ 0,0,0,0,-409,0,-521,0,0,0,
+ 0,-465,0,-470,-372,0,-522,-23,0,-474,
+ -523,-574,0,0,-524,0,-478,0,-519,-492,
+ -493,-499,-458,0,0,0,0,0,-536,-537,
+ -509,0,0,0,0,0,0,0,0,-464,
+ 0,0,-515,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-555,-140,-556,0,0,
+ 0,0,0,0,0,-530,-534,0,-535,0,
+ 0,0,0,0,0,0,0,-540,0,0,
+ 0,-570,0,0,-466,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-548,
+ 0,0,0,-549,-576,-557,0,0,-554,-318,
+ -567,0,0,0,0,0,0,0,0,0,
+ 0,0,-572,0,0,-579,0,0,0,-503,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-456,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-581,0,0,0,0,
+ 0,0,0,0,-488,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-413,0,0,
- 0,0,0,0,0,0,0,0,-36,0,
- 0,0,0,0,0,0,0,-458,-511,0,
- -546,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-539,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-517,0,0,0,0,0,0,0,0,
- 0,0,0,-324,0,-568,-571,0,0,0,
- 0,0,-495,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-494,0,-573,
+ 0,0,0,0,0,0,0,0,0,-489,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-541,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-531,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-568,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-518,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-545,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-533,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-551,0,
- 0,0,0,0,0,0,0,-537,0,0,
+ 0,0,-141,0,0,0,0,0,0,-502,
+ -1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-565,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-570,0,0,0,0,0,0,0,
+ -186,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-25,0,0,0,0,0,
+ 0,0,-132,-578,0,0,0,0,-525,0,
+ 0,0,0,0,-526,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-576,-482,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-584,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-1,0,0,0,0,0,-337,
+ 0,0,0,-443,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-8,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -125,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-204,0,0,0,0,0,
- -75,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -490,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-450,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,0,0,0,0,
- 0,0,0,0,-275,0,0,0,0,0,
+ -291,0,0,0,0,0,0,0,0,0,
0,0,0,0,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,0,0,0,0,0,0,-47,
- 0,0,0,0,0,0,0,-276,0,0,
+ 0,0,0,0,0,0,0,0,-95,0,
+ 0,-22,0,0,0,-75,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -110,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-258,-262,0,-559,0,0,
+ -142,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-26,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -48,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-164,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-95,0,0,0,0,0,-483,0,0,
+ 0,0,0,0,-144,0,0,0,0,0,
+ 0,0,0,0,0,0,-36,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,-48,0,0,0,
+ 0,0,0,-498,0,0,0,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,-222,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-159,0,0,0,0,
- 0,0,-143,0,0,0,0,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,-76,0,
- 0,0,-111,0,0,0,-131,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-282,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-283,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-26,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-277,0,0,0,0,0,0,
+ 0,0,0,0,0,-284,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-278,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-279,
+ 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,0,0,0,0,
+ 0,0,0,0,-76,0,0,0,-286,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-181,0,0,0,0,0,0,0,
+ 0,0,-345,0,0,0,0,0,0,-11,
+ 0,-165,-491,0,-531,0,0,0,0,0,
+ -92,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,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,0,0,-183,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,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,0,0,0,
- -185,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-186,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,-187,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-264,0,0,0,
+ 0,0,0,0,0,0,-188,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-273,0,
+ 0,0,0,0,0,0,0,0,-189,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,
+ -190,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-357,0,0,0,0,0,0,0,
+ 0,0,-191,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-444,0,0,0,-212,0,
+ 0,0,0,0,-192,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-8,0,-160,0,
- 0,0,0,0,0,0,0,-11,-140,0,
- 0,0,0,0,0,0,0,0,-92,0,
+ 0,0,0,0,0,0,-271,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-280,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -281,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-332,0,0,0,0,-544,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,0,0,0,0,0,0,
0,0,0,0,0,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,-325,-418,0,
- 0,0,0,0,0,0,0,0,-106,0,
- 0,0,0,0,0,0,-114,0,0,0,
+ 0,0,-452,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-505,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-435,-107,
+ 0,0,0,0,0,0,-163,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-355,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-459,0,0,0,
- 0,-158,0,-347,0,0,0,0,0,0,
- 0,0,-177,0,0,0,0,0,0,0,
- -144,0,0,0,0,0,0,0,0,0,
- 0,0,-416,0,0,0,0,0,0,0,
+ -424,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-71,
+ 0,0,0,0,0,0,0,0,-266,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,-523,0,0,0,
+ 0,0,-469,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-345,0,0,
- 0,0,0,0,0,0,-71,0,0,0,
- 0,0,0,0,-461,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,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-257,0,0,
0,0,0,0,0,0,0,0,0,0,
- -135,0,0,0,0,0,-536,0,0,-256,
- 0,0,-250,0,0,0,0,0,0,0,
+ -329,0,0,0,0,0,0,0,0,0,
+ 0,-532,0,0,0,0,0,0,0,0,
+ 0,0,-479,0,0,0,0,0,0,0,
+ -112,0,0,0,0,-228,0,0,0,0,
+ 0,0,0,-115,0,0,0,0,0,0,
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,0,-145,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-213,0,0,0,-426,
0,0,0,0,0,0,0,0,0,0,
- -490,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-499,-524,0,
- 0,0,0,0,-223,0,0,0,0,0,
- -208,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-370,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-376,0,0,
+ 0,0,0,0,0,0,-441,0,0,0,
+ 0,-482,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-507,-261,0,0,
+ 0,0,0,0,-517,0,0,0,0,-518,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-362,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,-563,0,0,
- 0,0,0,0,0,0,0,0,0,-433,
- 0,0,0,0,0,-474,0,0,0,0,
- 0,0,0,0,-509,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-510,0,
- 0,0,0,0,-254,0,0,0,0,0,
- 0,-259,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,
- -267,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-450,
+ 0,0,0,0,-457,0,0,0,0,0,
+ 0,0,0,0,-467,0,0,0,0,-468,
+ -571,-263,0,0,0,0,0,0,0,0,
+ 0,-471,-264,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-442,0,0,0,0,
- 0,-449,0,0,0,0,-257,0,-460,0,
- 0,-463,0,0,0,0,0,0,0,0,
- 0,0,0,-258,-419,0,0,0,0,0,
- 0,0,0,0,0,0,0,-427,0,0,
- 0,-471,0,0,0,0,0,0,0,0,
- 0,0,0,-420,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-265,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-445,-577,0,
+ 0,0,-427,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-428,0,0,0,0,
+ -453,0,-585,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0
};
};
public final static short baseCheck[] = BaseCheck.baseCheck;
@@ -623,634 +630,641 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface BaseAction {
public final static char baseAction[] = {
- 183,4,144,88,88,31,31,73,73,43,
- 43,47,47,183,1,1,15,15,15,15,
+ 186,4,146,89,89,30,30,74,74,43,
+ 43,47,47,186,1,1,15,15,15,15,
15,15,15,15,16,16,16,14,11,11,
- 6,6,6,6,6,6,2,71,71,5,
- 5,12,12,49,49,145,145,146,67,67,
+ 6,6,6,6,6,6,2,72,72,5,
+ 5,12,12,49,49,147,147,148,68,68,
48,17,17,17,17,17,17,17,17,17,
17,17,17,17,17,17,17,17,17,17,
- 17,147,147,147,124,124,18,18,18,18,
+ 17,149,149,149,125,125,18,18,18,18,
18,18,18,18,18,18,18,18,18,19,
- 19,184,184,185,185,186,150,150,151,151,
- 148,148,152,149,149,20,20,21,21,22,
- 22,22,24,24,24,24,29,29,29,30,
- 30,30,32,32,32,32,32,33,33,33,
+ 19,187,187,188,188,189,152,152,153,153,
+ 150,150,154,151,151,20,20,21,21,22,
+ 22,22,24,24,24,24,29,29,29,31,
+ 31,31,32,32,32,32,32,33,33,33,
34,34,35,35,36,36,38,38,39,39,
40,40,46,46,45,45,45,45,45,45,
- 45,45,45,45,45,45,45,44,37,153,
- 153,102,102,187,187,97,213,213,74,74,
- 74,74,74,74,74,74,74,75,75,75,
- 72,72,66,66,188,188,76,76,76,109,
- 109,189,189,77,77,77,190,190,78,78,
- 78,78,78,79,79,89,89,89,89,89,
- 89,89,89,54,54,54,54,54,110,110,
- 108,108,55,191,23,23,23,23,23,53,
- 53,92,92,92,92,92,160,160,155,155,
- 155,155,155,156,156,156,157,157,157,158,
- 158,158,159,159,159,93,93,93,93,93,
- 94,94,94,13,13,13,13,13,13,13,
- 13,13,13,13,103,128,128,128,128,128,
- 128,126,126,126,161,127,127,192,163,163,
- 162,162,130,130,111,83,83,84,85,57,
- 52,164,164,58,56,91,91,165,165,154,
- 154,131,132,132,133,69,69,166,166,62,
- 62,62,60,60,59,63,63,86,86,68,
- 68,68,64,95,95,105,104,104,70,70,
- 61,61,65,65,50,106,106,106,98,98,
- 98,99,99,100,100,100,101,101,112,112,
- 112,114,114,113,113,214,214,96,96,194,
- 194,194,194,194,135,51,51,168,193,193,
- 136,136,136,136,137,170,195,195,41,41,
- 125,138,138,138,138,197,116,115,115,129,
- 129,129,171,172,172,172,172,172,172,172,
- 172,172,172,172,199,199,196,196,198,198,
- 118,119,119,119,119,120,200,121,117,117,
- 201,201,173,173,173,173,107,107,107,202,
- 202,8,8,9,203,203,204,174,167,167,
- 175,175,176,177,177,7,7,10,205,205,
- 205,205,205,205,205,205,205,205,205,205,
- 205,205,205,205,205,205,205,205,205,205,
- 205,205,205,205,205,205,205,205,205,205,
- 205,205,205,205,205,205,205,205,205,205,
- 81,87,87,178,178,140,140,141,141,141,
- 141,141,141,3,142,142,139,139,122,122,
- 90,82,80,169,169,123,123,206,206,206,
- 143,143,134,134,207,207,25,25,25,42,
- 42,26,26,208,208,179,179,179,180,180,
- 209,209,181,181,27,210,210,211,211,182,
- 182,182,28,215,215,92,133,133,133,118,
- 118,118,192,197,116,64,161,1158,36,2961,
- 2960,1139,5486,28,31,32,907,881,27,29,
- 2951,26,24,51,1993,107,77,78,109,2020,
- 513,2072,565,536,537,538,2040,2180,1507,2087,
- 2216,2182,2301,2254,2584,2347,2394,144,274,71,
- 36,280,159,145,2470,3597,36,910,33,2528,
- 3664,28,31,32,907,881,340,29,1220,540,
- 536,537,538,2557,36,910,33,233,2974,28,
- 31,32,907,881,27,29,1946,26,24,51,
- 1993,107,77,78,109,2020,3129,2072,404,236,
- 231,232,2040,2180,2761,2087,2216,2182,2301,2254,
- 275,2347,2394,144,317,1049,322,1145,380,145,
- 2356,1401,36,910,33,1433,1615,42,31,32,
- 907,881,243,246,249,252,3695,338,1520,1509,
- 35,338,36,4999,4546,832,2273,3180,36,910,
- 33,1293,5503,28,31,32,907,881,58,29,
- 2767,1323,2860,2865,3159,3438,3821,4413,2484,36,
- 910,33,2853,2974,28,31,32,907,881,27,
- 29,1946,26,24,51,1993,107,77,78,109,
- 2020,344,2072,1054,71,36,454,2040,2180,5461,
- 2087,2216,2182,2301,2254,929,2347,2394,144,387,
- 1415,439,448,518,145,160,36,280,3213,524,
- 5616,1019,2592,36,910,33,338,3424,1526,31,
- 32,907,881,519,2484,36,910,33,2853,2974,
- 28,31,32,907,881,27,29,1946,26,24,
- 51,1993,107,77,78,109,2020,344,2072,1672,
- 2035,2734,1406,2040,2180,5107,2087,2216,2182,2301,
- 2254,2084,2347,2394,144,338,36,1509,277,518,
- 145,338,36,283,3213,540,536,537,538,1063,
- 514,1372,2622,1371,62,2592,36,910,33,519,
- 2189,41,31,32,907,881,2884,1804,1987,1611,
- 2408,1441,2484,36,910,33,2853,2974,28,31,
- 32,907,881,27,29,1946,26,24,51,1993,
- 107,77,78,109,2020,344,2072,1539,2006,2067,
- 1779,2040,2180,222,2087,2216,2182,2301,2254,2009,
- 2347,2394,144,3558,313,2969,514,518,145,1406,
- 338,3539,3213,540,536,537,538,694,2725,447,
- 2466,2523,1442,2593,1406,557,2408,519,2840,36,
- 910,33,2853,2974,28,31,32,907,881,27,
- 29,1946,26,24,51,1993,107,77,78,109,
- 2020,344,2072,1806,1183,2090,919,2040,2180,5431,
- 2087,2216,2182,2301,2254,45,2347,2394,144,1184,
- 2275,2034,183,518,145,377,1428,1143,3213,1143,
- 2363,36,910,33,514,5622,28,31,32,907,
- 881,27,29,519,512,540,536,537,538,253,
- 607,2606,1945,608,2408,4380,2910,36,910,33,
- 499,2974,28,31,32,907,881,27,29,1946,
- 26,24,51,1993,107,77,78,109,2020,2100,
- 2072,338,36,1509,279,2040,2180,1780,2087,2216,
- 2182,2301,2254,607,2347,2394,144,288,4487,1553,
- 515,380,145,2356,2634,36,910,33,2043,2974,
- 28,31,32,907,881,27,29,1946,26,24,
- 51,1993,107,77,78,109,2020,375,2072,2041,
- 2731,1417,3361,2040,2180,5371,2087,2216,2182,2301,
- 2254,967,2347,2394,144,338,36,1509,282,380,
- 145,2356,1550,36,910,33,2183,5622,28,31,
- 32,907,881,60,29,2770,36,910,33,1395,
- 2974,28,31,32,907,881,27,29,1946,26,
- 24,51,1993,107,77,78,109,2020,3555,2072,
- 2116,94,386,1415,2040,2180,2189,2087,2216,2182,
- 2301,2254,2189,2347,2394,144,544,1705,543,1705,
- 552,145,2710,1599,3155,36,910,33,1406,2974,
- 28,31,32,907,881,27,29,1946,26,24,
- 51,1993,107,77,78,109,2020,1853,2072,304,
- 378,1415,2519,2040,2180,303,2087,2216,2182,2301,
- 2254,2546,2347,2394,144,2622,1111,294,1940,159,
- 145,3155,36,910,33,919,2974,28,31,32,
- 907,881,27,29,1946,26,24,51,1993,107,
- 77,78,109,2020,3130,2072,1939,2622,36,294,
- 2040,2180,3301,2087,2216,2182,2301,2254,325,2347,
- 2394,144,1363,338,36,294,374,145,607,3155,
- 36,910,33,4583,2974,28,31,32,907,881,
- 27,29,1946,26,24,51,1993,107,77,78,
- 109,2020,422,2072,1363,444,2620,89,2040,2180,
- 103,2087,2216,2182,2301,2254,550,2347,2394,144,
- 2592,36,910,33,374,145,3189,31,32,907,
- 881,540,536,537,538,523,944,2767,2310,2007,
- 3155,36,910,33,2088,2974,28,31,32,907,
- 881,27,29,1946,26,24,51,1993,107,77,
- 78,109,2020,45,2072,558,373,4442,944,2040,
- 2180,1406,2087,2216,2182,2301,2254,607,2347,2394,
- 144,666,5137,2729,1172,374,145,2770,36,910,
- 33,1406,2974,28,31,32,907,881,27,29,
- 1946,26,24,51,1993,107,77,78,109,2020,
- 1158,2072,298,3663,372,1406,2040,2180,2346,2087,
- 2216,2182,2301,2254,326,2347,2394,144,338,36,
- 1509,3598,552,145,2976,36,910,33,919,2974,
- 28,31,32,907,881,27,29,1946,26,24,
- 51,1993,107,77,78,109,2020,526,2072,338,
- 36,294,2604,2040,2180,2735,2087,2216,2182,2301,
- 2254,2457,2347,2525,165,370,5530,607,2700,36,
- 910,33,5241,2974,28,31,32,907,881,27,
- 29,1946,26,24,51,1993,107,77,78,109,
- 2020,607,2072,431,36,397,5572,2040,2180,2311,
- 2087,2216,2182,2301,2254,775,2347,2394,144,1184,
- 1373,45,328,143,145,1184,2189,3155,36,910,
- 33,2134,2974,28,31,32,907,881,27,29,
- 1946,26,24,51,1993,107,77,78,109,2020,
- 1406,2072,161,338,36,3606,2040,2180,3219,2087,
- 2216,2182,2301,2254,1442,2347,2394,144,551,300,
- 2467,68,156,145,3155,36,910,33,1738,2974,
- 28,31,32,907,881,27,29,1946,26,24,
- 51,1993,107,77,78,109,2020,919,2072,787,
- 36,1509,277,2040,2180,2762,2087,2216,2182,2301,
- 2254,45,2347,2394,144,5129,525,2719,2830,155,
- 145,3155,36,910,33,2202,2974,28,31,32,
- 907,881,27,29,1946,26,24,51,1993,107,
- 77,78,109,2020,430,2072,338,3669,1509,75,
- 2040,2180,461,2087,2216,2182,2301,2254,2190,2347,
- 2394,144,787,36,1509,3670,154,145,3155,36,
- 910,33,3365,2974,28,31,32,907,881,27,
- 29,1946,26,24,51,1993,107,77,78,109,
- 2020,354,2072,338,36,1509,3679,2040,2180,606,
- 2087,2216,2182,2301,2254,2398,2347,2394,144,508,
- 338,2725,2519,153,145,3155,36,910,33,1406,
- 2974,28,31,32,907,881,27,29,1946,26,
- 24,51,1993,107,77,78,109,2020,1261,2072,
- 1166,382,391,5536,2040,2180,428,2087,2216,2182,
- 2301,2254,2099,2347,2394,144,2696,508,2554,508,
- 152,145,3155,36,910,33,919,2974,28,31,
- 32,907,881,27,29,1946,26,24,51,1993,
- 107,77,78,109,2020,377,2072,542,323,45,
- 498,2040,2180,738,2087,2216,2182,2301,2254,45,
- 2347,2394,144,2620,2397,2450,508,151,145,3155,
- 36,910,33,2202,2974,28,31,32,907,881,
- 27,29,1946,26,24,51,1993,107,77,78,
- 109,2020,45,2072,2697,523,804,554,2040,2180,
- 289,2087,2216,2182,2301,2254,45,2347,2394,144,
- 882,508,2813,2283,150,145,3155,36,910,33,
- 2202,2974,28,31,32,907,881,27,29,1946,
- 26,24,51,1993,107,77,78,109,2020,2884,
- 2072,1899,562,1905,1992,2040,2180,2599,2087,2216,
- 2182,2301,2254,45,2347,2394,144,2249,2727,3487,
- 2007,149,145,3155,36,910,33,2202,2974,28,
- 31,32,907,881,27,29,1946,26,24,51,
- 1993,107,77,78,109,2020,2942,2072,2007,560,
- 392,63,2040,2180,428,2087,2216,2182,2301,2254,
- 45,2347,2394,144,5009,508,2455,508,148,145,
- 3155,36,910,33,865,2974,28,31,32,907,
- 881,27,29,1946,26,24,51,1993,107,77,
- 78,109,2020,390,2072,2007,379,394,2872,2040,
- 2180,428,2087,2216,2182,2301,2254,45,2347,2394,
- 144,4511,508,2832,508,147,145,3155,36,910,
- 33,305,2974,28,31,32,907,881,27,29,
- 1946,26,24,51,1993,107,77,78,109,2020,
- 605,2072,524,541,393,561,2040,2180,428,2087,
- 2216,2182,2301,2254,45,2347,2394,144,4553,508,
- 1824,2007,146,145,3155,36,910,33,297,2974,
- 28,31,32,907,881,27,29,1946,26,24,
- 51,1993,107,77,78,109,2020,45,2072,2007,
- 4953,937,2122,2040,2180,1442,2087,2216,2182,2301,
- 2254,45,2347,2394,144,2778,508,3422,2766,160,
- 145,3155,36,910,33,1063,2974,28,31,32,
- 907,881,27,29,1946,26,24,51,1993,107,
- 77,78,109,2020,285,2072,2007,25,2369,546,
- 2040,2180,2400,2087,2216,2182,2301,2254,775,2347,
- 2394,144,1184,508,1442,508,141,145,3274,36,
- 910,33,383,2974,28,31,32,907,881,27,
- 29,1946,26,24,51,1993,107,77,78,109,
- 2020,405,2072,460,351,161,70,2040,2180,1442,
- 2087,2216,2182,2301,2254,45,2347,2394,144,1625,
- 783,2265,597,190,145,3392,36,910,33,286,
- 2974,28,31,32,907,881,27,29,1946,26,
- 24,51,1993,107,77,78,109,2020,355,2072,
- 338,36,861,389,2040,2180,1327,2087,2216,2182,
- 2301,2254,327,2347,2525,165,3392,36,910,33,
- 2936,2974,28,31,32,907,881,27,29,1946,
- 26,24,51,1993,107,77,78,109,2020,3069,
- 2072,453,1320,2853,152,2040,2180,4975,2087,2216,
- 2182,2301,2254,45,2347,2525,165,1813,338,36,
- 861,389,3235,68,338,36,861,389,3392,36,
- 910,33,424,2974,28,31,32,907,881,27,
- 29,1946,26,24,51,1993,107,77,78,109,
- 2020,1555,2072,338,36,861,389,2040,2180,432,
- 2087,2216,2182,2301,2254,435,2347,2525,165,3392,
- 36,910,33,293,2974,28,31,32,907,881,
- 27,29,1946,26,24,51,1993,107,77,78,
- 109,2020,2865,2072,434,361,45,953,2040,2180,
- 2397,2087,2216,2182,2301,2254,45,2347,2525,165,
- 2069,1947,2622,2639,2175,36,278,540,536,537,
- 538,3392,36,910,33,3459,2974,28,31,32,
- 907,881,27,29,1946,26,24,51,1993,107,
- 77,78,109,2020,2188,2072,3075,694,2725,3301,
- 2040,2180,157,2087,2216,2182,2301,2254,2705,2347,
- 2525,165,3451,36,910,33,423,2974,28,31,
- 32,907,881,27,29,1946,26,24,51,1993,
- 107,77,78,109,2020,1051,2072,431,36,397,
- 2795,2040,2180,381,2087,2216,2182,2301,2254,3003,
- 2347,2525,165,1268,36,910,33,5327,4579,28,
- 31,32,907,881,340,29,2760,2189,426,508,
- 338,36,861,389,540,536,537,538,539,536,
- 537,538,1993,36,910,33,5327,3664,28,31,
- 32,907,881,340,29,4271,3240,36,910,33,
- 69,5503,28,31,32,907,881,57,29,3106,
- 299,50,320,1338,322,315,1182,1256,1160,2364,
- 3604,333,3290,2847,1184,1295,71,288,1662,36,
- 2859,33,5327,4579,28,31,32,907,881,340,
- 29,320,1338,322,315,1182,3300,3006,3647,1681,
- 3663,1757,2843,539,536,537,538,157,1,2116,
- 2731,45,577,201,3425,1860,1550,36,910,33,
- 3091,5622,28,31,32,907,881,59,29,45,
- 2594,229,2265,1907,307,311,731,320,1338,322,
- 315,1182,1256,2547,3162,157,333,1102,2853,45,
- 1732,181,2832,1212,45,919,2797,870,1026,204,
- 216,3566,203,213,214,215,217,344,1228,1571,
- 1507,3116,1707,3647,170,539,536,537,538,3045,
- 169,182,185,168,171,172,173,174,175,2831,
- 2220,45,1306,61,975,3764,4210,420,2851,3392,
- 36,910,33,865,2974,28,31,32,907,881,
- 27,29,1946,26,24,51,1993,107,77,78,
- 109,2020,403,2072,338,36,861,389,2040,2180,
- 157,2087,2216,2182,2301,2254,1408,3221,3392,36,
- 910,33,865,2974,28,31,32,907,881,27,
- 29,1946,26,24,51,1993,107,77,78,109,
- 2020,4265,2072,1369,2975,274,2175,2040,2180,508,
- 2087,2216,2182,2301,3214,3036,2629,3392,36,910,
- 33,2845,2974,28,31,32,907,881,27,29,
- 1946,26,24,51,1993,107,77,78,109,2020,
- 54,2072,338,36,861,389,2040,2180,1494,2087,
- 2216,2182,3201,2659,36,910,33,2883,4579,28,
- 31,32,907,881,340,29,508,276,1904,3127,
- 249,36,861,389,865,43,2440,1719,539,536,
- 537,538,3124,50,448,3198,338,36,861,389,
- 1160,4979,3417,2543,72,990,1184,88,1911,36,
- 910,33,5327,3664,28,31,32,907,881,340,
- 29,50,320,1338,322,316,1182,1256,1160,1139,
- 3302,334,2189,539,536,537,538,50,1442,157,
- 431,36,397,3343,1160,2181,163,2674,2920,353,
- 4316,2555,607,3510,36,861,389,5545,2780,1659,
- 1694,347,2122,1605,350,1285,238,320,1338,322,
- 315,1182,45,240,4265,180,3878,3290,565,536,
- 537,538,329,336,607,565,536,537,538,5559,
- 565,536,537,538,274,3392,36,910,33,2189,
- 2974,28,31,32,907,881,27,29,1946,26,
- 24,51,1993,107,77,78,109,2020,45,2072,
- 1904,2947,5119,233,2040,2180,52,2087,2216,3203,
- 233,338,36,861,389,233,508,2981,3044,307,
- 311,731,199,1854,3070,236,231,232,45,2440,
- 3120,3141,241,231,232,3685,275,245,231,232,
- 3056,1786,3561,540,536,537,538,53,539,536,
- 537,538,433,1228,1781,36,861,389,243,246,
- 249,252,3695,45,45,830,3187,3724,1184,3937,
- 2920,832,1522,36,910,33,5327,3664,28,31,
- 32,907,881,340,29,3095,3555,3537,2860,2865,
- 3159,3438,3821,4413,784,50,869,539,536,537,
- 538,157,1160,2582,335,336,872,1442,2838,961,
- 3333,36,910,33,4316,2974,28,31,32,907,
- 881,27,29,1946,26,24,51,1993,87,77,
- 78,320,1338,322,315,1182,1050,3392,36,910,
- 33,3290,2974,28,31,32,907,881,27,29,
- 1946,26,24,51,1993,107,77,78,109,2020,
- 1567,2072,1735,2189,45,2489,2040,2180,1184,2087,
- 3107,2382,36,2859,33,5327,3664,28,31,32,
- 907,881,340,29,1377,2639,1442,2113,431,36,
- 1699,3714,2175,36,281,98,3329,536,537,538,
- 324,157,3549,308,311,731,198,45,3215,532,
- 45,1262,3551,3165,1712,862,2123,36,2859,33,
- 5327,3664,28,31,32,907,881,340,29,50,
- 320,1338,322,315,1182,90,1160,711,103,1425,
- 1102,539,536,537,538,2472,36,2859,33,5327,
- 3664,28,31,32,907,881,340,29,3165,338,
- 36,861,389,1115,565,536,537,538,3187,2189,
- 3329,536,537,538,99,320,1338,322,315,1182,
- 508,2801,2392,864,45,1102,5224,3165,2986,5658,
- 420,2851,45,2733,2814,3039,3899,5383,508,508,
- 274,1278,3476,2600,320,1338,322,315,1182,233,
- 508,452,407,352,1102,1933,36,910,33,5401,
- 3664,28,31,32,907,881,340,29,3478,3212,
- 91,248,231,232,5662,420,2851,3392,36,910,
- 33,3437,2974,28,31,32,907,881,27,29,
- 1946,26,24,51,1993,107,77,78,109,2020,
- 90,2072,341,5658,420,2851,2040,2180,353,3122,
- 1697,3358,36,278,320,1338,322,315,1182,353,
- 345,2122,1605,350,2795,3187,45,3243,2133,3308,
- 2808,345,2122,1605,350,539,536,537,538,343,
- 3362,353,357,71,36,454,45,3363,5461,2509,
- 1184,532,908,345,2122,1605,350,3392,36,910,
- 33,2792,2974,28,31,32,907,881,27,29,
- 1946,26,24,51,1993,107,77,78,109,2020,
- 775,2072,1693,157,1184,2903,2040,2180,3364,3132,
- 3597,2935,36,910,33,5253,3664,28,31,32,
- 907,881,340,29,2443,36,910,33,5327,3664,
- 28,31,32,907,881,340,29,161,3392,36,
- 910,33,352,2974,28,31,32,907,881,27,
- 29,1946,26,24,51,1993,107,77,78,109,
- 2020,508,2072,508,2189,2189,3420,2040,3029,367,
- 320,1338,322,315,1182,1553,3421,45,1512,356,
- 1757,3901,3425,320,1338,322,315,1182,532,3426,
- 179,45,3451,3676,3988,2399,2457,353,2189,3480,
- 3020,5530,3200,565,536,537,538,202,200,345,
- 2122,1605,350,3392,36,910,33,2133,2974,28,
- 31,32,907,881,27,29,1946,26,24,51,
- 1993,107,77,78,109,2020,508,2072,451,2466,
- 2523,2802,2040,3056,3392,36,910,33,233,2974,
- 28,31,32,907,881,27,29,1946,26,24,
- 51,1993,107,77,78,109,2020,4033,2072,508,
- 251,231,232,2040,3080,3392,36,910,33,3482,
- 2974,28,31,32,907,881,27,29,1946,26,
- 24,51,1993,107,77,78,109,2020,268,2072,
- 4078,2189,577,1738,2040,3082,1944,36,910,33,
- 2453,3664,28,31,32,907,881,340,29,2693,
- 2189,229,1843,36,910,33,5401,3664,28,31,
- 32,907,881,340,29,157,45,508,3458,3112,
- 2853,181,2832,3582,223,919,3483,3001,508,204,
- 216,3566,203,213,214,215,217,45,45,344,
- 3518,3188,3305,194,170,317,1049,322,68,431,
- 169,508,184,168,171,172,173,174,175,67,
- 508,320,1338,322,315,1182,3213,1300,36,910,
- 33,527,4579,28,31,32,907,881,340,29,
- 1520,2921,66,3562,249,36,861,389,353,3245,
- 3007,65,539,536,537,538,3567,3109,3625,3627,
- 345,2122,1605,350,3398,3568,6279,6279,528,990,
- 6279,1300,36,910,33,1509,4579,28,31,32,
- 907,881,340,29,508,50,320,1338,322,318,
- 1182,1256,1160,1883,1382,334,539,536,537,538,
- 539,536,537,538,3069,6279,2368,508,2853,6279,
- 2853,3179,1019,990,6279,1391,6279,614,6279,539,
- 536,537,538,6279,6279,6279,2558,3235,6279,3235,
- 320,1338,322,316,1182,1256,1306,6279,1550,334,
- 3392,36,910,33,1904,2974,28,31,32,907,
- 881,27,29,1946,26,24,51,1993,107,77,
- 78,109,2020,6279,2072,3392,36,910,33,3085,
- 2974,28,31,32,907,881,27,29,1946,26,
- 24,51,1993,107,77,78,109,2020,357,2072,
- 6279,6279,577,6279,3105,6279,2289,6279,6279,508,
- 361,1803,362,508,6279,6279,6279,6279,6279,6279,
- 2263,229,6279,6279,2920,45,3230,2622,2639,1184,
- 508,539,536,537,538,157,565,536,537,538,
- 56,181,2832,446,55,919,1278,577,2342,204,
- 216,3566,203,213,214,215,217,6279,331,336,
- 6279,3580,157,6279,170,6279,229,6279,1904,3608,
- 169,6279,3460,168,171,172,173,174,175,3035,
- 157,233,3108,2853,6279,6279,181,2832,535,1904,
- 919,1904,577,6279,204,216,3566,203,213,214,
- 215,217,344,254,231,232,6279,6279,6279,170,
- 6279,229,775,6279,6279,169,1184,179,168,171,
- 172,173,174,175,1281,157,508,508,2853,1101,
- 6279,181,2832,624,6279,919,6279,577,2920,204,
- 216,3566,203,213,214,215,217,3235,2490,161,
- 3247,6279,2853,6279,170,6279,229,102,4168,2920,
- 169,2920,177,168,171,172,173,174,175,6279,
- 157,344,3204,336,6279,6279,181,2832,713,6279,
- 919,530,577,6279,204,216,3566,203,213,214,
- 215,217,6279,3617,336,3618,336,6279,3599,170,
- 6279,229,775,6279,6279,169,1184,178,168,171,
- 172,173,174,175,3819,157,6279,6279,6279,6279,
- 506,181,2832,802,6279,919,6279,577,6279,204,
- 216,3566,203,213,214,215,217,6279,6279,161,
- 6279,6279,6279,6279,170,6279,229,6279,6279,6279,
- 169,6279,188,168,171,172,173,174,175,775,
- 157,6279,6279,1184,504,505,181,2832,891,6279,
- 919,6279,577,6279,204,216,3566,203,213,214,
- 215,217,443,6279,457,6279,6279,6279,6279,170,
- 6279,229,6279,6279,6279,169,161,3684,168,171,
- 172,173,174,175,3823,157,6279,6279,6279,6279,
- 6279,181,2832,980,6279,919,6279,577,6279,204,
- 216,3566,203,213,214,215,217,6279,6279,6279,
- 6279,6279,6279,6279,170,6279,229,6279,6279,6279,
- 169,6279,193,168,171,172,173,174,175,6279,
- 157,6279,6279,6279,3727,6279,181,2832,1069,45,
- 919,3936,577,1184,204,216,3566,203,213,214,
- 215,217,6279,6279,6279,6279,6279,6279,6279,170,
- 6279,229,6279,6279,6279,169,6279,187,168,171,
- 172,173,174,175,1741,157,157,6279,2853,6279,
- 2900,181,2832,3631,6279,919,6279,6279,6279,204,
- 216,3566,203,213,214,215,217,229,6279,6279,
- 6279,6279,6279,6279,170,539,536,537,538,6279,
- 169,6279,195,168,171,172,173,174,175,6279,
- 6279,6279,2449,6279,6279,206,216,3566,205,213,
- 214,215,217,6279,6279,338,36,861,389,6279,
- 6279,1571,36,910,33,5327,3664,28,31,32,
- 907,881,340,29,6279,207,209,211,295,296,
- 6279,638,6279,218,208,210,540,536,537,538,
- 6279,6279,6279,6279,6279,6279,50,6279,3040,36,
- 861,389,13,47,5008,6279,1522,36,910,33,
- 5327,3664,28,31,32,907,881,340,29,6279,
- 320,1338,322,315,1182,6279,6279,6279,6279,6279,
- 3816,540,536,537,538,3392,36,910,33,274,
- 2974,28,31,32,907,881,27,29,1946,26,
- 24,51,1993,107,77,78,109,2020,6279,3005,
- 6279,6279,6279,6279,6279,320,1338,322,315,1182,
- 342,36,861,389,6279,3816,6279,581,3392,36,
- 910,33,6279,2974,28,31,32,907,881,27,
- 29,1946,26,24,51,1993,107,77,78,109,
- 2020,3607,3007,3559,36,861,389,6279,2780,6279,
- 6279,50,6279,6279,6279,6279,239,6279,1160,48,
- 6279,6279,73,6279,6279,6279,6279,6279,565,536,
- 537,538,1955,6279,6279,6279,2853,1273,45,6279,
- 6279,6279,1184,6279,274,6279,6279,6279,6279,6279,
- 6279,3392,36,910,33,229,2974,28,31,32,
- 907,881,27,29,1946,26,24,51,1993,107,
- 77,78,86,233,6279,157,6279,427,36,861,
- 389,6279,3640,206,216,3566,205,213,214,215,
- 217,6279,6279,6279,6279,237,231,232,6279,6279,
- 6279,2045,6279,6279,6279,2853,275,6279,6279,6279,
- 6279,6279,6279,207,209,211,295,296,50,638,
- 6279,218,208,210,229,1160,48,6279,244,247,
- 250,253,3695,6279,6279,6279,1732,6279,6279,6279,
- 1339,832,5008,2135,792,6279,6279,2853,6279,6279,
- 6279,6279,206,216,3566,205,213,214,215,217,
- 6279,539,536,537,538,6279,229,6279,6279,249,
- 36,861,389,427,36,861,389,2355,1306,6279,
- 6279,6279,207,209,211,295,296,6279,638,6279,
- 218,208,210,6279,206,216,3566,205,213,214,
- 215,217,539,536,537,538,6279,6279,6279,1928,
- 50,5008,6279,6279,50,6279,6279,1160,4587,990,
- 6279,1160,48,6279,207,209,211,295,296,6279,
- 638,6279,218,208,210,6279,3179,6279,6279,6279,
- 3112,2549,6279,6279,6279,6279,6279,6279,865,6279,
- 6279,1975,2561,5008,3392,36,910,33,6279,2974,
- 28,31,32,907,881,27,29,1946,26,24,
- 51,1993,107,77,78,109,3014,3392,36,910,
- 33,6279,2974,28,31,32,907,881,27,29,
- 1946,26,24,51,1993,107,77,78,109,3016,
- 3392,36,910,33,6279,2974,28,31,32,907,
- 881,27,29,1946,26,24,51,1993,107,77,
- 78,109,3026,3392,1520,910,2758,6279,2974,28,
- 31,32,907,881,27,29,1946,26,24,51,
- 1993,107,77,78,85,3392,36,910,33,6279,
- 2974,28,31,32,907,881,27,29,1946,26,
- 24,51,1993,107,77,78,84,3392,36,910,
- 33,6279,2974,28,31,32,907,881,27,29,
- 1946,26,24,51,1993,107,77,78,83,3392,
- 36,910,33,6279,2974,28,31,32,907,881,
- 27,29,1946,26,24,51,1993,107,77,78,
- 82,3392,36,910,33,6279,2974,28,31,32,
- 907,881,27,29,1946,26,24,51,1993,107,
- 77,78,81,3392,36,910,33,6279,2974,28,
- 31,32,907,881,27,29,1946,26,24,51,
- 1993,107,77,78,80,3392,36,910,33,6279,
- 2974,28,31,32,907,881,27,29,1946,26,
- 24,51,1993,107,77,78,79,3214,36,910,
- 33,6279,2974,28,31,32,907,881,27,29,
- 1946,26,24,51,1993,107,77,78,105,3392,
- 36,910,33,6279,2974,28,31,32,907,881,
- 27,29,1946,26,24,51,1993,107,77,78,
- 111,3392,36,910,33,6279,2974,28,31,32,
- 907,881,27,29,1946,26,24,51,1993,107,
- 77,78,110,3392,36,910,33,6279,2974,28,
- 31,32,907,881,27,29,1946,26,24,51,
- 1993,107,77,78,108,3392,36,910,33,2725,
- 2974,28,31,32,907,881,27,29,1946,26,
- 24,51,1993,107,77,78,106,1865,6279,2112,
- 6279,2853,6279,6279,539,536,537,538,1617,1281,
- 6279,6279,2853,2853,6279,6279,6279,6279,6279,2225,
- 229,990,6279,2853,539,536,537,538,6279,6279,
- 6279,229,3235,6279,6279,6279,6279,6279,6279,6279,
- 6279,1306,229,2549,6279,6279,6279,6279,206,216,
- 3566,205,213,214,215,217,6279,6279,6279,206,
- 216,3566,205,213,214,215,217,6279,6279,6279,
- 206,216,3566,205,213,214,215,217,207,209,
- 211,295,296,6279,638,6279,520,208,210,207,
- 209,211,295,296,6279,638,6279,219,208,210,
- 207,209,211,295,296,506,638,2315,521,208,
- 210,2853,6279,6279,6279,2579,6279,6279,2405,2833,
- 6279,6279,2853,2853,6279,6279,6279,6279,6279,1223,
- 229,6279,6279,2853,2796,6279,6279,249,36,861,
- 389,229,3235,6279,6279,6279,6279,6279,6279,503,
- 505,6279,229,6279,6279,6279,6279,6279,206,216,
- 3566,205,213,214,215,217,6279,6279,6279,206,
- 216,3566,205,213,214,215,217,6279,50,6279,
- 2118,408,625,6279,6279,1160,48,2686,207,209,
- 211,295,296,6279,638,6279,306,208,210,207,
- 209,211,295,296,851,638,6279,500,208,210,
- 409,410,411,295,296,506,638,45,6279,6279,
- 6279,577,1331,6279,2022,6279,2853,2796,2853,2752,
- 6279,6279,6279,45,6279,6279,1752,577,6279,6279,
- 344,520,36,861,389,229,6279,3235,6279,539,
- 536,537,538,2022,157,6279,344,2853,2752,503,
- 505,189,6279,6279,6279,6279,990,3384,6279,6279,
- 157,6279,6279,2118,408,625,3235,2086,539,536,
- 537,538,50,3213,6279,6279,6279,45,1256,1160,
- 48,1184,333,6279,6279,990,6279,3579,2039,6279,
- 412,414,6279,409,410,411,295,296,1459,638,
- 6279,6279,6279,6279,6279,6279,6279,1256,2203,5318,
- 361,333,6279,2752,157,1900,3423,2267,5222,1752,
- 6279,3027,2752,6279,6279,3604,3218,2622,2639,577,
- 6279,6279,6279,539,536,537,538,6279,2763,361,
- 6279,6279,539,536,537,538,6279,6279,3306,6279,
- 990,6279,6279,6279,6279,3218,2622,2639,6279,990,
- 6279,2267,157,6279,6279,6279,2752,45,181,2832,
- 45,1184,1256,2267,2853,6279,334,6279,2752,6279,
- 6279,1256,6279,412,415,333,539,536,537,538,
- 6279,2267,6279,344,353,6279,2752,196,539,536,
- 537,538,6279,990,157,6279,347,2122,1605,350,
- 6279,3840,3691,6279,6279,990,539,536,537,538,
- 3213,2267,6279,6279,6279,1256,2752,6279,6279,333,
- 6279,6279,6279,990,6279,2937,6279,1256,3612,2180,
- 6279,333,577,6279,2752,1684,539,536,537,538,
- 2752,249,36,861,389,1256,5455,6279,6279,333,
- 6279,344,6279,990,539,536,537,538,5318,6279,
- 539,536,537,538,6279,157,2549,36,861,389,
- 6279,990,189,6279,6279,1256,2763,990,3384,5449,
- 6279,6279,50,427,36,861,389,6279,6279,1160,
- 48,6279,6279,1256,6279,6279,6279,5449,3485,1256,
- 6279,6279,2853,334,6279,5448,197,50,2210,6279,
- 249,36,861,389,1160,2621,249,36,861,389,
- 6279,344,6279,6279,50,249,36,861,389,531,
- 6279,1160,2713,2674,6279,6279,6279,191,6279,249,
- 36,861,389,6279,6279,45,6279,6279,3213,577,
- 4308,50,338,36,861,389,6279,50,1160,48,
- 6279,95,6279,534,1160,48,50,6279,344,6279,
- 6279,45,6279,1160,48,577,6279,2268,6279,97,
- 50,6279,157,2274,6279,6279,6279,1160,48,2469,
- 6279,6279,2303,50,344,3213,338,36,861,389,
- 1160,925,338,36,861,389,2931,45,157,45,
- 2135,2853,45,577,6279,2086,577,3458,6279,6279,
- 6279,3213,6279,6279,45,45,6279,6279,2853,2853,
- 344,6279,344,6279,6279,344,2776,50,3094,6279,
- 6279,6279,3299,50,1160,3291,157,344,344,157,
- 1160,2582,6279,189,45,6279,189,3213,2853,3384,
- 6279,6279,3384,539,536,537,538,539,536,537,
- 538,6279,2944,6279,3213,3213,6279,344,45,45,
- 2938,6279,2853,2853,2449,6279,6279,6279,6279,2950,
- 510,6279,6279,6279,6279,6279,6279,6279,6279,6279,
- 6279,344,344,6279,3213,3960,6279,6279,6279,6279,
- 6279,6279,6279,6279,6279,6279,6279,6279,3496,508,
- 6279,3529,6279,6279,6279,6279,6279,6279,3213,3213,
- 6279,6279,6279,6279,6279,6279,6279,6279,6279,6279,
- 6279,6279,6279,3421,535,6279,0,1,230,600,
- 0,502,4997,0,1,230,0,40,6294,0,
- 40,6293,0,1,2482,0,691,1,0,40,
- 1,6294,0,40,1,6293,0,1,3889,0,
- 1,707,0,230,220,0,721,224,0,829,
- 224,0,841,224,0,721,225,0,829,225,
- 0,841,225,0,721,226,0,829,226,0,
- 841,226,0,841,395,0,829,395,0,721,
- 395,0,284,395,0,721,227,0,829,227,
- 0,841,227,0,284,287,0,721,228,0,
- 829,228,0,841,228,0,6514,242,0,6513,
- 242,0,721,242,0,829,242,0,841,242,
- 0,6618,242,0,6617,242,0,6541,242,0,
- 6540,242,0,6539,242,0,6538,242,0,6537,
- 242,0,6536,242,0,6535,242,0,6534,242,
- 0,6552,242,0,6551,242,0,6550,242,0,
- 6549,242,0,6548,242,0,6547,242,0,6546,
- 242,0,6545,242,0,6544,242,0,6543,242,
- 0,6542,242,0,40,242,6294,0,40,242,
- 6293,0,6318,242,0,1789,388,0,6294,49,
- 0,6293,49,0,1,841,0,1,829,0,
- 1,721,0,1,332,0,39,707,0,39,
- 6294,0,39,6293,0,455,1832,0,441,1846,
- 0,1789,30,0,6291,1,0,841,573,0,
- 829,573,0,721,573,0,576,573,0,576,
- 572,0,1893,319,0,1,575,0,1,445,
- 0,459,1564,0,458,2075,0,36,34,0,
- 48,38,0,230,221,0,502,1758,0,6318,
- 1,230,0,40,1,230,0,230,417,0,
- 1,1501,0,1,6552,0,1,6551,0,1,
- 6550,0,1,6549,0,1,6548,0,1,6547,
- 0,1,6546,0,1,6545,0,1,6544,0,
- 1,6543,0,1,6542,0,6294,38,0,6293,
- 38,0,44,6316,0,44,38,0,6291,384,
- 0,6290,384,0,1,1503,0,1,2437,0,
- 6289,406,0,6288,406,0,230,416,0,3504,
- 127,0,6287,1,0,841,446,0,829,446,
- 0,721,446,0,332,446,0,6285,1,0,
- 6284,1,0,1521,92,0,33,35,0,40,
- 707,0,6316,46,0,38,46,0,1,230,
- 3248,0,6288,230,0,3280,230,0,6318,1,
- 0,40,1,0,238,1515,0,389,33,0,
- 388,30,0,3504,129,0,3504,128,0,3450,
- 230,0,10,12,0,841,570,0,829,570,
- 0,721,570,0,841,569,0,829,569,0,
- 721,569,0,539,540,0,1,93,0,8,
- 10,12,0,841,570,571,0,829,570,571,
- 0,721,570,571,0,570,571,0,6294,2,
- 38,0,6293,2,38,0,6294,37,0,6293,
- 37,0,3677,384,0,841,96,0,829,96,
- 0,721,96,0,332,96,0,36,74,0,
- 8,12,0,279,3922,0,186,4123,0
+ 45,45,45,45,45,45,45,44,37,155,
+ 155,103,103,190,190,98,217,217,75,75,
+ 75,75,75,75,75,75,75,76,76,76,
+ 73,73,67,67,191,191,77,77,77,110,
+ 110,192,192,78,78,78,193,193,79,79,
+ 79,79,79,80,80,90,90,90,90,90,
+ 90,90,90,54,54,54,54,54,111,111,
+ 109,109,55,194,23,23,23,23,23,53,
+ 53,93,93,93,93,93,162,162,157,157,
+ 157,157,157,158,158,158,159,159,159,160,
+ 160,160,161,161,161,94,94,94,94,94,
+ 95,95,95,13,13,13,13,13,13,13,
+ 13,13,13,13,104,129,129,129,129,129,
+ 129,127,127,127,163,128,128,195,165,165,
+ 164,164,131,131,112,84,84,85,86,57,
+ 52,166,166,58,92,92,167,167,156,156,
+ 132,133,133,134,70,70,168,168,63,63,
+ 63,61,61,60,64,64,87,87,69,69,
+ 69,65,96,96,106,105,105,71,71,62,
+ 62,66,66,50,107,107,107,99,99,99,
+ 100,100,101,101,101,102,102,113,113,113,
+ 115,115,114,114,218,218,97,97,197,197,
+ 197,197,197,136,51,51,170,196,196,137,
+ 137,137,137,138,172,198,198,41,41,126,
+ 139,139,139,139,200,117,116,116,130,130,
+ 130,173,174,174,174,174,174,174,174,174,
+ 174,174,174,202,202,199,199,201,201,119,
+ 120,120,120,120,121,203,122,118,118,204,
+ 204,175,175,175,175,108,108,108,205,205,
+ 8,8,9,206,206,207,176,169,169,177,
+ 177,178,179,179,7,7,10,208,208,208,
+ 208,208,208,208,208,208,208,208,208,208,
+ 208,208,208,208,208,208,208,208,208,208,
+ 208,208,208,208,208,208,208,208,208,208,
+ 208,208,208,208,208,208,208,208,208,82,
+ 88,88,180,180,141,141,142,142,142,142,
+ 142,142,3,143,143,140,140,123,123,91,
+ 83,81,171,171,124,124,209,209,209,144,
+ 144,135,135,210,210,25,25,25,42,42,
+ 26,26,211,211,181,181,181,182,182,212,
+ 212,183,183,27,27,213,213,184,184,184,
+ 28,59,214,214,215,215,185,185,185,145,
+ 145,145,56,93,134,134,134,119,119,119,
+ 195,200,117,65,163,1158,36,3042,3019,1997,
+ 5487,28,31,32,892,872,27,29,3003,26,
+ 24,51,2030,107,77,78,109,2053,1281,2093,
+ 573,535,536,537,2090,1142,2147,2126,2220,2213,
+ 2276,2227,2611,2283,2314,144,274,1261,36,453,
+ 159,145,5466,1540,1824,36,943,33,2535,2897,
+ 28,31,32,892,872,339,29,539,535,536,
+ 537,222,2550,36,943,33,233,3355,28,31,
+ 32,892,872,27,29,2006,26,24,51,2030,
+ 107,77,78,109,2053,2653,2093,403,236,231,
+ 232,2090,1297,2147,2126,2220,2213,2276,2227,275,
+ 2283,2314,144,1855,316,953,321,379,145,2180,
+ 1994,36,943,33,1264,541,42,31,32,892,
+ 872,243,246,249,252,4332,73,340,539,535,
+ 536,537,3245,162,877,2293,2456,3209,36,943,
+ 33,251,5508,28,31,32,892,872,58,29,
+ 2818,429,3389,785,3101,3678,4075,4619,2485,36,
+ 943,33,2865,3355,28,31,32,892,872,27,
+ 29,2006,26,24,51,2030,107,77,78,109,
+ 2053,343,2093,1261,36,453,1658,2090,5466,2147,
+ 2126,2220,2213,2276,2227,1425,2283,2314,144,386,
+ 1421,1387,2661,517,145,1261,36,280,2848,3330,
+ 2478,2395,858,3386,446,2362,2370,1387,36,294,
+ 573,535,536,537,518,2485,36,943,33,2865,
+ 3355,28,31,32,892,872,27,29,2006,26,
+ 24,51,2030,107,77,78,109,2053,343,2093,
+ 340,1732,2774,1180,2090,4401,2147,2126,2220,2213,
+ 2276,2227,2980,2283,2314,144,233,1946,1144,241,
+ 517,145,857,542,1797,2848,538,535,536,537,
+ 840,513,2484,183,2363,2661,62,2013,245,231,
+ 232,518,322,693,539,535,536,537,1865,1978,
+ 2013,2321,2811,1856,2485,36,943,33,2865,3355,
+ 28,31,32,892,872,27,29,2006,26,24,
+ 51,2030,107,77,78,109,2053,343,2093,1385,
+ 330,312,289,2090,1335,2147,2126,2220,2213,2276,
+ 2227,3022,2283,2314,144,2865,2086,799,513,517,
+ 145,5517,840,2977,2848,539,535,536,537,1946,
+ 450,2362,2370,430,3227,2415,2013,3311,2321,1383,
+ 518,2814,36,943,33,2865,3355,28,31,32,
+ 892,872,27,29,2006,26,24,51,2030,107,
+ 77,78,109,2053,343,2093,1387,1663,1654,35,
+ 2090,1903,2147,2126,2220,2213,2276,2227,45,2283,
+ 2314,144,1183,1945,1208,288,517,145,1387,36,
+ 283,2848,2978,3446,36,943,33,513,5508,28,
+ 31,32,892,872,57,29,2565,518,361,1387,
+ 36,801,388,447,2447,1905,842,2321,2277,2741,
+ 2879,36,943,33,1604,3355,28,31,32,892,
+ 872,27,29,2006,26,24,51,2030,107,77,
+ 78,109,2053,2272,2093,1387,36,4752,4418,2090,
+ 50,2147,2126,2220,2213,2276,2227,47,2283,2314,
+ 144,1387,36,3691,514,379,145,2180,2619,36,
+ 943,33,1326,3355,28,31,32,892,872,27,
+ 29,2006,26,24,51,2030,107,77,78,109,
+ 2053,429,2093,1387,36,1654,277,2090,2954,2147,
+ 2126,2220,2213,2276,2227,447,2283,2314,144,1387,
+ 36,1654,279,379,145,2180,2749,36,943,33,
+ 3582,3355,28,31,32,892,872,27,29,2006,
+ 26,24,51,2030,107,77,78,109,2053,2682,
+ 2093,340,61,4772,74,2090,5411,2147,2126,2220,
+ 2213,2276,2227,716,2283,2314,144,385,1421,324,
+ 2013,551,145,3125,36,943,33,3088,3355,28,
+ 31,32,892,872,27,29,2006,26,24,51,
+ 2030,107,77,78,109,2053,1934,2093,340,2041,
+ 36,278,2090,5424,2147,2126,2220,2213,2276,2227,
+ 45,2283,2314,144,1183,377,1421,2169,159,145,
+ 1387,36,801,388,3125,36,943,33,2963,3355,
+ 28,31,32,892,872,27,29,2006,26,24,
+ 51,2030,107,77,78,109,2053,157,2093,1426,
+ 2774,1286,294,2090,2079,2147,2126,2220,2213,2276,
+ 2227,274,2283,2314,144,1387,36,294,3070,373,
+ 145,1129,3125,36,943,33,1056,3355,28,31,
+ 32,892,872,27,29,2006,26,24,51,2030,
+ 107,77,78,109,2053,390,2093,1308,45,427,
+ 3024,2090,4329,2147,2126,2220,2213,2276,2227,549,
+ 2283,2314,144,3089,36,943,33,373,145,1996,
+ 31,32,892,872,276,45,381,3273,2818,5170,
+ 1387,36,801,388,3125,36,943,33,2733,3355,
+ 28,31,32,892,872,27,29,2006,26,24,
+ 51,2030,107,77,78,109,2053,498,2093,340,
+ 372,1919,956,2090,5453,2147,2126,2220,2213,2276,
+ 2227,452,2283,2314,144,1281,2980,2869,2216,373,
+ 145,2749,36,943,33,2745,3355,28,31,32,
+ 892,872,27,29,2006,26,24,51,2030,107,
+ 77,78,109,2053,340,2093,497,2544,371,5279,
+ 2090,2013,2147,2126,2220,2213,2276,2227,303,2283,
+ 2314,144,1387,36,1654,282,551,145,2946,36,
+ 943,33,3070,3355,28,31,32,892,872,27,
+ 29,2006,26,24,51,2030,107,77,78,109,
+ 2053,522,2093,2774,36,294,1372,2090,2586,2147,
+ 2126,2220,2213,2276,2227,325,2283,2377,165,438,
+ 369,3528,353,2684,36,943,33,518,3355,28,
+ 31,32,892,872,27,29,2006,26,24,51,
+ 2030,107,77,78,109,2053,2133,2093,2726,1417,
+ 1308,2032,2090,5336,2147,2126,2220,2213,2276,2227,
+ 3279,2283,2314,144,1183,3273,1496,327,143,145,
+ 2519,460,3125,36,943,33,1903,3355,28,31,
+ 32,892,872,27,29,2006,26,24,51,2030,
+ 107,77,78,109,2053,45,2093,161,3025,748,
+ 554,2090,1724,2147,2126,2220,2213,2276,2227,45,
+ 2283,2314,144,949,550,956,3218,156,145,3125,
+ 36,943,33,2113,3355,28,31,32,892,872,
+ 27,29,2006,26,24,51,2030,107,77,78,
+ 109,2053,565,2093,1141,2041,36,281,2090,5522,
+ 2147,2126,2220,2213,2276,2227,45,2283,2314,144,
+ 815,3070,2132,2967,155,145,3125,36,943,33,
+ 2743,3355,28,31,32,892,872,27,29,2006,
+ 26,24,51,2030,107,77,78,109,2053,522,
+ 2093,1655,36,280,2983,2090,5600,2147,2126,2220,
+ 2213,2276,2227,1373,2283,2314,144,1387,36,1654,
+ 3690,154,145,3125,36,943,33,1432,3355,28,
+ 31,32,892,872,27,29,2006,26,24,51,
+ 2030,107,77,78,109,2053,2896,2093,2938,36,
+ 1654,277,2090,567,2147,2126,2220,2213,2276,2227,
+ 459,2283,2314,144,555,696,443,354,153,145,
+ 3125,36,943,33,2594,3355,28,31,32,892,
+ 872,27,29,2006,26,24,51,2030,107,77,
+ 78,109,2053,2371,2093,1387,3737,1654,75,2090,
+ 697,2147,2126,2220,2213,2276,2227,1949,2283,2314,
+ 144,2938,36,1654,3739,152,145,3125,36,943,
+ 33,1433,3355,28,31,32,892,872,27,29,
+ 2006,26,24,51,2030,107,77,78,109,2053,
+ 2013,2093,1387,36,1654,3776,2090,874,2147,2126,
+ 2220,2213,2276,2227,45,2283,2314,144,1183,2980,
+ 1387,3324,151,145,3125,36,943,33,3011,3355,
+ 28,31,32,892,872,27,29,2006,26,24,
+ 51,2030,107,77,78,109,2053,799,2093,560,
+ 1553,3323,3131,2090,4474,2147,2126,2220,2213,2276,
+ 2227,45,2283,2314,144,894,3159,525,3269,150,
+ 145,3125,36,943,33,1863,3355,28,31,32,
+ 892,872,27,29,2006,26,24,51,2030,107,
+ 77,78,109,2053,2013,2093,2044,45,558,3457,
+ 2090,3727,2147,2126,2220,2213,2276,2227,45,2283,
+ 2314,144,3973,3070,875,2980,149,145,3125,36,
+ 943,33,3153,3355,28,31,32,892,872,27,
+ 29,2006,26,24,51,2030,107,77,78,109,
+ 2053,799,2093,3156,45,378,3070,2090,4371,2147,
+ 2126,2220,2213,2276,2227,45,2283,2314,144,4435,
+ 2980,524,3387,148,145,3125,36,943,33,3250,
+ 3355,28,31,32,892,872,27,29,2006,26,
+ 24,51,2030,107,77,78,109,2053,45,2093,
+ 2903,45,874,3271,2090,3148,2147,2126,2220,2213,
+ 2276,2227,326,2283,2314,144,1281,2980,3006,1052,
+ 147,145,3125,36,943,33,963,3355,28,31,
+ 32,892,872,27,29,2006,26,24,51,2030,
+ 107,77,78,109,2053,5123,2093,570,2779,94,
+ 3567,2090,1281,2147,2126,2220,2213,2276,2227,300,
+ 2283,2314,144,1920,2980,3006,3387,146,145,3125,
+ 36,943,33,2454,3355,28,31,32,892,872,
+ 27,29,2006,26,24,51,2030,107,77,78,
+ 109,2053,298,2093,540,561,1297,71,2090,3070,
+ 2147,2126,2220,2213,2276,2227,404,2283,2314,144,
+ 2452,2980,421,597,160,145,3125,36,943,33,
+ 2366,3355,28,31,32,892,872,27,29,2006,
+ 26,24,51,2030,107,77,78,109,2053,389,
+ 2093,559,2581,36,278,2090,1381,2147,2126,2220,
+ 2213,2276,2227,45,2283,2314,144,1187,1779,36,
+ 396,141,145,3244,36,943,33,1910,3355,28,
+ 31,32,892,872,27,29,2006,26,24,51,
+ 2030,107,77,78,109,2053,45,2093,52,45,
+ 2355,72,2090,3039,2147,2126,2220,2213,2276,2227,
+ 45,2283,2314,144,2777,3006,3675,3006,190,145,
+ 3362,36,943,33,1792,3355,28,31,32,892,
+ 872,27,29,2006,26,24,51,2030,107,77,
+ 78,109,2053,1427,2093,1387,36,801,388,2090,
+ 686,2147,2126,2220,2213,2276,2227,1921,2283,2377,
+ 165,3362,36,943,33,2779,3355,28,31,32,
+ 892,872,27,29,2006,26,24,51,2030,107,
+ 77,78,109,2053,2876,2093,431,543,1797,304,
+ 2090,297,2147,2126,2220,2213,2276,2227,1081,2283,
+ 2377,165,3089,36,943,33,1403,3006,41,31,
+ 32,892,872,2006,3362,36,943,33,423,3355,
+ 28,31,32,892,872,27,29,2006,26,24,
+ 51,2030,107,77,78,109,2053,2272,2093,1387,
+ 36,801,388,2090,2188,2147,2126,2220,2213,2276,
+ 2227,3012,2283,2377,165,3362,36,943,33,293,
+ 3355,28,31,32,892,872,27,29,2006,26,
+ 24,51,2030,107,77,78,109,2053,45,2093,
+ 434,285,2484,607,2090,3088,2147,2126,2220,2213,
+ 2276,2227,3018,2283,2377,165,3089,36,943,33,
+ 964,2519,3217,31,32,892,872,2185,3362,36,
+ 943,33,3672,3355,28,31,32,892,872,27,
+ 29,2006,26,24,51,2030,107,77,78,109,
+ 2053,553,2093,1387,36,801,388,2090,1523,2147,
+ 2126,2220,2213,2276,2227,3085,2283,2377,165,3421,
+ 36,943,33,422,3355,28,31,32,892,872,
+ 27,29,2006,26,24,51,2030,107,77,78,
+ 109,2053,45,2093,433,3279,3454,3274,2090,1183,
+ 2147,2126,2220,2213,2276,2227,74,2283,2377,165,
+ 1268,36,943,33,5270,4715,28,31,32,892,
+ 872,339,29,391,1387,3680,425,427,1387,36,
+ 801,388,161,3599,3088,538,535,536,537,2443,
+ 36,943,33,5270,2897,28,31,32,892,872,
+ 339,29,4336,340,3150,36,943,33,5545,5605,
+ 28,31,32,892,872,27,29,3034,511,50,
+ 319,1388,321,314,1092,1526,1487,1209,2980,332,
+ 3094,1387,36,801,388,1313,36,2956,33,5270,
+ 4715,28,31,32,892,872,339,29,3141,319,
+ 1388,321,314,1092,2264,556,3256,2309,5082,852,
+ 538,535,536,537,45,2013,1,45,585,3243,
+ 585,1337,274,1398,36,943,33,3105,5605,28,
+ 31,32,892,872,60,29,45,343,1615,229,
+ 1040,3041,306,310,725,319,1388,321,314,1092,
+ 1526,157,393,157,332,1889,427,45,2650,181,
+ 3097,3451,799,799,2848,1369,608,204,216,2802,
+ 203,213,214,215,217,572,1667,1506,380,2272,
+ 2528,3256,376,170,89,340,2609,103,3272,169,
+ 182,185,168,171,172,173,174,175,788,2129,
+ 2980,1779,36,396,4743,419,2943,3362,36,943,
+ 33,1220,3355,28,31,32,892,872,27,29,
+ 2006,26,24,51,2030,107,77,78,109,2053,
+ 25,2093,1387,36,801,388,2090,2272,2147,2126,
+ 2220,2213,2276,2227,2980,3399,3362,36,943,33,
+ 1081,3355,28,31,32,892,872,27,29,2006,
+ 26,24,51,2030,107,77,78,109,2053,2483,
+ 2093,1029,3736,432,571,2090,3309,2147,2126,2220,
+ 2213,2276,3360,3212,2980,374,2888,3362,36,943,
+ 33,3086,3355,28,31,32,892,872,27,29,
+ 2006,26,24,51,2030,107,77,78,109,2053,
+ 2217,2093,508,545,350,2980,2090,2877,2147,2126,
+ 2220,2213,3310,1839,36,943,33,3006,4715,28,
+ 31,32,892,872,339,29,2174,539,535,536,
+ 537,1047,36,801,388,70,43,2353,538,535,
+ 536,537,2369,36,943,33,2460,2897,28,31,
+ 32,892,872,339,29,920,3070,1494,3328,2091,
+ 36,943,33,5270,2897,28,31,32,892,872,
+ 339,29,50,319,1388,321,315,1092,1526,1487,
+ 1466,2980,333,1405,538,535,536,537,2904,3243,
+ 523,382,5368,1387,36,801,388,2518,1029,1230,
+ 352,4503,316,953,321,3480,36,801,388,1281,
+ 2791,69,346,1630,1395,349,3390,3451,238,319,
+ 1388,321,314,1092,1779,36,396,3599,3455,3094,
+ 573,535,536,537,50,323,3600,1047,36,801,
+ 388,1487,3393,45,531,98,274,3456,3362,36,
+ 943,33,299,3355,28,31,32,892,872,27,
+ 29,2006,26,24,51,2030,107,77,78,109,
+ 2053,402,2093,45,2353,352,233,2090,50,2147,
+ 2126,2220,3312,3520,3006,1487,991,344,1630,1395,
+ 349,306,310,725,2013,342,3214,45,236,231,
+ 232,5470,45,3329,3522,2531,4154,2980,2980,275,
+ 858,1398,36,943,33,3481,5605,28,31,32,
+ 892,872,59,29,3538,3557,1506,1387,36,801,
+ 388,243,246,249,252,4332,3573,54,88,2887,
+ 3793,799,3736,2267,877,2272,36,943,33,5270,
+ 2897,28,31,32,892,872,339,29,286,3026,
+ 523,376,3389,785,3101,3678,4075,4619,50,2217,
+ 538,535,536,537,3070,1487,2028,1164,90,2363,
+ 2661,103,1786,3362,36,943,33,4503,3355,28,
+ 31,32,892,872,27,29,2006,26,24,51,
+ 2030,107,77,78,86,319,1388,321,314,1092,
+ 1042,3362,36,943,33,3094,3355,28,31,32,
+ 892,872,27,29,2006,26,24,51,2030,107,
+ 77,78,109,2053,63,2093,1687,1281,2492,1281,
+ 2090,1512,2147,2126,3251,1662,36,2956,33,5270,
+ 2897,28,31,32,892,872,339,29,864,538,
+ 535,536,537,99,2567,2715,573,535,536,537,
+ 3566,535,536,537,2975,1993,859,307,310,725,
+ 180,2980,199,539,535,536,537,3180,2456,2012,
+ 2312,2472,36,2956,33,5270,2897,28,31,32,
+ 892,872,339,29,356,319,1388,321,314,1092,
+ 288,53,233,531,419,1889,538,535,536,537,
+ 2644,36,2956,33,5270,2897,28,31,32,892,
+ 872,339,29,3180,248,231,232,2784,2456,538,
+ 535,536,537,2944,2741,3566,535,536,537,1281,
+ 2689,319,1388,321,314,1092,3118,1281,340,3198,
+ 2747,1889,3180,5550,5169,419,2943,2114,36,943,
+ 33,5381,2897,28,31,32,892,872,339,29,
+ 319,1388,321,314,1092,1550,36,801,388,1697,
+ 1889,2580,198,328,335,2980,1300,36,943,33,
+ 406,4715,28,31,32,892,872,339,29,3198,
+ 5403,419,2943,2125,539,535,536,537,2217,2980,
+ 152,538,535,536,537,451,50,319,1388,321,
+ 314,1092,45,1487,48,3519,2569,2857,920,5169,
+ 419,2943,2544,334,335,538,535,536,537,3406,
+ 2821,45,2005,807,352,1525,319,1388,321,317,
+ 1092,1526,2762,2980,1281,333,344,1630,1395,349,
+ 3362,36,943,33,2843,3355,28,31,32,892,
+ 872,27,29,2006,26,24,51,2030,107,77,
+ 78,109,2053,91,2093,2780,36,801,388,2090,
+ 2690,2147,3273,3362,36,943,33,202,3355,28,
+ 31,32,892,872,27,29,2006,26,24,51,
+ 2030,107,77,78,109,2053,268,2093,1281,1694,
+ 585,1281,2090,775,2147,3295,50,2133,3574,2184,
+ 3014,45,240,1487,2235,2760,45,45,45,229,
+ 3689,2819,3779,355,573,535,536,537,538,535,
+ 536,537,531,157,366,539,535,536,537,181,
+ 3097,200,45,799,3915,920,2849,204,216,2802,
+ 203,213,214,215,217,572,3331,1724,2877,3575,
+ 4017,2456,1183,170,3088,3576,2456,90,2408,169,
+ 233,184,168,171,172,173,174,175,2710,36,
+ 943,33,5241,2897,28,31,32,892,872,339,
+ 29,1281,241,231,232,157,2576,564,2908,45,
+ 2980,201,3388,1183,3362,36,943,33,351,3355,
+ 28,31,32,892,872,27,29,2006,26,24,
+ 51,2030,107,77,78,109,2053,1481,2093,2941,
+ 3408,1281,3198,2090,223,3135,157,3198,319,1388,
+ 321,314,1092,3398,3303,36,943,33,852,3355,
+ 28,31,32,892,872,27,29,2006,26,24,
+ 51,2030,87,77,78,352,330,335,3332,45,
+ 2086,3401,335,3029,194,5517,2382,344,1630,1395,
+ 349,2980,392,2980,2980,2734,427,2566,3362,36,
+ 943,33,3452,3355,28,31,32,892,872,27,
+ 29,2006,26,24,51,2030,107,77,78,109,
+ 2053,3432,2093,3845,3890,3368,3388,2090,3389,3149,
+ 3362,36,943,33,3393,3355,28,31,32,892,
+ 872,27,29,2006,26,24,51,2030,107,77,
+ 78,109,2053,3488,2093,1779,36,1757,4351,2090,
+ 2980,3150,3362,36,943,33,179,3355,28,31,
+ 32,892,872,27,29,2006,26,24,51,2030,
+ 107,77,78,109,2053,357,2093,2980,1604,585,
+ 3935,2090,3579,3197,2313,2575,50,2980,1907,2865,
+ 3508,2980,45,1487,1065,2980,3278,2910,229,2456,
+ 3489,3582,1675,602,36,801,388,68,343,2980,
+ 2980,3592,157,573,535,536,537,67,181,3097,
+ 446,66,799,2909,585,65,204,216,2802,203,
+ 213,214,215,217,572,1840,2980,2981,2980,1790,
+ 1884,2865,170,229,274,430,3584,3598,169,3130,
+ 3674,168,171,172,173,174,175,157,3603,233,
+ 3227,3280,2980,181,3097,535,56,799,55,585,
+ 3198,204,216,2802,203,213,214,215,217,572,
+ 3449,251,231,232,3604,2980,3611,170,229,2456,
+ 3279,1285,3521,169,1183,179,168,171,172,173,
+ 174,175,157,3605,3559,335,2980,3692,181,3097,
+ 624,6346,799,6346,585,102,204,216,2802,203,
+ 213,214,215,217,572,6346,3518,161,73,6346,
+ 6346,6346,170,229,360,45,4129,6346,169,1183,
+ 177,168,171,172,173,174,175,157,6346,6346,
+ 1950,2588,2591,181,3097,713,529,799,6346,585,
+ 3198,204,216,2802,203,213,214,215,217,572,
+ 6346,6346,157,3292,6346,6346,6346,170,229,3667,
+ 45,6346,6346,169,1183,178,168,171,172,173,
+ 174,175,157,3255,3682,335,6346,6346,181,3097,
+ 802,6346,799,6346,585,6346,204,216,2802,203,
+ 213,214,215,217,572,6346,6346,157,6346,6346,
+ 6346,6346,170,229,3677,3568,6346,6346,169,1183,
+ 188,168,171,172,173,174,175,157,6346,6346,
+ 6346,6346,6346,181,3097,891,6346,799,6346,585,
+ 6346,204,216,2802,203,213,214,215,217,572,
+ 6346,6346,157,6346,6346,6346,6346,170,229,163,
+ 6346,6346,6346,169,6346,3781,168,171,172,173,
+ 174,175,157,2177,6346,6346,6346,2865,181,3097,
+ 3275,1741,799,6346,2865,2865,204,216,2802,203,
+ 213,214,215,217,572,6346,3227,6346,6346,6346,
+ 6346,6346,170,343,229,6346,6346,6346,169,6346,
+ 193,168,171,172,173,174,175,2839,36,943,
+ 33,5381,2897,28,31,32,892,872,339,29,
+ 3446,6346,206,216,2802,205,213,214,215,217,
+ 572,3362,1663,943,2817,6346,3355,28,31,32,
+ 892,872,27,29,2006,26,24,51,2030,107,
+ 77,78,85,207,209,211,295,296,6346,615,
+ 505,218,208,210,6346,2003,6346,319,1388,321,
+ 314,1092,6346,2355,980,6346,6346,526,585,3279,
+ 13,6346,4750,1183,6346,3279,6346,6346,6346,1183,
+ 573,535,536,537,352,3796,6346,229,538,535,
+ 536,537,6346,6346,502,504,344,1630,1395,349,
+ 6346,157,6346,6346,527,920,161,181,3097,1069,
+ 6346,799,161,585,6346,204,216,2802,203,213,
+ 214,215,217,572,6346,6346,233,6346,2408,6346,
+ 6346,170,229,2636,2981,2272,6346,169,2865,187,
+ 168,171,172,173,174,175,157,589,254,231,
+ 232,6346,181,3097,1865,6346,799,3227,2865,6346,
+ 204,216,2802,203,213,214,215,217,572,3700,
+ 6346,6346,3726,6346,6346,6346,170,229,3728,6346,
+ 6346,6346,169,6346,195,168,171,172,173,174,
+ 175,1300,36,943,33,6346,4715,28,31,32,
+ 892,872,339,29,6346,206,216,2802,205,213,
+ 214,215,217,572,6346,6346,538,535,536,537,
+ 6346,45,6346,6346,6346,1183,6346,6346,6346,6346,
+ 6346,360,6346,920,6346,6346,207,209,211,295,
+ 296,6346,615,6346,519,208,210,3490,2588,2591,
+ 6346,319,1388,321,315,1092,1526,6346,157,6346,
+ 333,3362,36,943,33,3681,3355,28,31,32,
+ 892,872,27,29,2006,26,24,51,2030,107,
+ 77,78,109,2053,6346,2093,3362,36,943,33,
+ 3210,3355,28,31,32,892,872,27,29,2006,
+ 26,24,51,2030,107,77,78,109,2053,1955,
+ 2093,6346,1524,2865,6346,3220,1571,36,943,33,
+ 5270,2897,28,31,32,892,872,339,29,6346,
+ 6346,1287,229,6346,6346,6346,6346,538,535,536,
+ 537,539,535,536,537,2942,45,6346,3279,5208,
+ 2865,2045,1183,6346,622,2865,538,535,536,537,
+ 206,216,2802,205,213,214,215,217,572,343,
+ 6346,6346,6346,2762,229,351,319,1388,321,314,
+ 1092,1599,36,801,388,161,3174,6346,6346,6346,
+ 6346,207,209,211,295,296,2848,615,152,218,
+ 208,210,206,216,2802,205,213,214,215,217,
+ 572,6346,2964,6346,6346,2135,6346,6346,1998,2865,
+ 4750,6346,50,538,535,536,537,3005,6346,1487,
+ 48,2865,352,207,209,211,295,296,229,615,
+ 2762,218,208,210,344,1630,1395,349,2166,1323,
+ 343,3775,2734,6346,1911,6346,6346,6346,6346,2853,
+ 2185,6346,4750,6346,6346,6346,206,216,2802,205,
+ 213,214,215,217,572,1161,6346,1509,6346,538,
+ 535,536,537,2272,36,943,33,5270,2897,28,
+ 31,32,892,872,339,29,920,207,209,211,
+ 295,296,6346,615,6346,218,208,210,539,535,
+ 536,537,3635,6346,6346,2348,6346,6346,2177,1526,
+ 6346,6346,2865,5392,2187,6346,4750,6346,6346,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 6346,3227,6346,319,1388,321,314,1092,6346,3362,
+ 36,943,33,3174,3355,28,31,32,892,872,
+ 27,29,2006,26,24,51,2030,107,77,78,
+ 109,2053,6346,3070,3362,36,943,33,6346,3355,
+ 28,31,32,892,872,27,29,2006,26,24,
+ 51,2030,107,77,78,109,2053,6346,3096,3529,
+ 36,801,388,6346,2791,6346,95,6346,6346,6346,
+ 6346,6346,239,6346,6346,505,6346,6346,6346,6346,
+ 6346,6346,6346,6346,573,535,536,537,6346,6346,
+ 6346,6346,6346,442,6346,456,3362,36,943,33,
+ 274,3355,28,31,32,892,872,27,29,2006,
+ 26,24,51,2030,107,77,78,109,3098,503,
+ 504,6346,6346,6346,6346,6346,3362,36,943,33,
+ 233,3355,28,31,32,892,872,27,29,2006,
+ 26,24,51,2030,107,77,78,109,3125,6346,
+ 6346,6346,237,231,232,1047,36,801,388,3362,
+ 36,943,33,275,3355,28,31,32,892,872,
+ 27,29,2006,26,24,51,2030,107,77,78,
+ 109,3134,6346,953,6346,244,247,250,253,4332,
+ 1617,6346,1945,45,2865,45,50,1183,877,1183,
+ 6346,2225,6346,1487,4083,2865,6346,6346,538,535,
+ 536,537,2315,229,6346,6346,2865,538,535,536,
+ 537,6346,6346,2531,229,3249,6346,6346,6346,6346,
+ 157,6346,157,6346,2762,229,6346,3685,6346,2816,
+ 6346,206,216,2802,205,213,214,215,217,572,
+ 6346,6346,206,216,2802,205,213,214,215,217,
+ 572,6346,6346,206,216,2802,205,213,214,215,
+ 217,572,207,209,211,295,296,6346,615,6346,
+ 219,208,210,207,209,211,295,296,6346,615,
+ 6346,520,208,210,207,209,211,295,296,6346,
+ 615,6346,305,208,210,3362,36,943,33,2442,
+ 3355,28,31,32,892,872,27,29,2006,26,
+ 24,51,2030,107,77,78,84,3362,36,943,
+ 33,6346,3355,28,31,32,892,872,27,29,
+ 2006,26,24,51,2030,107,77,78,83,3362,
+ 36,943,33,6346,3355,28,31,32,892,872,
+ 27,29,2006,26,24,51,2030,107,77,78,
+ 82,3362,36,943,33,6346,3355,28,31,32,
+ 892,872,27,29,2006,26,24,51,2030,107,
+ 77,78,81,3362,36,943,33,6346,3355,28,
+ 31,32,892,872,27,29,2006,26,24,51,
+ 2030,107,77,78,80,3362,36,943,33,6346,
+ 3355,28,31,32,892,872,27,29,2006,26,
+ 24,51,2030,107,77,78,79,3184,36,943,
+ 33,6346,3355,28,31,32,892,872,27,29,
+ 2006,26,24,51,2030,107,77,78,105,3362,
+ 36,943,33,6346,3355,28,31,32,892,872,
+ 27,29,2006,26,24,51,2030,107,77,78,
+ 111,3362,36,943,33,6346,3355,28,31,32,
+ 892,872,27,29,2006,26,24,51,2030,107,
+ 77,78,110,2405,6346,6346,6346,2865,45,6346,
+ 6346,6346,1183,6346,6346,6346,6346,6346,6346,6346,
+ 6346,6346,3362,36,943,33,229,3355,28,31,
+ 32,892,872,27,29,2006,26,24,51,2030,
+ 107,77,78,108,6346,157,6346,6346,6346,6346,
+ 6346,6346,3752,6346,206,216,2802,205,213,214,
+ 215,217,572,3362,36,943,33,6346,3355,28,
+ 31,32,892,872,27,29,2006,26,24,51,
+ 2030,107,77,78,106,207,209,211,295,296,
+ 6346,615,6346,499,208,210,2459,36,943,33,
+ 5270,2897,28,31,32,892,872,339,29,1803,
+ 1223,6346,6346,6346,2865,2987,6346,1331,6346,6346,
+ 6346,2865,2987,6346,6346,6346,6346,6346,6346,6346,
+ 6346,6346,6346,229,538,535,536,537,6346,6346,
+ 229,6346,6346,6346,6346,6346,6346,6346,2203,6346,
+ 6346,3400,2865,2853,6346,6346,319,1388,321,314,
+ 1092,2043,407,634,6346,6346,3748,6346,2043,407,
+ 634,3227,6346,538,535,536,537,6346,6346,6346,
+ 6346,2203,6346,6346,6346,2865,2853,6346,6346,6346,
+ 920,6346,408,409,410,295,296,6346,615,408,
+ 409,410,295,296,3227,615,538,535,536,537,
+ 1911,6346,6346,1526,6346,2853,6346,332,1818,1387,
+ 36,801,388,920,6346,1818,6346,6346,2510,6346,
+ 6346,6346,6346,2853,6346,538,535,536,537,6346,
+ 6346,6346,6346,2877,5288,360,1526,585,6346,6346,
+ 332,6346,920,538,535,536,537,6346,6346,6346,
+ 50,3279,2588,2591,6346,6346,3407,1487,2554,6346,
+ 920,6346,6346,6346,6346,1526,1911,2773,360,332,
+ 157,2853,6346,411,413,6346,181,3097,6346,6346,
+ 411,414,6346,1526,3279,2588,2591,333,6346,6346,
+ 6346,538,535,536,537,6346,4211,6346,1911,2045,
+ 6346,6346,5177,2853,6346,352,196,6346,920,6346,
+ 6346,1911,6346,6346,6346,6346,2853,346,1630,1395,
+ 349,6346,1684,538,535,536,537,2853,6346,6346,
+ 6346,1526,6346,1831,6346,332,538,535,536,537,
+ 920,1599,36,801,388,6346,1509,538,535,536,
+ 537,2853,6346,920,1047,36,801,388,538,535,
+ 536,537,5416,1526,920,6346,6346,332,6346,6346,
+ 6346,538,535,536,537,3249,1526,6346,6346,6346,
+ 332,6346,50,2126,36,801,388,1526,920,1487,
+ 48,5392,6346,6346,5288,50,1047,36,801,388,
+ 2354,6346,1487,48,2865,6346,6346,2773,6346,1605,
+ 6346,1526,6346,6346,6346,333,6346,2844,36,801,
+ 388,6346,1008,3227,50,6346,5537,197,6346,6346,
+ 6346,1487,48,6346,6346,6346,6346,50,1599,36,
+ 801,388,6346,6346,1487,48,6346,1047,36,801,
+ 388,1275,1047,36,801,388,6346,6346,50,6346,
+ 6346,6346,6346,6346,1340,1487,2557,3569,45,6346,
+ 6346,585,585,6346,97,1047,36,801,388,50,
+ 1047,36,801,388,6346,1230,1487,2615,50,6346,
+ 343,343,6346,50,6346,1487,48,505,6346,6346,
+ 1487,48,6346,45,157,157,3693,585,6346,6346,
+ 6346,189,2841,6346,6346,2215,50,5156,2848,6346,
+ 2309,50,6346,1487,48,6346,343,6346,1487,48,
+ 1387,36,801,388,2765,1387,36,801,388,6346,
+ 157,502,504,2403,6346,45,6346,2650,2682,585,
+ 45,3571,45,2848,585,2865,2865,6346,6346,6346,
+ 6346,6346,45,45,6346,6346,585,2865,343,2968,
+ 6346,50,6346,343,343,343,50,191,1487,2122,
+ 3687,530,157,1487,2235,343,343,157,45,189,
+ 6346,6346,2865,6346,189,5156,6346,6346,6346,157,
+ 5156,2848,2848,45,6346,6346,189,2865,6346,6346,
+ 6346,343,5156,2848,6346,6346,45,533,2984,6346,
+ 2865,45,6346,45,6346,2865,343,2865,6346,2985,
+ 6346,6346,6346,6346,6346,6346,6346,6346,2848,343,
+ 6346,6346,6346,6346,343,6346,343,6346,6346,6346,
+ 6346,6346,6346,2848,2996,3573,6346,6346,6346,3391,
+ 3574,6346,6346,6346,6346,6346,2848,6346,6346,509,
+ 6346,2848,3640,2848,6346,6346,6346,6346,6346,6346,
+ 6346,6346,507,6346,6346,6346,6346,3571,6346,534,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 6346,3816,6346,0,1,230,959,0,501,4174,
+ 0,1,230,0,40,6361,0,40,6360,0,
+ 1,2489,0,700,1,0,40,1,6361,0,
+ 40,1,6360,0,1,4447,0,1,986,0,
+ 230,220,0,723,224,0,731,224,0,741,
+ 224,0,723,225,0,731,225,0,741,225,
+ 0,723,226,0,731,226,0,741,226,0,
+ 741,394,0,731,394,0,723,394,0,284,
+ 394,0,723,227,0,731,227,0,741,227,
+ 0,284,287,0,723,228,0,731,228,0,
+ 741,228,0,6581,242,0,6580,242,0,723,
+ 242,0,731,242,0,741,242,0,6684,242,
+ 0,6683,242,0,6608,242,0,6607,242,0,
+ 6606,242,0,6605,242,0,6604,242,0,6603,
+ 242,0,6602,242,0,6601,242,0,6619,242,
+ 0,6618,242,0,6617,242,0,6616,242,0,
+ 6615,242,0,6614,242,0,6613,242,0,6612,
+ 242,0,6611,242,0,6610,242,0,6609,242,
+ 0,40,242,6361,0,40,242,6360,0,6385,
+ 242,0,1555,387,0,6361,49,0,6360,49,
+ 0,1,741,0,1,731,0,1,723,0,
+ 1,331,0,39,986,0,39,6361,0,39,
+ 6360,0,454,1616,0,440,1851,0,1555,30,
+ 0,6358,1,0,741,581,0,731,581,0,
+ 723,581,0,584,581,0,584,580,0,1887,
+ 318,0,1,583,0,1,444,0,458,1442,
+ 0,457,1621,0,36,34,0,48,38,0,
+ 230,221,0,501,1842,0,6385,1,230,0,
+ 40,1,230,0,230,416,0,1,1414,0,
+ 1,6619,0,1,6618,0,1,6617,0,1,
+ 6616,0,1,6615,0,1,6614,0,1,6613,
+ 0,1,6612,0,1,6611,0,1,6610,0,
+ 1,6609,0,6361,38,0,6360,38,0,44,
+ 6383,0,44,38,0,6358,383,0,6357,383,
+ 0,1,2138,0,1,2651,0,6356,405,0,
+ 6355,405,0,230,415,0,3610,127,0,6354,
+ 1,0,741,445,0,731,445,0,723,445,
+ 0,331,445,0,6352,1,0,6351,1,0,
+ 1804,92,0,33,35,0,40,986,0,6383,
+ 46,0,38,46,0,1,230,3455,0,6355,
+ 230,0,3457,230,0,6385,1,0,40,1,
+ 0,238,1520,0,388,33,0,387,30,0,
+ 3610,129,0,3610,128,0,3646,230,0,10,
+ 12,0,741,578,0,731,578,0,723,578,
+ 0,741,577,0,731,577,0,723,577,0,
+ 538,539,0,1,93,0,8,10,12,0,
+ 741,578,579,0,731,578,579,0,723,578,
+ 579,0,578,579,0,6361,2,38,0,6360,
+ 2,38,0,6361,37,0,6360,37,0,3770,
+ 383,0,741,96,0,731,96,0,723,96,
+ 0,331,96,0,36,74,0,8,12,0,
+ 279,4089,0,186,4084,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -1266,8 +1280,8 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
30,31,32,33,34,35,36,37,38,39,
40,41,42,43,0,45,46,47,48,49,
50,51,52,53,54,55,56,57,58,59,
- 60,61,0,63,64,65,66,0,68,69,
- 0,1,2,73,4,13,76,77,78,79,
+ 60,61,0,63,64,65,66,5,6,7,
+ 70,71,0,0,74,3,76,77,78,79,
80,81,82,83,84,85,86,87,88,0,
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
@@ -1275,8 +1289,8 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
31,32,33,34,35,36,37,38,39,40,
41,42,43,0,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60,
- 61,0,63,64,65,66,0,68,69,0,
- 1,2,73,4,8,76,77,78,79,80,
+ 61,0,63,64,65,66,5,6,7,70,
+ 71,0,0,74,3,76,77,78,79,80,
81,82,83,84,85,86,87,88,0,1,
2,3,4,5,6,7,8,9,10,11,
12,13,14,15,16,17,18,19,20,21,
@@ -1284,17 +1298,17 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
32,33,34,35,36,37,38,39,40,41,
42,43,0,45,46,47,48,49,50,51,
52,53,54,55,56,57,58,59,60,61,
- 0,63,64,65,66,0,68,69,0,1,
- 2,73,0,102,76,77,78,79,80,81,
+ 0,63,64,65,66,5,6,7,70,71,
+ 0,0,74,3,76,77,78,79,80,81,
82,83,84,85,86,87,88,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,0,45,46,47,48,49,50,51,52,
- 53,54,55,56,57,58,59,60,61,77,
- 63,64,65,66,0,68,69,0,1,2,
- 73,0,1,2,77,78,79,80,81,82,
+ 53,54,55,56,57,58,59,60,61,0,
+ 63,64,65,66,5,6,7,70,71,0,
+ 0,74,0,4,77,78,79,80,81,82,
83,84,85,86,87,88,0,1,2,3,
4,5,6,7,8,9,10,11,12,13,
14,15,16,17,18,19,20,21,22,23,
@@ -1302,8 +1316,8 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
34,35,36,37,38,39,40,41,42,43,
0,45,46,47,48,49,50,51,52,53,
54,55,56,57,58,59,60,61,0,63,
- 64,65,66,0,68,69,0,1,2,73,
- 0,1,2,77,78,79,80,81,82,83,
+ 64,65,66,5,6,7,70,71,0,0,
+ 74,3,3,77,78,79,80,81,82,83,
84,85,86,87,88,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,
@@ -1311,25 +1325,25 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
35,36,37,38,39,40,41,42,43,0,
45,46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,0,63,64,
- 65,66,0,68,69,3,0,10,73,0,
- 1,2,77,78,79,80,81,82,83,84,
+ 65,66,5,6,7,70,71,0,0,74,
+ 0,4,77,78,79,80,81,82,83,84,
85,86,87,88,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,71,45,
+ 36,37,38,39,40,41,42,43,0,45,
46,47,48,49,50,51,52,53,54,55,
56,57,58,59,60,61,0,63,64,65,
- 66,0,68,69,0,0,0,73,12,4,
+ 66,0,1,2,70,71,0,11,74,8,
4,77,78,79,80,81,82,83,84,85,
86,87,88,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,62,45,46,
+ 37,38,39,40,41,42,43,0,45,46,
47,48,49,50,51,52,53,54,55,56,
57,58,59,60,61,0,63,64,65,66,
- 0,68,69,0,1,2,73,93,94,0,
+ 0,95,96,70,71,0,0,74,3,3,
77,78,79,80,81,82,83,84,85,86,
87,88,0,1,2,3,4,5,6,7,
8,9,10,11,12,13,14,15,16,17,
@@ -1337,17 +1351,17 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
28,29,30,31,32,33,34,35,36,37,
38,39,40,41,42,43,0,45,46,47,
48,49,50,51,52,53,54,55,56,57,
- 58,59,60,61,0,63,64,65,66,0,
- 68,69,0,0,10,73,0,1,2,77,
+ 58,59,60,61,0,63,64,65,66,5,
+ 6,7,70,71,99,100,74,0,1,77,
78,79,80,81,82,83,84,85,86,87,
88,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,71,45,46,47,48,
+ 39,40,41,42,43,0,45,46,47,48,
49,50,51,52,53,54,55,56,57,58,
- 59,60,61,0,63,64,65,66,0,68,
- 69,0,90,91,73,12,93,94,77,78,
+ 59,60,61,0,63,64,65,66,5,6,
+ 7,70,71,0,0,74,3,3,77,78,
79,80,81,82,83,84,85,86,87,88,
0,1,2,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18,19,
@@ -1355,8 +1369,8 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
30,31,32,33,34,35,36,37,38,39,
40,41,42,43,0,45,46,47,48,49,
50,51,52,53,54,55,56,57,58,59,
- 60,61,0,63,64,65,66,0,68,69,
- 0,93,94,73,93,94,0,77,78,79,
+ 60,61,0,63,64,65,66,5,6,7,
+ 70,71,0,0,74,3,3,77,78,79,
80,81,82,83,84,85,86,87,88,0,
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
@@ -1364,8 +1378,8 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
31,32,33,34,35,36,37,38,39,40,
41,42,43,0,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60,
- 61,75,63,64,65,66,0,68,69,0,
- 90,91,73,0,1,103,77,78,79,80,
+ 61,0,63,64,65,66,0,1,2,70,
+ 71,0,11,74,3,0,77,78,79,80,
81,82,83,84,85,86,87,88,0,1,
2,3,4,5,6,7,8,9,10,11,
12,13,14,15,16,17,18,19,20,21,
@@ -1373,269 +1387,267 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
32,33,34,35,36,37,38,39,40,41,
42,43,0,45,46,47,48,49,50,51,
52,53,54,55,56,57,58,59,60,61,
- 0,63,64,65,66,0,68,69,0,90,
- 91,73,0,1,0,77,78,79,80,81,
+ 75,63,64,65,66,0,95,96,70,71,
+ 0,0,74,0,4,77,78,79,80,81,
82,83,84,85,86,87,88,0,1,2,
- 3,4,5,6,7,8,9,25,11,12,
+ 3,4,5,6,7,8,26,10,11,12,
13,14,15,16,17,18,19,20,21,22,
- 23,24,25,26,40,28,29,30,31,32,
+ 23,24,25,26,27,44,29,30,31,32,
33,34,35,36,37,38,39,40,41,42,
43,0,45,46,47,48,49,50,51,52,
53,54,55,56,57,58,59,60,61,0,
- 0,64,0,1,2,3,4,5,6,7,
+ 77,64,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,
- 0,123,0,44,4,43,44,0,1,2,
- 3,4,5,6,7,8,9,0,11,12,
- 0,59,60,61,0,63,26,65,66,5,
- 6,7,0,13,0,3,74,0,76,0,
- 1,2,3,4,5,6,7,8,9,25,
- 26,89,28,29,30,31,32,33,34,35,
- 36,37,0,43,44,3,0,105,106,107,
+ 0,1,2,0,4,43,44,0,1,2,
+ 3,4,5,6,7,8,13,10,11,12,
+ 0,59,60,61,0,63,0,65,66,9,
+ 4,5,6,7,75,73,0,1,76,0,
+ 1,2,3,4,5,6,7,8,28,10,
+ 0,89,0,1,2,3,4,5,6,7,
+ 8,25,10,11,12,0,63,105,106,107,
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,0,1,
2,0,0,43,44,3,8,5,6,7,
- 103,0,10,11,12,4,5,6,7,59,
- 60,61,0,63,0,65,66,75,104,27,
- 0,1,2,109,74,0,76,0,8,9,
- 38,39,44,41,42,10,0,1,2,89,
- 4,5,6,7,0,99,100,11,12,5,
- 6,7,0,62,62,105,106,107,44,67,
- 0,0,70,71,72,13,74,75,76,25,
- 26,10,28,29,30,31,32,33,34,35,
+ 0,9,0,11,12,73,0,1,2,59,
+ 60,61,67,63,0,65,66,0,1,2,
+ 28,4,0,73,0,8,76,10,124,27,
+ 38,39,44,41,42,44,0,1,2,89,
+ 4,5,6,7,0,0,0,11,12,5,
+ 6,7,0,1,62,105,106,107,12,67,
+ 68,69,62,11,72,73,0,75,76,25,
+ 26,27,72,29,30,31,32,33,34,35,
36,37,90,91,92,93,94,95,96,97,
- 98,99,100,101,102,103,104,70,73,72,
+ 98,99,100,101,102,103,104,97,98,75,
108,109,110,111,112,113,114,115,116,117,
- 118,119,120,0,122,63,3,0,5,6,
- 7,4,62,10,11,12,0,0,0,1,
- 2,0,4,5,6,7,5,6,7,0,
- 27,0,1,2,3,4,5,6,7,8,
- 9,38,39,0,41,42,25,26,0,28,
+ 118,119,120,0,122,0,3,72,5,6,
+ 7,0,9,101,11,12,11,12,0,1,
+ 2,0,4,5,6,7,5,6,7,11,
+ 12,28,0,0,1,2,0,4,5,6,
+ 7,38,39,11,41,42,25,26,27,0,
29,30,31,32,33,34,35,36,37,0,
- 1,2,44,4,0,62,0,8,9,62,
- 67,120,43,70,71,72,0,74,75,76,
- 0,1,2,3,4,5,6,7,8,9,
- 74,11,12,90,91,92,93,94,95,96,
+ 1,2,0,1,2,62,4,5,6,7,
+ 67,68,69,11,12,72,73,44,75,76,
+ 0,1,2,3,4,5,6,7,8,40,
+ 10,11,12,90,91,92,93,94,95,96,
97,98,99,100,101,102,103,104,0,1,
- 62,108,109,110,111,112,113,114,115,116,
+ 2,108,109,110,111,112,113,114,115,116,
117,118,119,120,0,122,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,40,101,90,91,0,43,
+ 34,35,36,37,0,1,2,0,4,43,
44,0,1,2,3,4,5,6,7,8,
- 9,0,11,12,3,59,60,61,0,63,
+ 13,10,11,12,0,59,60,61,4,63,
0,65,66,0,1,2,0,4,5,6,
- 7,11,76,0,11,12,0,0,5,6,
- 7,5,6,7,0,89,0,14,15,16,
+ 7,0,76,0,11,12,0,11,5,6,
+ 7,5,6,7,0,89,92,14,15,16,
17,18,19,20,21,22,23,24,25,26,
- 62,28,29,30,31,32,33,34,35,36,
- 37,0,74,0,0,74,5,6,7,123,
+ 27,0,29,30,31,32,33,34,35,36,
+ 37,0,1,2,73,4,5,6,7,123,
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,0,0,
- 0,1,2,43,44,0,1,2,3,4,
- 5,6,7,8,9,10,11,12,92,59,
+ 30,31,32,33,34,35,36,37,0,1,
+ 2,95,96,43,44,0,1,2,3,4,
+ 5,6,7,8,9,10,11,12,0,59,
60,61,0,63,0,65,66,5,6,7,
25,26,27,28,29,30,31,32,33,34,
- 35,36,37,0,90,91,0,25,26,89,
- 28,29,30,31,32,33,34,35,36,37,
- 62,62,0,1,2,3,4,62,68,69,
- 8,9,67,0,1,2,71,4,5,6,
- 7,38,39,123,0,1,2,3,4,5,
+ 35,36,37,0,1,2,3,4,0,89,
+ 0,8,9,10,0,5,6,7,0,1,
+ 2,3,4,5,6,7,8,62,10,11,
+ 12,28,67,68,0,1,2,0,4,5,
+ 6,7,0,123,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,0,0,0,1,2,43,44,67,
- 0,1,2,3,4,5,6,7,8,9,
- 10,0,0,59,60,61,62,63,25,65,
- 66,28,0,1,2,3,4,27,0,0,
- 8,9,10,0,1,2,3,4,44,11,
- 12,8,9,89,0,1,2,3,4,5,
+ 36,37,0,1,2,67,0,43,44,0,
+ 0,5,6,7,4,5,6,7,0,0,
+ 0,11,12,59,60,61,62,63,9,65,
+ 66,25,26,27,72,29,30,31,32,33,
+ 34,35,36,37,0,0,44,28,0,5,
+ 6,7,4,89,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,0,1,2,3,4,43,44,67,
- 8,9,70,71,72,0,0,75,0,70,
- 5,6,7,59,60,61,10,63,10,65,
- 66,0,1,2,92,4,5,6,7,0,
- 76,10,11,12,0,1,2,0,4,5,
- 6,7,0,89,0,1,2,3,4,5,
+ 36,37,0,0,1,2,0,43,44,90,
+ 91,8,0,10,0,0,62,5,6,7,
+ 62,0,0,59,60,61,12,63,73,65,
+ 66,9,102,105,106,107,0,25,26,27,
+ 76,29,30,31,32,33,34,35,36,37,
+ 0,1,2,89,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,76,0,76,0,3,43,44,0,
- 1,2,71,4,5,6,7,0,0,0,
- 11,12,3,59,60,61,0,63,0,65,
- 66,0,0,92,72,0,5,6,7,4,
- 76,0,0,1,2,3,4,5,6,7,
- 8,9,11,89,0,1,2,3,4,5,
+ 36,37,90,91,44,0,74,43,44,4,
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,90,91,59,60,61,0,63,103,65,
+ 66,26,0,0,1,2,3,4,28,123,
+ 76,8,9,10,0,0,1,2,0,1,
+ 2,0,0,89,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,74,62,0,1,2,43,44,0,
- 1,2,0,4,5,6,7,0,0,0,
- 11,12,3,59,60,61,74,63,10,65,
- 66,0,0,1,2,3,4,5,6,7,
- 76,99,100,11,12,27,95,96,44,0,
- 1,2,40,89,0,1,2,3,4,5,
+ 36,37,44,0,1,2,0,43,44,67,
+ 67,68,69,0,0,72,62,0,75,13,
+ 105,106,107,59,60,61,72,63,67,65,
+ 66,69,0,1,2,92,4,5,6,7,
+ 76,9,0,11,12,0,0,44,3,43,
+ 44,97,98,89,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,75,44,0,0,0,43,44,67,
- 4,5,6,7,0,74,0,11,12,5,
- 6,7,0,59,60,61,0,63,0,65,
- 66,104,10,5,6,7,109,110,111,112,
- 113,114,115,116,117,118,119,0,44,0,
- 0,4,3,89,0,1,2,3,4,5,
+ 36,37,75,0,1,2,0,43,44,3,
+ 68,0,1,2,3,4,5,6,7,8,
+ 64,10,67,59,60,61,103,63,104,65,
+ 66,104,0,109,92,3,109,110,111,112,
+ 113,114,115,116,117,118,119,44,0,1,
+ 2,0,0,89,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,70,71,0,1,2,43,44,5,
- 6,7,0,1,2,11,4,0,0,62,
- 8,9,62,59,60,61,67,63,10,65,
+ 36,37,44,0,0,1,2,43,44,5,
+ 6,7,0,1,2,11,13,75,0,1,
+ 2,3,4,59,60,61,8,63,10,65,
66,0,1,2,3,4,5,6,7,8,
- 9,0,11,12,3,27,0,0,44,0,
- 3,10,3,89,0,1,2,3,4,5,
+ 78,10,11,12,0,0,43,44,44,4,
+ 0,90,91,89,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,0,1,2,3,4,43,44,0,
- 8,9,3,0,0,74,0,3,67,92,
- 4,0,71,59,60,61,67,63,72,65,
+ 8,0,10,0,73,0,62,62,0,1,
+ 2,3,4,59,60,61,8,63,10,65,
66,0,1,2,3,4,5,6,7,8,
- 9,0,26,0,1,2,3,4,0,0,
- 0,8,9,89,11,12,13,14,15,16,
- 17,18,19,20,21,22,23,24,0,1,
- 2,3,4,5,6,7,8,9,0,11,
- 12,38,39,40,41,42,38,39,45,46,
+ 25,10,27,0,0,1,2,3,4,38,
+ 39,0,8,89,10,11,12,13,14,15,
+ 16,17,18,19,20,21,22,23,24,0,
+ 1,2,3,4,5,6,7,0,0,1,
+ 11,12,38,39,40,41,42,9,0,45,
+ 46,47,48,49,50,51,52,53,54,55,
+ 56,57,58,0,73,62,93,94,64,0,
+ 1,2,3,4,70,71,72,8,9,10,
+ 11,12,13,14,15,16,17,18,19,20,
+ 21,22,23,24,0,0,67,3,3,0,
+ 0,1,2,40,93,94,68,38,39,40,
+ 41,42,75,0,45,46,47,48,49,50,
+ 51,52,53,54,55,56,57,58,0,0,
+ 0,1,2,64,4,5,6,7,0,1,
+ 2,3,4,74,44,76,8,9,10,11,
+ 12,13,14,15,16,17,18,19,20,21,
+ 22,23,24,0,1,2,3,4,5,6,
+ 7,8,0,10,44,3,38,39,40,41,
+ 42,9,69,45,46,47,48,49,50,51,
+ 52,53,54,55,56,57,58,69,99,100,
+ 72,0,64,0,1,2,3,4,0,0,
+ 9,8,74,10,11,12,13,14,15,16,
+ 17,18,19,20,21,22,23,24,0,0,
+ 1,2,3,4,0,0,73,8,9,10,
+ 68,38,39,40,41,42,38,39,45,46,
47,48,49,50,51,52,53,54,55,56,
- 57,58,0,1,2,74,0,64,0,1,
- 2,68,69,0,0,72,0,1,2,3,
- 4,105,106,107,8,9,10,11,12,13,
- 14,15,16,17,18,19,20,21,22,23,
- 24,92,74,0,1,2,44,4,5,6,
- 7,0,1,2,38,39,40,41,42,8,
- 9,45,46,47,48,49,50,51,52,53,
- 54,55,56,57,58,62,68,69,72,0,
- 64,0,1,2,5,6,7,44,74,73,
- 0,10,76,0,1,2,3,4,0,121,
- 0,8,9,10,11,12,13,14,15,16,
+ 57,58,0,0,0,3,0,64,0,1,
+ 2,3,4,70,71,74,8,0,10,11,
+ 12,13,14,15,16,17,18,19,20,21,
+ 22,23,24,0,1,2,67,68,0,0,
+ 1,2,9,0,38,39,38,39,40,41,
+ 42,102,0,45,46,47,48,49,50,51,
+ 52,53,54,55,56,57,58,93,94,67,
+ 0,67,64,0,1,2,3,4,70,71,
+ 0,8,44,10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,0,1,
- 2,3,4,5,6,7,8,9,0,11,
- 12,38,39,40,41,42,38,39,45,46,
+ 2,3,4,0,1,2,8,74,10,70,
+ 71,38,39,40,41,42,0,0,45,46,
47,48,49,50,51,52,53,54,55,56,
- 57,58,0,0,73,0,0,64,3,0,
- 1,2,3,4,0,10,73,8,9,0,
- 11,12,13,14,15,16,17,18,19,20,
- 21,22,23,24,0,67,0,1,0,5,
- 6,7,0,0,0,3,10,38,39,40,
- 41,42,10,10,45,46,47,48,49,50,
- 51,52,53,54,55,56,57,58,62,0,
- 0,0,70,64,72,0,71,68,69,0,
- 1,2,3,4,70,10,67,8,9,0,
- 11,12,13,14,15,16,17,18,19,20,
- 21,22,23,24,0,67,0,71,4,67,
- 0,67,70,71,72,0,73,38,39,40,
- 41,42,0,0,45,46,47,48,49,50,
- 51,52,53,54,55,56,57,58,67,70,
- 0,0,0,64,3,70,71,68,69,0,
- 1,2,3,4,0,13,0,8,9,3,
- 11,12,13,14,15,16,17,18,19,20,
- 21,22,23,24,0,105,106,107,72,5,
- 6,7,41,42,62,43,44,38,39,40,
- 41,42,0,0,45,46,47,48,49,50,
- 51,52,53,54,55,56,57,58,67,0,
- 70,101,0,64,5,6,7,68,69,0,
- 1,2,3,4,70,102,0,8,9,10,
- 11,12,13,14,15,16,17,18,19,20,
- 21,22,23,24,0,1,2,3,4,108,
- 0,0,8,9,10,62,0,38,39,40,
- 41,42,70,122,45,46,47,48,49,50,
- 51,52,53,54,55,56,57,58,0,1,
- 2,0,70,64,0,0,1,2,3,4,
- 0,0,73,8,9,10,11,12,13,14,
+ 57,58,62,90,91,0,0,64,0,1,
+ 2,3,4,70,71,9,8,9,10,11,
+ 12,13,14,15,16,17,18,19,20,21,
+ 22,23,24,0,28,67,3,0,0,0,
+ 3,0,9,70,71,4,38,39,40,41,
+ 42,101,0,45,46,47,48,49,50,51,
+ 52,53,54,55,56,57,58,0,1,2,
+ 0,0,64,3,3,0,1,2,3,4,
+ 9,43,74,8,9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,
- 0,67,0,62,4,71,0,5,6,7,
- 4,40,44,38,39,40,41,42,72,0,
+ 67,68,69,62,0,72,0,0,69,0,
+ 0,72,0,38,39,40,41,42,9,9,
45,46,47,48,49,50,51,52,53,54,
- 55,56,57,58,0,0,62,3,0,0,
- 1,2,8,0,0,11,12,8,5,6,
- 7,0,72,10,10,0,1,2,3,4,
- 5,6,7,8,9,10,11,12,0,0,
- 27,27,38,39,0,41,42,3,10,45,
+ 55,56,57,58,0,0,0,3,67,68,
+ 0,0,8,0,9,11,12,0,5,6,
+ 7,0,9,0,0,0,1,2,3,4,
+ 5,6,7,8,9,10,11,12,62,62,
+ 0,28,38,39,62,41,42,68,68,45,
25,26,27,28,29,30,31,32,33,34,
- 35,36,37,0,0,120,62,78,5,6,
- 7,67,68,69,70,11,72,0,0,75,
- 75,0,74,70,70,0,1,2,10,0,
- 0,10,67,0,90,91,71,93,0,95,
- 96,97,98,99,100,101,102,103,104,71,
- 0,72,108,3,110,111,112,113,114,115,
- 116,117,118,119,0,1,2,3,4,44,
- 92,0,8,9,3,11,12,13,14,15,
+ 35,36,37,40,40,120,62,93,94,0,
+ 0,67,92,69,70,71,72,0,9,75,
+ 69,76,69,73,0,0,69,0,0,1,
+ 2,0,67,68,90,91,8,93,10,95,
+ 96,97,98,99,100,101,102,103,104,69,
+ 40,0,108,92,110,111,112,113,114,115,
+ 116,117,118,119,0,1,2,3,4,0,
+ 0,0,8,4,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,0,
- 1,2,71,4,76,0,0,8,9,95,
- 96,72,38,39,40,41,42,0,75,45,
+ 1,2,0,4,69,0,72,8,0,10,
+ 73,0,38,39,40,41,42,9,0,45,
46,47,48,49,50,51,52,53,54,55,
- 56,57,58,0,1,2,3,4,64,0,
- 0,8,9,44,11,12,13,14,15,16,
- 17,18,19,20,21,22,23,24,0,0,
- 1,2,0,4,0,3,0,8,9,121,
- 64,38,39,40,41,42,10,0,45,46,
+ 56,57,58,0,1,2,3,4,64,120,
+ 0,8,62,10,11,12,13,14,15,16,
+ 17,18,19,20,21,22,23,24,0,1,
+ 2,0,4,0,62,0,8,62,10,0,
+ 9,38,39,40,41,42,68,69,45,46,
47,48,49,50,51,52,53,54,55,56,
- 57,58,75,0,1,2,3,4,0,0,
- 67,8,9,44,11,12,13,14,15,16,
- 17,18,19,20,21,22,23,24,0,0,
- 0,0,0,5,6,7,62,0,0,10,
- 3,38,39,40,41,42,70,71,45,46,
+ 57,58,0,0,1,2,3,4,0,0,
+ 67,8,44,10,11,12,13,14,15,16,
+ 17,18,19,20,21,22,23,24,0,1,
+ 0,0,0,0,0,62,0,9,0,68,
+ 69,38,39,40,41,42,73,9,45,46,
47,48,49,50,51,52,53,54,55,56,
- 57,58,0,1,2,3,4,64,0,0,
- 8,9,0,11,12,13,14,15,16,17,
- 18,19,20,21,22,23,24,0,1,2,
- 0,0,0,0,3,3,3,67,0,70,
- 38,39,40,41,42,76,75,45,46,47,
+ 57,58,0,1,2,3,4,64,0,67,
+ 8,62,10,11,12,13,14,15,16,17,
+ 18,19,20,21,22,23,24,0,0,0,
+ 0,0,62,62,3,0,68,9,9,9,
+ 38,39,40,41,42,72,68,45,46,47,
48,49,50,51,52,53,54,55,56,57,
- 58,0,1,2,3,4,0,0,0,8,
- 9,44,11,12,13,14,15,16,17,18,
- 19,20,21,22,23,24,0,75,0,0,
- 0,0,3,3,0,0,10,3,3,38,
- 39,40,41,42,0,75,45,46,47,48,
+ 58,0,1,2,3,4,92,0,0,8,
+ 3,10,11,12,13,14,15,16,17,18,
+ 19,20,21,22,23,24,0,0,0,0,
+ 3,3,0,121,8,3,69,69,68,38,
+ 39,40,41,42,76,76,45,46,47,48,
49,50,51,52,53,54,55,56,57,58,
- 0,1,2,3,4,0,0,0,8,9,
- 3,11,12,13,14,15,16,17,18,19,
- 20,21,22,23,24,0,0,0,0,0,
- 62,0,0,62,0,3,0,71,38,39,
- 40,41,42,72,10,45,46,47,48,49,
+ 0,1,2,3,4,0,0,0,8,121,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,0,1,2,0,4,
+ 0,0,0,8,0,10,0,9,38,39,
+ 40,41,42,9,75,45,46,47,48,49,
50,51,52,53,54,55,56,57,58,0,
- 1,2,0,4,5,6,7,0,97,98,
- 3,124,13,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,0,28,29,30,
- 31,32,33,34,35,36,37,11,0,74,
- 0,74,43,74,0,71,75,3,0,1,
- 2,0,4,5,6,7,0,0,59,60,
+ 1,2,28,4,5,6,7,0,0,44,
+ 3,3,13,14,15,16,17,18,19,20,
+ 21,22,23,24,25,26,27,0,29,30,
+ 31,32,33,34,35,36,37,0,0,0,
+ 69,0,43,69,76,75,9,0,0,1,
+ 2,75,4,5,6,7,9,0,59,60,
61,13,14,15,16,17,18,19,20,21,
- 22,23,24,25,26,0,28,29,30,31,
- 32,33,34,35,36,37,0,1,2,3,
- 4,43,0,0,8,9,10,121,0,0,
- 62,0,62,10,0,0,0,59,60,61,
- 72,10,72,27,0,0,0,3,67,3,
- 27,95,96,0,0,0,0,0,27,0,
- 0,75,75,0,0,97,98,97,98,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0
+ 22,23,24,25,26,27,0,29,30,31,
+ 32,33,34,35,36,37,0,0,0,3,
+ 0,43,0,0,0,0,9,9,0,9,
+ 62,0,75,0,3,68,69,59,60,61,
+ 72,0,73,72,3,68,28,0,0,0,
+ 73,3,0,0,0,0,3,41,42,72,
+ 0,0,0,3,0,97,98,0,0,0,
+ 0,0,0,0,0,0,0,0,72,0,
+ 0,0,0,67,0,68,0,0,68,0,
+ 0,0,0,0,72,0,73,73,73,0,
+ 67,73,0,0,0,0,0,0,0,62,
+ 0,0,0,0,0,0,0,62,0,0,
+ 0,0,0,0,108,0,0,75,0,75,
+ 0,0,0,0,0,0,0,0,122,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 121,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0
};
};
public final static char termCheck[] = TermCheck.termCheck;
@@ -1643,371 +1655,379 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface TermAction {
public final static char termAction[] = {0,
- 6279,6158,5774,5774,5774,5767,5774,5774,5774,5774,
- 6189,5774,5774,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,6162,1,1,
+ 6346,6225,5841,5841,5841,5834,5841,5841,5841,6256,
+ 5841,5841,5841,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,6229,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,1,1,1,
- 1,1,302,930,1,695,6455,385,1,1,
- 6279,5780,5777,6290,6318,6580,6286,1188,3327,3083,
- 2278,2899,3222,3808,3320,796,3309,2520,3307,10,
- 6192,6192,6192,6192,6192,6192,6192,6192,6192,6192,
- 6192,6192,6192,6192,6192,6192,6192,6192,6192,6192,
- 6192,6192,6192,6192,6192,6192,6192,6192,6192,6192,
- 6192,6192,6192,6192,6192,6192,6192,6192,6192,6192,
- 6192,6192,6192,6279,6192,6192,6192,6192,6192,6192,
- 6192,6192,6192,6192,6192,6192,6192,6192,6192,6192,
- 6192,136,6192,6192,6192,6192,6279,6192,6192,6279,
- 5780,5777,6192,6318,1646,6192,6192,6192,6192,6192,
- 6192,6192,6192,6192,6192,6192,6192,6192,8,6219,
- 6219,6219,6219,6219,6219,6219,6219,6219,6219,6219,
- 6219,6219,6219,6219,6219,6219,6219,6219,6219,6219,
- 6219,6219,6219,6219,6219,6219,6219,6219,6219,6219,
- 6219,6219,6219,6219,6219,6219,6219,6219,6219,6219,
- 6219,6219,6279,6219,6219,6219,6219,6219,6219,6219,
- 6219,6219,6219,6219,6219,6219,6219,6219,6219,6219,
- 6279,6219,6219,6219,6219,6279,6219,6219,6279,5961,
- 5958,6219,1,2727,6219,6219,6219,6219,6219,6219,
- 6219,6219,6219,6219,6219,6219,6219,6279,6158,5774,
- 5774,5774,5767,5774,5774,5774,5774,6165,5774,5774,
+ 1,1,313,2474,1,704,6522,741,723,731,
+ 1,1,6346,384,6357,3302,6353,890,3558,3209,
+ 2284,3099,3449,3665,3519,1810,3488,3448,3486,10,
+ 6259,6259,6259,6259,6259,6259,6259,6259,6259,6259,
+ 6259,6259,6259,6259,6259,6259,6259,6259,6259,6259,
+ 6259,6259,6259,6259,6259,6259,6259,6259,6259,6259,
+ 6259,6259,6259,6259,6259,6259,6259,6259,6259,6259,
+ 6259,6259,6259,6346,6259,6259,6259,6259,6259,6259,
+ 6259,6259,6259,6259,6259,6259,6259,6259,6259,6259,
+ 6259,395,6259,6259,6259,6259,741,723,731,6259,
+ 6259,6346,6346,6259,675,6259,6259,6259,6259,6259,
+ 6259,6259,6259,6259,6259,6259,6259,6259,8,6286,
+ 6286,6286,6286,6286,6286,6286,6286,6286,6286,6286,
+ 6286,6286,6286,6286,6286,6286,6286,6286,6286,6286,
+ 6286,6286,6286,6286,6286,6286,6286,6286,6286,6286,
+ 6286,6286,6286,6286,6286,6286,6286,6286,6286,6286,
+ 6286,6286,6346,6286,6286,6286,6286,6286,6286,6286,
+ 6286,6286,6286,6286,6286,6286,6286,6286,6286,6286,
+ 575,6286,6286,6286,6286,741,723,731,6286,6286,
+ 6346,6346,6286,1530,6286,6286,6286,6286,6286,6286,
+ 6286,6286,6286,6286,6286,6286,6286,6346,6225,5841,
+ 5841,5841,5834,5841,5841,5841,6232,5841,5841,5841,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,6162,1,1,1,1,1,
+ 1,1,1,1,1,6229,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,6279,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1799,
- 930,1,695,6455,6279,1,1,6279,6293,6294,
- 6290,6279,9163,8353,1188,3327,3083,2278,2899,3222,
- 3808,3320,796,3309,2520,3307,6279,6158,5774,5774,
- 5774,5767,5774,5774,5774,5774,6165,5774,5774,1,
+ 1,6346,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,583,
+ 2474,1,704,6522,741,723,731,1,1,40,
+ 6346,6357,6346,6385,890,3558,3209,2284,3099,3449,
+ 3665,3519,1810,3488,3448,3486,6346,6225,5841,5841,
+ 5841,5834,5841,5841,5841,6232,5841,5841,5841,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,6162,1,1,1,1,1,1,
+ 1,1,1,1,6229,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 6279,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,6279,930,
- 1,695,6455,6279,1,1,49,5961,5958,6290,
- 398,6293,6294,1188,3327,3083,2278,2899,3222,3808,
- 3320,796,3309,2520,3307,6279,6158,5774,5774,5774,
- 5767,5774,5774,5774,5774,6165,5774,5774,1,1,
+ 6346,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,574,2474,
+ 1,704,6522,741,723,731,1,1,6346,6346,
+ 6357,1310,1887,890,3558,3209,2284,3099,3449,3665,
+ 3519,1810,3488,3448,3486,6346,6225,5841,5841,5841,
+ 5834,5841,5841,5841,6232,5841,5841,5841,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,6162,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,6279,
+ 1,1,1,6229,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,6346,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,6279,930,1,
- 695,6455,6279,1,1,696,6279,6285,6290,6279,
- 9163,8353,1188,3327,3083,2278,2899,3222,3808,3320,
- 796,3309,2520,3307,6279,6158,5774,5774,5774,5767,
- 5774,5774,5774,5774,6165,5774,5774,1,1,1,
+ 1,1,1,1,1,1,1,582,2474,1,
+ 704,6522,741,723,731,1,1,6346,6346,6357,
+ 6346,2649,890,3558,3209,2284,3099,3449,3665,3519,
+ 1810,3488,3448,3486,6346,6225,5841,5841,5841,5834,
+ 5841,5841,5841,6232,5841,5841,5841,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,6162,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,6284,1,
+ 1,1,6229,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,6346,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,132,930,1,695,
- 6455,6279,1,1,112,397,40,6290,3057,388,
- 6318,1188,3327,3083,2278,2899,3222,3808,3320,796,
- 3309,2520,3307,6279,6158,5774,5774,5774,5767,5774,
- 5774,5774,5774,6165,5774,5774,1,1,1,1,
+ 1,1,1,1,1,1,116,2474,1,704,
+ 6522,6346,6360,6361,1,1,6346,4719,6357,1745,
+ 2786,890,3558,3209,2284,3099,3449,3665,3519,1810,
+ 3488,3448,3486,6346,6225,5841,5841,5841,5834,5841,
+ 5841,5841,6232,5841,5841,5841,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 6162,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1789,1,1,
+ 1,6229,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,6346,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,6279,930,1,695,6455,
- 6279,1,1,291,6293,6294,6290,4909,4931,6279,
- 1188,3327,3083,2278,2899,3222,3808,3320,796,3309,
- 2520,3307,6279,6158,5774,5774,5774,5767,5774,5774,
- 5774,5774,6165,5774,5774,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,6162,
+ 1,1,1,1,1,130,2474,1,704,6522,
+ 6346,4686,4656,1,1,569,557,6357,1771,1858,
+ 890,3558,3209,2284,3099,3449,3665,3519,1810,3488,
+ 3448,3486,6346,6225,5841,5841,5841,5834,5841,5841,
+ 5841,6232,5841,5841,5841,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,6279,1,1,1,
+ 6229,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,6346,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,930,1,695,6455,6279,
- 1,1,122,115,162,6290,37,6249,6246,1188,
- 3327,3083,2278,2899,3222,3808,3320,796,3309,2520,
- 3307,6279,6158,5774,5774,5774,5767,5774,5774,5774,
- 5774,6165,5774,5774,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,6162,1,
+ 1,1,1,1,331,2474,1,704,6522,741,
+ 723,731,1,1,3363,3330,6357,6346,2694,890,
+ 3558,3209,2284,3099,3449,3665,3519,1810,3488,3448,
+ 3486,6346,6225,5841,5841,5841,5834,5841,5841,5841,
+ 6232,5841,5841,5841,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,6229,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,162,1,1,1,1,
+ 1,1,1,1,1,6346,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,133,930,1,695,6455,114,1,
- 1,113,3760,3785,6290,3057,4909,4931,1188,3327,
- 3083,2278,2899,3222,3808,3320,796,3309,2520,3307,
- 6279,6158,5774,5774,5774,5767,5774,5774,5774,5774,
- 6165,5774,5774,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,6162,1,1,
+ 1,1,1,576,2474,1,704,6522,741,723,
+ 731,1,1,544,6346,6357,1136,5538,890,3558,
+ 3209,2284,3099,3449,3665,3519,1810,3488,3448,3486,
+ 6346,6225,5841,5841,5841,5834,5841,5841,5841,6232,
+ 5841,5841,5841,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,6229,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,6279,1,1,1,1,1,
+ 1,1,1,1,6346,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,138,930,1,695,6455,6279,1,1,
- 126,4909,4931,6290,4909,4931,36,1188,3327,3083,
- 2278,2899,3222,3808,3320,796,3309,2520,3307,6279,
- 6158,5774,5774,5774,5767,5774,5774,5774,5774,6165,
- 5774,5774,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,6162,1,1,1,
+ 1,1,417,2474,1,704,6522,741,723,731,
+ 1,1,6346,6346,6357,1520,3780,890,3558,3209,
+ 2284,3099,3449,3665,3519,1810,3488,3448,3486,6346,
+ 6225,5841,5841,5841,5834,5841,5841,5841,6232,5841,
+ 5841,5841,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,6229,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,6279,1,1,1,1,1,1,
+ 1,1,1,6346,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1477,930,1,695,6455,6279,1,1,125,
- 3760,3785,6290,556,1658,2688,1188,3327,3083,2278,
- 2899,3222,3808,3320,796,3309,2520,3307,6279,6158,
- 5774,5774,5774,5767,5774,5774,5774,5774,6165,5774,
- 5774,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,6162,1,1,1,1,
+ 1,118,2474,1,704,6522,6346,6028,6025,1,
+ 1,92,4719,6357,6210,36,890,3558,3209,2284,
+ 3099,3449,3665,3519,1810,3488,3448,3486,6346,6225,
+ 5841,5841,5841,5834,5841,5841,5841,6232,5841,5841,
+ 5841,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,6229,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,6279,1,1,1,1,1,1,1,
+ 1,1,6346,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 6279,930,1,695,6455,6279,1,1,6279,3760,
- 3785,6290,547,6827,6279,1188,3327,3083,2278,2899,
- 3222,3808,3320,796,3309,2520,3307,40,5780,5777,
- 5233,691,841,721,829,4733,3889,6828,4799,4821,
- 785,6544,6542,6551,6550,6546,6547,6545,6548,6549,
- 6552,6543,6617,6540,831,6618,6534,6541,6537,6513,
- 6539,6538,6535,6536,6514,4777,4755,6299,4865,4843,
- 6678,6279,4461,1834,1926,6301,1852,3030,1879,6302,
- 6300,1805,6295,6297,6298,6296,2943,6679,6680,6279,
- 6279,1478,6279,6043,6043,230,6039,5774,5774,5774,
- 230,230,6047,230,230,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,230,
+ 1369,2474,1,704,6522,6346,4686,4656,1,1,
+ 40,6346,6357,1,6385,890,3558,3209,2284,3099,
+ 3449,3665,3519,1810,3488,3448,3486,40,5847,5844,
+ 2564,700,741,723,731,4041,2503,4447,4909,4931,
+ 1651,6611,6609,6618,6617,6613,6614,6612,6615,6616,
+ 6619,6610,6683,6607,6684,1012,6601,6608,6604,6580,
+ 6606,6605,6602,6603,6581,4887,4865,6366,4975,4953,
+ 6744,6346,3043,1912,1983,6368,1933,3534,1959,6369,
+ 6367,1904,6362,6364,6365,6363,841,6745,6746,292,
+ 1569,1483,6346,6110,6110,230,6106,5841,5841,5841,
+ 230,6114,230,230,230,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 40,5766,6279,1057,6318,1,6036,310,5793,5789,
- 2482,5786,5964,5970,5967,707,3889,139,5973,5973,
- 1,1,1,1,225,1257,2852,1931,6692,5821,
- 5815,5818,6279,6104,140,1756,230,6279,417,332,
- 5780,5777,2482,691,841,721,829,707,3889,6617,
- 6540,6780,6618,6534,6541,6537,6513,6539,6538,6535,
- 6536,6514,312,6107,2714,985,130,6715,6716,6717,
- 6279,6043,6043,230,6039,5774,5774,5774,230,230,
- 6116,230,230,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,230,1,1,
- 1,1,1,1,1,1,1,1,38,6030,
- 6030,388,34,1,6036,6027,6030,6027,6027,6027,
- 2688,396,6027,6027,6027,389,841,721,829,1,
- 1,1,6279,1257,48,1931,6692,1074,2649,6027,
- 39,5982,5979,3084,230,6279,416,6279,5976,3889,
- 6027,6027,1662,6027,6027,6291,445,1,1,6780,
- 1,6018,6018,6018,226,3337,3257,6018,6018,5830,
- 5824,5827,302,5955,6027,6715,6716,6717,845,6027,
- 455,6279,6027,6027,6027,6580,6027,6027,6027,6617,
- 6540,6283,6618,6534,6541,6537,6513,6539,6538,6535,
- 6536,6514,6027,6027,6027,6027,6027,6027,6027,6027,
- 6027,6027,6027,6027,6027,6027,6027,3934,6290,5118,
- 6027,6027,6027,6027,6027,6027,6027,6027,6027,6027,
- 6027,6027,6027,6279,6027,1020,6146,49,6146,6146,
- 6146,6294,5985,6146,6146,6146,449,6279,395,5842,
- 5842,227,284,5833,5839,5836,5851,5845,5848,6279,
- 6146,1,5793,5789,2482,5786,5964,5970,5967,707,
- 3889,6146,6146,6279,6146,6146,6617,6540,441,6618,
- 6534,6541,6537,6513,6539,6538,6535,6536,6514,6279,
- 5780,5777,284,691,134,6146,6279,707,3889,6294,
- 6146,6282,2840,6146,6146,6146,124,6146,6146,6146,
- 6279,5793,5789,2482,5786,5964,5970,5967,707,3889,
- 764,6015,6015,6146,6146,6146,6146,6146,6146,6146,
- 6146,6146,6146,6146,6146,6146,6146,6146,555,1658,
- 5988,6146,6146,6146,6146,6146,6146,6146,6146,6146,
- 6146,6146,6146,6146,6279,6146,6279,5774,5774,230,
- 5774,5767,5774,5774,230,230,5803,230,230,1,
+ 230,1,1,1,1,1,1,1,1,1,
+ 6346,5847,5844,302,6385,1,6103,309,5860,5856,
+ 2489,5853,6031,6037,6034,986,6647,4447,6040,6040,
+ 6346,1,1,1,186,1463,395,776,6758,6356,
+ 388,741,723,731,2231,230,546,6893,416,331,
+ 5847,5844,2489,700,741,723,731,986,6355,4447,
+ 6346,6846,6346,5860,5856,2489,5853,6031,6037,6034,
+ 986,6894,4447,6040,6040,320,717,6781,6782,6783,
+ 6346,6110,6110,230,6106,5841,5841,5841,230,6183,
+ 230,230,230,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,230,1,
+ 1,1,1,1,1,1,1,1,38,6097,
+ 6097,48,34,1,6103,6094,6097,6094,6094,6094,
+ 127,6094,563,6094,6094,2190,6346,6360,6361,1,
+ 1,1,1438,1463,6346,776,6758,6346,5847,5844,
+ 6094,700,134,230,370,986,415,4447,6343,6908,
+ 6094,6094,1761,6094,6094,1113,444,1,1,6846,
+ 1,6085,6085,6085,225,6346,132,6085,6085,5888,
+ 5882,5885,6346,1997,6094,6781,6782,6783,3071,6094,
+ 6094,6094,3642,2648,6094,6094,6346,6094,6094,6683,
+ 6607,6684,6186,6601,6608,6604,6580,6606,6605,6602,
+ 6603,6581,6094,6094,6094,6094,6094,6094,6094,6094,
+ 6094,6094,6094,6094,6094,6094,6094,3578,3494,1282,
+ 6094,6094,6094,6094,6094,6094,6094,6094,6094,6094,
+ 6094,6094,6094,6346,6094,6346,6213,4761,6213,6213,
+ 6213,6346,6213,2908,6213,6213,1981,6675,445,40,
+ 40,226,6385,6192,6198,6195,5897,5891,5894,6201,
+ 6201,6213,6346,394,5909,5909,6346,284,5900,5906,
+ 5903,6213,6213,2607,6213,6213,6683,6607,6684,6346,
+ 6601,6608,6604,6580,6606,6605,6602,6603,6581,6346,
+ 9842,9326,93,1,1,6213,1,6283,6283,6283,
+ 6213,6213,6213,6283,6283,6213,6213,284,6213,6213,
+ 6346,5860,5856,2489,5853,6031,6037,6034,986,1159,
+ 4447,6082,6082,6213,6213,6213,6213,6213,6213,6213,
+ 6213,6213,6213,6213,6213,6213,6213,6213,49,6028,
+ 6025,6213,6213,6213,6213,6213,6213,6213,6213,6213,
+ 6213,6213,6213,6213,358,6213,6346,5841,5841,230,
+ 5841,5834,5841,5841,230,5870,230,230,230,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,230,1,1,1,9827,1,1,
- 1,1,1,1,1709,2895,3760,3785,30,1,
- 5771,6279,5793,5789,2482,5786,5964,5970,5967,707,
- 3889,6279,5973,5973,763,1,1,1,6279,1225,
- 6279,695,6491,446,40,40,6279,6318,6125,6131,
- 6128,2641,220,224,6134,6134,314,6279,5812,5806,
- 5809,841,721,829,6279,6780,359,6544,6542,6551,
- 6550,6546,6547,6545,6548,6549,6552,6543,6617,6540,
- 1789,6618,6534,6541,6537,6513,6539,6538,6535,6536,
- 6514,396,425,6279,123,2185,841,721,829,220,
- 6279,5774,5774,230,5774,5767,5774,5774,230,230,
+ 1,1,1,1,230,1,1,10001,1,1,
+ 1,1,1,1,6346,5847,5844,302,6385,1,
+ 5838,6346,5860,5856,2489,5853,6031,6037,6034,986,
+ 6647,4447,6082,6082,6346,1,1,1,1952,1260,
+ 6346,704,6558,96,40,40,117,6385,6322,6328,
+ 6325,6346,220,224,6331,6331,578,4719,5879,5873,
+ 5876,6262,6268,6265,6346,6846,6703,6611,6609,6618,
+ 6617,6613,6614,6612,6615,6616,6619,6610,6683,6607,
+ 6684,6346,6601,6608,6604,6580,6606,6605,6602,6603,
+ 6581,287,5921,5921,2190,284,741,723,731,220,
+ 6346,5841,5841,230,5841,5834,5841,5841,230,230,
230,230,230,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,230,1,1,
- 1,9827,1,1,1,1,1,1,30,6279,
- 6279,6293,6294,1,5771,30,388,388,6180,388,
- 388,388,388,388,388,6180,6180,6180,6637,1,
- 1,1,228,1225,6279,695,6491,5863,5857,5860,
- 388,388,6180,388,388,388,388,388,388,388,
- 388,388,388,119,3760,3785,6279,6617,6540,6780,
- 6618,6534,6541,6537,6513,6539,6538,6535,6536,6514,
- 5991,1940,1,5793,5789,3371,5786,5991,4887,2396,
- 707,3889,6180,287,5854,5854,6180,284,841,721,
- 829,4388,4345,221,6279,5774,5774,230,5774,5767,
- 5774,5774,230,230,230,230,230,1,1,1,
+ 1,1,1,1,1,1,1,1,230,1,
+ 1,10001,1,1,1,1,1,1,397,6360,
+ 6361,4686,4656,1,5838,30,387,387,6247,387,
+ 387,387,387,387,6247,387,6247,6247,6346,1,
+ 1,1,577,1260,6346,704,6558,6271,6277,6274,
+ 387,387,387,6247,387,387,387,387,387,387,
+ 387,387,387,1,5860,5856,5850,5853,6346,6846,
+ 418,5867,6356,5864,6346,741,723,731,345,5847,
+ 5844,3468,700,741,723,731,986,6058,4447,331,
+ 331,6355,6247,6247,580,6076,6076,6346,584,741,
+ 723,731,6346,221,6346,5841,5841,230,5841,5834,
+ 5841,5841,230,230,230,230,230,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,230,1,1,1,9827,1,1,1,1,
- 1,1,6279,337,38,6030,6030,1,5771,1434,
- 1,5793,5789,2482,5786,5964,5970,5967,707,3889,
- 310,6279,6279,1,1,1,1078,1225,6617,695,
- 6491,6618,1,5793,5789,3371,5786,310,6279,309,
- 707,3889,368,1,5793,5789,5783,5786,6316,2081,
- 6609,5800,5797,6780,6279,5774,5774,230,5774,5767,
- 5774,5774,230,230,6033,230,230,1,1,1,
+ 1,1,230,1,1,10001,1,1,1,1,
+ 1,1,38,6097,6097,1438,227,1,5838,122,
+ 40,5918,5912,5915,6385,741,723,731,439,405,
+ 136,331,331,1,1,1,1259,1260,6177,704,
+ 6558,6683,6607,6684,6858,6601,6608,6604,6580,6606,
+ 6605,6602,6603,6581,395,448,6383,6180,396,741,
+ 723,731,387,6846,6346,5841,5841,230,5841,5834,
+ 5841,5841,230,6100,230,230,230,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,230,1,1,1,9827,1,1,1,1,
- 1,1,1,5793,5789,2482,5786,1,5771,1434,
- 707,3889,368,368,368,567,6279,1231,1,2992,
- 841,721,829,1,1,1,6287,1225,6122,695,
- 6491,1,6171,6171,368,6168,5964,5970,5967,6279,
- 221,364,332,332,572,6009,6009,6279,576,841,
- 721,829,6279,6780,6279,5774,5774,230,5774,5767,
- 5774,5774,230,230,6033,230,230,1,1,1,
+ 1,1,230,1,1,10001,1,1,1,1,
+ 1,1,126,39,6049,6046,6346,1,5838,4281,
+ 4306,6043,228,4447,133,138,1555,5930,5924,5927,
+ 1555,125,6346,1,1,1,3071,1260,627,704,
+ 6558,6358,2737,6781,6782,6783,6346,6683,6607,6684,
+ 221,6601,6608,6604,6580,6606,6605,6602,6603,6581,
+ 6346,6156,6153,6846,6346,5841,5841,230,5841,5834,
+ 5841,5841,230,6100,230,230,230,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,230,1,1,1,9827,1,1,1,1,
- 1,1,6286,6279,6286,6279,1126,1,5771,93,
- 1,1,364,1,6216,6216,6216,6279,6279,6279,
- 6216,6216,1893,1,1,1,6279,1225,6279,695,
- 6491,396,131,364,5019,6279,841,721,829,2640,
- 221,116,1,5793,5789,2482,5786,5964,5970,5967,
- 707,3889,4710,6780,6279,5774,5774,230,5774,5767,
- 5774,5774,230,230,6033,230,230,1,1,1,
+ 1,1,230,1,1,10001,1,1,1,1,
+ 1,1,4281,4306,6383,40,6357,1,5838,6385,
+ 1,5860,5856,2489,5853,6031,6037,6034,986,309,
+ 4447,4281,4306,1,1,1,6346,1260,2696,704,
+ 6558,1371,458,1,5860,5856,3468,5853,309,5833,
+ 221,986,367,4447,129,6346,9842,9326,44,6162,
+ 6162,457,308,6846,6346,5841,5841,230,5841,5834,
+ 5841,5841,230,6100,230,230,230,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,230,1,1,1,9827,1,1,1,1,
- 1,1,6681,1789,6279,6089,6086,1,5771,96,
- 40,40,6279,6318,6255,6261,6258,140,6279,559,
- 6264,6264,1898,1,1,1,2185,1225,6289,695,
- 6491,429,346,40,40,3202,6318,841,721,829,
- 221,3337,3257,332,332,6288,4687,4664,6316,44,
- 6095,6095,1851,6780,6279,5774,5774,230,5774,5767,
- 5774,5774,230,230,230,230,230,1,1,1,
+ 1,1,230,1,1,10001,1,1,1,1,
+ 1,1,6159,46,6222,6222,1,1,5838,6088,
+ 1438,367,367,139,140,367,3642,140,1234,6171,
+ 6781,6782,6783,1,1,1,6250,1260,6091,704,
+ 6558,3005,1,6238,6238,367,6235,6031,6037,6034,
+ 221,363,6346,331,331,318,532,6219,6079,6174,
+ 2638,3578,3494,6846,6346,5841,5841,230,5841,5834,
+ 5841,5841,230,230,230,230,230,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,230,1,1,1,9827,1,1,1,1,
- 1,1,1997,6092,38,6279,40,1,5771,1434,
- 6318,841,721,829,575,1471,6279,332,332,841,
- 721,829,6279,1,1,1,6279,1225,566,695,
- 6491,2649,6285,841,721,829,3084,1950,1903,1856,
- 1809,1762,1715,1668,1621,1574,1527,49,6316,319,
- 6279,6293,6012,6780,6279,5774,5774,230,5774,5767,
- 5774,5774,230,230,230,230,230,1,1,1,
+ 1,1,230,1,1,10001,1,1,1,1,
+ 1,1,2002,6346,10536,10536,238,1,5838,6241,
+ 363,1,5860,5856,2489,5853,6031,6037,6034,986,
+ 3774,4447,1438,1,1,1,2696,1260,2657,704,
+ 6558,2657,311,3489,363,998,3489,1955,1908,1861,
+ 1814,1767,1720,1673,1626,1579,1532,6383,38,6097,
+ 6097,124,6346,6846,6346,5841,5841,230,5841,5834,
+ 5841,5841,230,230,230,230,230,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,230,1,1,1,9827,1,1,1,1,
- 1,1,997,6284,38,6030,6030,1,5771,841,
- 721,829,6279,5780,5777,332,691,1,406,6293,
- 707,3889,1789,1,1,1,1434,1225,6110,695,
- 6491,6279,5793,5789,2482,5786,5964,5970,5967,707,
- 3889,1,6015,6015,3202,6113,6279,545,6316,348,
- 1135,6137,2983,6780,6279,5774,5774,230,5774,5767,
- 5774,5774,230,230,230,230,230,1,1,1,
+ 1,1,230,1,1,10001,1,1,1,1,
+ 1,1,1698,1,38,6097,6097,1,5838,741,
+ 723,731,291,6360,6361,331,6171,1088,1,5860,
+ 5856,5850,5853,1,1,1,5867,1260,5864,704,
+ 6558,6346,6280,6280,6280,6280,6280,6280,6280,6280,
+ 3701,6280,6280,6280,387,49,6174,2638,6383,6361,
+ 6346,4281,4306,6846,6346,5841,5841,230,5841,5834,
+ 5841,5841,230,230,230,230,230,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,230,1,1,1,9827,1,1,1,1,
- 1,1,1,5793,5789,2482,5786,1,5771,6279,
- 707,3889,5565,6279,6279,2185,40,1515,1434,6639,
- 6318,6279,6140,1,1,1,1434,1225,6792,695,
- 6491,1,5793,5789,2482,5786,5964,5970,5967,707,
- 3889,6279,674,1,5793,5789,5233,5786,121,1,
- 6279,4733,3889,6780,4799,4821,6050,6077,6083,6056,
- 6059,6071,6068,6074,6065,6062,6053,6080,6279,6213,
- 6213,6213,6213,6213,6213,6213,6213,6213,6279,6213,
- 6213,4777,4755,6299,4865,4843,4388,4345,4461,1834,
- 1926,6301,1852,3030,1879,6302,6300,1805,6295,6297,
- 6298,6296,46,6155,6155,2185,6279,1478,6279,5961,
- 5958,40,40,6279,6279,517,40,5780,5777,5233,
- 691,6715,6716,6717,4733,3889,6252,4799,4821,1501,
- 6544,6542,6551,6550,6546,6547,6545,6548,6549,6552,
- 6543,3704,6213,573,6006,6006,6152,576,5997,6003,
- 6000,6279,6293,6294,4777,4755,6299,4865,4843,707,
- 3889,4461,1834,1926,6301,1852,3030,1879,6302,6300,
- 1805,6295,6297,6298,6296,1078,4887,2396,6735,574,
- 1478,6279,6293,6294,841,721,829,576,2319,6101,
- 6279,6291,6286,40,5780,5777,5233,691,120,3449,
- 6279,4733,3889,6098,4799,4821,1501,6544,6542,6551,
- 6550,6546,6547,6545,6548,6549,6552,6543,346,5780,
- 5777,3371,691,841,721,829,707,3889,6279,332,
- 332,4777,4755,6299,4865,4843,4388,4345,4461,1834,
- 1926,6301,1852,3030,1879,6302,6300,1805,6295,6297,
- 6298,6296,6279,6279,6290,6279,6279,1478,999,142,
- 5780,5777,5233,691,516,6285,6101,4733,3889,321,
- 4799,4821,1501,6544,6542,6551,6550,6546,6547,6545,
- 6548,6549,6552,6543,332,1434,6279,1994,459,841,
- 721,829,1,1,458,3202,6285,4777,4755,6299,
- 4865,4843,342,5994,4461,1834,1926,6301,1852,3030,
- 1879,6302,6300,1805,6295,6297,6298,6296,3596,450,
- 440,349,3934,1478,3660,6279,6284,40,40,553,
- 5780,5777,5233,691,948,6285,1434,4733,3889,6279,
- 4799,4821,1501,6544,6542,6551,6550,6546,6547,6545,
- 6548,6549,6552,6543,6279,6021,6279,6284,2803,1434,
- 135,6024,342,342,342,6279,6290,4777,4755,6299,
- 4865,4843,6279,137,4461,1834,1926,6301,1852,3030,
- 1879,6302,6300,1805,6295,6297,6298,6296,1434,3323,
- 363,76,1,1478,2128,1387,6284,40,40,1,
- 5793,5789,5233,5786,290,6104,6279,4733,3889,3360,
- 4799,4821,6050,6077,6083,6056,6059,6071,6068,6074,
- 6065,6062,6053,6080,568,6715,6716,6717,6721,841,
- 721,829,6342,6343,5380,6107,2714,4777,4755,6299,
- 4865,4843,158,6279,4461,1834,1926,6301,1852,3030,
- 1879,6302,6300,1805,6295,6297,6298,6296,2984,418,
- 3726,2895,427,1478,841,721,829,40,40,40,
- 5780,5777,5233,691,1710,2727,6279,4733,3889,6098,
- 4799,4821,1501,6544,6542,6551,6550,6546,6547,6545,
- 6548,6549,6552,6543,1,5793,5789,3371,5786,717,
- 6279,6279,707,3889,6137,5627,6279,4777,4755,6299,
- 4865,4843,2044,2496,4461,1834,1926,6301,1852,3030,
- 1879,6302,6300,1805,6295,6297,6298,6296,6279,10274,
- 10274,1,3456,1478,6279,40,5780,5777,5233,691,
- 6279,6279,6101,4733,3889,6283,4799,4821,1501,6544,
- 6542,6551,6550,6546,6547,6545,6548,6549,6552,6543,
- 6279,1434,570,5644,2402,6140,6279,6195,6201,6198,
- 2680,687,6316,4777,4755,6299,4865,4843,3368,6279,
- 4461,1834,1926,6301,1852,3030,1879,6302,6300,1805,
- 6295,6297,6298,6296,1,292,2918,1759,6279,6279,
- 6293,6294,6749,6279,6279,6743,6747,1646,6223,6231,
- 6227,6279,3426,6235,6289,33,389,389,6177,389,
- 389,389,389,389,389,6177,6177,6177,1,6279,
- 6235,6288,6741,6742,92,6772,6773,6143,364,6750,
- 389,389,6177,389,389,389,389,389,389,389,
- 389,389,389,569,118,6282,6752,3620,6204,6210,
- 6207,942,1383,1465,6774,4710,6753,6279,8,6751,
- 2226,1,2091,6235,3136,38,6030,6030,6270,6279,
- 6279,529,6177,371,6763,6762,6177,6775,376,6744,
- 6745,6768,6769,6766,6767,6746,6748,6770,6771,364,
- 238,3436,6776,6174,6756,6757,6758,6754,6755,6764,
- 6765,6760,6759,6761,40,5780,5777,5233,691,1599,
- 364,1,4733,3889,5698,4799,4821,1501,6544,6542,
- 6551,6550,6546,6547,6545,6548,6549,6552,6543,6279,
- 5780,5777,529,691,6270,6279,533,6149,3889,4687,
- 4664,3442,4777,4755,6299,4865,4843,369,1279,4461,
- 1834,1926,6301,1852,3030,1879,6302,6300,1805,6295,
- 6297,6298,6296,40,5780,5777,5233,691,1478,6279,
- 6279,4733,3889,1122,4799,4821,1501,6544,6542,6551,
- 6550,6546,6547,6545,6548,6549,6552,6543,6279,6279,
- 5780,5777,6279,691,74,5217,6279,6149,3889,3449,
- 3678,4777,4755,6299,4865,4843,6285,6279,4461,1834,
- 1926,6301,1852,3030,1879,6302,6300,1805,6295,6297,
- 6298,6296,1340,40,5780,5777,5233,691,6279,6279,
- 2169,4733,3889,2566,4799,4821,1501,6544,6542,6551,
- 6550,6546,6547,6545,6548,6549,6552,6543,419,6279,
- 101,509,6279,841,721,829,6267,6279,6279,6287,
- 5629,4777,4755,6299,4865,4843,5699,6284,4461,1834,
- 1926,6301,1852,3030,1879,6302,6300,1805,6295,6297,
- 6298,6296,40,5780,5777,5591,691,1478,6279,6279,
- 4733,3889,507,4799,4821,1501,6544,6542,6551,6550,
- 6546,6547,6545,6548,6549,6552,6543,6279,6242,6238,
- 421,6279,6279,6279,5335,5632,3326,5287,6279,643,
- 4777,4755,6299,4865,4843,6286,5645,4461,1834,1926,
- 6301,1852,3030,1879,6302,6300,1805,6295,6297,6298,
- 6296,40,5780,5777,5233,691,6279,186,6279,4733,
- 3889,6316,4799,4821,1501,6544,6542,6551,6550,6546,
- 6547,6545,6548,6549,6552,6543,1,5674,2,6279,
- 6279,127,3835,4169,6279,6279,164,4448,3958,4777,
- 4755,6299,4865,4843,6279,2371,4461,1834,1926,6301,
- 1852,3030,1879,6302,6300,1805,6295,6297,6298,6296,
- 40,5780,5777,5233,691,6279,6279,6279,4733,3889,
- 3922,4799,4821,1501,6544,6542,6551,6550,6546,6547,
- 6545,6548,6549,6552,6543,6279,6279,6279,6279,6279,
- 38,6279,6279,3535,1,4012,522,164,4777,4755,
- 6299,4865,4843,6119,6285,4461,1834,1926,6301,1852,
- 3030,1879,6302,6300,1805,6295,6297,6298,6296,6279,
- 5780,5777,6279,6318,841,721,829,6279,3473,3398,
- 5377,6276,619,6544,6542,6551,6550,6546,6547,6545,
- 6548,6549,6552,6543,6617,6540,117,6618,6534,6541,
- 6537,6513,6539,6538,6535,6536,6514,4710,129,3853,
- 128,3898,6678,3943,104,6284,1477,4069,242,5948,
- 5944,100,5952,5878,5872,5875,6279,511,2943,6679,
- 6680,619,5935,5941,5914,5917,5929,5926,5932,5923,
- 5920,5911,5938,5884,5890,6279,5881,5908,5887,5899,
- 5869,5893,5896,5905,5902,5866,1,5793,5789,5783,
- 5786,6678,6279,1,5800,5797,6289,3449,6279,6279,
- 3535,1,3535,6289,6279,6279,6279,2943,6679,6680,
- 6183,192,6186,6288,6279,6279,279,5518,2412,6273,
- 6288,4687,4664,6279,6279,6279,6279,6279,192,6279,
- 6279,2138,1000,6279,6279,3473,3398,3473,3398
+ 1,1,230,1,1,10001,1,1,1,1,
+ 1,1,1,5860,5856,2489,5853,1,5838,6346,
+ 986,119,4447,112,6280,336,6022,6361,1,5860,
+ 5856,2489,5853,1,1,1,986,1260,4447,704,
+ 6558,1,5860,5856,2489,5853,6031,6037,6034,986,
+ 6683,4447,6684,454,1,5860,5856,2564,5853,4594,
+ 4569,115,4041,6846,4447,4909,4931,6117,6144,6150,
+ 6123,6126,6138,6135,6141,6132,6129,6120,6147,345,
+ 40,40,4365,6385,741,723,731,368,6346,1750,
+ 331,331,4887,4865,6366,4975,4953,6352,6346,3043,
+ 1912,1983,6368,1933,3534,1959,6369,6367,1904,6362,
+ 6364,6365,6363,568,2190,6052,5019,5041,1483,40,
+ 5847,5844,2564,700,40,40,516,4041,6319,4447,
+ 4909,4931,1414,6611,6609,6618,6617,6613,6614,6612,
+ 6615,6616,6619,6610,1,6346,1438,5691,5615,131,
+ 6346,6309,6305,1715,5019,5041,6351,4887,4865,6366,
+ 4975,4953,1344,566,3043,1912,1983,6368,1933,3534,
+ 1959,6369,6367,1904,6362,6364,6365,6363,6346,6346,
+ 581,6073,6073,1483,584,6064,6070,6067,40,5847,
+ 5844,2564,700,6168,6383,6353,4041,6165,4447,4909,
+ 4931,1414,6611,6609,6618,6617,6613,6614,6612,6615,
+ 6616,6619,6610,1,5860,5856,2489,5853,6031,6037,
+ 6034,986,6346,4447,584,682,4887,4865,6366,4975,
+ 4953,6352,1558,3043,1912,1983,6368,1933,3534,1959,
+ 6369,6367,1904,6362,6364,6365,6363,4538,3363,3330,
+ 5063,1,1483,142,5847,5844,2564,700,121,137,
+ 6061,4041,6168,4447,4909,4931,1414,6611,6609,6618,
+ 6617,6613,6614,6612,6615,6616,6619,6610,6346,1,
+ 5860,5856,3468,5853,114,6346,2190,986,6204,4447,
+ 6351,4887,4865,6366,4975,4953,4594,4569,3043,1912,
+ 1983,6368,1933,3534,1959,6369,6367,1904,6362,6364,
+ 6365,6363,347,6346,348,2962,120,1483,552,5847,
+ 5844,2564,700,40,40,6357,4041,6346,4447,4909,
+ 4931,1414,6611,6609,6618,6617,6613,6614,6612,6615,
+ 6616,6619,6610,6346,6360,6361,1438,6207,38,6346,
+ 6360,6361,6358,123,4594,4569,4887,4865,6366,4975,
+ 4953,2737,6346,3043,1912,1983,6368,1933,3534,1959,
+ 6369,6367,1904,6362,6364,6365,6363,5019,5041,1438,
+ 440,1438,1483,1,5860,5856,2564,5853,40,40,
+ 135,4041,6383,4447,4909,4931,6117,6144,6150,6123,
+ 6126,6138,6135,6141,6132,6129,6120,6147,1,5860,
+ 5856,3468,5853,6346,6028,6025,986,6357,4447,4997,
+ 1999,4887,4865,6366,4975,4953,6346,6346,3043,1912,
+ 1983,6368,1933,3534,1959,6369,6367,1904,6362,6364,
+ 6365,6363,6055,4281,4306,6346,1,1483,40,5847,
+ 5844,2564,700,40,40,6356,4041,6165,4447,4909,
+ 4931,1414,6611,6609,6618,6617,6613,6614,6612,6615,
+ 6616,6619,6610,1,6355,1438,4365,6346,6346,6346,
+ 5620,49,341,4997,1999,6360,4887,4865,6366,4975,
+ 4953,2908,6346,3043,1912,1983,6368,1933,3534,1959,
+ 6369,6367,1904,6362,6364,6365,6363,37,6316,6313,
+ 6346,1,1483,5303,4365,40,5847,5844,2564,700,
+ 6204,2884,6168,4041,6350,4447,4909,4931,1414,6611,
+ 6609,6618,6617,6613,6614,6612,6615,6616,6619,6610,
+ 1438,341,341,6360,113,341,30,6346,4538,6346,
+ 1,3713,6346,4887,4865,6366,4975,4953,6352,363,
+ 3043,1912,1983,6368,1933,3534,1959,6369,6367,1904,
+ 6362,6364,6365,6363,1,6346,6346,1386,1438,6207,
+ 6346,515,6815,6346,6354,6809,6813,449,6290,6298,
+ 6294,1,6302,6346,6346,33,388,388,6244,388,
+ 388,388,388,388,6244,388,6244,6244,6058,1898,
+ 362,6302,6807,6808,1555,6838,6839,6351,363,6816,
+ 388,388,388,6244,388,388,388,388,388,388,
+ 388,388,388,1809,1715,6349,6818,5019,5041,6346,
+ 1,1278,363,6840,1583,1622,6819,6346,6350,6817,
+ 961,6353,6302,6747,6346,290,773,428,6346,6360,
+ 6361,6346,6244,6244,6829,6828,986,6841,4447,6810,
+ 6811,6834,6835,6832,6833,6812,6814,6836,6837,931,
+ 633,6346,6842,6705,6822,6823,6824,6820,6821,6830,
+ 6831,6826,6825,6827,40,5847,5844,2564,700,6346,
+ 6346,6346,4041,2046,4447,4909,4931,1414,6611,6609,
+ 6618,6617,6613,6614,6612,6615,6616,6619,6610,6346,
+ 5847,5844,6346,700,791,6346,6801,986,6346,4447,
+ 936,6346,4887,4865,6366,4975,4953,6352,6346,3043,
+ 1912,1983,6368,1933,3534,1959,6369,6367,1904,6362,
+ 6364,6365,6363,40,5847,5844,2564,700,1483,6349,
+ 6346,4041,1259,4447,4909,4931,1414,6611,6609,6618,
+ 6617,6613,6614,6612,6615,6616,6619,6610,6346,5847,
+ 5844,6346,700,30,4366,6346,6216,5622,4447,6346,
+ 6352,4887,4865,6366,4975,4953,6351,2076,3043,1912,
+ 1983,6368,1933,3534,1959,6369,6367,1904,6362,6364,
+ 6365,6363,101,40,5847,5844,2564,700,6346,6346,
+ 1936,4041,2573,4447,4909,4931,1414,6611,6609,6618,
+ 6617,6613,6614,6612,6615,6616,6619,6610,6346,2091,
+ 6346,6346,6346,6346,1,1555,6346,6352,1,6351,
+ 1391,4887,4865,6366,4975,4953,424,162,3043,1912,
+ 1983,6368,1933,3534,1959,6369,6367,1904,6362,6364,
+ 6365,6363,40,5847,5844,5573,700,1483,375,4755,
+ 4041,5633,4447,4909,4931,1414,6611,6609,6618,6617,
+ 6613,6614,6612,6615,6616,6619,6610,158,6346,1,
+ 1,6346,5658,2957,5632,6346,6351,6354,6189,528,
+ 4887,4865,6366,4975,4953,6787,162,3043,1912,1983,
+ 6368,1933,3534,1959,6369,6367,1904,6362,6364,6365,
+ 6363,40,5847,5844,2564,700,3699,6346,6346,4041,
+ 3825,4447,4909,4931,1414,6611,6609,6618,6617,6613,
+ 6614,6612,6615,6616,6619,6610,6346,6346,6346,508,
+ 3870,4241,6346,3633,1745,4753,2049,652,528,4887,
+ 4865,6366,4975,4953,6353,6353,3043,1912,1983,6368,
+ 1933,3534,1959,6369,6367,1904,6362,6364,6365,6363,
+ 40,5847,5844,2564,700,6346,6346,6346,4041,3633,
+ 4447,4909,4931,1414,6611,6609,6618,6617,6613,6614,
+ 6612,6615,6616,6619,6610,6346,5847,5844,8,700,
+ 506,426,6346,6216,6346,4447,420,6337,4887,4865,
+ 6366,4975,4953,6356,5673,3043,1912,1983,6368,1933,
+ 3534,1959,6369,6367,1904,6362,6364,6365,6363,6346,
+ 5847,5844,6355,6385,741,723,731,6346,6346,2971,
+ 3980,4089,795,6611,6609,6618,6617,6613,6614,6612,
+ 6615,6616,6619,6610,6683,6607,6684,6346,6601,6608,
+ 6604,6580,6606,6605,6602,6603,6581,6346,128,6346,
+ 3560,6346,6744,3151,6337,5686,6352,6346,242,6015,
+ 6011,2378,6019,5945,5939,5942,6352,6346,841,6745,
+ 6746,795,6002,6008,5981,5984,5996,5993,5999,5990,
+ 5987,5978,6005,5951,5957,5948,6346,5975,5954,5966,
+ 5936,5960,5963,5972,5969,5933,76,1,1,2445,
+ 1,6744,6346,6346,6346,6346,164,192,6346,6352,
+ 3642,6346,1369,100,4095,6351,5693,841,6745,6746,
+ 6253,6346,2325,3605,5068,6351,192,74,104,521,
+ 1417,4368,6346,6346,510,2,5621,6409,6410,3606,
+ 279,6346,6346,6340,6346,3578,3494,6346,6346,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,3608,6346,
+ 6346,6346,6346,1220,6346,164,6346,6346,6351,6346,
+ 6346,6346,6346,6346,3614,6346,2096,3710,3755,6346,
+ 2419,3800,6346,6346,6346,6346,6346,6346,6346,6334,
+ 6346,6346,6346,6346,6346,6346,6346,38,6346,6346,
+ 6346,6346,6346,6346,727,6346,6346,2143,6346,2504,
+ 6346,6346,6346,6346,6346,6346,6346,6346,1013,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 6346,6346,6346,6346,6346,6346,6346,6346,6346,6346,
+ 3633
};
};
public final static char termAction[] = TermAction.termAction;
@@ -2015,64 +2035,65 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface Asb {
public final static char asb[] = {0,
- 1119,1,1110,1068,907,1153,457,1070,583,59,
- 1118,938,148,583,947,1068,1068,1068,958,61,
- 958,812,958,689,958,942,958,938,151,264,
- 1153,1015,524,637,637,867,151,637,151,1068,
- 466,745,161,411,61,269,151,149,393,733,
- 392,583,407,814,454,812,59,938,689,468,
- 151,151,455,940,285,285,686,620,273,273,
- 1018,605,685,1015,1015,151,1164,393,468,468,
- 634,330,393,637,637,466,637,151,203,772,
- 423,412,412,411,411,411,938,151,149,686,
- 258,393,391,392,393,407,151,282,823,459,
- 455,61,531,151,468,455,151,199,285,61,
- 938,620,289,1015,1021,151,111,19,1015,620,
- 199,630,468,468,1018,330,330,149,772,423,
- 411,404,411,151,686,686,254,253,392,404,
- 151,407,287,59,466,147,3,407,282,460,
- 285,282,285,455,531,531,151,745,243,1068,
- 466,466,466,466,938,1068,92,526,112,112,
- 112,112,112,112,112,112,112,639,645,650,
- 647,654,652,659,657,661,660,662,341,663,
- 744,151,940,151,61,73,536,151,1068,330,
- 677,1022,393,111,404,61,1015,620,1025,630,
- 745,745,634,393,762,747,761,744,466,396,
- 396,404,404,151,258,393,350,393,203,5,
- 285,285,285,285,151,531,404,587,403,1018,
- 768,758,757,92,907,907,907,907,151,351,
- 393,393,92,1027,906,203,92,639,154,154,
- 351,111,112,112,112,112,112,112,112,112,
- 112,112,112,112,112,112,112,112,112,112,
- 112,111,111,111,111,111,111,111,111,111,
- 111,111,111,112,92,199,585,74,938,151,
- 351,592,404,19,630,629,611,111,759,759,
- 766,1018,831,423,412,423,743,743,686,254,
- 149,685,112,287,621,599,682,5,285,285,
- 333,404,112,151,243,393,770,772,393,393,
- 745,745,745,745,455,393,112,698,964,964,
- 938,526,330,906,111,393,148,150,148,393,
- 330,647,647,645,645,645,652,652,652,652,
- 650,650,657,654,654,660,659,661,287,662,
- 585,73,287,112,287,686,72,1068,1068,1068,
- 74,1068,151,540,686,686,151,61,393,111,
- 19,630,611,111,111,770,747,423,907,907,
- 350,686,5,112,112,682,682,5,5,536,
- 937,334,151,393,772,1068,1068,1068,1068,151,
- 151,151,203,112,907,643,209,393,151,150,
- 203,111,64,1068,64,74,287,74,92,92,
- 90,810,92,686,686,627,585,403,613,744,
- 682,682,333,151,938,938,151,737,393,111,
- 111,111,111,1068,1068,455,149,393,643,1018,
- 940,151,149,831,74,393,1015,393,90,1153,
- 1068,393,585,402,18,613,808,151,151,151,
- 737,737,393,393,393,393,351,351,151,643,
- 644,643,111,209,207,639,940,393,393,1012,
- 74,627,74,686,1153,111,74,71,402,402,
- 1068,396,151,151,739,737,393,393,999,643,
- 351,112,330,207,61,61,1014,111,72,351,
- 686,393,773,743,739,739,644,393,330,74,
- 393,686,254,148,739,74,907
+ 1090,1,902,135,969,1124,261,862,759,59,
+ 1089,1000,595,1179,1009,1179,1179,1179,1020,61,
+ 1020,910,1020,77,1020,1004,1020,1000,598,86,
+ 1124,1077,418,685,685,929,598,685,598,1179,
+ 438,769,154,215,61,207,598,596,756,673,
+ 358,759,211,912,258,910,59,1000,77,362,
+ 598,598,259,1002,150,150,734,617,138,138,
+ 1080,632,733,1077,1077,598,813,359,362,362,
+ 682,304,359,685,685,438,685,598,196,822,
+ 227,216,216,215,215,215,1000,598,596,604,
+ 425,603,64,358,357,359,211,598,147,921,
+ 431,259,61,489,598,362,259,598,192,150,
+ 61,1000,617,263,1077,1083,598,558,19,1077,
+ 617,192,678,362,362,1080,304,304,596,822,
+ 227,215,204,215,598,734,734,756,734,1135,
+ 759,485,484,358,204,598,211,152,59,438,
+ 594,3,211,147,432,150,147,150,259,489,
+ 489,598,769,474,1179,438,438,438,438,1000,
+ 1179,539,420,559,559,559,559,559,559,559,
+ 559,559,687,693,698,695,702,700,707,705,
+ 709,708,710,307,711,768,598,1002,598,61,
+ 520,500,598,1179,304,725,1084,359,558,204,
+ 61,1077,617,1087,678,769,769,682,359,752,
+ 737,751,768,438,494,494,204,204,598,599,
+ 359,64,359,316,359,196,5,150,150,150,
+ 150,598,489,204,506,203,1080,818,748,747,
+ 539,969,969,969,969,598,317,359,359,539,
+ 1138,968,196,539,687,70,70,317,558,559,
+ 559,559,559,559,559,559,559,559,559,559,
+ 559,559,559,559,559,559,559,559,558,558,
+ 558,558,558,558,558,558,558,558,558,558,
+ 559,539,192,504,521,1000,598,317,601,204,
+ 19,678,677,608,558,749,749,816,1080,91,
+ 227,216,227,767,767,734,359,485,596,733,
+ 559,152,618,626,730,5,150,150,127,204,
+ 559,598,474,359,820,822,359,359,769,769,
+ 769,769,259,359,559,638,1026,1026,1000,420,
+ 304,968,558,359,595,597,595,359,304,695,
+ 695,693,693,693,700,700,700,700,698,698,
+ 705,702,702,708,707,709,152,710,504,520,
+ 152,559,152,734,519,1179,1179,1179,521,1179,
+ 598,771,734,734,598,61,359,558,19,678,
+ 608,558,558,820,737,227,969,969,316,734,
+ 5,559,559,730,730,5,5,500,999,128,
+ 598,359,822,1179,1179,1179,1179,598,598,598,
+ 196,559,969,691,440,359,598,597,196,558,
+ 511,1179,511,521,152,521,539,539,537,860,
+ 539,734,734,624,504,203,610,768,730,730,
+ 127,598,1000,1000,598,761,359,558,558,558,
+ 558,1179,1179,259,596,359,691,1080,1002,598,
+ 596,91,521,359,1077,359,537,1124,1179,359,
+ 504,202,18,610,858,598,598,598,761,761,
+ 359,359,359,359,317,317,598,691,692,691,
+ 558,440,200,687,1002,359,359,1074,521,624,
+ 521,734,1124,558,521,518,202,202,1179,494,
+ 598,598,763,761,359,359,1061,691,317,559,
+ 304,200,61,61,1076,558,519,317,734,359,
+ 823,767,763,763,692,359,304,521,359,734,
+ 485,595,763,521,969
};
};
public final static char asb[] = Asb.asb;
@@ -2080,123 +2101,124 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface Asr {
public final static char asr[] = {0,
- 123,0,27,10,3,9,8,74,12,11,
- 4,1,2,6,7,5,0,76,68,69,
+ 123,0,28,9,3,10,8,73,12,11,
+ 4,1,2,6,7,5,0,76,70,71,
64,41,42,12,11,38,39,8,45,50,
- 3,4,9,55,58,56,57,40,53,48,
+ 3,4,10,55,58,56,57,40,53,48,
52,15,24,14,20,18,19,21,22,17,
16,23,13,47,51,49,46,54,1,2,
- 73,10,0,89,105,106,107,44,74,123,
- 121,124,76,66,77,65,63,79,81,87,
- 85,78,83,84,86,88,73,80,82,27,
- 10,5,29,43,25,59,30,31,32,33,
- 34,35,36,60,37,61,26,28,6,7,
- 64,68,69,47,51,49,46,54,15,24,
- 14,20,18,19,21,22,17,16,23,55,
- 58,56,57,40,53,48,52,3,41,42,
- 12,11,38,39,45,50,13,4,9,8,
- 1,2,0,9,4,44,8,1,2,0,
- 29,14,15,43,25,16,59,30,89,31,
- 17,32,33,18,19,34,63,35,20,21,
- 36,60,37,13,61,22,65,26,23,28,
- 24,3,12,4,27,66,73,10,5,11,
- 6,7,9,44,1,2,8,0,93,38,
- 39,95,96,90,91,62,97,98,99,100,
- 101,102,103,104,109,74,92,75,110,111,
- 112,113,114,115,116,117,118,119,120,76,
- 27,94,72,5,1,2,12,11,4,6,
- 7,67,3,71,10,70,0,10,70,71,
- 1,25,0,10,74,73,77,0,10,73,
- 75,0,77,3,72,92,75,70,71,27,
- 67,6,7,5,10,73,74,0,68,69,
- 3,13,47,51,49,46,54,15,24,14,
- 20,18,19,21,22,17,16,23,55,58,
- 56,57,40,53,48,52,8,9,4,41,
- 42,12,11,38,39,45,50,1,2,120,
- 10,0,26,1,2,4,105,106,107,0,
- 5,72,74,92,120,76,27,6,7,70,
- 14,15,46,68,16,47,48,17,18,19,
- 69,9,49,20,21,50,51,52,64,53,
- 54,13,22,23,24,55,56,57,40,2,
- 41,42,12,11,38,39,8,45,4,58,
- 3,1,71,10,0,72,75,70,1,2,
- 0,27,70,76,10,0,105,106,107,74,
- 76,9,10,3,12,11,8,27,66,63,
- 89,65,5,29,14,15,43,25,16,59,
- 30,31,17,32,33,18,19,34,35,20,
- 21,36,60,37,13,61,22,26,23,28,
- 24,6,7,4,1,2,44,0,4,10,
- 74,73,6,7,5,62,0,5,29,14,
- 15,43,25,46,16,47,59,30,31,48,
- 17,32,33,18,19,34,35,49,20,21,
- 50,36,51,60,52,64,53,37,54,13,
- 61,22,26,23,28,24,55,56,57,40,
- 3,41,42,12,11,38,39,45,72,4,
- 6,7,58,9,8,1,2,69,68,0,
- 1,2,10,76,0,10,73,70,0,14,
- 15,46,68,16,47,48,17,18,19,69,
- 9,49,20,21,50,51,52,64,53,54,
- 13,22,23,24,55,56,57,1,2,3,
- 41,42,12,11,38,39,8,45,4,58,
- 27,10,40,0,121,0,10,70,76,75,
- 0,10,74,120,71,27,70,0,74,5,
- 67,6,7,62,10,70,27,75,3,0,
- 25,28,64,77,72,74,92,71,73,3,
- 5,10,70,27,6,7,75,0,64,25,
- 9,28,8,1,2,4,77,73,122,108,
- 41,42,67,3,94,93,11,95,96,38,
- 39,91,90,62,97,98,99,100,12,101,
- 102,103,72,92,71,75,110,111,112,113,
- 114,115,116,117,118,119,74,120,76,104,
- 109,6,7,5,70,27,10,0,4,10,
- 73,6,7,5,1,2,0,5,29,14,
- 15,25,16,30,31,17,32,33,18,19,
- 34,9,35,20,21,36,37,22,26,23,
- 28,24,1,2,67,12,11,8,4,27,
- 6,7,71,10,3,0,25,28,64,10,
- 92,71,75,70,72,0,5,12,11,6,
- 7,9,8,4,1,2,3,67,72,75,
- 70,10,71,92,0,8,9,3,67,11,
- 12,92,5,29,14,15,25,16,59,30,
- 31,17,32,33,18,19,34,35,20,21,
- 36,60,37,13,61,22,26,23,28,24,
- 1,2,4,6,7,71,10,43,0,78,
- 0,44,4,5,10,74,73,6,7,1,
- 2,0,4,10,74,73,6,7,5,0,
+ 74,9,0,9,69,68,1,25,0,10,
+ 4,44,8,1,2,0,4,9,74,6,
+ 7,5,1,2,0,9,73,74,77,0,
5,29,14,15,43,25,16,59,30,31,
17,32,33,18,19,34,35,20,21,36,
- 60,37,13,61,22,26,23,28,24,1,
- 2,4,6,7,92,0,69,68,38,39,
- 11,95,96,101,12,102,8,45,75,62,
- 72,113,114,110,111,112,118,117,119,91,
- 90,115,116,99,100,97,98,103,104,41,
- 42,70,93,108,67,3,13,59,43,60,
- 61,15,24,14,20,18,19,21,22,17,
- 16,23,29,35,36,31,34,33,30,25,
- 28,5,7,6,32,37,26,1,2,4,
- 0,13,59,43,60,61,15,24,14,20,
- 18,19,21,22,17,16,23,77,74,92,
- 120,76,73,122,94,108,93,41,42,38,
- 39,95,96,90,91,62,72,97,98,99,
- 100,101,102,103,104,109,75,110,111,112,
- 113,114,115,116,117,118,119,70,29,25,
- 30,31,32,33,34,35,36,37,26,28,
- 27,10,71,67,8,9,3,1,2,4,
- 12,6,7,5,11,0,68,69,41,42,
- 12,11,38,39,8,45,50,4,9,55,
- 58,56,57,40,53,48,52,15,24,14,
- 20,18,19,21,22,17,16,23,13,47,
- 51,49,46,54,67,1,2,3,0,16,
- 59,30,17,32,33,18,19,34,35,20,
- 21,36,60,37,61,22,26,23,28,24,
- 25,43,15,14,29,10,3,12,11,27,
- 65,89,31,66,62,6,7,5,44,9,
- 1,2,8,4,13,63,0,76,29,14,
- 15,43,25,16,59,30,17,32,33,18,
+ 60,37,13,61,22,26,23,27,24,1,
+ 2,4,6,7,92,0,26,1,2,4,
+ 105,106,107,0,3,27,0,77,3,72,
+ 92,75,69,68,28,67,6,7,5,9,
+ 74,73,0,29,14,15,43,25,16,59,
+ 30,89,31,17,32,33,18,19,34,63,
+ 35,20,21,36,60,37,13,61,22,65,
+ 26,23,27,24,3,12,4,28,66,74,
+ 9,5,11,6,7,10,44,1,2,8,
+ 0,28,69,76,9,0,9,74,75,0,
+ 105,106,107,73,76,10,9,3,12,11,
+ 8,28,66,63,89,65,5,29,14,15,
+ 43,25,16,59,30,31,17,32,33,18,
19,34,35,20,21,36,60,37,13,61,
- 22,26,23,28,24,123,66,63,31,89,
- 65,44,5,10,27,6,7,8,9,1,
- 2,4,3,11,12,0
+ 22,26,23,27,24,6,7,4,1,2,
+ 44,0,70,71,3,13,47,51,49,46,
+ 54,15,24,14,20,18,19,21,22,17,
+ 16,23,55,58,56,57,40,53,48,52,
+ 8,10,4,41,42,12,11,38,39,45,
+ 50,1,2,120,9,0,5,72,73,92,
+ 120,76,28,6,7,69,14,15,46,70,
+ 16,47,48,17,18,19,71,10,49,20,
+ 21,50,51,52,64,53,54,13,22,23,
+ 24,55,56,57,40,2,41,42,12,11,
+ 38,39,8,45,4,58,3,1,68,9,
+ 0,5,29,14,15,43,25,46,16,47,
+ 59,30,31,48,17,32,33,18,19,34,
+ 35,49,20,21,50,36,51,60,52,64,
+ 53,37,54,13,61,22,26,23,27,24,
+ 55,56,57,40,3,41,42,12,11,38,
+ 39,45,72,4,6,7,58,10,8,1,
+ 2,71,70,0,9,73,69,68,3,0,
+ 4,9,73,74,6,7,5,62,0,93,
+ 38,39,95,96,90,91,62,97,98,99,
+ 100,101,102,103,104,109,73,92,75,110,
+ 111,112,113,114,115,116,117,118,119,120,
+ 76,28,94,72,5,1,2,12,11,4,
+ 6,7,67,3,68,9,69,0,1,2,
+ 9,76,0,72,75,69,1,2,0,9,
+ 74,69,0,121,0,9,69,76,75,0,
+ 89,105,106,107,44,73,123,121,124,76,
+ 66,77,65,63,79,81,87,85,78,83,
+ 84,86,88,74,80,82,28,9,5,29,
+ 43,25,59,30,31,32,33,34,35,36,
+ 60,37,61,26,27,6,7,64,70,71,
+ 47,51,49,46,54,15,24,14,20,18,
+ 19,21,22,17,16,23,55,58,56,57,
+ 40,53,48,52,3,41,42,12,11,38,
+ 39,45,50,13,4,10,8,2,1,0,
+ 120,28,69,68,9,73,0,25,27,64,
+ 77,72,73,92,68,74,3,5,9,69,
+ 28,6,7,75,0,73,5,67,6,7,
+ 62,9,69,28,75,3,0,5,29,14,
+ 15,25,16,30,31,17,32,33,18,19,
+ 34,10,35,20,21,36,37,22,26,23,
+ 27,24,1,2,67,12,11,8,4,28,
+ 6,7,68,9,3,0,64,25,10,27,
+ 8,1,2,4,77,74,122,108,41,42,
+ 67,3,94,93,11,95,96,38,39,91,
+ 90,62,97,98,99,100,12,101,102,103,
+ 72,92,68,75,110,111,112,113,114,115,
+ 116,117,118,119,73,120,76,104,109,6,
+ 7,5,69,28,9,0,5,12,11,6,
+ 7,10,8,4,1,2,3,67,72,75,
+ 69,9,68,92,0,9,73,68,40,0,
+ 25,27,64,9,92,68,75,69,72,0,
+ 14,15,46,70,16,47,48,17,18,19,
+ 71,10,49,20,21,50,51,52,64,53,
+ 54,13,22,23,24,55,56,57,40,1,
+ 2,3,41,42,38,39,8,45,4,58,
+ 28,9,11,12,0,8,10,3,67,11,
+ 12,92,5,29,14,15,25,16,59,30,
+ 31,17,32,33,18,19,34,35,20,21,
+ 36,60,37,13,61,22,26,23,27,24,
+ 1,2,4,6,7,68,9,43,0,78,
+ 0,16,59,30,17,32,33,18,19,34,
+ 35,20,21,36,60,37,61,22,26,23,
+ 27,24,25,43,15,14,29,9,3,12,
+ 11,28,65,89,31,66,62,6,7,5,
+ 44,10,1,2,8,4,13,63,0,44,
+ 4,5,9,73,74,6,7,1,2,0,
+ 4,9,73,74,6,7,5,0,71,70,
+ 38,39,11,95,96,101,12,102,8,45,
+ 75,62,72,113,114,110,111,112,118,117,
+ 119,91,90,115,116,99,100,97,98,103,
+ 104,41,42,69,93,108,67,3,13,59,
+ 43,60,61,15,24,14,20,18,19,21,
+ 22,17,16,23,29,35,36,31,34,33,
+ 30,25,27,5,7,6,32,37,26,1,
+ 2,4,0,13,59,43,60,61,15,24,
+ 14,20,18,19,21,22,17,16,23,77,
+ 73,92,120,76,74,122,94,108,93,41,
+ 42,38,39,95,96,90,91,62,72,97,
+ 98,99,100,101,102,103,104,109,75,110,
+ 111,112,113,114,115,116,117,118,119,69,
+ 29,25,30,31,32,33,34,35,36,37,
+ 26,27,28,9,68,67,8,10,3,1,
+ 2,4,12,6,7,5,11,0,76,29,
+ 14,15,43,25,16,59,30,17,32,33,
+ 18,19,34,35,20,21,36,60,37,13,
+ 61,22,26,23,27,24,123,66,63,31,
+ 89,65,44,5,9,12,28,6,7,8,
+ 10,2,4,3,1,11,0,70,71,41,
+ 42,12,11,38,39,8,45,50,4,10,
+ 55,58,56,57,40,53,48,52,15,24,
+ 14,20,18,19,21,22,17,16,23,13,
+ 47,51,49,46,54,67,1,2,3,0
};
};
public final static char asr[] = Asr.asr;
@@ -2204,64 +2226,65 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface Nasb {
public final static char nasb[] = {0,
- 204,12,36,12,5,16,12,242,12,90,
- 242,30,30,12,229,12,12,12,230,198,
- 230,130,230,130,230,223,12,10,159,188,
- 123,183,153,12,12,200,239,12,159,12,
- 12,12,197,188,198,12,220,220,285,285,
- 54,12,188,167,30,215,90,30,215,188,
- 159,11,12,12,188,13,134,130,81,81,
- 260,44,12,149,209,159,12,285,188,188,
- 74,103,285,12,12,12,12,11,178,188,
- 188,242,242,188,204,188,30,94,153,134,
- 72,285,12,83,285,247,168,130,130,12,
- 220,198,188,220,46,118,168,143,13,63,
- 56,215,98,149,215,159,69,24,124,130,
- 232,188,46,46,260,103,103,153,276,276,
- 204,61,204,220,134,134,285,12,285,61,
- 159,134,12,93,12,36,15,247,130,130,
- 188,215,188,118,188,240,11,12,172,12,
- 12,12,12,12,30,12,264,159,26,26,
- 235,26,26,26,26,26,26,12,12,12,
- 12,12,12,12,12,12,12,12,26,12,
- 12,168,12,11,63,60,12,220,12,103,
- 12,130,285,26,188,198,209,215,12,157,
- 12,12,270,285,12,181,12,12,12,109,
- 109,61,61,94,72,285,26,285,178,123,
- 188,188,116,116,168,240,61,12,12,260,
- 171,81,81,264,51,51,51,51,159,111,
- 285,285,1,26,121,178,264,12,38,38,
- 111,140,26,26,26,26,26,26,26,26,
- 26,26,26,26,26,26,26,26,26,26,
- 26,26,26,26,26,26,26,26,26,26,
- 26,26,140,26,46,143,188,194,56,11,
- 111,12,61,188,188,157,188,26,12,12,
- 180,260,276,276,242,188,12,12,134,285,
- 153,134,26,12,77,12,130,209,116,116,
- 105,61,26,240,268,285,258,188,285,285,
- 12,12,12,12,177,285,26,12,12,12,
- 10,159,103,51,69,285,152,159,152,285,
- 103,12,12,12,12,12,12,12,12,12,
+ 211,12,36,66,5,18,12,226,12,80,
+ 226,32,32,12,254,12,12,12,255,181,
+ 255,129,255,129,255,248,12,10,167,195,
+ 122,190,163,12,12,244,220,12,167,12,
+ 12,12,180,195,181,12,172,172,175,291,
+ 103,12,195,201,32,237,80,32,237,195,
+ 167,11,12,12,195,57,185,129,71,71,
+ 266,38,12,159,231,167,12,291,195,195,
+ 97,92,291,12,12,12,12,11,115,195,
+ 195,226,226,195,211,195,32,95,163,291,
+ 12,12,34,119,12,291,257,202,129,129,
+ 12,172,181,195,172,46,77,202,149,57,
+ 137,13,237,87,159,237,167,68,26,123,
+ 129,223,195,46,46,266,92,92,163,278,
+ 278,211,55,211,172,185,185,175,185,12,
+ 175,291,12,291,55,167,185,12,94,12,
+ 36,17,257,129,129,195,237,195,77,195,
+ 221,11,12,240,12,12,12,12,12,32,
+ 12,133,167,28,28,216,28,28,28,28,
+ 28,28,12,12,12,12,12,12,12,12,
+ 12,12,12,28,12,12,202,12,11,137,
+ 54,12,172,12,92,12,129,291,28,195,
+ 181,231,237,12,170,12,12,272,291,12,
+ 188,12,12,12,117,117,55,55,95,12,
+ 291,34,291,28,291,115,122,195,195,75,
+ 75,202,221,55,12,12,266,239,71,71,
+ 133,51,51,51,51,167,100,291,291,1,
+ 28,111,115,133,12,40,40,100,144,28,
+ 28,28,28,28,28,28,28,28,28,28,
+ 28,28,28,28,28,28,28,28,28,28,
+ 28,28,28,28,28,28,28,28,28,144,
+ 28,46,149,195,177,13,11,100,12,55,
+ 195,195,170,195,28,12,12,187,266,278,
+ 278,226,195,12,12,185,291,291,163,185,
+ 28,12,109,12,129,231,75,75,62,55,
+ 28,221,270,291,264,195,291,291,12,12,
+ 12,12,114,291,28,12,12,12,10,167,
+ 92,51,68,291,162,167,162,291,92,12,
12,12,12,12,12,12,12,12,12,12,
- 88,136,12,26,12,134,12,12,12,12,
- 137,12,240,132,134,134,240,85,285,26,
- 24,157,157,26,26,258,147,276,51,51,
- 26,134,124,26,26,215,130,209,12,12,
- 30,34,220,285,276,12,12,12,12,168,
- 11,159,178,26,51,188,66,285,159,217,
- 178,26,32,12,12,137,12,137,254,254,
- 274,12,254,134,134,12,188,61,188,12,
- 130,215,190,220,30,30,11,188,285,140,
- 140,140,140,12,12,176,168,285,96,270,
- 12,239,168,51,137,285,183,285,279,188,
- 12,285,88,114,23,165,12,11,220,220,
- 157,188,285,285,285,285,111,111,168,188,
- 79,12,140,270,218,12,12,285,285,188,
- 137,12,137,134,124,140,137,32,114,12,
- 12,109,11,11,188,157,285,285,12,96,
- 111,26,103,218,85,85,181,26,12,162,
- 134,285,283,12,165,188,79,285,103,137,
- 285,134,285,152,165,137,51
+ 12,12,12,12,12,12,12,12,83,140,
+ 12,28,12,185,12,12,12,12,141,12,
+ 221,183,185,185,221,59,291,28,26,170,
+ 170,28,28,264,157,278,51,51,28,185,
+ 123,28,28,237,129,231,12,12,32,85,
+ 172,291,278,12,12,12,12,202,11,167,
+ 115,28,51,195,106,291,167,205,115,28,
+ 153,12,12,141,12,141,285,285,276,12,
+ 285,185,185,12,195,55,195,12,129,237,
+ 197,172,32,32,11,195,291,144,144,144,
+ 144,12,12,113,202,291,147,272,12,220,
+ 202,51,141,291,190,291,281,195,12,291,
+ 83,73,25,155,12,11,172,172,170,195,
+ 291,291,291,291,100,100,202,195,131,12,
+ 144,272,206,12,12,291,291,195,141,12,
+ 141,185,123,144,141,153,73,12,12,117,
+ 11,11,195,170,291,291,12,147,100,28,
+ 92,206,59,59,188,28,12,208,185,291,
+ 289,12,155,195,131,291,92,141,291,185,
+ 291,162,155,141,51
};
};
public final static char nasb[] = Nasb.nasb;
@@ -2269,35 +2292,36 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface Nasr {
public final static char nasr[] = {0,
- 3,13,10,9,160,158,129,157,156,5,
- 2,0,167,0,43,5,2,9,10,4,
- 166,0,73,137,47,13,2,9,10,5,
- 0,123,0,202,0,164,0,5,2,9,
- 10,147,0,193,0,5,10,9,2,13,
- 4,50,0,211,0,177,5,176,0,4,
- 73,0,47,168,0,4,186,0,4,37,
- 0,180,0,4,204,0,200,0,149,0,
- 86,0,182,0,47,66,0,169,0,1,
- 47,0,47,111,0,151,0,13,2,9,
- 10,5,88,0,5,107,201,0,115,0,
- 4,102,0,170,0,117,0,2,71,0,
- 184,0,95,4,5,10,9,2,63,42,
- 0,4,44,43,0,73,47,53,74,4,
- 44,0,71,146,145,0,100,99,42,63,
- 68,5,10,9,2,0,70,0,2,49,
- 0,4,187,0,134,0,49,2,3,0,
- 31,99,100,4,0,2,144,71,0,31,
- 100,99,63,5,2,9,10,4,0,5,
- 107,173,0,53,44,188,4,47,0,4,
- 50,205,0,110,87,53,4,0,63,5,
- 2,9,10,4,25,0,2,124,0,2,
- 67,0,2,5,129,125,126,127,13,92,
- 0,42,71,0,5,10,9,13,3,1,
- 0,4,53,87,89,0,4,53,87,107,
- 51,5,0,4,50,109,0,23,4,5,
- 42,95,0,4,50,44,0,100,99,42,
- 5,68,0,44,190,23,4,0,50,4,
- 189,0,50,4,31,0
+ 3,13,10,9,162,160,130,159,158,5,
+ 2,0,179,5,178,0,43,5,2,9,
+ 10,4,168,0,74,138,47,13,2,9,
+ 10,5,0,182,0,166,0,196,0,5,
+ 2,9,10,149,0,5,10,9,2,13,
+ 4,50,0,4,74,0,169,0,47,67,
+ 0,5,108,204,0,214,0,4,37,0,
+ 87,0,172,0,118,0,2,72,0,1,
+ 47,0,171,0,205,0,13,2,9,10,
+ 5,89,0,47,112,0,4,207,0,4,
+ 103,0,213,30,0,4,189,0,203,0,
+ 187,0,2,146,72,0,116,0,30,184,
+ 0,96,4,5,10,9,2,64,42,0,
+ 151,0,4,50,44,0,47,170,0,74,
+ 47,53,75,4,44,0,153,0,72,148,
+ 147,0,124,0,135,0,101,100,42,64,
+ 69,5,10,9,2,0,2,49,0,71,
+ 0,2,68,0,145,0,53,44,191,4,
+ 47,0,4,44,43,0,30,101,100,64,
+ 5,2,9,10,4,0,5,108,175,0,
+ 49,2,3,0,2,125,0,4,190,0,
+ 111,88,53,4,0,5,10,9,13,3,
+ 1,0,42,72,0,4,53,88,90,0,
+ 64,5,2,9,10,4,25,0,30,100,
+ 101,4,0,4,50,208,0,2,5,130,
+ 126,127,128,13,93,0,4,53,88,108,
+ 51,5,0,23,4,5,42,96,0,101,
+ 100,42,5,69,0,44,193,23,4,0,
+ 50,4,192,0,4,50,110,0,50,4,
+ 30,0
};
};
public final static char nasr[] = Nasr.nasr;
@@ -2305,14 +2329,14 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface TerminalIndex {
public final static char terminalIndex[] = {0,
- 113,114,2,31,46,126,127,13,79,115,
+ 113,114,2,31,46,126,127,13,115,79,
10,9,100,48,52,60,68,74,75,86,
- 87,102,105,107,54,104,120,106,47,64,
+ 87,102,105,107,54,104,106,120,47,64,
66,70,73,76,83,89,98,11,12,112,
7,8,53,93,14,55,61,67,84,88,
90,94,97,99,109,110,111,129,63,91,
- 101,19,77,95,103,128,1,58,78,44,
- 118,20,121,30,33,119,96,108,49,50,
+ 101,19,77,95,103,128,1,118,44,58,
+ 78,20,30,121,33,119,96,108,49,50,
56,57,59,69,71,72,85,92,65,17,
18,32,6,4,15,16,21,22,23,24,
25,26,27,28,80,81,82,5,29,34,
@@ -2327,26 +2351,26 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public final static char nonterminalIndex[] = {0,
136,141,142,0,0,140,0,0,235,241,
139,0,149,138,0,0,148,154,0,0,
- 155,164,186,165,250,0,0,0,166,167,
- 132,168,169,170,171,172,157,173,174,0,
+ 155,164,186,165,250,0,0,0,166,132,
+ 167,168,169,170,171,172,157,173,174,0,
147,251,134,137,175,0,135,144,143,158,
- 183,0,0,0,0,0,0,0,0,210,
- 0,207,211,0,151,178,0,161,181,193,
- 0,0,133,177,0,0,0,0,0,0,
- 0,0,0,0,0,212,0,131,184,0,
- 0,192,0,0,208,218,163,214,215,216,
- 0,0,152,0,0,213,226,0,180,185,
- 202,0,0,217,0,0,0,230,0,232,
- 0,246,247,153,195,196,197,198,199,201,
- 204,0,205,0,220,223,0,225,0,244,
- 0,245,0,0,145,146,150,0,0,160,
- 162,0,176,0,187,188,189,190,191,194,
- 0,0,200,0,203,209,0,221,222,0,
- 0,227,234,0,238,239,240,243,0,252,
- 0,254,0,0,156,159,0,179,0,182,
- 0,0,206,219,224,0,0,228,229,231,
- 233,0,236,237,242,248,249,0,0,0,
- 253,0,0,0,0
+ 183,0,0,0,0,0,0,0,0,0,
+ 210,0,207,211,0,151,178,0,161,181,
+ 193,0,0,133,177,0,0,0,0,0,
+ 0,0,0,0,0,0,212,0,131,184,
+ 0,0,192,0,0,208,218,163,214,215,
+ 216,0,0,152,0,0,213,226,0,180,
+ 185,202,0,0,217,0,0,0,230,0,
+ 232,0,246,247,153,195,196,197,198,199,
+ 201,204,0,205,0,220,223,0,225,0,
+ 244,0,245,0,255,0,145,146,150,0,
+ 0,160,162,0,176,0,187,188,189,190,
+ 191,194,0,0,200,0,203,209,0,221,
+ 222,0,0,227,234,0,238,239,240,243,
+ 0,252,0,254,0,0,0,156,159,0,
+ 179,0,182,0,0,206,219,224,0,0,
+ 228,229,231,233,0,236,237,242,248,249,
+ 0,0,253,0,0,0,0,0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
@@ -2396,20 +2420,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface ScopeLhs {
public final static char scopeLhs[] = {
- 51,17,17,127,17,17,17,17,77,91,
- 52,84,127,126,81,57,77,76,51,17,
- 19,3,7,8,173,173,172,125,51,85,
- 126,126,128,26,136,58,52,147,141,136,
- 77,17,17,141,101,59,179,143,80,176,
- 173,172,128,191,55,66,151,18,17,17,
- 17,17,17,12,123,172,77,76,76,40,
- 147,68,138,138,76,17,17,17,17,101,
- 19,118,133,177,173,193,99,106,61,86,
- 60,166,69,128,78,152,151,184,147,16,
- 172,128,109,75,21,147,138,127,147,138,
- 138,127,77,51,118,133,172,68,159,158,
- 157,156,72,145,49,118,133,145,49,176,
- 68,109,125,51,51,59
+ 51,17,17,128,17,17,17,17,78,92,
+ 52,85,128,127,82,57,78,77,51,17,
+ 19,3,7,8,175,175,174,126,51,86,
+ 127,127,129,26,137,58,52,149,142,137,
+ 78,17,17,142,102,60,181,144,81,178,
+ 175,174,129,194,55,67,153,18,17,17,
+ 17,17,17,12,124,174,78,77,77,40,
+ 149,69,139,139,77,17,17,17,17,102,
+ 19,119,134,179,175,196,100,107,62,87,
+ 61,168,70,129,79,154,153,187,149,16,
+ 174,129,110,76,21,149,139,128,149,139,
+ 139,128,78,51,119,134,174,69,161,160,
+ 159,158,73,147,49,119,134,147,49,178,
+ 69,110,126,51,51,60
};
};
public final static char scopeLhs[] = ScopeLhs.scopeLhs;
@@ -2417,20 +2441,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface ScopeLa {
public final static char scopeLa[] = {
- 121,71,71,76,71,71,71,71,71,76,
- 27,76,76,1,72,1,71,124,73,3,
- 71,72,72,72,1,1,27,76,73,76,
- 1,1,1,71,76,1,1,4,72,70,
- 27,1,1,72,71,71,71,71,121,71,
- 1,27,1,27,27,76,120,71,71,71,
- 71,71,120,1,71,1,71,71,71,74,
- 4,11,1,1,71,72,72,72,72,71,
- 3,6,6,1,1,71,71,3,1,120,
- 71,1,1,1,27,71,120,71,8,71,
- 1,44,75,74,71,1,1,73,44,1,
- 1,1,78,77,1,1,27,12,1,59,
- 43,43,27,4,4,1,1,4,4,3,
- 11,1,73,1,1,3
+ 121,68,68,76,68,68,68,68,68,76,
+ 28,76,76,1,72,1,68,124,74,3,
+ 68,72,72,72,1,1,28,76,74,76,
+ 1,1,1,68,76,1,1,4,72,69,
+ 28,1,1,72,68,68,68,68,121,68,
+ 1,28,1,28,28,76,120,68,68,68,
+ 68,68,120,1,68,1,68,68,68,73,
+ 4,11,1,1,68,72,72,72,72,68,
+ 3,6,6,1,1,68,68,3,1,120,
+ 68,1,1,1,28,68,120,68,8,68,
+ 1,44,75,73,68,1,1,74,44,1,
+ 1,1,78,77,1,1,28,12,1,59,
+ 43,43,28,4,4,1,1,4,4,3,
+ 11,1,74,1,1,3
};
};
public final static char scopeLa[] = ScopeLa.scopeLa;
@@ -2459,77 +2483,77 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 247,171,0,251,0,171,0,230,251,0,
- 230,0,198,171,0,181,251,0,181,0,
- 338,3,309,0,132,0,337,3,3,6,
- 0,132,132,0,336,3,64,0,335,3,
- 121,0,132,178,0,133,195,77,0,222,
- 0,268,133,62,131,0,20,0,307,133,
+ 248,171,0,251,0,171,0,230,251,0,
+ 230,0,199,171,0,181,251,0,181,0,
+ 341,3,311,0,132,0,340,3,3,6,
+ 0,132,132,0,339,3,64,0,338,3,
+ 121,0,132,178,0,133,196,77,0,222,
+ 0,269,133,62,131,0,20,0,309,133,
62,44,0,20,53,0,33,138,0,20,
- 53,0,0,307,133,62,44,216,0,20,
- 184,0,268,133,62,139,0,196,134,0,
- 147,0,231,3,306,0,306,0,2,0,
- 132,0,268,133,62,138,0,196,134,236,
- 0,196,134,26,236,0,196,134,331,26,
- 0,135,200,178,134,0,134,0,200,178,
- 134,0,140,134,0,182,0,327,133,182,
- 0,133,182,0,228,134,0,178,326,258,
- 0,142,0,0,0,0,326,258,0,143,
+ 53,0,0,309,133,62,44,217,0,20,
+ 184,0,269,133,62,139,0,197,134,0,
+ 147,0,232,3,308,0,308,0,2,0,
+ 132,0,269,133,62,138,0,197,134,237,
+ 0,197,134,26,237,0,197,134,334,26,
+ 0,135,201,178,134,0,134,0,201,178,
+ 134,0,140,134,0,182,0,330,133,182,
+ 0,133,182,0,228,134,0,178,329,259,
+ 0,142,0,0,0,0,329,259,0,143,
142,0,0,0,0,141,0,0,0,0,
- 143,141,0,0,0,0,325,133,176,267,
- 0,133,0,267,0,135,0,0,133,0,
- 324,133,176,266,0,133,0,0,44,133,
- 0,0,166,3,0,133,297,296,133,77,
- 295,182,0,296,133,77,295,182,0,221,
- 0,222,0,295,182,0,96,0,0,221,
+ 143,141,0,0,0,0,328,133,176,268,
+ 0,133,0,268,0,135,0,0,133,0,
+ 327,133,176,267,0,133,0,0,44,133,
+ 0,0,166,3,0,133,299,298,133,77,
+ 297,182,0,298,133,77,297,182,0,221,
+ 0,222,0,297,182,0,96,0,0,221,
0,222,0,209,96,0,0,221,0,222,
- 0,296,133,295,182,0,221,0,209,0,
- 0,221,0,241,133,3,0,132,0,0,
- 0,0,0,241,133,3,228,0,235,3,
- 0,224,133,0,214,0,152,0,193,178,
- 134,0,10,0,0,0,193,0,9,0,
- 226,67,0,131,0,241,133,3,189,0,
- 189,0,2,0,0,132,0,0,0,0,
- 0,198,3,0,207,0,237,133,176,40,
- 31,0,196,134,63,65,0,202,134,0,
- 135,196,134,293,65,0,196,134,293,65,
- 0,196,134,75,130,63,0,237,133,176,
- 63,0,237,133,176,240,63,0,291,133,
- 176,130,321,59,0,321,59,0,136,135,
- 0,0,133,0,291,133,176,321,59,0,
- 135,0,0,133,0,196,134,290,59,0,
- 141,0,200,196,134,290,258,0,142,0,
- 196,134,290,258,0,200,178,134,13,0,
+ 0,298,133,297,182,0,221,0,209,0,
+ 0,221,0,242,133,3,0,132,0,0,
+ 0,0,0,242,133,3,229,0,236,3,
+ 0,225,133,0,214,0,152,0,194,178,
+ 134,0,10,0,0,0,194,0,9,0,
+ 227,67,0,131,0,242,133,3,190,0,
+ 190,0,2,0,0,132,0,0,0,0,
+ 0,199,3,0,207,0,238,133,176,40,
+ 31,0,197,134,63,65,0,202,134,0,
+ 135,197,134,295,65,0,197,134,295,65,
+ 0,197,134,75,130,63,0,238,133,176,
+ 63,0,238,133,176,241,63,0,293,133,
+ 176,130,324,59,0,324,59,0,136,135,
+ 0,0,133,0,293,133,176,324,59,0,
+ 135,0,0,133,0,197,134,292,59,0,
+ 141,0,201,197,134,292,259,0,142,0,
+ 197,134,292,259,0,201,178,134,13,0,
178,134,13,0,178,134,0,93,142,0,
- 289,0,198,0,197,0,196,0,195,0,
- 283,133,152,0,283,133,182,0,173,87,
- 0,316,172,318,319,3,84,0,132,177,
- 0,318,319,3,84,0,134,0,132,177,
- 0,173,3,78,203,83,0,132,134,0,
- 203,83,0,108,2,137,132,134,0,238,
- 3,78,0,198,179,0,33,175,0,179,
- 0,181,33,175,0,238,3,88,0,203,
- 160,238,3,86,0,62,177,0,238,3,
- 86,0,132,177,62,177,0,317,133,176,
- 0,173,0,226,80,0,30,177,0,173,
- 109,168,0,30,175,0,194,3,0,132,
- 155,0,231,3,0,226,67,280,0,173,
- 67,0,194,3,313,69,134,0,132,0,
- 0,0,0,313,69,134,0,2,151,132,
- 0,0,0,0,194,3,50,0,153,0,
+ 291,0,198,0,197,0,196,0,195,0,
+ 285,133,152,0,285,133,182,0,173,87,
+ 0,319,172,321,322,3,84,0,132,177,
+ 0,321,322,3,84,0,134,0,132,177,
+ 0,173,3,78,204,83,0,132,134,0,
+ 204,83,0,108,2,137,132,134,0,239,
+ 3,78,0,199,179,0,33,175,0,179,
+ 0,181,33,175,0,239,3,88,0,204,
+ 159,239,3,86,0,62,177,0,239,3,
+ 86,0,132,177,62,177,0,320,133,176,
+ 0,173,0,227,80,0,30,177,0,173,
+ 109,168,0,30,175,0,195,3,0,132,
+ 155,0,232,3,0,227,67,282,0,173,
+ 67,0,195,3,316,71,134,0,132,0,
+ 0,0,0,316,71,134,0,2,151,132,
+ 0,0,0,0,195,3,50,0,153,0,
132,44,178,134,0,31,153,0,93,142,
- 31,153,0,232,196,134,0,152,31,153,
- 0,194,3,54,0,173,3,54,0,173,
- 3,72,194,62,46,0,194,62,46,0,
- 20,2,137,132,0,173,3,72,194,62,
- 49,0,194,62,49,0,173,3,72,194,
- 62,51,0,194,62,51,0,173,3,72,
- 194,62,47,0,194,62,47,0,231,3,
- 132,200,178,134,13,0,132,200,178,134,
- 13,0,142,2,0,132,0,231,3,131,
- 273,178,134,13,0,273,178,134,13,0,
- 141,2,0,132,0,231,3,142,0,231,
- 3,146,0,173,67,146,0,275,0,31,
+ 31,153,0,233,197,134,0,152,31,153,
+ 0,195,3,54,0,173,3,54,0,173,
+ 3,72,195,62,46,0,195,62,46,0,
+ 20,2,137,132,0,173,3,72,195,62,
+ 49,0,195,62,49,0,173,3,72,195,
+ 62,51,0,195,62,51,0,173,3,72,
+ 195,62,47,0,195,62,47,0,232,3,
+ 132,201,178,134,13,0,132,201,178,134,
+ 13,0,142,2,0,132,0,232,3,131,
+ 275,178,134,13,0,275,178,134,13,0,
+ 141,2,0,132,0,232,3,142,0,232,
+ 3,146,0,173,67,146,0,277,0,31,
0,31,145,0,177,0,140,0,173,3,
0
};
@@ -2539,43 +2563,43 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface ScopeState {
public final static char scopeState[] = {0,
- 3006,1158,0,3305,3188,2986,0,2399,1262,0,
- 5448,5632,5629,5217,0,1899,1712,666,1212,0,
- 3456,1471,0,4168,4123,4078,4033,3988,3943,3898,
- 3853,3808,2558,3558,5335,0,2496,717,0,2396,
- 0,5119,3934,5009,0,3323,764,0,4168,4123,
- 1550,1391,4078,4033,3988,3943,3898,3853,1188,3808,
- 2558,3558,1719,929,0,2803,2640,0,5222,5129,
- 0,997,999,0,731,0,2122,1605,1338,1182,
- 2763,5318,3582,3371,3202,3235,3213,0,2808,2992,
- 2453,0,5559,5545,5536,5622,5616,5530,5503,5486,
- 5572,5461,2974,2796,5241,2752,5137,4583,4579,2470,
- 3108,4487,4380,3664,2780,0,2763,625,3691,3647,
- 3566,3582,2808,3384,3371,3235,4316,2992,4271,2482,
- 2453,3165,3136,3091,2528,0,625,3566,0,2931,
- 2303,1693,5559,5545,2274,1662,1646,1599,2268,5536,
- 4308,5622,5616,1428,5530,5503,5486,2210,5572,1115,
- 5461,4265,1051,2974,2796,5241,2752,845,5137,4583,
- 711,3179,4579,2674,2470,3108,4487,4380,3664,707,
- 2780,4413,2853,1320,865,792,691,1000,3582,2808,
- 3384,3165,3136,2763,2566,1122,3091,3371,2496,717,
- 2528,3235,4316,625,2992,3691,4271,3647,2482,2453,
- 3566,3030,4975,4953,2649,2688,2895,2727,3337,3257,
- 3057,3785,3760,3535,3504,3473,3398,4710,4687,4664,
- 4388,4345,4931,4909,4887,4865,4843,4821,4799,4777,
- 4755,4733,4461,2138,2412,2091,2371,2319,1387,1340,
- 1279,2044,2278,2226,2185,1231,948,1997,1950,1903,
- 1856,1809,1762,1715,1668,1621,1574,1527,577,1135,
- 1184,1478,882,804,1434,738,643,1026,1074,0,
- 4413,577,2853,0,2808,2938,5662,3165,5658,2449,
- 3136,3091,4210,577,2342,4316,4979,1306,4999,4546,
- 4587,3816,2992,990,908,3714,2600,4271,3290,830,
- 614,4413,3821,2943,3438,3695,3159,2865,2860,2853,
- 5449,5431,2763,5253,5224,5318,5401,5383,2528,5455,
- 5371,3691,3647,5327,2453,0,5222,5129,5118,4553,
- 4511,4442,5107,5019,5008,4997,4204,4168,4123,4078,
- 4033,3988,3943,3898,3853,3808,2558,3558,0,5222,
- 5129,5118,4553,4511,4442,5107,5019,5008,4997,4204,
+ 2887,2483,0,3278,3029,2760,0,2849,2569,0,
+ 5537,5632,5620,5615,0,2896,1525,2726,1337,0,
+ 3560,936,0,4129,4084,3935,3890,3845,3800,3755,
+ 3710,3665,2566,3386,5303,0,1013,727,0,1999,
+ 0,5470,4538,3973,0,773,627,0,4129,4084,
+ 1884,1790,3935,3890,3845,3800,3755,3710,890,3665,
+ 2566,3386,2954,2565,0,2786,2649,0,5177,5170,
+ 0,2076,682,0,725,0,1630,1395,1388,1092,
+ 2773,5288,4017,3468,4365,3227,2848,0,2819,3005,
+ 2460,0,5550,5545,5522,5605,5600,5517,5508,5487,
+ 5279,5466,3355,2987,5453,2853,5424,5411,4715,2478,
+ 3635,4401,3245,2897,2791,0,2773,634,4211,3256,
+ 2802,4017,2819,5156,3468,3227,4503,3005,4336,2489,
+ 2460,3180,3151,3105,2535,0,634,2802,0,2682,
+ 2403,1792,5550,5545,2309,1761,1745,1698,2215,5522,
+ 3693,5605,5600,1667,5517,5508,5487,1340,5279,1432,
+ 5466,1029,1129,3355,2987,5453,2853,1113,5424,5411,
+ 1065,2531,4715,1230,2478,3635,4401,3245,2897,986,
+ 2791,4619,2865,2366,2272,1323,700,2504,4017,2819,
+ 5156,3180,3151,2773,2971,2573,3105,3468,1013,727,
+ 2535,3227,4503,634,3005,4211,4336,3256,2489,2460,
+ 2802,3534,5123,5082,2657,2696,2908,2737,3363,3330,
+ 3071,4306,4281,3642,3610,3578,3494,4719,4686,4656,
+ 4594,4569,5041,5019,4997,4975,4953,4931,4909,4887,
+ 4865,4041,3043,2143,2419,2096,2378,2325,1391,1344,
+ 1282,2049,2284,2231,2190,1234,961,2002,1955,1908,
+ 1861,1814,1767,1720,1673,1626,1579,1532,585,1136,
+ 1183,1483,894,815,1438,748,652,1040,1088,0,
+ 4619,585,2865,0,2819,3400,5403,3180,5169,3249,
+ 3151,3105,4743,585,3118,4503,3393,2762,4752,4418,
+ 4083,3174,3005,920,859,4351,3280,4336,3094,693,
+ 622,4619,4075,841,3678,4332,3101,785,3389,2865,
+ 5392,4474,2773,5241,5208,5288,5381,5368,2535,5416,
+ 5336,4211,3256,5270,2460,0,5177,5170,5063,4435,
+ 4371,4329,4772,4761,4750,4174,3981,4129,4084,3935,
+ 3890,3845,3800,3755,3710,3665,2566,3386,0,5177,
+ 5170,5063,4435,4371,4329,4772,4761,4750,4174,3981,
0
};
};
@@ -2584,64 +2608,65 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public interface InSymb {
public final static char inSymb[] = {0,
- 0,312,65,5,133,182,216,44,31,63,
- 239,63,293,3,284,6,7,5,285,267,
- 286,258,287,59,288,289,131,13,134,295,
- 133,3,4,139,138,9,8,131,134,189,
- 44,62,40,176,240,130,134,134,40,3,
- 3,3,176,326,290,171,321,290,171,62,
- 134,196,178,177,77,133,283,198,192,189,
- 133,262,294,224,171,134,193,198,62,62,
- 179,67,3,68,69,131,130,196,178,3,
- 62,72,133,176,133,176,75,196,196,160,
- 3,339,1,340,40,133,178,244,132,131,
- 134,130,176,134,133,178,44,4,133,296,
- 74,171,67,224,171,134,3,75,70,198,
- 178,11,133,133,133,67,67,200,133,133,
- 133,237,133,134,240,135,337,309,3,325,
- 134,180,236,63,44,65,182,328,132,131,
- 245,171,245,196,176,133,196,268,179,54,
- 46,49,51,47,13,142,3,134,50,45,
- 8,39,38,11,12,42,41,146,151,158,
- 153,161,159,163,162,165,164,167,64,168,
- 271,200,275,200,296,176,305,134,306,226,
- 168,178,166,133,176,266,171,171,193,133,
- 268,268,224,241,242,152,243,307,44,13,
- 43,237,237,196,70,160,3,1,178,133,
- 245,245,133,133,200,133,291,130,292,133,
- 3,229,228,3,62,62,62,62,134,3,
- 194,173,133,68,69,178,3,132,108,122,
- 3,67,93,94,39,38,96,95,11,98,
- 97,72,62,90,91,12,100,99,102,101,
- 103,119,118,117,116,115,114,113,112,111,
- 110,75,109,104,70,4,297,133,70,196,
- 3,282,133,176,11,199,160,75,235,198,
- 3,133,70,70,72,62,244,244,240,338,
- 200,327,74,249,198,131,247,171,133,133,
- 74,291,75,70,224,235,133,3,194,173,
- 194,194,194,194,178,231,160,142,132,131,
- 13,134,67,313,3,194,44,134,44,231,
- 173,153,153,151,151,151,159,159,159,159,
- 158,158,162,161,161,164,163,165,173,167,
- 133,317,82,80,1,173,10,88,86,84,
- 83,78,85,87,81,79,63,77,231,70,
- 133,133,133,75,75,133,224,133,75,75,
- 70,135,70,74,75,171,247,171,154,330,
- 236,26,134,241,133,72,72,72,72,200,
- 273,134,178,217,3,314,179,166,134,196,
- 178,74,298,121,10,74,226,74,3,3,
- 3,203,3,130,173,130,195,324,233,307,
- 247,171,70,134,26,331,196,160,241,3,
- 3,3,3,132,131,178,44,194,133,133,
- 232,8,44,3,74,238,179,238,319,152,
- 78,238,133,202,70,133,72,196,134,134,
- 133,160,173,173,173,173,3,3,200,160,
- 277,280,67,197,4,130,132,92,335,179,
- 160,198,160,318,133,3,160,298,202,10,
- 64,43,196,196,233,133,231,231,132,133,
- 3,67,173,4,160,160,133,75,203,172,
- 283,173,3,244,133,233,277,231,226,124,
- 316,160,336,75,133,160,70
+ 0,315,65,5,133,182,217,44,31,63,
+ 240,63,295,343,286,6,7,5,287,268,
+ 288,259,289,59,290,291,131,13,134,297,
+ 133,3,4,139,138,10,8,131,134,190,
+ 44,62,40,176,241,130,134,134,3,3,
+ 3,3,176,329,292,171,324,292,171,62,
+ 134,197,178,177,77,133,285,199,193,190,
+ 133,263,296,225,171,134,194,199,62,62,
+ 179,67,3,70,71,131,130,197,178,3,
+ 62,72,133,176,133,176,75,197,197,344,
+ 40,274,3,342,1,40,133,178,245,132,
+ 131,134,130,176,134,133,178,44,4,133,
+ 298,73,171,67,225,171,134,3,75,69,
+ 199,178,11,133,133,133,67,67,201,133,
+ 133,133,238,133,134,241,135,73,159,3,
+ 69,340,311,3,328,134,180,237,63,44,
+ 65,182,331,132,131,246,171,246,197,176,
+ 133,197,269,179,54,46,49,51,47,13,
+ 142,3,134,50,45,8,39,38,11,12,
+ 42,41,146,151,158,153,161,160,163,162,
+ 165,164,167,64,168,272,201,277,201,298,
+ 176,307,134,308,227,168,178,166,133,176,
+ 267,171,171,194,133,269,269,225,242,243,
+ 152,244,309,44,13,43,238,238,197,11,
+ 1,69,159,3,1,178,133,246,246,133,
+ 133,201,133,293,130,294,133,3,230,229,
+ 3,62,62,62,62,134,3,195,173,133,
+ 70,71,178,3,132,108,122,3,67,93,
+ 94,39,38,96,95,11,98,97,72,62,
+ 90,91,12,100,99,102,101,103,119,118,
+ 117,116,115,114,113,112,111,110,75,109,
+ 104,69,4,299,133,69,197,3,284,133,
+ 176,11,200,159,75,236,199,3,133,69,
+ 69,72,62,245,245,241,1,341,201,330,
+ 73,250,199,131,248,171,133,133,73,293,
+ 75,69,225,236,133,3,195,173,195,195,
+ 195,195,178,232,159,142,132,131,13,134,
+ 67,316,3,195,44,134,44,232,173,153,
+ 153,151,151,151,160,160,160,160,158,158,
+ 162,161,161,164,163,165,173,167,133,320,
+ 82,80,1,173,9,88,86,84,83,78,
+ 85,87,81,79,63,77,232,69,133,133,
+ 133,75,75,133,225,133,75,75,69,135,
+ 69,73,75,171,248,171,154,333,237,26,
+ 134,242,133,72,72,72,72,201,275,134,
+ 178,218,3,317,179,166,134,197,178,73,
+ 300,121,9,73,227,73,3,3,3,204,
+ 3,130,173,130,196,327,234,309,248,171,
+ 69,134,26,334,197,159,242,3,3,3,
+ 3,132,131,178,44,195,133,133,233,8,
+ 44,3,73,239,179,239,322,152,78,239,
+ 133,203,69,133,72,197,134,134,133,159,
+ 173,173,173,173,3,3,201,159,279,282,
+ 67,198,4,130,132,92,338,179,159,199,
+ 159,321,133,3,159,300,203,9,64,43,
+ 197,197,234,133,232,232,132,133,3,67,
+ 173,4,159,159,133,75,204,172,285,173,
+ 3,245,133,234,279,232,227,124,319,159,
+ 339,75,133,159,69
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -2910,7 +2935,8 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
"q",
"word",
"extended_decl_modifier_seq",
- "extended_decl_modifier"
+ "extended_decl_modifier",
+ "extended_asm_param"
};
};
public final static String name[] = Name.name;
@@ -2928,20 +2954,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym
public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
public final static int
- NUM_STATES = 577,
+ NUM_STATES = 585,
NT_OFFSET = 129,
- LA_STATE_OFFSET = 6855,
+ LA_STATE_OFFSET = 6930,
MAX_LA = 2147483647,
- NUM_RULES = 576,
- NUM_NONTERMINALS = 215,
- NUM_SYMBOLS = 344,
+ NUM_RULES = 584,
+ NUM_NONTERMINALS = 218,
+ NUM_SYMBOLS = 347,
SEGMENT_SIZE = 8192,
- START_STATE = 4204,
+ START_STATE = 3981,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 123,
EOLT_SYMBOL = 123,
- ACCEPT_ACTION = 5766,
- ERROR_ACTION = 6279;
+ ACCEPT_ACTION = 5833,
+ ERROR_ACTION = 6346;
public final static boolean BACKTRACK = true;
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java
index 69e2d757d7..07d5ea5d15 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java
@@ -27,7 +27,7 @@ public interface GPPParsersym {
TK_const_cast = 46,
TK_continue = 81,
TK_default = 82,
- TK_delete = 68,
+ TK_delete = 70,
TK_do = 83,
TK_double = 16,
TK_dynamic_cast = 47,
@@ -47,8 +47,8 @@ public interface GPPParsersym {
TK_long = 19,
TK_mutable = 34,
TK_namespace = 63,
- TK_new = 69,
- TK_operator = 9,
+ TK_new = 71,
+ TK_operator = 10,
TK_private = 105,
TK_protected = 106,
TK_public = 107,
@@ -75,7 +75,7 @@ public interface GPPParsersym {
TK_using = 65,
TK_virtual = 26,
TK_void = 23,
- TK_volatile = 28,
+ TK_volatile = 27,
TK_wchar_t = 24,
TK_while = 78,
TK_integer = 55,
@@ -84,7 +84,7 @@ public interface GPPParsersym {
TK_stringlit = 40,
TK_identifier = 1,
TK_Completion = 2,
- TK_EndOfCompletion = 10,
+ TK_EndOfCompletion = 9,
TK_Invalid = 125,
TK_LeftBracket = 67,
TK_LeftParen = 3,
@@ -115,7 +115,7 @@ public interface GPPParsersym {
TK_AndAnd = 103,
TK_OrOr = 104,
TK_Question = 109,
- TK_Colon = 74,
+ TK_Colon = 73,
TK_ColonColon = 4,
TK_DotDotDot = 92,
TK_Assign = 75,
@@ -129,12 +129,12 @@ public interface GPPParsersym {
TK_AndAssign = 117,
TK_CaretAssign = 118,
TK_OrAssign = 119,
- TK_Comma = 70,
+ TK_Comma = 69,
TK_RightBracket = 120,
- TK_RightParen = 71,
+ TK_RightParen = 68,
TK_RightBrace = 76,
- TK_SemiColon = 27,
- TK_LeftBrace = 73,
+ TK_SemiColon = 28,
+ TK_LeftBrace = 74,
TK_typeof = 126,
TK___alignof__ = 127,
TK_MAX = 128,
@@ -155,8 +155,8 @@ public interface GPPParsersym {
"__attribute__",
"__declspec",
"Tilde",
- "operator",
"EndOfCompletion",
+ "operator",
"Star",
"And",
"typename",
@@ -173,8 +173,8 @@ public interface GPPParsersym {
"wchar_t",
"const",
"virtual",
- "SemiColon",
"volatile",
+ "SemiColon",
"auto",
"explicit",
"extern",
@@ -214,13 +214,13 @@ public interface GPPParsersym {
"using",
"ERROR_TOKEN",
"LeftBracket",
+ "RightParen",
+ "Comma",
"delete",
"new",
- "Comma",
- "RightParen",
"GT",
- "LeftBrace",
"Colon",
+ "LeftBrace",
"Assign",
"RightBrace",
"try",
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 1c7ed62675..142b48121a 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java
@@ -23,6 +23,7 @@ import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier;
import org.eclipse.cdt.core.dom.lrparser.IParser;
import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTDeclSpecifier;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
@@ -48,8 +49,8 @@ public class UPCParserAction extends C99BuildASTParserAction {
* @param parser
* @param tu
*/
- public UPCParserAction(UPCASTNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu) {
- super(nodeFactory, parser, tu);
+ public UPCParserAction(UPCASTNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
+ super(nodeFactory, parser, tu, astStack);
this.nodeFactory = nodeFactory;
nodeFactory.setUseC99SizeofExpressions();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java
index f49d243203..24d399d1dd 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -172,13 +173,16 @@ public class UPCExpressionParser extends PrsStream implements RuleAction , IPars
private UPCParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public UPCExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
+ action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -206,13 +210,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -774,25 +777,25 @@ public UPCExpressionParser(String[] mapFrom) { // constructor
//
// Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 159: { action. consumeDeclSpecToken(); break;
+ case 159: { action. consumeToken(); break;
}
//
// Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 165: { action. consumeDeclSpecToken(); break;
+ case 165: { action. consumeToken(); break;
}
//
// Rule 178: typedef_name_in_declspec ::= Completion
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 178: { action. consumeToken(); break;
}
//
// Rule 179: typedef_name_in_declspec ::= identifier
//
- case 179: { action. consumeDeclSpecToken(); break;
+ case 179: { action. consumeToken(); break;
}
//
@@ -882,13 +885,13 @@ public UPCExpressionParser(String[] mapFrom) { // constructor
//
// Rule 215: type_qualifier ::= type_qualifier_token
//
- case 215: { action. consumeDeclSpecToken(); break;
+ case 215: { action. consumeToken(); break;
}
//
// Rule 219: function_specifier ::= inline
//
- case 219: { action. consumeDeclSpecToken(); break;
+ case 219: { action. consumeToken(); break;
}
//
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
index f62dca50f7..934912c416 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -172,13 +173,16 @@ public class UPCNoCastExpressionParser extends PrsStream implements RuleAction ,
private UPCParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public UPCNoCastExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
+ action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -206,13 +210,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -768,25 +771,25 @@ public UPCNoCastExpressionParser(String[] mapFrom) { // constructor
//
// Rule 158: storage_class_specifier ::= storage_class_specifier_token
//
- case 158: { action. consumeDeclSpecToken(); break;
+ case 158: { action. consumeToken(); break;
}
//
// Rule 164: simple_type_specifier ::= simple_type_specifier_token
//
- case 164: { action. consumeDeclSpecToken(); break;
+ case 164: { action. consumeToken(); break;
}
//
// Rule 177: typedef_name_in_declspec ::= Completion
//
- case 177: { action. consumeDeclSpecToken(); break;
+ case 177: { action. consumeToken(); break;
}
//
// Rule 178: typedef_name_in_declspec ::= identifier
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 178: { action. consumeToken(); break;
}
//
@@ -876,13 +879,13 @@ public UPCNoCastExpressionParser(String[] mapFrom) { // constructor
//
// Rule 214: type_qualifier ::= type_qualifier_token
//
- case 214: { action. consumeDeclSpecToken(); break;
+ case 214: { action. consumeToken(); break;
}
//
// Rule 218: function_specifier ::= inline
//
- case 218: { action. consumeDeclSpecToken(); break;
+ case 218: { action. consumeToken(); break;
}
//
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 625c6931b5..c04af564cc 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
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -172,13 +173,16 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo
private UPCParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public UPCParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
+ action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -206,13 +210,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -774,25 +777,25 @@ public UPCParser(String[] mapFrom) { // constructor
//
// Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 159: { action. consumeDeclSpecToken(); break;
+ case 159: { action. consumeToken(); break;
}
//
// Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 165: { action. consumeDeclSpecToken(); break;
+ case 165: { action. consumeToken(); break;
}
//
// Rule 178: typedef_name_in_declspec ::= Completion
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 178: { action. consumeToken(); break;
}
//
// Rule 179: typedef_name_in_declspec ::= identifier
//
- case 179: { action. consumeDeclSpecToken(); break;
+ case 179: { action. consumeToken(); break;
}
//
@@ -882,13 +885,13 @@ public UPCParser(String[] mapFrom) { // constructor
//
// Rule 215: type_qualifier ::= type_qualifier_token
//
- case 215: { action. consumeDeclSpecToken(); break;
+ case 215: { action. consumeToken(); break;
}
//
// Rule 219: function_specifier ::= inline
//
- case 219: { action. consumeDeclSpecToken(); break;
+ case 219: { action. consumeToken(); break;
}
//
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java
index b8f1bd78ba..a5d9262e76 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java
@@ -20,6 +20,7 @@ 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.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
@@ -172,13 +173,16 @@ public class UPCSizeofExpressionParser extends PrsStream implements RuleAction ,
private UPCParserAction action;
+private ScopedStack<Object> astStack = new ScopedStack<Object>();
public UPCSizeofExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
+ action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu, astStack);
action.setParserOptions(options);
+
+
}
@@ -206,13 +210,12 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
-
public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+ return (IASTNode) astStack.pop();
}
public String[] getOrderedTerminalSymbols() {
@@ -768,25 +771,25 @@ public UPCSizeofExpressionParser(String[] mapFrom) { // constructor
//
// Rule 158: storage_class_specifier ::= storage_class_specifier_token
//
- case 158: { action. consumeDeclSpecToken(); break;
+ case 158: { action. consumeToken(); break;
}
//
// Rule 164: simple_type_specifier ::= simple_type_specifier_token
//
- case 164: { action. consumeDeclSpecToken(); break;
+ case 164: { action. consumeToken(); break;
}
//
// Rule 177: typedef_name_in_declspec ::= Completion
//
- case 177: { action. consumeDeclSpecToken(); break;
+ case 177: { action. consumeToken(); break;
}
//
// Rule 178: typedef_name_in_declspec ::= identifier
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 178: { action. consumeToken(); break;
}
//
@@ -876,13 +879,13 @@ public UPCSizeofExpressionParser(String[] mapFrom) { // constructor
//
// Rule 214: type_qualifier ::= type_qualifier_token
//
- case 214: { action. consumeDeclSpecToken(); break;
+ case 214: { action. consumeToken(); break;
}
//
// Rule 218: function_specifier ::= inline
//
- case 218: { action. consumeDeclSpecToken(); break;
+ case 218: { action. consumeToken(); break;
}
//

Back to the top