Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser')
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml8
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g12
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g4
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g8
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g6
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCGrammar.g106
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g88
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g40
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g17
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPGrammar.g89
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g79
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g42
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g11
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java4
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java37
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java46
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java25
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java40
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java42
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java51
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java29
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java14
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java40
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java12
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java52
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java17
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java15
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java17
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java575
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java1277
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParsersym.java18
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java1077
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java3726
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java138
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java1073
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java3710
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java138
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java1073
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java3686
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java136
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java1073
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java3762
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java130
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java1069
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java3714
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java138
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java1077
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java3726
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java136
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java58
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java2385
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java170
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java1322
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParserprs.java1369
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParsersym.java224
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java1104
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java4615
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java214
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java2007
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java3039
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java280
65 files changed, 28933 insertions, 20269 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml b/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml
index 98ca77680a..f1a71b9c8d 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml
@@ -1,5 +1,5 @@
<!--
- Copyright (c) 2006, 2008 IBM Corporation and others.
+ Copyright (c) 2006, 2009 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
@@ -75,6 +75,9 @@
<antcall target="generate_gcc">
<param name="grammar_name" value="GCCParser"/>
</antcall>
+ <antcall target="generate_gcc">
+ <param name="grammar_name" value="GCCSizeofExpressionParser"/>
+ </antcall>
</target>
@@ -129,6 +132,9 @@
<antcall target="generate_gpp">
<param name="grammar_name" value="GPPParser"/>
</antcall>
+ <antcall target="generate_gpp">
+ <param name="grammar_name" value="GPPSizeofExpressionParser"/>
+ </antcall>
</target>
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 07e488b50f..b76e423454 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- Copyright (c) 2006, 2009 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
@@ -96,6 +96,7 @@ $Globals
/.
import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
+ import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
./
$End
@@ -104,6 +105,7 @@ $End
$Define
$build_action_class /. C99BuildASTParserAction ./
$node_factory_create_expression /. CNodeFactory.getDefault() ./
+ $parser_factory_create_expression /. C99SecondaryParserFactory.getDefault() ./
$End
@@ -186,7 +188,7 @@ postfix_expression
/. $Build consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); $EndBuild ./
| postfix_expression '--'
/. $Build consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); $EndBuild ./
- | '(' type_name ')' '{' <openscope-ast> initializer_list comma_opt '}'
+ | '(' type_id ')' '{' <openscope-ast> initializer_list comma_opt '}'
/. $Build consumeExpressionTypeIdInitializer(); $EndBuild ./
@@ -220,13 +222,13 @@ unary_expression
/. $Build consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); $EndBuild ./
| 'sizeof' unary_expression
/. $Build consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); $EndBuild ./
- | 'sizeof' '(' type_name ')'
+ | 'sizeof' '(' type_id ')'
/. $Build consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); $EndBuild ./
cast_expression
::= unary_expression
- | '(' type_name ')' cast_expression
+ | '(' type_id ')' cast_expression
/. $Build consumeExpressionCast(IASTCastExpression.op_cast); $EndBuild ./
@@ -845,7 +847,7 @@ complete_parameter_declarator
-- only used in expressions, eg) sizeof, casts etc...
-type_name
+type_id
::= specifier_qualifier_list
/. $Build consumeTypeId(false); $EndBuild ./
| specifier_qualifier_list abstract_declarator
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g
index 3d63ced995..a09c257f44 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- Copyright (c) 2006, 2009 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
@@ -18,7 +18,7 @@ $Import
$DropRules
cast_expression
- ::= '(' type_name ')' cast_expression
+ ::= '(' type_id ')' cast_expression
$End
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g
index a4f28e80ca..764953a5ad 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- Copyright (c) 2006, 2009 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
@@ -19,17 +19,17 @@ $Import
$DropRules
unary_expression
- ::= 'sizeof' '(' type_name ')'
+ ::= 'sizeof' '(' type_id ')'
$End
$Start
- no_sizeof_type_name_start
+ no_sizeof_type_id_start
$End
$Rules
- no_sizeof_type_name_start
+ no_sizeof_type_id_start
::= expression
| ERROR_TOKEN
/. $Build consumeExpressionProblem(); $EndBuild ./
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 0fdc046318..69a2b608f5 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g
@@ -1,5 +1,5 @@
----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- Copyright (c) 2006, 2009 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
@@ -103,6 +103,7 @@ $Globals
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.cpp.CPPSecondaryParserFactory;
./
$End
@@ -110,6 +111,7 @@ $End
$Define
$build_action_class /. CPPBuildASTParserAction ./
$node_factory_create_expression /. CPPNodeFactory.getDefault() ./
+ $parser_factory_create_expression /. CPPSecondaryParserFactory.getDefault() ./
$End
@@ -178,8 +180,6 @@ identifier_token
literal
::= 'integer'
/. $Build consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); $EndBuild ./
- | '0'
- /. $Build consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); $EndBuild ./
| 'floating'
/. $Build consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); $EndBuild ./
| 'charconst'
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g
index a98badc4ff..ac3994d60c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- Copyright (c) 2006, 2009 IBM Corporation and others.
-- All rights reserved. This program and the accompanying materials
-- are made available under the terms of the Eclipse Public License v1.0
-- which accompanies this distribution, and is available at
@@ -27,12 +27,12 @@ $DropRules
$End
$Start
- no_sizeof_type_name_start
+ no_sizeof_type_id_start
$End
$Rules
- no_sizeof_type_name_start
+ no_sizeof_type_id_start
::= expression
| ERROR_TOKEN
/. $Build consumeExpressionProblem(); $EndBuild ./
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCGrammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCGrammar.g
new file mode 100644
index 0000000000..a4e8a03f24
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCGrammar.g
@@ -0,0 +1,106 @@
+-----------------------------------------------------------------------------------
+-- Copyright (c) 2009 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
+-----------------------------------------------------------------------------------
+
+
+-- For this to work the environment variable LPG_INCLUDE must be set up
+-- to point at the directory where the C99Parser.g file is located.
+$Import
+ ../c99/C99Grammar.g
+$End
+
+$Import
+ ../gnu/GNUExtensions.g
+$End
+
+
+-- Tokens used by GCC but not part of the C99 spec
+$Terminals
+
+ asm
+
+$End
+
+
+$Globals
+/.
+ import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction;
+ import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory;
+./
+$End
+
+$Define
+
+ $gnu_action_class /. GCCBuildASTParserAction ./
+ $parser_factory_create_expression /. GCCSecondaryParserFactory.getDefault() ./
+
+$End
+
+
+$Rules
+
+
+declaration
+ ::= extended_asm_declaration
+
+
+no_type_declaration_specifier
+ ::= attribute_or_decl_specifier
+
+complete_declarator
+ ::= attribute_or_decl_specifier_seq declarator
+ | declarator attribute_or_decl_specifier_seq
+ | attribute_or_decl_specifier_seq declarator attribute_or_decl_specifier_seq
+
+complete_struct_declarator
+ ::= attribute_or_decl_specifier_seq struct_declarator
+ | struct_declarator attribute_or_decl_specifier_seq
+ | attribute_or_decl_specifier_seq struct_declarator attribute_or_decl_specifier_seq
+
+enum_specifier_hook
+ ::= attribute_or_decl_specifier_seq
+
+struct_or_union_specifier_hook
+ ::= attribute_or_decl_specifier_seq
+
+struct_or_union_specifier_suffix_hook
+ ::= attribute_or_decl_specifier_seq
+
+pointer_hook
+ ::= attribute_or_decl_specifier_seq
+
+elaborated_specifier_hook
+ ::= attribute_or_decl_specifier_seq
+
+
+
+
+
+-- GCC extensions to designated initializers
+
+designator_base
+ ::= field_name_designator
+ | array_range_designator
+
+field_name_designator
+ ::= identifier_token ':'
+ /. $BeginAction gnuAction.consumeDesignatorField(); $EndAction ./
+
+array_range_designator
+ ::= '[' constant_expression '...' constant_expression ']'
+ /. $BeginAction gnuAction.consumeDesignatorArray(); $EndAction ./
+
+designated_initializer
+ ::= <openscope-ast> field_name_designator initializer
+ /. $Build consumeInitializerDesignated(); $EndBuild ./
+
+
+
+$End \ No newline at end of file
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 422301e799..b93fb6a77c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- Copyright (c) 2008, 2009 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
@@ -14,89 +14,13 @@
%options template=FixedBtParserTemplateD.g
--- For this to work the environment variable LPG_INCLUDE must be set up
--- to point at the directory where the C99Parser.g file is located.
-$Import
- ../c99/C99Parser.g
-$End
+-- This file is needed because LPG won't allow redefinition of the
+-- start symbol, so C99Grammar.g cannot define a start symbol.
$Import
- ../gnu/GNUExtensions.g
-$End
-
-
--- Tokens used by GCC but not part of the C99 spec
-$Terminals
-
- asm
-
-$End
-
-
-$Globals
-/.
- import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction;
-./
+ GCCGrammar.g
$End
-$Define
-
- $gnu_action_class /. GCCBuildASTParserAction ./
-
-$End
-
-
-$Rules
-
-
-declaration
- ::= extended_asm_declaration
-
-
-no_type_declaration_specifier
- ::= attribute_or_decl_specifier
-
-complete_declarator
- ::= attribute_or_decl_specifier_seq declarator
- | declarator attribute_or_decl_specifier_seq
- | attribute_or_decl_specifier_seq declarator attribute_or_decl_specifier_seq
-
-complete_struct_declarator
- ::= attribute_or_decl_specifier_seq struct_declarator
- | struct_declarator attribute_or_decl_specifier_seq
- | attribute_or_decl_specifier_seq struct_declarator attribute_or_decl_specifier_seq
-
-enum_specifier_hook
- ::= attribute_or_decl_specifier_seq
-
-struct_or_union_specifier_hook
- ::= attribute_or_decl_specifier_seq
-
-struct_or_union_specifier_suffix_hook
- ::= attribute_or_decl_specifier_seq
-
-pointer_hook
- ::= attribute_or_decl_specifier_seq
-
-elaborated_specifier_hook
- ::= attribute_or_decl_specifier_seq
-
-
-
-
-
-
-
-designator_base
- ::= identifier_token ':'
- /. $BeginAction gnuAction.consumeDesignatorField(); $EndAction ./
- | '[' constant_expression '...' constant_expression ']'
- /. $BeginAction gnuAction.consumeDesignatorArray(); $EndAction ./
-
-
-
-
-
-
-
+$Start
+ translation_unit
$End \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g
new file mode 100644
index 0000000000..36eac42269
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g
@@ -0,0 +1,40 @@
+-----------------------------------------------------------------------------------
+-- Copyright (c) 2009 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
+-----------------------------------------------------------------------------------
+
+%options la=2
+%options package=org.eclipse.cdt.internal.core.dom.lrparser.gcc
+%options template=FixedBtParserTemplateD.g
+
+
+$Import
+ GCCGrammar.g
+$DropRules
+
+ unary_expression
+ ::= 'sizeof' '(' type_id ')'
+ | '__alignof__' '(' type_id ')'
+ | 'typeof' '(' type_id ')'
+
+$End
+
+
+$Start
+ no_sizeof_type_name_start
+$End
+
+$Rules
+
+ no_sizeof_type_name_start
+ ::= expression
+ | ERROR_TOKEN
+ /. $Build consumeExpressionProblem(); $EndBuild ./
+
+$End \ No newline at end of file
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 9690df45e4..b7acd7c967 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- Copyright (c) 2008, 2009 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
@@ -40,7 +40,7 @@ $Define
$action_initializations /.
- gnuAction = new $gnu_action_class ($node_factory_create_expression, this, tu, astStack);
+ gnuAction = new $gnu_action_class (this, tu, astStack, $node_factory_create_expression);
gnuAction.setParserOptions(options);
./
@@ -135,5 +135,18 @@ extended_asm_param
| 'stringlit' '(' '*' 'identifier' ')'
+
+unary_expression
+ ::= '__alignof__' unary_expression
+ /. $Build consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); $EndBuild ./
+ | '__alignof__' '(' type_id ')'
+ /. $Build consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); $EndBuild ./
+ | 'typeof' unary_expression
+ /. $Build consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); $EndBuild ./
+ | 'typeof' '(' type_id ')'
+ /. $Build consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); $EndBuild ./
+
+
+
$End
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPGrammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPGrammar.g
new file mode 100644
index 0000000000..ad1d14a61e
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPGrammar.g
@@ -0,0 +1,89 @@
+-----------------------------------------------------------------------------------
+-- Copyright (c) 2009 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
+-----------------------------------------------------------------------------------
+
+%options la=2
+%options package=org.eclipse.cdt.internal.core.dom.lrparser.gpp
+%options template=FixedBtParserTemplateD.g
+
+
+-- For this to work the environment variable LPG_INCLUDE must be set up
+-- to point at the directory where the CPPParser.g file is located.
+$Import
+ ../cpp/CPPGrammar.g
+
+$DropRules
+
+-- will be replaced by extended asm syntax
+asm_definition
+ ::= 'asm' '(' 'stringlit' ')' ';'
+
+
+$End
+
+
+$Import
+ ../gnu/GNUExtensions.g
+$End
+
+$Globals
+/.
+ import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
+ import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory;
+./
+$End
+
+$Define
+
+ $gnu_action_class /. GNUBuildASTParserAction ./
+ $parser_factory_create_expression /. GPPSecondaryParserFactory.getDefault() ./
+
+$End
+
+$Rules
+
+
+asm_definition
+ ::= extended_asm_declaration
+
+
+no_type_declaration_specifier
+ ::= attribute_or_decl_specifier
+
+complete_declarator
+ ::= attribute_or_decl_specifier_seq declarator
+ | declarator attribute_or_decl_specifier_seq
+ | attribute_or_decl_specifier_seq declarator attribute_or_decl_specifier_seq
+
+member_declarator_complete
+ ::= attribute_or_decl_specifier_seq member_declarator_complete
+ | member_declarator_complete attribute_or_decl_specifier_seq
+ | attribute_or_decl_specifier_seq member_declarator_complete attribute_or_decl_specifier_seq
+
+enum_specifier_hook
+ ::= attribute_or_decl_specifier_seq
+
+composite_specifier_hook
+ ::= attribute_or_decl_specifier_seq
+
+class_name_suffix_hook
+ ::= attribute_or_decl_specifier_seq
+
+pointer_hook
+ ::= attribute_or_decl_specifier_seq
+
+declarator
+ ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
+ /. $Build consumeDeclaratorWithPointer(true); $EndBuild ./
+
+elaborated_specifier_hook
+ ::= attribute_or_decl_specifier_seq
+
+$End \ No newline at end of file
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 0939288b92..22c2ad79dc 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g
@@ -1,87 +1,26 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2008 IBM Corporation and others.
+----------------------------------------------------------------------------------
+-- Copyright (c) 2008, 2009 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
+-- http://www.eclipse.org/legal/epl_v10.html
--
-- Contributors:
-- IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
+----------------------------------------------------------------------------------
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.lrparser.gpp
%options template=FixedBtParserTemplateD.g
--- For this to work the environment variable LPG_INCLUDE must be set up
--- 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
-
+-- This file is needed because LPG won't allow redefinition of the
+-- start symbol, so CPPGrammar.g cannot define a start symbol.
$Import
- ../gnu/GNUExtensions.g
+ GPPGrammar.g
$End
-$Globals
-/.
- import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
-./
-$End
-
-$Define
-
- $gnu_action_class /. GNUBuildASTParserAction ./
-
-$End
-
-$Rules
-
-
-asm_definition
- ::= extended_asm_declaration
-
-
-no_type_declaration_specifier
- ::= attribute_or_decl_specifier
-
-complete_declarator
- ::= attribute_or_decl_specifier_seq declarator
- | declarator attribute_or_decl_specifier_seq
- | attribute_or_decl_specifier_seq declarator attribute_or_decl_specifier_seq
-
-member_declarator_complete
- ::= attribute_or_decl_specifier_seq member_declarator_complete
- | member_declarator_complete attribute_or_decl_specifier_seq
- | attribute_or_decl_specifier_seq member_declarator_complete attribute_or_decl_specifier_seq
-
-enum_specifier_hook
- ::= attribute_or_decl_specifier_seq
-
-composite_specifier_hook
- ::= attribute_or_decl_specifier_seq
-
-class_name_suffix_hook
- ::= attribute_or_decl_specifier_seq
-
-pointer_hook
- ::= attribute_or_decl_specifier_seq
-
-declarator
- ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
- /. $Build consumeDeclaratorWithPointer(true); $EndBuild ./
-
-elaborated_specifier_hook
- ::= attribute_or_decl_specifier_seq
-
+$Start
+ translation_unit
$End \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g
new file mode 100644
index 0000000000..285a239138
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g
@@ -0,0 +1,42 @@
+-----------------------------------------------------------------------------------
+-- Copyright (c) 2009 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
+-----------------------------------------------------------------------------------
+
+%options la=2
+%options package=org.eclipse.cdt.internal.core.dom.lrparser.gpp
+%options template=FixedBtParserTemplateD.g
+
+
+$Import
+ GPPGrammar.g
+$DropRules
+
+ unary_expression
+ ::= 'sizeof' '(' type_id ')'
+ | '__alignof__' '(' type_id ')'
+ | 'typeof' '(' type_id ')'
+
+ postfix_expression
+ ::= 'typeid' '(' type_id ')'
+
+$End
+
+$Start
+ no_sizeof_type_id_start
+$End
+
+$Rules
+
+ no_sizeof_type_id_start
+ ::= expression
+ | ERROR_TOKEN
+ /. $Build consumeExpressionProblem(); $EndBuild ./
+
+$End \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g
index bc5892463c..4293508126 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/FixedBtParserTemplateD.g
@@ -1,5 +1,5 @@
----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- Copyright (c) 2006, 2009 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
@@ -320,7 +320,8 @@ $Define
$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
+ $node_factory_create_expression /. ./ -- expression that will create the INodeFactory
+ $parser_factory_create_expression /. ./ -- expression that will create the ISecondaryParserFactory
$action_initializations /. ./
@@ -349,7 +350,7 @@ $Headers
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new $build_action_class($node_factory_create_expression, this, tu, astStack);
+ action = new $build_action_class(this, tu, astStack, $node_factory_create_expression, $parser_factory_create_expression);
action.setParserOptions(options);
$action_initializations
@@ -422,8 +423,8 @@ $Headers
addToken(new Token(null, 0, 0, $sym_type.TK_EOF_TOKEN));
}
- public $action_type(String[] mapFrom) { // constructor
- tokenMap = new TokenMap($sym_type.orderedTerminalSymbols, mapFrom);
+ public $action_type(IParserActionTokenProvider parser) { // constructor
+ tokenMap = new TokenMap($sym_type.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java
index 61ffd482da..3ccb1b18c2 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * Copyright (c) 2006, 2009 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
@@ -37,6 +37,8 @@ public interface IParser extends ITokenCollector {
* The LR parsers do not actually skip the parsing of function bodies,
* but this option does have the effect of not generating AST nodes
* for function bodies.
+ *
+ * TODO Implement this
*/
//OPTION_SKIP_FUNCTION_BODIES,
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 401388ec4d..d66e66389c 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * Copyright (c) 2006, 2009 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
@@ -91,6 +91,9 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
/** Abstract factory for creating AST node objects */
private final INodeFactory nodeFactory;
+ /** Abstract factory for creating secondary parsers */
+ private final ISecondaryParserFactory parserFactory;
+
/**
* Returns true if the token is an identifier.
@@ -98,39 +101,23 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
protected abstract boolean isIdentifierToken(IToken token);
- /**
- * Get the parser that will recognize expressions.
- */
- protected abstract IParser getExpressionParser();
-
-
- /**
- * Expression parser that does not recognize cast expressions,
- * used to disambiguate casts.
- */
- protected abstract IParser getNoCastExpressionParser();
-
-
- /**
- * Expression parser that treats all sizeof and typeid expressions
- * as unary expressions.
- */
- protected abstract IParser getSizeofExpressionParser();
-
-
+
/**
* 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 BuildASTParserAction(INodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
+ public BuildASTParserAction(IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack, INodeFactory nodeFactory, ISecondaryParserFactory parserFactory) {
super(parser, tu, astStack);
if(nodeFactory == null)
throw new NullPointerException("nodeFactory is null"); //$NON-NLS-1$
+ if(parserFactory == null)
+ throw new NullPointerException("parserFactory is null"); //$NON-NLS-1$
this.nodeFactory = nodeFactory;
+ this.parserFactory = parserFactory;
}
@@ -188,7 +175,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
List<IToken> expressionTokens = parser.getRuleTokens();
expressionTokens = expressionTokens.subList(0, expressionTokens.size()-1); // remove the semicolon at the end
- IParser expressionParser = getExpressionParser();
+ IParser expressionParser = parserFactory.getExpressionParser(parser);
IASTExpression expr = (IASTExpression) runSecondaryParser(expressionParser, expressionTokens);
if(expr != null && !(expr instanceof IASTProblemExpression)) { // the parse may fail
@@ -365,7 +352,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
IASTNode alternateExpr = null;
if(operator == IASTCastExpression.op_cast) { // don't reparse for dynamic_cast etc as those are not ambiguous
// try parsing as non-cast to resolve ambiguities
- IParser secondaryParser = getNoCastExpressionParser();
+ IParser secondaryParser = parserFactory.getNoCastExpressionParser(parser);
alternateExpr = runSecondaryParser(secondaryParser);
}
@@ -405,7 +392,7 @@ public abstract class BuildASTParserAction extends AbstractParserAction {
setOffsetAndLength(expr);
// try parsing as an expression to resolve ambiguities
- IParser secondaryParser = getSizeofExpressionParser();
+ IParser secondaryParser = parserFactory.getSizeofExpressionParser(parser);
IASTNode alternateExpr = runSecondaryParser(secondaryParser);
if(alternateExpr == null || alternateExpr instanceof IASTProblemExpression)
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java
new file mode 100644
index 0000000000..cf02851234
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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
+ *******************************************************************************/
+package org.eclipse.cdt.core.dom.lrparser.action;
+
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+
+
+/**
+ * Some ambiguities are resolved by spawning a secondary parser
+ * to re-parse a sequence of tokens using a modified grammar.
+ * This factory is used to create these secondary parsers.
+ *
+ * @author Mike Kucera
+ */
+public interface ISecondaryParserFactory {
+
+
+ /**
+ * Get the parser that will recognize expressions.
+ */
+ IParser getExpressionParser(IParserActionTokenProvider parser);
+
+
+ /**
+ * Expression parser that does not recognize cast expressions,
+ * used to disambiguate casts.
+ */
+ IParser getNoCastExpressionParser(IParserActionTokenProvider parser);
+
+
+ /**
+ * Expression parser that treats all sizeof and typeid expressions
+ * as unary expressions.
+ */
+ IParser getSizeofExpressionParser(IParserActionTokenProvider parser);
+
+}
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 825794313e..400e84ad13 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * Copyright (c) 2006, 2009 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
@@ -62,18 +62,15 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTTypeIdInitializerExpression;
import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier;
import org.eclipse.cdt.core.dom.ast.c.ICNodeFactory;
import org.eclipse.cdt.core.dom.ast.gnu.c.ICASTKnRFunctionDeclarator;
-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.ISecondaryParserFactory;
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.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousExpression;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousStatement;
@@ -98,8 +95,8 @@ 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, ScopedStack<Object> astStack) {
- super(nodeFactory, parser, tu, astStack);
+ public C99BuildASTParserAction(IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack, ICNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) {
+ super(parser, tu, astStack, nodeFactory, parserFactory);
this.nodeFactory = nodeFactory;
this.tokenMap = new TokenMap(C99Parsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
@@ -121,20 +118,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
return baseKind(token) == TK_identifier;
}
- @Override
- protected IParser getExpressionParser() {
- return new C99ExpressionParser(parser.getOrderedTerminalSymbols());
- }
-
- @Override
- protected IParser getNoCastExpressionParser() {
- return new C99NoCastExpressionParser(parser.getOrderedTerminalSymbols());
- }
-
- @Override
- protected IParser getSizeofExpressionParser() {
- return new C99SizeofExpressionParser(parser.getOrderedTerminalSymbols());
- }
@Override
protected IASTName createName(char[] image) {
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java
new file mode 100644
index 0000000000..6f9127c7a1
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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
+ *******************************************************************************/
+package org.eclipse.cdt.core.dom.lrparser.action.c99;
+
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
+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.C99SizeofExpressionParser;
+
+public class C99SecondaryParserFactory implements ISecondaryParserFactory {
+
+ public static final C99SecondaryParserFactory DEFAULT_INSTANCE = new C99SecondaryParserFactory();
+
+ public static C99SecondaryParserFactory getDefault() {
+ return DEFAULT_INSTANCE;
+ }
+
+
+ public IParser getExpressionParser(IParserActionTokenProvider parser) {
+ return new C99ExpressionParser(parser);
+ }
+
+ public IParser getNoCastExpressionParser(IParserActionTokenProvider parser) {
+ return new C99NoCastExpressionParser(parser);
+ }
+
+ public IParser getSizeofExpressionParser(IParserActionTokenProvider parser) {
+ return new C99SizeofExpressionParser(parser);
+ }
+} \ 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 a80fead2b3..946ef39396 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * Copyright (c) 2006, 2009 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
@@ -145,12 +145,7 @@ 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;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoFunctionDeclaratorParser;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPSizeofExpressionParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPTemplateTypeParameterParser;
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;
@@ -177,6 +172,8 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
/** Used to create the AST node objects */
protected final ICPPNodeFactory nodeFactory;
+ protected final ICPPSecondaryParserFactory parserFactory;
+
/** Stack that provides easy access to the current class name, used to disambiguate declarators. */
protected final LinkedList<IASTName> classNames = new LinkedList<IASTName>();
@@ -186,10 +183,11 @@ 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, ScopedStack<Object> astStack) {
- super(nodeFactory, parser, tu, astStack);
+ public CPPBuildASTParserAction(IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack, ICPPNodeFactory nodeFactory, ICPPSecondaryParserFactory parserFactory) {
+ super(parser, tu, astStack, nodeFactory, parserFactory);
this.nodeFactory = nodeFactory;
+ this.parserFactory = parserFactory;
this.tokenMap = new TokenMap(CPPParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
@@ -213,28 +211,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
return nodeFactory.newName(image);
}
- @Override
- protected IParser getExpressionParser() {
- return new CPPExpressionParser(parser.getOrderedTerminalSymbols());
- }
-
- @Override
- protected IParser getNoCastExpressionParser() {
- return new CPPNoCastExpressionParser(parser.getOrderedTerminalSymbols());
- }
-
- @Override
- protected IParser getSizeofExpressionParser() {
- return new CPPSizeofExpressionParser(parser.getOrderedTerminalSymbols());
- }
-
- protected IParser getTemplateTypeParameterParser() {
- return new CPPTemplateTypeParameterParser(parser.getOrderedTerminalSymbols());
- }
-
- protected IParser getNoFunctionDeclaratorParser() {
- return new CPPNoFunctionDeclaratorParser(parser.getOrderedTerminalSymbols());
- }
public void consumeNewInitializer() {
@@ -481,7 +457,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
*/
public void consumeTemplateArgumentTypeId() {
// TODO is this necessary? It should be able to tell if it looks like an id expression
- IParser secondaryParser = getExpressionParser();
+ IParser secondaryParser = parserFactory.getExpressionParser(parser);
IASTNode result = runSecondaryParser(secondaryParser);
// The grammar rule allows assignment_expression, but the ambiguity
@@ -1383,7 +1359,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
if(!(declarator instanceof IASTFunctionDeclarator))
return;
- IParser secondaryParser = getNoFunctionDeclaratorParser();
+ IParser secondaryParser = parserFactory.getNoFunctionDeclaratorParser(parser);
IASTNode notFunctionDeclarator = runSecondaryParser(secondaryParser);
if(notFunctionDeclarator == null || notFunctionDeclarator instanceof IASTProblemDeclaration)
@@ -1792,7 +1768,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
* Yes its a hack.
*/
public void consumeTemplateParamterDeclaration() {
- IParser typeParameterParser = getTemplateTypeParameterParser();
+ IParser typeParameterParser = parserFactory.getTemplateTypeParameterParser(parser);
IASTNode alternate = runSecondaryParser(typeParameterParser);
if(alternate == null || alternate instanceof IASTProblemDeclaration)
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java
new file mode 100644
index 0000000000..f5e109bda2
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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
+ *******************************************************************************/
+package org.eclipse.cdt.core.dom.lrparser.action.cpp;
+
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser;
+import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser;
+import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoFunctionDeclaratorParser;
+import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPSizeofExpressionParser;
+import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPTemplateTypeParameterParser;
+
+public class CPPSecondaryParserFactory implements ICPPSecondaryParserFactory {
+
+
+ private static final CPPSecondaryParserFactory DEFAULT_INSTANCE = new CPPSecondaryParserFactory();
+
+ public static CPPSecondaryParserFactory getDefault() {
+ return DEFAULT_INSTANCE;
+ }
+
+
+ public IParser getTemplateTypeParameterParser(IParserActionTokenProvider parser) {
+ return new CPPTemplateTypeParameterParser(parser);
+ }
+
+ public IParser getNoFunctionDeclaratorParser(IParserActionTokenProvider parser) {
+ return new CPPNoFunctionDeclaratorParser(parser);
+ }
+
+ public IParser getExpressionParser(IParserActionTokenProvider parser) {
+ return new CPPExpressionParser(parser);
+ }
+
+ public IParser getNoCastExpressionParser(IParserActionTokenProvider parser) {
+ return new CPPNoCastExpressionParser(parser);
+ }
+
+ public IParser getSizeofExpressionParser(IParserActionTokenProvider parser) {
+ return new CPPSizeofExpressionParser(parser);
+ }
+
+}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java
new file mode 100644
index 0000000000..84f31f9ccf
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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
+ *******************************************************************************/
+package org.eclipse.cdt.core.dom.lrparser.action.cpp;
+
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
+
+
+/**
+ * Secondary parsers for resolving ambiguities specific to C++.
+ *
+ * @author Mike Kucera
+ */
+public interface ICPPSecondaryParserFactory extends ISecondaryParserFactory {
+
+ IParser getTemplateTypeParameterParser(IParserActionTokenProvider parser);
+
+ IParser getNoFunctionDeclaratorParser(IParserActionTokenProvider parser);
+
+}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java
index ae6c01b509..497068be60 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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
+ *******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action.gnu;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
@@ -13,8 +23,8 @@ public class GCCBuildASTParserAction extends GNUBuildASTParserAction {
private final ICNodeFactory nodeFactory;
- public GCCBuildASTParserAction(ICNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
- super(nodeFactory, parser, tu, astStack);
+ public GCCBuildASTParserAction(IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack, ICNodeFactory nodeFactory) {
+ super(parser, tu, astStack, nodeFactory);
this.nodeFactory = nodeFactory;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java
new file mode 100644
index 0000000000..62c3cfc4b3
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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
+ *******************************************************************************/
+package org.eclipse.cdt.core.dom.lrparser.action.gnu;
+
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
+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.gcc.GCCSizeofExpressionParser;
+
+public class GCCSecondaryParserFactory implements ISecondaryParserFactory {
+
+ public static final GCCSecondaryParserFactory DEFAULT_INSTANCE = new GCCSecondaryParserFactory();
+
+ public static GCCSecondaryParserFactory getDefault() {
+ return DEFAULT_INSTANCE;
+ }
+
+
+ public IParser getExpressionParser(IParserActionTokenProvider parser) {
+ return new C99ExpressionParser(parser);
+ }
+
+ public IParser getNoCastExpressionParser(IParserActionTokenProvider parser) {
+ return new C99NoCastExpressionParser(parser);
+ }
+
+ public IParser getSizeofExpressionParser(IParserActionTokenProvider parser) {
+ return new GCCSizeofExpressionParser(parser);
+ }
+} \ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java
index e68ec83abf..40d1ed867e 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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
+ *******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action.gnu;
import java.util.List;
@@ -20,7 +30,7 @@ public class GNUBuildASTParserAction extends AbstractParserAction {
private final TokenMap tokenMap;
- public GNUBuildASTParserAction(INodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack) {
+ public GNUBuildASTParserAction(IParserActionTokenProvider parser, IASTTranslationUnit tu, ScopedStack<Object> astStack, INodeFactory nodeFactory) {
super(parser, tu, astStack);
this.nodeFactory = nodeFactory;
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java
new file mode 100644
index 0000000000..50368557b6
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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
+ *******************************************************************************/
+package org.eclipse.cdt.core.dom.lrparser.action.gnu;
+
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.cpp.ICPPSecondaryParserFactory;
+import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser;
+import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser;
+import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoFunctionDeclaratorParser;
+import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPTemplateTypeParameterParser;
+import org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPSizeofExpressionParser;
+
+public class GPPSecondaryParserFactory implements ICPPSecondaryParserFactory {
+
+
+ private static final GPPSecondaryParserFactory DEFAULT_INSTANCE = new GPPSecondaryParserFactory();
+
+ public static GPPSecondaryParserFactory getDefault() {
+ return DEFAULT_INSTANCE;
+ }
+
+
+ public IParser getTemplateTypeParameterParser(IParserActionTokenProvider parser) {
+ return new CPPTemplateTypeParameterParser(parser);
+ }
+
+ public IParser getNoFunctionDeclaratorParser(IParserActionTokenProvider parser) {
+ return new CPPNoFunctionDeclaratorParser(parser);
+ }
+
+ public IParser getExpressionParser(IParserActionTokenProvider parser) {
+ return new CPPExpressionParser(parser);
+ }
+
+ public IParser getNoCastExpressionParser(IParserActionTokenProvider parser) {
+ return new CPPNoCastExpressionParser(parser);
+ }
+
+ public IParser getSizeofExpressionParser(IParserActionTokenProvider parser) {
+ return new GPPSizeofExpressionParser(parser);
+ }
+
+}
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 22f5f9a489..5b63944e07 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
@@ -27,6 +27,7 @@ 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.c99.C99SecondaryParserFactory;
public class C99ExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
{
@@ -172,7 +173,7 @@ public C99ExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack);
+ action = new C99BuildASTParserAction (this, tu, astStack, CNodeFactory.getDefault() , C99SecondaryParserFactory.getDefault() );
action.setParserOptions(options);
@@ -234,8 +235,8 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, C99ExpressionParsersym.TK_EOF_TOKEN));
}
-public C99ExpressionParser(String[] mapFrom) { // constructor
- tokenMap = new TokenMap(C99ExpressionParsersym.orderedTerminalSymbols, mapFrom);
+public C99ExpressionParser(IParserActionTokenProvider parser) { // constructor
+ tokenMap = new TokenMap(C99ExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
@@ -324,7 +325,7 @@ public C99ExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 26: postfix_expression ::= ( type_name ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 26: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
//
case 26: { action. consumeExpressionTypeIdInitializer(); break;
}
@@ -384,13 +385,13 @@ public C99ExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 41: unary_expression ::= sizeof ( type_name )
+ // Rule 41: unary_expression ::= sizeof ( type_id )
//
case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 43: cast_expression ::= ( type_name ) cast_expression
+ // Rule 43: cast_expression ::= ( type_id ) cast_expression
//
case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
}
@@ -1074,13 +1075,13 @@ public C99ExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 267: type_name ::= specifier_qualifier_list
+ // Rule 267: type_id ::= specifier_qualifier_list
//
case 267: { action. consumeTypeId(false); break;
}
//
- // Rule 268: type_name ::= specifier_qualifier_list abstract_declarator
+ // Rule 268: type_id ::= specifier_qualifier_list abstract_declarator
//
case 268: { action. consumeTypeId(true); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java
index 57c08b832f..e0c4a215cd 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java
@@ -972,7 +972,7 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9
"expression",
"postfix_expression",
"member_name",
- "type_name",
+ "type_id",
"initializer_list",
"unary_expression",
"cast_expression",
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 044093e8dd..10de8cb725 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
@@ -27,6 +27,7 @@ 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.c99.C99SecondaryParserFactory;
public class C99NoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
{
@@ -172,7 +173,7 @@ public C99NoCastExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack);
+ action = new C99BuildASTParserAction (this, tu, astStack, CNodeFactory.getDefault() , C99SecondaryParserFactory.getDefault() );
action.setParserOptions(options);
@@ -234,8 +235,8 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, C99NoCastExpressionParsersym.TK_EOF_TOKEN));
}
-public C99NoCastExpressionParser(String[] mapFrom) { // constructor
- tokenMap = new TokenMap(C99NoCastExpressionParsersym.orderedTerminalSymbols, mapFrom);
+public C99NoCastExpressionParser(IParserActionTokenProvider parser) { // constructor
+ tokenMap = new TokenMap(C99NoCastExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
@@ -324,7 +325,7 @@ public C99NoCastExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 26: postfix_expression ::= ( type_name ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 26: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
//
case 26: { action. consumeExpressionTypeIdInitializer(); break;
}
@@ -384,7 +385,7 @@ public C99NoCastExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 41: unary_expression ::= sizeof ( type_name )
+ // Rule 41: unary_expression ::= sizeof ( type_id )
//
case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
@@ -1068,13 +1069,13 @@ public C99NoCastExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 266: type_name ::= specifier_qualifier_list
+ // Rule 266: type_id ::= specifier_qualifier_list
//
case 266: { action. consumeTypeId(false); break;
}
//
- // Rule 267: type_name ::= specifier_qualifier_list abstract_declarator
+ // Rule 267: type_id ::= specifier_qualifier_list abstract_declarator
//
case 267: { action. consumeTypeId(true); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java
index b21ab65784..75b026f134 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java
@@ -968,7 +968,7 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
"expression",
"postfix_expression",
"member_name",
- "type_name",
+ "type_id",
"initializer_list",
"unary_expression",
"cast_expression",
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 b75d93191e..fbf4437819 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
@@ -27,6 +27,7 @@ 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.c99.C99SecondaryParserFactory;
public class C99Parser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
{
@@ -172,7 +173,7 @@ public C99Parser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack);
+ action = new C99BuildASTParserAction (this, tu, astStack, CNodeFactory.getDefault() , C99SecondaryParserFactory.getDefault() );
action.setParserOptions(options);
@@ -234,8 +235,8 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, C99Parsersym.TK_EOF_TOKEN));
}
-public C99Parser(String[] mapFrom) { // constructor
- tokenMap = new TokenMap(C99Parsersym.orderedTerminalSymbols, mapFrom);
+public C99Parser(IParserActionTokenProvider parser) { // constructor
+ tokenMap = new TokenMap(C99Parsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
@@ -324,7 +325,7 @@ public C99Parser(String[] mapFrom) { // constructor
}
//
- // Rule 26: postfix_expression ::= ( type_name ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 26: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
//
case 26: { action. consumeExpressionTypeIdInitializer(); break;
}
@@ -384,13 +385,13 @@ public C99Parser(String[] mapFrom) { // constructor
}
//
- // Rule 41: unary_expression ::= sizeof ( type_name )
+ // Rule 41: unary_expression ::= sizeof ( type_id )
//
case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 43: cast_expression ::= ( type_name ) cast_expression
+ // Rule 43: cast_expression ::= ( type_id ) cast_expression
//
case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
}
@@ -1074,13 +1075,13 @@ public C99Parser(String[] mapFrom) { // constructor
}
//
- // Rule 267: type_name ::= specifier_qualifier_list
+ // Rule 267: type_id ::= specifier_qualifier_list
//
case 267: { action. consumeTypeId(false); break;
}
//
- // Rule 268: type_name ::= specifier_qualifier_list abstract_declarator
+ // Rule 268: type_id ::= specifier_qualifier_list abstract_declarator
//
case 268: { action. consumeTypeId(true); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java
index f877cc39a8..ec677be0c1 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java
@@ -1280,7 +1280,7 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym
"expression",
"postfix_expression",
"member_name",
- "type_name",
+ "type_id",
"initializer_list",
"unary_expression",
"cast_expression",
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 7bc098faf1..35e436f350 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
@@ -27,6 +27,7 @@ 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.c99.C99SecondaryParserFactory;
public class C99SizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
{
@@ -172,7 +173,7 @@ public C99SizeofExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack);
+ action = new C99BuildASTParserAction (this, tu, astStack, CNodeFactory.getDefault() , C99SecondaryParserFactory.getDefault() );
action.setParserOptions(options);
@@ -234,8 +235,8 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, C99SizeofExpressionParsersym.TK_EOF_TOKEN));
}
-public C99SizeofExpressionParser(String[] mapFrom) { // constructor
- tokenMap = new TokenMap(C99SizeofExpressionParsersym.orderedTerminalSymbols, mapFrom);
+public C99SizeofExpressionParser(IParserActionTokenProvider parser) { // constructor
+ tokenMap = new TokenMap(C99SizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
@@ -324,7 +325,7 @@ public C99SizeofExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 26: postfix_expression ::= ( type_name ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 26: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt }
//
case 26: { action. consumeExpressionTypeIdInitializer(); break;
}
@@ -384,879 +385,885 @@ public C99SizeofExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 42: cast_expression ::= ( type_name ) cast_expression
+ // Rule 41: unary_expression ::= sizeof ( type_id )
//
- case 42: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
+ case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression
+ // Rule 43: cast_expression ::= ( type_id ) cast_expression
//
- case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
}
//
- // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression
+ // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
//
- case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
}
//
- // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression
+ // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
//
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
}
//
- // Rule 48: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
//
- case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
}
//
- // Rule 49: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
//
- case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
}
//
- // Rule 51: shift_expression ::= shift_expression << additive_expression
+ // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
//
- case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
}
//
- // Rule 52: shift_expression ::= shift_expression >> additive_expression
+ // Rule 52: shift_expression ::= shift_expression << additive_expression
//
- case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 54: relational_expression ::= relational_expression < shift_expression
+ // Rule 53: shift_expression ::= shift_expression >> additive_expression
//
- case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 55: relational_expression ::= relational_expression > shift_expression
+ // Rule 55: relational_expression ::= relational_expression < shift_expression
//
- case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 56: relational_expression ::= relational_expression <= shift_expression
+ // Rule 56: relational_expression ::= relational_expression > shift_expression
//
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 57: relational_expression ::= relational_expression >= shift_expression
+ // Rule 57: relational_expression ::= relational_expression <= shift_expression
//
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 59: equality_expression ::= equality_expression == relational_expression
+ // Rule 58: relational_expression ::= relational_expression >= shift_expression
//
- case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 60: equality_expression ::= equality_expression != relational_expression
+ // Rule 60: equality_expression ::= equality_expression == relational_expression
//
- case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
}
//
- // Rule 62: AND_expression ::= AND_expression & equality_expression
+ // Rule 61: equality_expression ::= equality_expression != relational_expression
//
- case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
}
//
- // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ // Rule 63: AND_expression ::= AND_expression & equality_expression
//
- case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
//
- case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
//
- case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
//
- case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
//
- case 72: { action. consumeExpressionConditional(); break;
+ case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 74: assignment_expression ::= unary_expression = assignment_expression
+ // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
//
- case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ case 73: { action. consumeExpressionConditional(); break;
}
//
- // Rule 75: assignment_expression ::= unary_expression *= assignment_expression
+ // Rule 75: assignment_expression ::= unary_expression = assignment_expression
//
- case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
- // Rule 76: assignment_expression ::= unary_expression /= assignment_expression
+ // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
//
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 77: assignment_expression ::= unary_expression %= assignment_expression
+ // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
//
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 78: assignment_expression ::= unary_expression += assignment_expression
+ // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
//
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 79: assignment_expression ::= unary_expression -= assignment_expression
+ // Rule 79: assignment_expression ::= unary_expression += assignment_expression
//
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression
+ // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
//
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression
+ // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
//
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 82: assignment_expression ::= unary_expression &= assignment_expression
+ // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
//
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression
+ // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
//
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 84: assignment_expression ::= unary_expression |= assignment_expression
+ // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
//
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 87: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
//
- case 87: { action. consumeExpressionList(); break;
+ case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 89: expression_list_opt ::= $Empty
+ // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
//
- case 89: { action. consumeEmpty(); break;
+ case 88: { action. consumeExpressionList(); break;
}
//
- // Rule 99: statement ::= ERROR_TOKEN
+ // Rule 90: expression_list_opt ::= $Empty
//
- case 99: { action. consumeStatementProblem(); break;
+ case 90: { action. consumeEmpty(); break;
}
//
- // Rule 100: labeled_statement ::= identifier_token : statement
+ // Rule 100: statement ::= ERROR_TOKEN
//
- case 100: { action. consumeStatementLabeled(); break;
+ case 100: { action. consumeStatementProblem(); break;
}
//
- // Rule 101: labeled_statement ::= case constant_expression : statement
+ // Rule 101: labeled_statement ::= identifier_token : statement
//
- case 101: { action. consumeStatementCase(); break;
+ case 101: { action. consumeStatementLabeled(); break;
}
//
- // Rule 102: labeled_statement ::= default : statement
+ // Rule 102: labeled_statement ::= case constant_expression : statement
//
- case 102: { action. consumeStatementDefault(); break;
+ case 102: { action. consumeStatementCase(); break;
}
//
- // Rule 103: compound_statement ::= { }
+ // Rule 103: labeled_statement ::= default : statement
//
- case 103: { action. consumeStatementCompoundStatement(false); break;
+ case 103: { action. consumeStatementDefault(); break;
}
//
- // Rule 104: compound_statement ::= { <openscope-ast> block_item_list }
+ // Rule 104: compound_statement ::= { }
//
- case 104: { action. consumeStatementCompoundStatement(true); break;
+ case 104: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 108: block_item ::= declaration
+ // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
//
- case 108: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 105: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 109: expression_statement ::= ;
+ // Rule 109: block_item ::= declaration
//
- case 109: { action. consumeStatementNull(); break;
+ case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 110: expression_statement ::= expression_in_statement ;
+ // Rule 110: expression_statement ::= ;
//
- case 110: { action. consumeStatementExpression(); break;
+ case 110: { action. consumeStatementNull(); break;
}
//
- // Rule 111: selection_statement ::= if ( expression ) statement
+ // Rule 111: expression_statement ::= expression_in_statement ;
//
- case 111: { action. consumeStatementIf(false); break;
+ case 111: { action. consumeStatementExpression(); break;
}
//
- // Rule 112: selection_statement ::= if ( expression ) statement else statement
+ // Rule 112: selection_statement ::= if ( expression ) statement
//
- case 112: { action. consumeStatementIf(true); break;
+ case 112: { action. consumeStatementIf(false); break;
}
//
- // Rule 113: selection_statement ::= switch ( expression ) statement
+ // Rule 113: selection_statement ::= if ( expression ) statement else statement
//
- case 113: { action. consumeStatementSwitch(); break;
+ case 113: { action. consumeStatementIf(true); break;
}
//
- // Rule 115: expression_opt ::= $Empty
+ // Rule 114: selection_statement ::= switch ( expression ) statement
//
- case 115: { action. consumeEmpty(); break;
+ case 114: { action. consumeStatementSwitch(); break;
}
//
- // Rule 116: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 116: expression_opt ::= $Empty
//
- case 116: { action. consumeStatementDoLoop(); break;
+ case 116: { action. consumeEmpty(); break;
}
//
- // Rule 117: iteration_statement ::= while ( expression ) statement
+ // Rule 117: iteration_statement ::= do statement while ( expression ) ;
//
- case 117: { action. consumeStatementWhileLoop(); break;
+ case 117: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ // Rule 118: iteration_statement ::= while ( expression ) statement
//
- case 118: { action. consumeStatementForLoop(); break;
+ case 118: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
//
case 119: { action. consumeStatementForLoop(); break;
}
//
- // Rule 120: jump_statement ::= goto identifier_token ;
+ // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
//
- case 120: { action. consumeStatementGoto(); break;
+ case 120: { action. consumeStatementForLoop(); break;
}
//
- // Rule 121: jump_statement ::= continue ;
+ // Rule 121: jump_statement ::= goto identifier_token ;
//
- case 121: { action. consumeStatementContinue(); break;
+ case 121: { action. consumeStatementGoto(); break;
}
//
- // Rule 122: jump_statement ::= break ;
+ // Rule 122: jump_statement ::= continue ;
//
- case 122: { action. consumeStatementBreak(); break;
+ case 122: { action. consumeStatementContinue(); break;
}
//
- // Rule 123: jump_statement ::= return ;
+ // Rule 123: jump_statement ::= break ;
//
- case 123: { action. consumeStatementReturn(false); break;
+ case 123: { action. consumeStatementBreak(); break;
}
//
- // Rule 124: jump_statement ::= return expression ;
+ // Rule 124: jump_statement ::= return ;
//
- case 124: { action. consumeStatementReturn(true); break;
+ case 124: { action. consumeStatementReturn(false); break;
}
//
- // Rule 125: declaration ::= declaration_specifiers ;
+ // Rule 125: jump_statement ::= return expression ;
//
- case 125: { action. consumeDeclarationSimple(false); break;
+ case 125: { action. consumeStatementReturn(true); break;
}
//
- // Rule 126: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ // Rule 126: declaration ::= declaration_specifiers ;
//
- case 126: { action. consumeDeclarationSimple(true); break;
+ case 126: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 127: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
//
- case 127: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 127: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 128: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ case 128: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 129: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
//
case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 130: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 131: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 131: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 156: init_declarator ::= complete_declarator = initializer
+ // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
//
- case 156: { action. consumeDeclaratorWithInitializer(true); break;
+ case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
}
//
- // Rule 158: storage_class_specifier ::= storage_class_specifier_token
+ // Rule 157: init_declarator ::= complete_declarator = initializer
//
- case 158: { action. consumeToken(); break;
+ case 157: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 164: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 164: { action. consumeToken(); break;
+ case 159: { action. consumeToken(); break;
}
//
- // Rule 177: typedef_name_in_declspec ::= Completion
+ // Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 177: { action. consumeToken(); break;
+ case 165: { action. consumeToken(); break;
}
//
- // Rule 178: typedef_name_in_declspec ::= identifier
+ // Rule 178: typedef_name_in_declspec ::= Completion
//
case 178: { action. consumeToken(); break;
}
//
- // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 179: typedef_name_in_declspec ::= identifier
//
- case 181: { action. consumeTypeSpecifierComposite(false); break;
+ case 179: { action. consumeToken(); break;
}
//
- // Rule 182: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
+ // Rule 182: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 182: { action. consumeTypeSpecifierComposite(true); break;
+ case 182: { action. consumeTypeSpecifierComposite(false); break;
}
//
- // Rule 187: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
+ // Rule 183: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ case 183: { action. consumeTypeSpecifierComposite(true); break;
}
//
- // Rule 188: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
+ // Rule 188: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
//
- case 188: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ case 188: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
}
//
- // Rule 189: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
+ // Rule 189: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
//
- case 189: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ case 189: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
}
//
- // Rule 195: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ // Rule 190: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
//
- case 195: { action. consumeStructDeclaration(true); break;
+ case 190: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
}
//
- // Rule 196: struct_declaration ::= specifier_qualifier_list ;
+ // Rule 196: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
//
- case 196: { action. consumeStructDeclaration(false); break;
+ case 196: { action. consumeStructDeclaration(true); break;
}
//
- // Rule 197: struct_declaration ::= ERROR_TOKEN
+ // Rule 197: struct_declaration ::= specifier_qualifier_list ;
//
- case 197: { action. consumeDeclarationProblem(); break;
+ case 197: { action. consumeStructDeclaration(false); break;
}
//
- // Rule 203: struct_declarator ::= : constant_expression
+ // Rule 198: struct_declaration ::= ERROR_TOKEN
//
- case 203: { action. consumeBitField(false); break;
+ case 198: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 204: struct_declarator ::= declarator : constant_expression
+ // Rule 204: struct_declarator ::= : constant_expression
//
- case 204: { action. consumeBitField(true); break;
+ case 204: { action. consumeBitField(false); break;
}
//
- // Rule 205: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 205: struct_declarator ::= declarator : constant_expression
//
- case 205: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 205: { action. consumeBitField(true); break;
}
//
- // Rule 206: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 206: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 206: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 206: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 212: enumerator ::= identifier_token
+ // Rule 207: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 212: { action. consumeEnumerator(false); break;
+ case 207: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 213: enumerator ::= identifier_token = constant_expression
+ // Rule 213: enumerator ::= identifier_token
//
- case 213: { action. consumeEnumerator(true); break;
+ case 213: { action. consumeEnumerator(false); break;
}
//
- // Rule 214: type_qualifier ::= type_qualifier_token
+ // Rule 214: enumerator ::= identifier_token = constant_expression
//
- case 214: { action. consumeToken(); break;
+ case 214: { action. consumeEnumerator(true); break;
}
//
- // Rule 218: function_specifier ::= inline
+ // Rule 215: type_qualifier ::= type_qualifier_token
//
- case 218: { action. consumeToken(); break;
+ case 215: { action. consumeToken(); break;
}
//
- // Rule 220: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ // Rule 219: function_specifier ::= inline
//
- case 220: { action. consumeDeclaratorWithPointer(true); break;
+ case 219: { action. consumeToken(); break;
}
//
- // Rule 225: basic_direct_declarator ::= declarator_id_name
+ // Rule 221: declarator ::= <openscope-ast> pointer_seq direct_declarator
//
- case 225: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 221: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 226: basic_direct_declarator ::= ( declarator )
+ // Rule 226: basic_direct_declarator ::= declarator_id_name
//
- case 226: { action. consumeDirectDeclaratorBracketed(); break;
+ case 226: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 227: declarator_id_name ::= identifier
+ // Rule 227: basic_direct_declarator ::= ( declarator )
//
- case 227: { action. consumeIdentifierName(); break;
+ case 227: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 228: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 228: declarator_id_name ::= identifier
//
- case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 228: { action. consumeIdentifierName(); break;
}
//
- // Rule 229: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 229: array_direct_declarator ::= basic_direct_declarator array_modifier
//
case 229: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 231: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 230: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 230: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 232: function_direct_declarator ::= basic_direct_declarator ( )
+ // Rule 232: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
//
- case 232: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 232: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 234: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ // Rule 233: function_direct_declarator ::= basic_direct_declarator ( )
//
- case 234: { action. consumeDeclaratorWithPointer(true); break;
+ case 233: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 235: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ // Rule 235: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
//
- case 235: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ case 235: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 237: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ // Rule 236: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
//
- case 237: { action. consumeDeclaratorWithPointer(true); break;
+ case 236: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
}
//
- // Rule 238: identifier_list ::= identifier
+ // Rule 238: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
//
- case 238: { action. consumeIdentifierKnR(); break;
+ case 238: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 239: identifier_list ::= identifier_list , identifier
+ // Rule 239: identifier_list ::= identifier
//
case 239: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 240: array_modifier ::= [ ]
+ // Rule 240: identifier_list ::= identifier_list , identifier
//
- case 240: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 240: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ // Rule 241: array_modifier ::= [ ]
//
- case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ case 241: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 242: array_modifier ::= [ assignment_expression ]
+ // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
//
- case 242: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
}
//
- // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 243: array_modifier ::= [ assignment_expression ]
//
- case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ case 243: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 244: array_modifier ::= [ static assignment_expression ]
+ // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
}
//
- // Rule 245: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 245: array_modifier ::= [ static assignment_expression ]
//
- case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
}
//
- // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ // Rule 246: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 247: array_modifier ::= [ * ]
+ // Rule 247: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
//
- case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 248: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ // Rule 248: array_modifier ::= [ * ]
//
- case 248: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ case 248: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
}
//
- // Rule 250: pointer_seq ::= pointer_hook *
+ // Rule 249: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
//
- case 250: { action. consumePointer(); break;
+ case 249: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
}
//
- // Rule 251: pointer_seq ::= pointer_seq pointer_hook *
+ // Rule 251: pointer_seq ::= pointer_hook *
//
case 251: { action. consumePointer(); break;
}
//
- // Rule 252: pointer_seq ::= pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 252: pointer_seq ::= pointer_seq pointer_hook *
//
- case 252: { action. consumePointerTypeQualifierList(); break;
+ case 252: { action. consumePointer(); break;
}
//
- // Rule 253: pointer_seq ::= pointer_seq pointer_hook * <openscope-ast> type_qualifier_list
+ // Rule 253: pointer_seq ::= pointer_hook * <openscope-ast> type_qualifier_list
//
case 253: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 257: parameter_type_list ::= parameter_list
+ // Rule 254: pointer_seq ::= pointer_seq pointer_hook * <openscope-ast> type_qualifier_list
//
- case 257: { action. consumeEmpty(); break;
+ case 254: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 258: parameter_type_list ::= parameter_list , ...
+ // Rule 258: parameter_type_list ::= parameter_list
//
- case 258: { action. consumePlaceHolder(); break;
+ case 258: { action. consumeEmpty(); break;
}
//
- // Rule 259: parameter_type_list ::= ...
+ // Rule 259: parameter_type_list ::= parameter_list , ...
//
case 259: { action. consumePlaceHolder(); break;
}
//
- // Rule 262: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ // Rule 260: parameter_type_list ::= ...
//
- case 262: { action. consumeParameterDeclaration(); break;
+ case 260: { action. consumePlaceHolder(); break;
}
//
- // Rule 263: parameter_declaration ::= declaration_specifiers
+ // Rule 263: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
//
- case 263: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 263: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 266: type_name ::= specifier_qualifier_list
+ // Rule 264: parameter_declaration ::= declaration_specifiers
//
- case 266: { action. consumeTypeId(false); break;
+ case 264: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 267: type_name ::= specifier_qualifier_list abstract_declarator
+ // Rule 267: type_id ::= specifier_qualifier_list
//
- case 267: { action. consumeTypeId(true); break;
+ case 267: { action. consumeTypeId(false); break;
}
//
- // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq
+ // Rule 268: type_id ::= specifier_qualifier_list abstract_declarator
//
- case 269: { action. consumeDeclaratorWithPointer(false); break;
+ case 268: { action. consumeTypeId(true); break;
}
//
- // Rule 270: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ // Rule 270: abstract_declarator ::= <openscope-ast> pointer_seq
//
case 270: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 274: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 271: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
//
- case 274: { action. consumeDirectDeclaratorBracketed(); break;
+ case 271: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 275: array_direct_abstract_declarator ::= array_modifier
+ // Rule 275: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 275: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 275: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 276: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 276: array_direct_abstract_declarator ::= array_modifier
//
- case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 276: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 277: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 277: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
case 277: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 278: function_direct_abstract_declarator ::= ( )
+ // Rule 278: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ case 278: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 279: function_direct_abstract_declarator ::= ( )
+ //
+ case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
}
//
- // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
//
- case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 280: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ // Rule 281: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
//
- case 280: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ case 281: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
}
//
- // Rule 281: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 282: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
//
- case 281: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 282: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 282: initializer ::= assignment_expression
+ // Rule 283: initializer ::= assignment_expression
//
- case 282: { action. consumeInitializer(); break;
+ case 283: { action. consumeInitializer(); break;
}
//
- // Rule 283: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
+ // Rule 284: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list
//
- case 283: { action. consumeInitializerList(); break;
+ case 284: { action. consumeInitializerList(); break;
}
//
- // Rule 284: initializer ::= { <openscope-ast> }
+ // Rule 285: initializer ::= { <openscope-ast> }
//
- case 284: { action. consumeInitializerList(); break;
+ case 285: { action. consumeInitializerList(); break;
}
//
- // Rule 285: start_initializer_list ::= $Empty
+ // Rule 286: start_initializer_list ::= $Empty
//
- case 285: { action. initializerListStart(); break;
+ case 286: { action. initializerListStart(); break;
}
//
- // Rule 286: end_initializer_list ::= $Empty
+ // Rule 287: end_initializer_list ::= $Empty
//
- case 286: { action. initializerListEnd(); break;
+ case 287: { action. initializerListEnd(); break;
}
//
- // Rule 291: designated_initializer ::= <openscope-ast> designation = initializer
+ // Rule 292: designated_initializer ::= <openscope-ast> designation = initializer
//
- case 291: { action. consumeInitializerDesignated(); break;
+ case 292: { action. consumeInitializerDesignated(); break;
}
//
- // Rule 295: designator_base ::= [ constant_expression ]
+ // Rule 296: designator_base ::= [ constant_expression ]
//
- case 295: { action. consumeDesignatorArray(); break;
+ case 296: { action. consumeDesignatorArray(); break;
}
//
- // Rule 296: designator_base ::= . identifier_token
+ // Rule 297: designator_base ::= . identifier_token
//
- case 296: { action. consumeDesignatorField(); break;
+ case 297: { action. consumeDesignatorField(); break;
}
//
- // Rule 297: designator ::= [ constant_expression ]
+ // Rule 298: designator ::= [ constant_expression ]
//
- case 297: { action. consumeDesignatorArray(); break;
+ case 298: { action. consumeDesignatorArray(); break;
}
//
- // Rule 298: designator ::= . identifier_token
+ // Rule 299: designator ::= . identifier_token
//
- case 298: { action. consumeDesignatorField(); break;
+ case 299: { action. consumeDesignatorField(); break;
}
//
- // Rule 299: translation_unit ::= external_declaration_list
+ // Rule 300: translation_unit ::= external_declaration_list
//
- case 299: { action. consumeTranslationUnit(); break;
+ case 300: { action. consumeTranslationUnit(); break;
}
//
- // Rule 300: translation_unit ::= $Empty
+ // Rule 301: translation_unit ::= $Empty
//
- case 300: { action. consumeTranslationUnit(); break;
+ case 301: { action. consumeTranslationUnit(); break;
}
//
- // Rule 305: external_declaration ::= ;
+ // Rule 306: external_declaration ::= ;
//
- case 305: { action. consumeDeclarationEmpty(); break;
+ case 306: { action. consumeDeclarationEmpty(); break;
}
//
- // Rule 306: external_declaration ::= ERROR_TOKEN
+ // Rule 307: external_declaration ::= ERROR_TOKEN
//
- case 306: { action. consumeDeclarationProblem(); break;
+ case 307: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ // Rule 310: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
//
- case 309: { action. consumeFunctionDefinition(true); break;
+ case 310: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 310: function_definition ::= <openscope-ast> function_declarator function_body
+ // Rule 311: function_definition ::= <openscope-ast> function_declarator function_body
//
- case 310: { action. consumeFunctionDefinition(false); break;
+ case 311: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 311: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ // Rule 312: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
//
- case 311: { action. consumeFunctionDefinitionKnR(); break;
+ case 312: { action. consumeFunctionDefinitionKnR(); break;
}
//
- // Rule 312: function_body ::= { }
+ // Rule 313: function_body ::= { }
//
- case 312: { action. consumeStatementCompoundStatement(false); break;
+ case 313: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 313: function_body ::= { <openscope-ast> block_item_list }
+ // Rule 314: function_body ::= { <openscope-ast> block_item_list }
//
- case 313: { action. consumeStatementCompoundStatement(true); break;
+ case 314: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 315: no_sizeof_type_name_start ::= ERROR_TOKEN
+ // Rule 316: no_sizeof_type_name_start ::= ERROR_TOKEN
//
- case 315: { action. consumeExpressionProblem(); break;
+ case 316: { action. consumeExpressionProblem(); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java
index 27f3a06780..c1904a80c4 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java
@@ -38,173 +38,173 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
1,1,1,1,1,3,1,1,1,4,
4,3,3,2,2,8,1,0,1,1,
1,2,2,2,2,2,2,2,2,2,
- 1,4,1,3,3,3,1,3,3,1,
- 3,3,1,3,3,3,3,1,3,3,
- 1,3,1,3,1,3,1,3,1,3,
- 1,5,1,3,3,3,3,3,3,3,
- 3,3,3,3,1,1,2,1,0,1,
- 3,1,1,1,1,1,1,1,1,3,
- 4,3,2,4,1,2,1,1,1,2,
- 5,7,5,1,0,7,5,9,8,3,
- 2,2,2,3,2,4,2,2,2,2,
- 2,1,1,1,1,2,1,2,2,2,
- 1,2,2,1,2,2,1,2,2,1,
- 2,2,1,3,1,3,1,1,1,1,
+ 4,1,4,1,3,3,3,1,3,3,
+ 1,3,3,1,3,3,3,3,1,3,
+ 3,1,3,1,3,1,3,1,3,1,
+ 3,1,5,1,3,3,3,3,3,3,
+ 3,3,3,3,3,1,1,2,1,0,
+ 1,3,1,1,1,1,1,1,1,1,
+ 3,4,3,2,4,1,2,1,1,1,
+ 2,5,7,5,1,0,7,5,9,8,
+ 3,2,2,2,3,2,4,2,2,2,
+ 2,2,1,1,1,1,2,1,2,2,
+ 2,1,2,2,1,2,2,1,2,2,
+ 1,2,2,1,3,1,3,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 6,8,0,0,1,1,3,3,3,0,
- 1,0,1,2,4,2,1,1,1,3,
- 1,1,2,3,7,8,0,1,0,1,
- 3,1,3,1,1,1,1,1,1,3,
- 1,1,1,1,1,3,1,2,2,1,
- 5,3,1,3,5,1,3,1,3,2,
- 4,3,5,4,6,6,3,5,1,2,
- 3,4,5,0,1,2,1,3,1,1,
- 3,2,1,1,1,1,2,1,2,3,
- 1,1,1,3,1,2,2,2,3,4,
- 5,1,7,3,0,0,1,1,3,3,
- 4,1,1,2,3,2,3,2,1,0,
- 1,2,1,1,1,1,1,2,4,3,
- 6,2,4,1,1,-36,0,0,0,0,
- 0,0,0,0,0,-2,0,0,0,0,
- 0,0,0,0,0,0,0,-80,-81,-4,
- -74,-14,0,0,0,0,-121,0,0,0,
+ 1,6,8,0,0,1,1,3,3,3,
+ 0,1,0,1,2,4,2,1,1,1,
+ 3,1,1,2,3,7,8,0,1,0,
+ 1,3,1,3,1,1,1,1,1,1,
+ 3,1,1,1,1,1,3,1,2,2,
+ 1,5,3,1,3,5,1,3,1,3,
+ 2,4,3,5,4,6,6,3,5,1,
+ 2,3,4,5,0,1,2,1,3,1,
+ 1,3,2,1,1,1,1,2,1,2,
+ 3,1,1,1,3,1,2,2,2,3,
+ 4,5,1,7,3,0,0,1,1,3,
+ 3,4,1,1,2,3,2,3,2,1,
+ 0,1,2,1,1,1,1,1,2,4,
+ 3,6,2,4,1,1,-37,0,0,0,
+ 0,0,0,0,0,0,-30,0,0,0,
+ 0,0,0,0,0,0,-82,0,0,-2,
+ -4,-76,-14,0,0,0,0,-124,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-16,0,
- -17,-78,-75,-209,-18,0,0,0,0,0,
- -37,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-127,-83,-138,0,0,
- -133,-19,0,0,0,0,0,0,0,0,
- 0,0,0,-20,0,0,0,-21,0,-185,
+ 0,0,0,0,0,0,0,0,0,-16,
+ 0,-5,0,0,0,0,0,0,0,0,
+ 0,0,-114,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-130,0,-141,-17,
+ 0,-80,0,-18,-19,0,0,-47,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-158,
+ -188,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-29,
- 0,0,-55,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-38,
- 0,0,0,0,0,0,0,0,0,-22,
- 0,0,0,0,0,0,-157,-23,0,-6,
- 0,0,0,0,0,0,-193,0,-72,0,
+ -161,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -31,-20,-202,-56,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,-30,0,0,0,0,0,0,0,
- 0,0,-3,0,0,0,0,0,0,0,
- 0,0,-105,0,0,0,0,0,0,0,
- 0,0,0,0,-24,-51,0,0,0,0,
+ -48,0,0,0,0,0,0,0,0,0,
+ 0,-21,0,0,0,0,0,-22,-160,0,
+ -38,0,0,0,0,0,0,0,-83,0,
+ -74,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -69,0,-108,0,0,0,0,0,0,0,
+ 0,0,0,0,-184,0,0,0,0,0,
+ 0,0,0,0,-34,0,0,0,0,0,
+ 0,0,0,0,-3,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-33,-126,0,0,0,0,
+ 0,0,0,0,0,-85,-23,-52,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-130,0,-142,0,-52,
- 0,0,0,0,0,0,0,0,0,-123,
- 0,0,0,-25,-26,0,0,0,0,0,
- -163,-86,0,0,0,0,-27,0,0,0,
- 0,0,0,0,0,0,-175,0,0,0,
- 0,0,0,0,0,0,0,0,-87,0,
- -210,-88,0,0,-89,0,0,0,0,0,
- -46,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-56,0,0,0,0,
- 0,0,0,0,0,-90,0,0,0,0,
- 0,0,0,0,0,-57,0,0,0,0,
+ 0,0,-71,0,-111,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-58,0,0,0,0,
- 0,0,0,0,0,-91,0,0,0,0,
- 0,0,0,0,0,-59,0,0,0,0,
+ 0,0,0,0,-118,0,-133,-129,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,-92,0,0,0,0,
- 0,0,0,0,0,-61,0,0,0,0,
- 0,0,0,0,0,-93,0,0,0,0,
- 0,0,0,0,0,-62,0,0,0,0,
- 0,0,0,0,0,-94,0,0,0,0,
- 0,0,0,0,0,-63,0,0,0,0,
- 0,0,0,0,0,-95,0,0,0,0,
- 0,0,0,0,0,-64,0,0,0,0,
- 0,0,0,0,0,-96,0,0,0,0,
- 0,0,0,0,0,-65,0,0,0,0,
- 0,0,0,0,0,-162,0,0,0,0,
- 0,0,0,0,0,-66,0,0,0,0,
- 0,0,0,0,0,-97,0,0,0,0,
- 0,0,0,0,0,-143,0,0,0,0,
- 0,0,0,0,0,-98,0,0,0,0,
- 0,0,0,0,0,-144,0,0,0,0,
- 0,0,0,0,0,-99,0,0,0,0,
- 0,0,0,0,0,-161,0,0,0,0,
- 0,0,0,0,0,-100,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,-7,0,0,0,0,0,0,
- -101,0,-8,0,0,0,0,0,0,-102,
- -192,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-200,
- 0,0,0,0,0,0,0,0,0,-103,
- 0,0,0,0,0,0,0,0,-9,0,
- 0,0,0,0,0,-104,0,-10,0,0,
- 0,0,0,0,-107,-208,0,0,0,0,
+ 0,0,-24,0,0,0,0,-27,0,0,
+ 0,0,0,0,0,0,0,-25,0,0,
+ 0,0,0,0,0,0,0,0,0,-26,
+ 0,-12,0,0,0,0,0,0,0,0,
+ 0,0,-39,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-57,0,0,0,
+ 0,0,0,0,0,0,-35,0,0,0,
+ 0,0,0,0,0,0,-58,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-120,0,0,0,0,0,
- 0,0,0,0,-129,0,0,0,0,0,
- 0,0,0,-34,0,-5,0,0,0,0,
- 0,0,-11,0,0,0,0,0,0,-165,
- 0,-137,-109,-110,-147,0,-67,0,0,0,
+ 0,0,0,0,0,0,-59,0,0,0,
+ 0,0,0,0,0,0,-68,0,0,0,
+ 0,0,0,0,0,0,-60,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-68,0,0,0,0,-122,0,-166,
- 0,-131,0,-186,-115,-148,-85,0,0,0,
+ 0,0,0,0,0,0,-61,0,0,0,
+ 0,0,0,0,0,0,-69,0,0,0,
+ 0,0,0,0,0,0,-62,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-63,0,0,0,
+ 0,0,0,0,0,0,-70,0,0,0,
+ 0,0,0,0,0,0,-64,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -135,0,0,0,0,0,0,-140,0,-54,
- 0,0,0,0,0,0,0,0,0,-172,
- 0,0,0,0,0,0,-112,-116,0,0,
- 0,-189,-134,-136,-139,-117,0,0,0,0,
- 0,0,0,0,0,0,-153,-159,0,-179,
+ 0,0,0,0,0,0,-65,0,0,0,
+ 0,0,0,0,0,0,-115,0,0,0,
+ 0,0,0,0,0,0,-66,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-67,0,0,0,
+ 0,0,0,0,0,0,-131,0,0,0,
+ 0,0,0,0,0,0,-146,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-39,0,0,0,0,0,0,0,-48,
- 0,0,0,0,0,0,0,0,0,-180,
- 0,0,-207,-47,0,0,0,0,0,0,
- 0,0,0,-42,0,0,0,0,0,0,
- 0,0,0,0,0,-111,0,0,0,0,
- 0,0,0,-201,-149,0,0,0,0,0,
- 0,0,-12,0,0,0,0,0,0,0,
- -49,0,0,0,0,0,0,0,0,0,
- 0,0,-50,0,0,0,0,0,0,0,
- 0,0,-206,0,-43,0,0,0,0,0,
- 0,0,0,0,0,0,-44,0,0,0,
- 0,0,0,0,0,0,-45,0,0,0,
- 0,0,0,0,0,0,-202,-73,-146,0,
- 0,0,0,0,0,-114,0,0,-40,0,
- 0,0,0,0,0,0,-35,0,0,0,
- 0,0,0,0,-76,-118,0,0,-128,0,
- 0,0,0,0,0,0,-113,-32,0,0,
- 0,0,0,0,0,0,0,0,-125,0,
- 0,0,0,0,0,0,-170,0,0,0,
- 0,0,-171,-53,-119,-141,0,0,-152,-15,
- -28,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-145,
- 0,0,-160,0,0,0,-41,0,0,0,
- 0,0,0,0,0,0,0,-77,0,0,
- 0,0,0,0,0,0,0,0,0,-70,
- 0,0,0,0,0,0,-79,0,0,-167,
- -82,0,0,-155,0,0,0,0,0,-154,
- 0,0,-84,0,-168,-174,0,0,-106,0,
+ 0,0,0,0,0,0,-147,0,0,0,
+ 0,0,0,0,0,0,-155,0,0,0,
+ 0,0,0,0,0,0,-164,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,-77,0,0,0,0,
+ 0,0,0,0,-6,0,0,0,0,0,
+ 0,-88,-89,0,-7,0,0,0,0,0,
+ 0,0,-195,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-124,0,0,0,-164,-71,0,-187,0,
- 0,0,0,-188,0,0,-178,0,0,0,
- 0,0,0,0,-1,-132,-176,0,-156,0,
- 0,0,0,0,0,0,0,0,0,-13,
- 0,0,0,0,0,0,-31,-177,-169,-190,
- 0,0,0,-150,-203,0,0,0,0,0,
- 0,0,-173,0,0,0,-151,0,-195,0,
- 0,0,0,-182,0,0,0,-191,-199,0,
- 0,-183,0,-194,0,0,0,0,-196,-198,
- -204,0,0,0,0,0,0,-205,-197,0,
+ 0,-203,0,0,0,0,0,0,0,0,
+ 0,-90,0,0,0,0,0,0,0,0,
+ -8,0,0,0,0,0,0,-108,-91,0,
+ -9,0,0,0,0,0,0,0,-211,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-123,0,0,
+ 0,0,0,0,0,0,0,-132,0,0,
+ 0,0,0,0,0,0,-33,0,-10,0,
+ 0,0,0,0,0,0,0,-54,-92,-126,
+ -116,-119,-93,0,-166,-94,-112,0,-150,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-95,-177,0,0,0,-113,0,-196,
+ -87,-96,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0
+ -73,0,0,-151,0,0,0,0,0,0,
+ 0,0,-55,0,0,0,0,0,0,0,
+ 0,0,-175,0,0,0,0,0,0,0,
+ -127,0,0,0,0,-13,0,0,0,0,
+ 0,0,0,0,0,0,-97,0,0,0,
+ -98,0,0,0,-192,-99,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-53,
+ 0,0,0,0,0,0,0,0,0,-145,
+ 0,0,0,-100,-101,-210,0,-137,0,0,
+ 0,0,0,0,0,0,-169,0,-102,-103,
+ 0,0,0,-49,0,0,0,0,0,0,
+ 0,0,0,-140,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-11,0,0,0,
+ 0,0,0,0,-120,0,0,0,-149,0,
+ 0,0,0,0,0,0,-50,0,0,0,
+ 0,0,0,0,0,0,-128,0,-104,0,
+ -105,0,-106,-107,0,-110,-125,0,0,-51,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-43,0,0,0,0,0,0,0,0,
+ 0,-44,0,0,0,0,0,0,0,0,
+ 0,-45,0,0,0,0,0,0,0,0,
+ 0,-46,0,0,0,0,0,0,0,0,
+ 0,-205,-75,-78,-40,0,0,0,0,0,
+ 0,0,0,-41,0,0,0,0,0,0,
+ -148,-134,0,-136,0,0,-138,-212,0,-189,
+ 0,0,0,0,-117,0,0,0,0,0,
+ 0,0,-36,0,0,0,0,0,0,0,
+ 0,0,0,-109,0,0,-181,0,0,-173,
+ 0,0,0,0,0,0,0,0,0,0,
+ -15,-42,0,0,0,0,0,0,-143,0,
+ 0,-174,-28,0,0,0,0,0,0,-153,
+ 0,0,0,-121,0,-29,0,0,0,0,
+ 0,0,-172,0,-79,0,0,0,0,0,
+ -122,0,0,0,0,0,0,-178,0,0,
+ 0,-199,0,0,0,0,0,0,0,-81,
+ 0,0,0,0,0,0,0,0,0,-84,
+ -193,0,0,-72,0,0,0,0,0,0,
+ 0,0,-86,-157,-190,0,0,0,0,0,
+ 0,0,-135,0,0,-191,0,0,0,0,
+ -165,-159,0,0,0,0,-180,0,0,0,
+ 0,0,0,-1,-179,-156,0,0,-32,0,
+ -154,0,-206,0,0,0,0,-163,0,-213,
+ 0,0,-162,-139,0,-142,-168,0,0,0,
+ -152,0,0,0,0,0,0,0,-182,0,
+ 0,0,0,0,0,-144,0,0,0,-198,
+ -170,-171,0,0,0,0,0,-183,-158,0,
+ 0,0,-167,-185,0,0,0,0,0,-176,
+ -186,0,0,0,0,0,0,-194,-197,0,
+ 0,0,0,-200,-201,-207,0,-208,-204,0,
+ 0,-209,0,0,0,0,0,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;
@@ -214,179 +214,178 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface BaseAction {
public final static char baseAction[] = {
- 87,10,23,23,22,22,32,32,69,69,
+ 87,10,23,23,20,20,32,32,70,70,
1,1,1,1,2,2,2,3,3,4,
- 4,4,4,4,4,4,4,51,51,70,
- 70,5,5,5,5,5,5,5,5,5,
- 5,6,6,7,7,7,7,8,8,8,
- 9,9,9,11,11,11,11,11,12,12,
- 12,13,13,14,14,15,15,16,16,17,
- 17,18,18,19,19,19,19,19,19,19,
- 19,19,19,19,19,101,45,40,88,88,
- 73,73,46,102,102,102,102,102,102,102,
- 103,103,103,104,104,109,109,110,110,105,
- 105,106,106,106,112,112,107,107,107,107,
- 108,108,108,108,108,111,111,25,25,25,
- 25,25,27,27,27,79,79,74,74,74,
- 74,75,75,75,76,76,76,77,77,77,
- 78,78,78,113,113,114,114,115,28,30,
- 30,30,30,30,52,54,54,54,54,54,
- 54,54,54,54,54,54,54,63,63,24,
- 24,60,60,89,90,64,64,61,61,61,
- 65,80,80,81,81,66,66,66,48,91,
- 91,82,83,83,83,62,62,92,84,84,
- 85,85,67,67,20,21,21,21,29,47,
- 47,33,33,33,33,36,36,38,34,34,
- 35,39,39,116,116,37,117,117,93,93,
- 26,26,26,26,26,26,26,26,26,86,
- 49,49,49,49,31,56,56,55,55,55,
- 57,57,50,50,94,94,71,71,58,58,
- 58,41,41,41,42,43,43,43,44,44,
- 44,44,53,53,53,59,95,72,72,72,
- 72,68,96,97,97,98,98,99,99,118,
- 118,119,119,120,120,120,120,122,122,121,
- 121,121,123,123,87,87,1,14,19,15,
- 342,655,43,371,369,402,31,375,418,414,
- 498,490,654,575,73,90,133,214,360,470,
- 394,323,649,135,132,134,158,441,14,19,
- 15,342,655,43,371,369,402,398,375,418,
- 414,498,490,654,575,73,282,276,137,413,
- 164,194,97,729,628,12,141,144,147,150,
- 372,513,14,19,15,342,41,43,692,340,
- 1425,1508,1527,1531,1543,1177,650,518,575,277,
- 287,171,30,1228,1236,1168,1208,220,1176,222,
- 1325,224,225,230,741,288,256,214,63,1142,
- 489,14,19,15,342,655,43,371,369,402,
- 398,375,418,414,498,490,654,575,73,282,
- 336,14,19,15,342,655,43,371,369,402,
- 398,375,418,414,498,490,654,575,73,282,
- 241,1175,1465,513,14,19,15,342,41,43,
- 371,369,402,287,375,418,414,498,1060,1208,
- 513,14,19,15,342,41,43,695,288,1426,
- 333,1247,1629,289,1248,906,293,730,313,1208,
- 513,14,19,15,342,41,39,542,290,275,
- 14,19,15,342,655,43,371,369,402,1144,
- 375,418,414,498,490,654,575,73,1143,26,
- 23,1250,240,465,14,19,15,342,655,43,
- 371,369,402,241,375,418,414,498,490,654,
- 575,73,282,513,14,19,15,342,655,43,
- 371,369,402,15,375,418,414,498,490,654,
- 575,73,90,347,211,327,513,14,19,15,
- 342,41,43,371,369,402,291,375,418,414,
- 966,447,1208,561,14,19,15,342,655,43,
- 371,369,402,1562,375,418,414,498,490,654,
- 575,73,1449,22,20,373,299,14,19,15,
- 342,655,43,371,369,402,340,375,418,414,
- 498,490,654,575,73,1490,189,1520,243,241,
- 513,14,19,15,342,41,43,371,369,402,
- 625,375,418,986,172,566,133,214,255,214,
- 638,730,585,135,132,134,158,513,14,19,
- 15,342,655,43,371,369,402,569,375,418,
- 414,498,490,654,575,73,91,1232,137,595,
- 164,191,199,284,1170,201,141,144,147,150,
- 372,513,14,19,15,342,41,43,371,846,
- 1425,1508,1527,1531,1543,1177,513,14,19,15,
- 342,655,43,371,369,402,110,375,418,414,
- 498,490,654,575,73,84,513,14,19,15,
- 342,655,43,371,369,402,196,375,418,414,
- 498,490,654,575,73,83,513,14,19,15,
- 342,655,43,371,369,402,117,375,418,414,
- 498,490,654,575,73,82,513,14,19,15,
- 342,655,43,371,369,402,283,375,418,414,
- 498,490,654,575,73,81,513,14,19,15,
- 342,655,43,371,369,402,448,375,418,414,
- 498,490,654,575,73,80,513,14,19,15,
- 342,655,43,371,369,402,520,375,418,414,
- 498,490,654,575,73,79,513,14,19,15,
- 342,655,43,371,369,402,699,375,418,414,
- 498,490,654,575,73,78,513,14,19,15,
- 342,655,43,371,369,402,733,375,418,414,
- 498,490,654,575,73,77,513,14,19,15,
- 342,655,43,371,369,402,200,375,418,414,
- 498,490,654,575,73,76,513,14,19,15,
- 342,655,43,371,369,402,738,375,418,414,
- 498,490,654,575,73,75,513,14,19,15,
- 342,655,43,371,369,402,57,375,418,414,
- 498,490,654,575,73,74,513,14,19,15,
- 342,655,43,371,369,402,104,375,418,414,
- 498,490,654,575,73,1530,513,14,19,15,
- 342,655,43,371,369,402,647,375,418,414,
- 498,490,654,575,73,1545,513,14,19,15,
- 342,41,43,371,369,402,751,375,418,414,
- 498,490,654,575,92,513,14,19,15,342,
- 41,43,371,369,402,294,375,418,414,498,
- 490,654,575,92,513,14,19,15,342,41,
- 38,6,1634,513,14,19,15,342,41,37,
- 362,513,14,19,15,342,41,43,371,369,
- 402,1644,375,418,414,498,490,654,575,92,
- 513,14,19,15,342,41,43,371,369,402,
- 524,375,418,414,498,490,654,575,92,513,
- 14,19,15,342,41,36,44,213,513,14,
- 19,15,342,41,35,206,513,14,19,15,
- 342,41,43,371,369,402,203,375,418,414,
- 498,490,654,575,92,513,14,19,15,342,
- 41,43,371,369,402,105,375,418,414,498,
- 490,654,575,72,373,1614,537,14,19,15,
- 342,40,204,513,14,19,15,342,41,34,
- 243,275,755,447,243,207,16,373,219,1176,
- 222,1325,224,225,230,1457,268,373,341,273,
- 255,214,264,373,255,214,242,278,472,1076,
- 690,275,754,265,718,329,756,189,219,1176,
- 222,1325,224,225,230,21,268,373,341,273,
- 256,214,1609,497,256,214,1174,133,214,401,
- 396,52,229,1227,136,132,134,158,400,262,
- 513,14,19,15,342,41,43,371,369,402,
- 152,375,418,414,498,490,1030,373,542,138,
- 616,164,305,15,15,15,542,142,145,148,
- 151,372,1615,1540,1589,661,275,634,144,274,
- 151,1168,188,220,1176,222,1325,224,225,230,
- 187,270,373,341,273,219,1176,222,1325,224,
- 225,230,513,14,19,15,342,41,46,1324,
- 513,14,19,15,342,41,43,371,369,402,
- 759,375,886,305,513,14,19,15,342,41,
- 43,371,866,1615,513,14,19,15,342,41,
- 43,371,369,726,199,201,365,14,19,15,
- 342,41,35,1639,59,734,219,1176,222,1325,
- 224,225,230,537,14,19,15,342,33,247,
- 1324,513,14,19,15,342,41,43,371,369,
- 402,228,926,513,14,19,15,342,41,43,
- 371,369,402,526,946,513,14,19,15,342,
- 41,43,371,369,766,200,201,513,14,19,
- 15,342,41,43,371,369,806,513,14,19,
- 15,342,41,43,371,369,826,615,717,365,
- 14,19,15,342,41,35,449,1615,1437,513,
- 14,19,15,342,41,45,1586,60,1723,1723,
- 278,1723,248,1723,275,232,604,1567,279,373,
- 219,1176,222,1325,224,225,230,688,15,268,
- 373,341,273,275,1609,133,214,636,553,447,
- 1201,280,140,132,134,158,1227,688,268,373,
- 341,273,1115,449,15,542,669,636,1085,373,
- 15,15,244,1569,553,267,1140,139,86,164,
- 316,316,1115,591,1723,232,1549,260,1085,189,
- 447,281,1429,542,1172,198,198,513,14,19,
- 15,342,41,44,86,1723,1220,260,646,1021,
- 86,86,1429,243,1172,1124,1124,296,1417,1417,
- 416,14,19,15,342,41,42,655,133,214,
- 447,678,1723,1723,15,143,132,134,158,1723,
- 48,615,1147,687,1608,447,730,133,214,324,
- 636,133,214,245,146,132,134,158,149,132,
- 134,158,243,133,214,198,15,50,246,282,
- 152,132,134,158,142,275,420,758,181,636,
- 1168,1723,255,214,636,389,502,95,677,720,
- 270,373,341,273,1115,553,636,636,1085,198,
- 537,14,19,15,342,32,193,281,720,373,
- 758,1115,198,1250,50,50,1549,553,396,260,
- 1546,1587,677,15,1649,86,1172,752,1638,755,
- 314,226,1250,1574,447,677,260,636,730,727,
- 193,1469,542,1172,447,1085,1085,88,936,373,
- 730,730,1115,194,1650,1587,210,295,730,342,
- 1723,1651,1659,1220,374,1723,298,297,1723,1723,
- 205,231,326,1577,1290,210,1723,261,1723,1723,
- 1658,235,182,206,1723,1723,1723,1723,1723,1723,
- 691,1723,1610,1290,1723,1163,1723,1723,1723,1723,
- 1723,1723,1723,1723,1723,1723,1723,1723,195,1723,
- 0,17,178,0,18,177,0,1,1950,0,
- 1,1961,0
+ 4,4,4,4,4,4,4,51,51,71,
+ 71,5,5,5,5,5,5,5,5,5,
+ 5,5,6,6,7,7,7,7,8,8,
+ 8,9,9,9,11,11,11,11,11,12,
+ 12,12,13,13,14,14,15,15,16,16,
+ 17,17,18,18,19,19,19,19,19,19,
+ 19,19,19,19,19,19,101,41,33,88,
+ 88,73,73,47,102,102,102,102,102,102,
+ 102,103,103,103,104,104,109,109,110,110,
+ 105,105,106,106,106,112,112,107,107,107,
+ 107,108,108,108,108,108,111,111,24,24,
+ 24,24,24,27,27,27,79,79,74,74,
+ 74,74,75,75,75,76,76,76,77,77,
+ 77,78,78,78,113,113,114,114,115,28,
+ 30,30,30,30,30,52,54,54,54,54,
+ 54,54,54,54,54,54,54,54,64,64,
+ 25,25,61,61,89,90,65,65,62,62,
+ 62,66,80,80,81,81,67,67,67,42,
+ 91,91,82,83,83,83,63,63,92,84,
+ 84,85,85,68,68,21,22,22,22,29,
+ 48,48,34,34,34,34,37,37,39,35,
+ 35,36,40,40,116,116,38,117,117,93,
+ 93,26,26,26,26,26,26,26,26,26,
+ 86,49,49,49,49,31,56,56,55,55,
+ 55,57,57,50,50,94,94,60,60,58,
+ 58,58,43,43,43,44,45,45,45,46,
+ 46,46,46,53,53,53,59,95,72,72,
+ 72,72,69,96,97,97,98,98,99,99,
+ 118,118,119,119,120,120,120,120,122,122,
+ 121,121,121,123,123,87,87,1,14,19,
+ 15,343,670,44,400,370,405,201,404,492,
+ 462,577,498,658,643,74,91,387,134,215,
+ 31,14,144,743,136,133,135,159,434,14,
+ 19,15,343,670,44,400,370,405,399,404,
+ 492,462,577,498,658,643,74,283,277,138,
+ 57,165,530,14,19,15,343,40,142,145,
+ 148,151,402,358,14,19,15,343,42,35,
+ 341,1404,1505,1530,1540,1553,1161,744,23,312,
+ 157,288,191,1122,6,30,248,1479,506,14,
+ 19,15,343,42,44,400,1162,289,257,215,
+ 1294,482,14,19,15,343,670,44,400,370,
+ 405,399,404,492,462,577,498,658,643,74,
+ 283,332,14,19,15,343,670,44,400,370,
+ 405,399,404,492,462,577,498,658,643,74,
+ 283,201,605,421,506,14,19,15,343,42,
+ 44,400,370,405,288,404,492,462,577,1341,
+ 1479,506,14,19,15,343,42,44,400,1227,
+ 289,615,200,1630,290,1603,1571,294,684,323,
+ 1479,506,14,19,15,343,42,44,1042,414,
+ 291,275,14,19,15,343,670,44,400,370,
+ 405,1158,404,492,462,577,498,658,643,74,
+ 1127,26,22,196,241,458,14,19,15,343,
+ 670,44,400,370,405,489,404,492,462,577,
+ 498,658,643,74,283,506,14,19,15,343,
+ 670,44,400,370,405,1544,404,492,462,577,
+ 498,658,643,74,91,1315,439,344,506,14,
+ 19,15,343,42,44,400,370,405,292,404,
+ 492,462,1265,104,1479,578,14,19,15,343,
+ 670,44,400,370,405,1211,404,492,462,577,
+ 498,658,643,74,1337,326,20,189,299,14,
+ 19,15,343,670,44,400,370,405,341,404,
+ 492,462,577,498,658,643,74,1421,134,215,
+ 1424,242,1511,237,136,133,135,159,506,14,
+ 19,15,343,670,44,400,370,405,713,404,
+ 492,462,577,498,658,643,74,92,1494,138,
+ 595,165,554,14,19,15,343,33,142,145,
+ 148,151,402,506,14,19,15,343,42,44,
+ 1059,1404,1505,1530,1540,1553,1161,506,14,19,
+ 15,343,670,44,400,370,405,489,404,492,
+ 462,577,498,658,643,74,85,506,14,19,
+ 15,343,670,44,400,370,405,16,404,492,
+ 462,577,498,658,643,74,84,506,14,19,
+ 15,343,670,44,400,370,405,489,404,492,
+ 462,577,498,658,643,74,83,506,14,19,
+ 15,343,670,44,400,370,405,1343,404,492,
+ 462,577,498,658,643,74,82,506,14,19,
+ 15,343,670,44,400,370,405,489,404,492,
+ 462,577,498,658,643,74,81,506,14,19,
+ 15,343,670,44,400,370,405,1344,404,492,
+ 462,577,498,658,643,74,80,506,14,19,
+ 15,343,670,44,400,370,405,489,404,492,
+ 462,577,498,658,643,74,79,506,14,19,
+ 15,343,670,44,400,370,405,21,404,492,
+ 462,577,498,658,643,74,78,506,14,19,
+ 15,343,670,44,400,370,405,489,404,492,
+ 462,577,498,658,643,74,77,506,14,19,
+ 15,343,670,44,400,370,405,275,404,492,
+ 462,577,498,658,643,74,76,506,14,19,
+ 15,343,670,44,400,370,405,489,404,492,
+ 462,577,498,658,643,74,75,506,14,19,
+ 15,343,670,44,400,370,405,281,404,492,
+ 462,577,498,658,643,74,1631,506,14,19,
+ 15,343,670,44,400,370,405,489,404,492,
+ 462,577,498,658,643,74,1632,506,14,19,
+ 15,343,42,44,400,370,405,282,404,492,
+ 462,577,498,658,643,93,506,14,19,15,
+ 343,42,44,400,370,405,243,404,492,462,
+ 577,498,658,643,93,506,14,19,15,343,
+ 42,39,602,632,1644,506,14,19,15,343,
+ 42,38,278,506,14,19,15,343,42,44,
+ 400,370,405,1659,404,492,462,577,498,658,
+ 643,93,506,14,19,15,343,42,44,400,
+ 370,405,194,404,492,462,577,498,658,643,
+ 93,506,14,19,15,343,42,37,118,199,
+ 214,506,14,19,15,343,42,36,348,506,
+ 14,19,15,343,42,44,400,370,405,204,
+ 404,492,462,577,498,658,643,93,506,14,
+ 19,15,343,42,44,400,370,405,113,404,
+ 492,462,577,498,658,643,73,118,1490,506,
+ 14,19,15,343,42,35,205,555,118,416,
+ 645,307,583,465,276,323,488,104,555,207,
+ 1260,617,220,1184,223,1611,225,226,231,1460,
+ 87,269,986,342,274,1098,265,189,593,279,
+ 243,87,1346,490,323,276,266,285,52,1280,
+ 583,189,241,220,1184,223,1611,225,226,231,
+ 1454,261,269,986,342,274,907,1503,1422,256,
+ 215,124,134,215,511,1619,182,867,137,133,
+ 135,159,263,506,14,19,15,343,42,44,
+ 400,370,405,151,404,492,462,577,498,1339,
+ 230,52,1346,139,397,165,554,14,19,15,
+ 343,32,143,146,149,152,402,654,212,276,
+ 1454,499,256,215,1347,281,13,221,1184,223,
+ 1611,225,226,231,618,1593,271,986,342,274,
+ 506,14,19,15,343,42,44,400,370,405,
+ 52,404,492,1279,50,622,281,397,118,220,
+ 1184,223,1611,225,226,231,1593,756,1554,624,
+ 330,256,215,1669,506,14,19,15,343,42,
+ 44,400,370,405,746,404,1231,917,257,215,
+ 220,1184,223,1611,225,226,231,506,14,19,
+ 15,343,42,34,1669,583,1277,200,202,358,
+ 14,19,15,343,42,35,463,506,14,19,
+ 15,343,42,44,400,370,405,104,1236,723,
+ 188,690,249,97,158,499,562,728,201,202,
+ 506,14,19,15,343,42,44,400,370,405,
+ 245,1264,506,14,19,15,343,42,44,400,
+ 370,1119,506,14,19,15,343,42,44,400,
+ 370,1123,506,14,19,15,343,42,44,400,
+ 370,1126,506,14,19,15,343,42,44,400,
+ 370,1153,693,613,232,506,14,19,15,343,
+ 42,47,1593,1121,506,14,19,15,343,42,
+ 46,104,646,279,331,134,215,205,710,276,
+ 765,141,133,135,159,514,220,1184,223,1611,
+ 225,226,231,160,244,1563,269,986,342,274,
+ 1503,257,215,1181,242,280,140,747,165,1347,
+ 307,867,221,1184,223,1611,225,226,231,276,
+ 617,118,506,14,19,15,343,42,45,590,
+ 276,317,514,118,1098,1347,269,986,342,274,
+ 124,1346,1555,317,620,199,118,271,986,342,
+ 274,268,233,489,87,675,317,199,1658,1203,
+ 261,583,707,1443,1586,907,87,1422,612,1427,
+ 199,1346,489,227,707,1443,134,215,1235,87,
+ 680,545,144,133,135,159,190,707,1443,1203,
+ 709,747,232,747,409,14,19,15,343,42,
+ 43,134,215,714,48,718,787,147,133,135,
+ 159,134,215,116,617,617,142,150,133,135,
+ 159,559,647,617,134,215,617,647,199,1098,
+ 153,133,135,159,382,95,766,1098,197,441,
+ 199,357,1666,124,555,617,1518,1619,583,555,
+ 338,617,1619,729,118,261,118,52,1518,199,
+ 1522,677,1422,261,1572,1098,1125,87,947,730,
+ 1422,194,89,297,1346,315,753,1518,256,215,
+ 746,104,104,194,1154,1585,1607,229,768,118,
+ 211,262,1428,118,104,211,1665,1585,1664,1577,
+ 118,583,195,421,246,247,1457,1638,323,104,
+ 1566,1541,1638,1430,365,323,323,296,323,749,
+ 295,340,287,1715,1715,1715,299,827,1715,1715,
+ 1715,1668,298,1715,236,1715,1715,1715,1715,1715,
+ 206,1715,1715,1715,1715,284,1715,183,207,1715,
+ 1600,1715,0,17,179,0,18,178,0,1,
+ 1943,0,1,1954,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -397,91 +396,92 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface TermCheck {
public final static byte termCheck[] = {0,
0,1,2,3,4,0,6,7,8,9,
- 10,0,12,13,0,15,16,17,18,19,
+ 10,11,0,0,14,15,16,17,18,19,
20,21,22,23,24,25,26,27,28,0,
0,31,32,33,34,35,36,37,38,39,
- 40,41,42,0,44,45,46,0,1,0,
- 3,0,5,6,7,8,0,14,0,0,
- 13,2,0,4,59,14,55,56,57,58,
- 11,24,25,26,27,28,47,48,31,32,
+ 40,41,42,30,44,45,46,0,1,0,
+ 3,0,5,6,7,8,0,6,7,8,
+ 55,56,57,58,17,9,10,55,56,57,
+ 58,24,25,26,27,28,47,48,31,32,
33,34,35,36,37,38,39,40,41,42,
43,44,45,46,0,1,0,3,51,5,
- 6,7,8,0,0,1,2,13,4,0,
- 80,55,56,57,58,11,0,59,24,25,
- 26,27,28,61,62,31,32,33,34,35,
+ 6,7,8,0,55,56,57,58,5,13,
+ 80,17,0,1,2,0,4,0,24,25,
+ 26,27,28,0,12,31,32,33,34,35,
36,37,38,39,40,41,42,43,44,45,
46,0,1,0,3,51,5,6,7,8,
- 0,0,1,2,13,4,47,48,55,56,
- 57,58,11,47,48,24,25,26,27,28,
- 0,0,31,32,33,34,35,36,37,38,
+ 0,1,2,50,4,12,0,0,17,0,
+ 4,2,12,4,49,24,25,26,27,28,
+ 13,12,31,32,33,34,35,36,37,38,
39,40,41,42,43,44,45,46,0,1,
0,3,51,0,6,7,8,4,0,0,
- 0,13,4,60,4,0,0,1,2,4,
- 60,5,24,25,26,27,28,11,0,31,
+ 0,1,4,3,0,17,0,1,2,53,
+ 54,5,24,25,26,27,28,13,12,31,
32,33,34,35,36,37,38,39,40,41,
- 42,0,44,45,46,29,65,6,7,8,
- 0,1,0,3,13,0,53,54,6,7,
- 8,53,54,53,54,24,25,26,27,28,
+ 42,0,44,45,46,29,0,6,7,8,
+ 0,0,0,2,2,4,53,54,17,9,
+ 10,53,54,12,12,24,25,26,27,28,
61,62,31,32,33,34,35,36,37,38,
39,40,41,42,0,1,2,3,4,5,
- 0,0,1,9,10,5,12,13,0,15,
- 16,17,18,19,20,21,22,23,0,1,
- 2,3,4,5,0,1,2,9,10,29,
- 12,13,0,15,16,17,18,19,20,21,
- 22,23,0,0,50,2,0,4,0,1,
- 49,3,0,11,11,0,1,2,3,4,
- 5,0,14,0,9,10,5,12,50,14,
- 15,16,17,18,19,20,21,22,23,0,
- 1,0,3,59,0,1,2,3,4,5,
- 29,30,0,9,10,63,12,5,43,15,
+ 0,1,2,9,10,11,0,1,14,15,
16,17,18,19,20,21,22,23,0,1,
- 2,3,4,0,68,69,64,9,10,0,
- 12,29,0,15,16,17,18,19,20,21,
- 22,23,0,14,50,0,1,2,3,4,
- 0,9,10,30,9,10,65,12,0,14,
- 15,16,17,18,19,20,21,22,23,51,
- 0,1,2,3,4,0,0,0,0,9,
- 10,5,12,5,14,15,16,17,18,19,
- 20,21,22,23,0,1,2,3,4,0,
- 1,0,3,9,10,4,12,29,14,15,
- 16,17,18,19,20,21,22,23,0,1,
- 2,3,4,0,47,48,50,9,10,0,
- 12,0,14,15,16,17,18,19,20,21,
- 22,23,0,1,2,3,4,0,1,0,
- 3,9,10,0,12,0,1,15,16,17,
- 18,19,20,21,22,23,0,1,2,3,
- 4,0,1,0,3,9,10,0,12,0,
- 49,15,16,17,18,19,20,21,22,23,
- 0,1,2,3,4,0,47,48,0,9,
- 10,0,12,5,0,15,16,17,18,19,
- 20,21,22,23,0,11,2,64,4,5,
- 6,7,8,0,0,11,2,13,4,5,
- 6,7,8,0,1,11,3,13,24,25,
- 26,27,28,29,0,1,2,14,24,25,
- 26,27,28,29,0,60,52,0,1,2,
- 6,7,8,0,66,70,71,72,73,74,
- 75,76,77,78,79,0,0,14,0,0,
- 2,6,7,8,0,6,7,8,13,11,
- 6,7,8,15,16,0,0,13,0,24,
- 25,26,27,28,6,7,8,0,24,25,
- 26,27,28,6,7,8,0,0,0,0,
- 13,4,6,7,8,6,7,8,0,13,
- 52,24,25,26,27,28,0,9,10,63,
- 24,25,26,27,28,67,0,0,2,0,
- 1,5,3,6,7,8,0,11,0,0,
- 2,5,0,0,5,2,49,0,0,11,
- 0,9,10,5,11,29,0,1,11,3,
- 0,0,12,0,0,0,30,0,0,0,
- 0,0,12,0,0,0,11,0,0,0,
- 0,0,43,14,14,14,0,0,0,0,
- 0,43,0,30,30,0,0,30,30,52,
- 0,0,66,0,0,0,0,0,0,0,
- 49,0,0,0,0,0,0,0,0,0,
+ 2,3,4,5,68,69,0,9,10,11,
+ 4,0,14,15,16,17,18,19,20,21,
+ 22,23,0,12,50,0,1,5,3,0,
+ 0,0,1,2,3,4,5,0,13,59,
+ 9,10,11,0,13,14,15,16,50,18,
+ 19,20,21,22,23,49,0,0,1,2,
+ 3,4,5,52,0,43,9,10,11,5,
+ 0,14,15,16,43,18,19,20,21,22,
+ 23,0,1,2,3,4,0,1,59,3,
+ 9,10,11,29,30,14,15,16,0,18,
+ 19,20,21,22,23,49,63,50,0,1,
+ 2,3,4,0,1,0,3,9,10,11,
+ 0,13,14,15,16,5,18,19,20,21,
+ 22,23,51,0,1,2,3,4,0,1,
+ 0,3,9,10,11,5,13,14,15,16,
+ 30,18,19,20,21,22,23,0,1,2,
+ 3,4,47,48,0,0,9,10,11,29,
+ 13,14,15,16,0,18,19,20,21,22,
+ 23,0,1,2,3,4,66,0,0,0,
+ 9,10,11,5,13,14,15,16,0,18,
+ 19,20,21,22,23,0,1,2,3,4,
+ 0,47,48,0,9,10,11,29,5,14,
+ 15,16,12,18,19,20,21,22,23,0,
+ 1,2,3,4,47,48,47,48,9,10,
+ 11,0,29,14,15,16,5,18,19,20,
+ 21,22,23,0,1,2,3,4,0,61,
+ 62,0,9,10,11,4,0,14,15,16,
+ 12,18,19,20,21,22,23,0,1,2,
+ 3,4,0,1,43,3,9,10,11,0,
+ 0,14,15,16,0,18,19,20,21,22,
+ 23,0,13,2,0,4,5,6,7,8,
+ 52,0,0,12,2,11,5,5,17,0,
+ 1,0,3,0,12,24,25,26,27,28,
+ 29,0,13,2,11,4,5,6,7,8,
+ 0,29,0,12,0,0,0,1,17,3,
+ 6,7,8,0,60,24,25,26,27,28,
+ 29,0,9,10,70,71,72,73,74,75,
+ 76,77,78,79,0,30,0,66,2,0,
+ 6,7,8,0,63,6,7,8,12,0,
+ 0,17,0,1,2,0,17,0,24,25,
+ 26,27,28,24,25,26,27,28,0,0,
+ 1,2,0,0,6,7,8,0,1,6,
+ 7,8,0,0,1,17,3,0,0,0,
+ 17,4,24,25,26,27,28,24,25,26,
+ 27,28,0,0,2,0,0,64,0,6,
+ 7,8,0,64,12,0,14,15,6,7,
+ 8,6,7,8,0,0,49,0,0,0,
+ 6,7,8,0,0,30,30,65,13,0,
+ 0,13,13,0,0,0,13,65,60,60,
+ 0,0,0,0,52,0,0,30,0,0,
+ 0,0,0,0,0,0,0,59,0,67,
+ 0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,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;
@@ -489,87 +489,87 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface TermAction {
public final static char termAction[] = {0,
- 1723,662,1470,689,1078,1723,1938,1939,1940,1069,
- 1023,58,1133,1884,1,1600,1333,1126,1733,1734,
- 1735,1736,1014,500,1885,1883,1941,1886,1882,53,
- 1723,1889,1894,1893,1891,1892,1890,1895,1896,1888,
- 1897,1898,1899,1723,397,339,338,1723,1,254,
- 1,1723,192,1,1,1,60,563,202,266,
- 1,1398,61,1,1105,1534,1387,1377,1365,1304,
- 509,1,1,1,1,1,701,1294,1,1,
+ 1715,1002,1471,1003,1109,59,1931,1932,1933,1061,
+ 1051,1307,61,88,1216,672,372,1877,1725,1726,
+ 1727,1728,1005,995,1878,1876,1934,1879,1875,54,
+ 1715,1882,1887,1886,1884,1885,1883,1888,1889,1881,
+ 1890,1891,1892,648,576,509,337,1715,1,60,
+ 1,1715,193,1,1,1,51,1931,1932,1933,
+ 1392,1382,1372,1362,1,683,501,1392,1382,1372,
+ 1362,1,1,1,1,1,408,481,1,1,
1,1,1,1,1,1,1,1,1,1,
- 192,1,1,1,1723,1,183,1,1920,191,
- 1,1,1,59,263,1950,1145,1,1,57,
- 1710,1387,1377,1365,1304,509,56,1086,1,1,
- 1,1,1,1353,1341,1,1,1,1,1,
- 1,1,1,1,1,1,1,191,1,1,
- 1,1723,1,1723,1,1920,192,1,1,1,
- 212,269,1950,1145,1,254,701,1294,1387,1377,
- 1365,1304,509,701,1294,1,1,1,1,1,
- 184,69,1,1,1,1,1,1,1,1,
- 1,1,1,1,192,1,1,1,1723,1901,
- 286,1900,1920,47,1938,1939,1940,1497,49,62,
- 48,1884,1497,533,1497,1723,1,1717,1145,650,
- 1031,1728,1885,1883,1941,1886,1882,509,1723,1889,
- 1894,1893,1891,1892,1890,1895,1896,1888,1897,1898,
- 1899,127,397,339,338,1727,463,1938,1939,1940,
- 1723,1752,1723,1753,1884,1723,1409,1272,1938,1939,
- 1940,1409,1272,1409,1272,1885,1883,1941,1886,1882,
- 1353,1341,1889,1894,1893,1891,1892,1890,1895,1896,
- 1888,1897,1898,1899,1,1740,1470,1741,1316,1726,
- 1,1,1720,1069,1023,89,1133,593,1723,1600,
- 1333,1126,1733,1734,1735,1736,1014,500,1723,1740,
- 1470,1741,1399,1726,1,1950,1397,1069,1023,89,
- 1133,956,65,1600,1333,1126,1733,1734,1735,1736,
- 1014,500,272,269,1725,1398,71,254,1723,1902,
- 1982,1903,67,509,509,1,1740,1470,1741,1078,
- 27,1723,1233,1723,1069,1023,1728,1133,1725,2777,
- 1600,1333,1126,1733,1734,1735,1736,1014,500,186,
- 2798,70,2798,1050,1723,1740,1470,1741,1078,1726,
- 1727,1363,1723,1069,1023,640,1133,1728,27,1600,
- 1333,1126,1733,1734,1735,1736,1014,500,1723,1,
- 1,1,1,87,1210,1464,576,1,1,1723,
- 1,1727,1723,1,1,1,1,1,1,1,
- 1,1,50,1566,1725,1723,1740,1470,1741,1078,
- 1723,480,381,667,1069,1023,463,1133,1723,563,
- 1600,1333,1126,1733,1734,1735,1736,1014,500,2038,
- 1,1740,1470,1741,1078,1723,1723,55,1,1069,
- 1023,1726,1133,1728,2777,1600,1333,1126,1733,1734,
- 1735,1736,1014,500,1723,1740,1470,1741,1078,185,
- 2799,1723,2799,1069,1023,1466,1133,1727,2777,1600,
- 1333,1126,1733,1734,1735,1736,1014,500,1,1740,
- 1470,1741,1078,1723,701,1294,1725,1069,1023,1723,
- 1133,1,2777,1600,1333,1126,1733,1734,1735,1736,
- 1014,500,1723,1740,1470,1741,1078,207,2800,54,
- 2800,1069,1023,68,1133,1723,1962,1600,1333,1126,
- 1733,1734,1735,1736,1014,500,1723,1740,1471,1741,
- 1078,1723,1902,1723,1903,1069,1023,1723,1133,1723,
- 1982,1600,1333,1126,1733,1734,1735,1736,1014,500,
- 1,1740,1470,1741,1078,41,701,1294,1,1069,
- 1023,1723,1133,1732,1723,1600,1333,1126,1733,1734,
- 1735,1736,1014,500,17,976,1711,576,1711,1711,
- 178,178,178,1723,18,1711,1714,178,1714,1714,
- 177,177,177,1723,1902,1714,1903,177,178,178,
- 178,178,178,1711,1,1950,1397,1234,177,177,
- 177,177,177,1714,250,916,1493,254,1950,1397,
- 1,1,1,1723,1731,896,876,856,836,816,
- 776,796,756,736,716,128,66,1623,31,249,
- 1607,1938,1939,1940,129,1938,1939,1940,1884,1438,
- 1938,1939,1940,1747,1748,1723,1723,1884,251,1885,
- 1883,1941,1886,1882,1,1,1,130,1885,1883,
- 1941,1886,1882,1938,1939,1940,131,1,1723,252,
- 1884,254,1938,1939,1940,1938,1939,1940,52,1884,
- 543,1885,1883,1941,1886,1882,1723,480,381,640,
- 1885,1883,1941,1886,1882,460,1,253,1398,209,
- 1902,1728,1903,1938,1939,1940,1723,509,271,1723,
- 1406,1732,51,223,1730,1463,1982,292,285,509,
- 63,480,381,1235,509,1727,208,507,995,507,
- 64,1,1280,257,28,221,1293,28,208,190,
- 190,190,1280,1723,1723,1723,509,1723,1723,1723,
- 1723,1723,1729,186,185,207,1723,1723,1723,1723,
- 1723,1235,1723,1627,440,1723,1723,1750,2785,1642,
- 1723,1723,1731,1723,1723,1723,1723,1723,1723,1723,
- 1981
+ 193,1,1,1,1715,1,41,1,1913,192,
+ 1,1,1,1715,1392,1382,1372,1362,1718,1058,
+ 1702,1,264,1943,1129,1,1,1,1,1,
+ 1,1,1,255,511,1,1,1,1,1,
+ 1,1,1,1,1,1,1,192,1,1,
+ 1,1715,1,273,1,1913,193,1,1,1,
+ 270,1943,1129,1717,255,511,48,1715,1,267,
+ 1472,1403,511,1,1975,1,1,1,1,1,
+ 1058,511,1,1,1,1,1,1,1,1,
+ 1,1,1,1,193,1,1,1,1715,1894,
+ 184,1893,1913,50,1931,1932,1933,1472,49,62,
+ 1715,1744,1472,1745,1715,1877,1,1709,1129,1414,
+ 1405,1720,1878,1876,1934,1879,1875,1639,511,1882,
+ 1887,1886,1884,1885,1883,1888,1889,1881,1890,1891,
+ 1892,128,576,509,337,1719,72,1931,1932,1933,
+ 53,270,272,1403,1435,255,1414,1405,1877,683,
+ 501,1414,1405,511,511,1878,1876,1934,1879,1875,
+ 1350,1327,1882,1887,1886,1884,1885,1883,1888,1889,
+ 1881,1890,1891,1892,1,1732,1471,1733,383,1718,
+ 1,1943,1402,1061,1051,1307,1715,1955,1216,672,
+ 372,595,1725,1726,1727,1728,1005,995,1715,1732,
+ 1471,1733,1319,1718,1193,1118,1,1061,1051,1307,
+ 255,1715,1216,672,372,937,1725,1726,1727,1728,
+ 1005,995,1715,957,1717,1715,1895,1722,1896,1715,
+ 185,1,1732,1471,1733,1109,27,287,1268,1032,
+ 1061,1051,1307,66,2573,1216,672,372,1717,1725,
+ 1726,1727,1728,1005,995,1975,1,1715,1732,1471,
+ 1733,1109,1718,1598,1715,1721,1061,1051,1307,1720,
+ 1715,1216,672,372,27,1725,1726,1727,1728,1005,
+ 995,1715,1,1,1,1,187,2800,1088,2800,
+ 1,1,1,1719,1672,1,1,1,1715,1,
+ 1,1,1,1,1,1974,1250,1717,1715,1732,
+ 1471,1733,1109,186,2801,58,2801,1061,1051,1307,
+ 1715,1058,1216,672,372,1724,1725,1726,1727,1728,
+ 1005,995,2031,1,1732,1471,1733,1109,208,2805,
+ 1,2805,1061,1051,1307,90,2573,1216,672,372,
+ 1266,1725,1726,1727,1728,1005,995,1715,1732,1471,
+ 1733,1109,408,481,57,1715,1061,1051,1307,90,
+ 2573,1216,672,372,1715,1725,1726,1727,1728,1005,
+ 995,1,1732,1471,1733,1109,1723,56,1715,55,
+ 1061,1051,1307,1720,2573,1216,672,372,63,1725,
+ 1726,1727,1728,1005,995,1715,1732,1471,1733,1109,
+ 222,408,481,1,1061,1051,1307,1719,1720,1216,
+ 672,372,511,1725,1726,1727,1728,1005,995,1715,
+ 1732,1483,1733,1109,408,481,408,481,1061,1051,
+ 1307,286,1719,1216,672,372,1606,1725,1726,1727,
+ 1728,1005,995,1715,1732,1496,1733,1109,293,1350,
+ 1327,1715,1061,1051,1307,1120,1715,1216,672,372,
+ 976,1725,1726,1727,1728,1005,995,1,1732,1471,
+ 1733,1109,1715,1895,1606,1896,1061,1051,1307,1715,
+ 1715,1216,672,372,42,1725,1726,1727,1728,1005,
+ 995,17,1643,1703,64,1703,1703,179,179,179,
+ 1651,1,1,1703,1403,1284,1724,1720,179,1715,
+ 1895,67,1896,65,511,179,179,179,179,179,
+ 1703,18,1604,1706,1284,1706,1706,178,178,178,
+ 1715,1719,1715,1706,251,258,210,1895,178,1896,
+ 1,1,1,52,897,178,178,178,178,178,
+ 1706,1715,683,501,877,857,837,817,797,757,
+ 777,737,717,697,129,1591,224,1723,1482,130,
+ 1931,1932,1933,68,1250,1931,1932,1933,511,69,
+ 1715,1877,1,1943,1402,1715,1877,1715,1878,1876,
+ 1934,1879,1875,1878,1876,1934,1879,1875,131,255,
+ 1943,1402,70,132,1931,1932,1933,1,1712,1931,
+ 1932,1933,71,209,1160,1877,1160,1715,1715,213,
+ 1877,1626,1878,1876,1934,1879,1875,1878,1876,1934,
+ 1879,1875,31,250,1589,28,28,578,203,1931,
+ 1932,1933,252,578,1107,253,1739,1740,1,1,
+ 1,1931,1932,1933,254,1715,1975,209,191,191,
+ 1931,1932,1933,191,1715,441,1742,464,1650,1715,
+ 1715,187,186,1715,1715,1715,208,464,535,1013,
+ 1715,1715,1715,1715,461,1715,1715,2755,1715,1715,
+ 1715,1715,1715,1715,1715,1715,1715,1069,1715,327
};
};
public final static char termAction[] = TermAction.termAction;
@@ -577,27 +577,28 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Asb {
public final static char asb[] = {0,
- 384,1,104,41,104,104,104,104,104,104,
- 104,104,104,3,343,51,48,55,53,61,
- 59,63,62,65,64,10,104,343,280,280,
- 402,104,187,187,308,343,104,104,104,104,
- 104,104,104,104,104,104,104,104,104,104,
- 104,104,104,104,104,104,104,104,104,104,
- 104,104,104,104,104,104,187,187,45,80,
- 312,98,250,185,184,283,295,94,295,94,
- 94,295,94,295,357,141,141,48,48,53,
- 53,53,53,51,51,59,55,55,62,61,
- 248,64,63,96,78,308,312,121,45,380,
- 102,187,314,253,94,280,280,94,280,104,
- 78,312,303,380,45,101,98,187,306,357,
- 186,255,96,201,96,231,233,198,228,96,
- 303,380,104,104,45,102,250,243,242,312,
- 255,187,96,201,231,231,228,76,240,280,
- 104,197,228,78,380,303,45,45,187,314,
- 253,306,201,228,190,201,231,233,237,233,
- 80,45,280,104,78,303,255,201,192,233,
- 228,104,280,45,233,187,186,228,72,104,
- 71,117,312,228,228,281,192,104,117,233
+ 377,1,76,41,76,76,76,76,76,76,
+ 76,76,76,3,325,236,233,240,238,246,
+ 244,248,247,250,249,10,76,325,325,291,
+ 291,395,76,159,159,319,325,76,76,76,
+ 76,76,76,76,76,76,76,76,76,76,
+ 76,76,76,76,76,76,76,76,76,76,
+ 76,76,76,76,76,76,76,159,159,159,
+ 45,52,323,70,261,157,156,294,306,66,
+ 306,66,66,306,66,306,339,113,113,233,
+ 233,238,238,238,238,236,236,244,240,240,
+ 247,246,426,249,248,221,68,50,319,323,
+ 93,45,362,74,159,162,264,66,291,291,
+ 66,291,76,50,323,314,362,45,73,70,
+ 159,317,339,158,266,68,191,68,414,416,
+ 374,218,68,314,362,76,76,45,74,261,
+ 421,420,323,266,159,68,191,414,414,218,
+ 48,431,291,76,373,218,50,362,314,45,
+ 45,159,162,264,317,191,218,366,191,414,
+ 416,428,416,52,45,291,76,50,314,266,
+ 191,368,416,218,76,291,45,416,159,158,
+ 218,257,76,256,89,323,218,218,292,368,
+ 76,89,416
};
};
public final static char asb[] = Asb.asb;
@@ -605,48 +606,50 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Asr {
public final static byte asr[] = {0,
- 80,0,66,11,2,52,67,15,16,12,
+ 80,0,66,12,2,52,67,14,15,11,
4,9,10,53,54,47,48,55,56,57,
58,61,62,63,64,65,68,69,43,60,
70,71,72,73,74,76,75,77,78,79,
- 59,29,80,30,50,5,0,4,53,54,
- 9,10,48,47,55,56,57,58,61,62,
- 12,63,64,65,50,29,43,80,68,69,
- 59,66,5,30,0,5,43,11,52,15,
- 16,12,4,9,10,22,23,17,2,18,
- 19,20,21,1,3,14,0,6,7,8,
- 13,50,5,18,19,20,21,3,15,16,
- 12,9,10,22,23,17,4,2,1,0,
- 6,7,8,2,18,19,20,21,1,3,
- 15,16,12,4,9,10,22,23,17,0,
- 7,13,28,8,27,26,25,6,24,52,
- 67,15,16,12,9,10,53,54,47,48,
- 55,56,57,58,61,62,63,64,65,68,
- 69,60,70,71,72,73,74,75,76,77,
- 78,79,4,2,11,30,29,5,0,66,
- 5,4,1,2,59,0,60,11,52,0,
+ 59,29,80,30,50,5,0,5,43,12,
+ 52,14,15,11,4,9,10,22,23,16,
+ 2,18,19,20,21,1,3,13,0,6,
+ 7,8,17,50,5,18,19,20,21,3,
+ 14,15,11,9,10,22,23,16,4,2,
+ 1,0,6,7,8,2,18,19,20,21,
+ 1,3,14,15,11,4,9,10,22,23,
+ 16,0,7,17,28,8,27,26,25,6,
+ 24,52,67,14,15,11,9,10,53,54,
+ 47,48,55,56,57,58,61,62,63,64,
+ 65,68,69,60,70,71,72,73,74,75,
+ 76,77,78,79,4,2,12,30,29,5,
+ 0,4,24,31,6,32,44,25,33,26,
+ 34,35,27,7,36,37,17,45,28,46,
+ 38,39,8,40,41,42,1,3,49,0,
24,31,6,32,44,25,33,26,34,35,
- 27,7,36,37,13,45,28,46,38,39,
+ 27,7,36,37,17,45,28,46,38,39,
8,40,41,42,1,3,51,5,43,0,
- 1,3,5,43,30,0,5,30,43,60,
- 0,2,5,30,29,66,11,59,0,4,
- 2,11,29,5,24,31,6,32,44,25,
- 33,26,34,35,27,7,36,37,13,45,
- 28,46,38,39,8,40,41,42,49,3,
- 1,0,39,31,36,34,35,33,32,37,
- 38,40,41,42,59,66,28,25,13,24,
- 27,26,6,7,8,30,1,5,29,2,
- 11,4,0,4,24,31,6,32,44,25,
- 33,26,34,35,27,7,36,37,13,45,
- 28,46,38,39,8,40,41,42,1,3,
- 49,0,17,18,19,20,21,2,15,16,
- 12,4,9,10,22,23,3,1,44,45,
- 46,39,31,36,34,35,33,32,37,38,
- 40,41,42,28,25,13,24,27,26,6,
- 7,8,0,17,18,19,20,21,1,3,
- 2,15,16,12,4,9,10,22,23,51,
- 0,5,29,17,18,19,20,21,1,3,
- 2,15,16,12,4,9,10,22,23,0
+ 60,70,71,72,73,74,75,76,77,78,
+ 79,13,4,53,54,9,10,48,47,55,
+ 56,57,58,61,62,11,63,64,65,50,
+ 29,43,80,68,69,59,66,5,30,0,
+ 4,2,12,29,5,24,31,6,32,44,
+ 25,33,26,34,35,27,7,36,37,17,
+ 45,28,46,38,39,8,40,41,42,49,
+ 3,1,0,39,31,36,34,35,33,32,
+ 37,38,40,41,42,59,66,28,25,17,
+ 24,27,26,6,7,8,30,1,5,29,
+ 2,12,4,0,16,18,19,20,21,2,
+ 14,15,11,4,9,10,22,23,3,1,
+ 44,45,46,39,31,36,34,35,33,32,
+ 37,38,40,41,42,28,25,17,24,27,
+ 26,6,7,8,0,66,5,4,1,2,
+ 59,0,60,12,52,0,16,18,19,20,
+ 21,1,3,2,14,15,11,4,9,10,
+ 22,23,51,0,5,29,16,18,19,20,
+ 21,1,3,2,14,15,11,4,9,10,
+ 22,23,0,1,3,5,43,30,0,2,
+ 5,30,29,66,12,59,0,5,30,43,
+ 60,0
};
};
public final static byte asr[] = Asr.asr;
@@ -654,27 +657,28 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Nasb {
public final static byte nasb[] = {0,
- 105,9,26,9,26,26,26,26,26,26,
- 26,26,26,9,86,9,9,9,9,9,
- 9,9,9,9,9,9,26,86,28,28,
- 112,87,79,79,74,1,26,26,26,26,
- 26,26,26,26,26,26,26,26,26,26,
- 26,26,87,26,26,26,26,26,26,26,
- 26,26,26,26,26,26,79,79,34,26,
- 98,32,73,10,10,64,65,12,65,17,
- 17,65,16,65,59,9,9,9,9,9,
+ 103,9,23,9,23,23,23,23,23,23,
+ 23,23,23,9,86,9,9,9,9,9,
+ 9,9,9,9,9,9,23,86,86,10,
+ 10,110,87,80,80,73,1,23,23,23,
+ 23,23,23,23,23,23,23,23,23,23,
+ 23,23,23,87,23,23,23,23,23,23,
+ 23,23,23,23,23,23,23,80,80,80,
+ 29,23,61,27,72,12,12,58,59,18,
+ 59,32,32,59,31,59,53,9,9,9,
9,9,9,9,9,9,9,9,9,9,
- 9,9,9,9,55,94,9,36,34,48,
- 33,79,81,78,57,57,57,57,57,26,
- 24,9,55,48,34,33,14,79,51,2,
- 9,83,21,55,9,55,46,19,55,9,
- 55,48,26,26,34,33,50,10,10,98,
- 83,79,9,90,55,57,30,23,9,57,
- 26,44,30,55,48,14,34,34,79,81,
- 78,67,55,30,39,108,57,46,9,9,
- 25,34,57,26,24,14,101,90,53,46,
- 30,26,57,34,46,79,79,30,40,26,
- 9,53,98,30,30,9,53,26,69,42
+ 9,9,9,9,9,9,9,49,82,9,
+ 34,29,51,28,80,39,79,37,37,37,
+ 37,37,23,21,9,49,51,29,28,14,
+ 80,45,2,9,41,77,49,9,49,70,
+ 16,49,9,49,51,23,23,29,28,44,
+ 12,12,61,41,80,9,93,49,37,25,
+ 20,9,37,23,101,25,49,51,14,29,
+ 29,80,39,79,64,49,25,90,106,37,
+ 70,9,9,22,29,37,23,21,14,97,
+ 93,47,70,25,23,37,29,70,80,80,
+ 25,91,23,9,47,61,25,25,9,47,
+ 23,66,113
};
};
public final static byte nasb[] = Nasb.nasb;
@@ -682,18 +686,18 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Nasr {
public final static char nasr[] = {0,
- 4,79,78,77,76,64,75,74,0,26,
- 0,89,0,20,0,92,65,0,97,0,
- 90,0,68,10,59,4,0,70,0,32,
- 0,10,4,23,0,4,10,0,10,69,
- 0,95,0,99,0,51,0,56,0,22,
- 43,42,36,34,10,0,24,0,64,60,
- 61,62,63,52,27,0,43,42,36,34,
- 31,0,22,42,43,10,0,10,22,0,
- 31,49,10,25,0,48,10,45,0,81,
- 10,48,0,43,42,31,0,31,49,0,
- 93,10,25,0,10,87,0,10,48,66,
- 0,10,88,0
+ 4,79,78,77,76,65,75,74,0,71,
+ 0,26,0,21,0,97,0,89,0,69,
+ 10,59,4,0,32,0,10,4,23,0,
+ 92,66,0,4,10,0,25,0,31,49,
+ 10,24,0,20,45,44,37,35,10,0,
+ 56,0,65,61,62,63,64,52,27,0,
+ 31,49,0,45,44,37,35,31,0,51,
+ 0,20,44,45,10,0,90,0,10,20,
+ 0,45,44,31,0,42,10,41,0,10,
+ 70,0,81,10,42,0,93,10,24,0,
+ 99,0,10,87,0,10,42,67,0,10,
+ 88,0,95,0
};
};
public final static char nasr[] = Nasr.nasr;
@@ -702,7 +706,7 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface TerminalIndex {
public final static char terminalIndex[] = {0,
85,2,86,9,87,48,64,76,10,11,
- 1,8,69,3,6,7,68,81,82,83,
+ 8,1,3,6,7,68,69,81,82,83,
84,12,13,44,55,60,63,72,90,42,
47,52,56,61,62,66,67,74,75,78,
79,80,91,54,70,73,16,17,30,89,
@@ -719,13 +723,13 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface NonterminalIndex {
public final static char nonterminalIndex[] = {0,
0,0,0,101,105,106,107,108,109,0,
- 110,111,112,113,114,115,116,117,118,129,
- 0,97,96,121,122,150,128,0,0,0,
- 0,98,146,148,0,149,0,0,0,0,
- 159,160,161,0,100,120,137,141,147,156,
- 0,131,136,0,151,154,155,158,0,132,
- 133,134,135,138,0,140,145,162,99,102,
- 103,104,119,123,124,125,126,127,130,0,
+ 110,111,112,113,114,115,116,117,118,97,
+ 129,0,96,122,121,150,128,0,0,0,
+ 0,98,0,146,148,0,149,0,0,0,
+ 100,141,159,160,161,0,120,137,147,156,
+ 0,131,136,0,151,154,155,158,0,103,
+ 132,133,134,135,138,0,140,145,162,99,
+ 102,104,119,123,124,125,126,127,130,0,
139,143,0,0,144,153,95,0,0,0,
142,0,152,157,0,163,164,0,165,0,
0,0,0,0,0,0,0,0,0,0,
@@ -738,10 +742,10 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopePrefix {
public final static char scopePrefix[] = {
- 82,113,158,92,35,41,121,12,136,21,
- 51,69,28,47,103,173,177,145,1,1,
- 32,56,79,181,6,107,152,127,152,99,
- 59,59,59
+ 82,113,162,92,35,41,121,12,136,21,
+ 51,69,28,47,103,158,177,181,145,1,
+ 1,32,56,79,185,6,107,152,127,152,
+ 99,59,59,59
};
};
public final static char scopePrefix[] = ScopePrefix.scopePrefix;
@@ -750,9 +754,9 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeSuffix {
public final static char scopeSuffix[] = {
90,90,90,90,4,4,90,18,142,26,
- 4,26,26,4,101,26,4,149,4,4,
- 26,4,26,26,9,110,155,130,166,101,
- 66,61,74
+ 4,26,26,4,101,26,26,4,149,4,
+ 4,26,4,26,26,9,110,155,130,170,
+ 101,66,61,74
};
};
public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
@@ -760,10 +764,10 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeLhs {
public final static char scopeLhs[] = {
- 62,60,4,62,26,26,60,53,106,44,
- 26,39,44,26,66,4,4,18,99,98,
- 42,26,36,2,68,66,6,107,4,66,
- 39,37,39
+ 63,61,4,63,26,26,61,53,106,46,
+ 26,40,46,26,67,5,4,4,18,99,
+ 98,44,26,37,2,69,67,6,107,4,
+ 67,40,38,40
};
};
public final static char scopeLhs[] = ScopeLhs.scopeLhs;
@@ -772,9 +776,9 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeLa {
public final static byte scopeLa[] = {
43,43,43,43,50,50,43,43,86,29,
- 50,29,29,50,66,29,50,59,50,50,
- 29,50,29,29,60,1,29,92,29,66,
- 2,2,2
+ 50,29,29,50,66,29,29,50,59,50,
+ 50,29,50,29,29,60,1,29,92,29,
+ 66,2,2,2
};
};
public final static byte scopeLa[] = ScopeLa.scopeLa;
@@ -783,9 +787,9 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeStateSet {
public final static byte scopeStateSet[] = {
17,17,32,17,21,21,17,87,-1,25,
- 21,9,25,21,3,32,32,62,1,7,
- 25,21,9,32,88,3,35,-1,32,3,
- 9,9,9
+ 21,9,25,21,3,32,32,32,62,1,
+ 7,25,21,9,32,88,3,35,-1,32,
+ 3,9,9,9
};
};
public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
@@ -793,25 +797,25 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 139,11,0,96,0,189,103,0,31,136,
- 0,144,165,103,14,152,0,98,0,0,
- 148,103,2,135,0,97,0,148,103,2,
- 0,151,2,0,112,13,179,103,11,0,
- 112,179,103,13,11,0,112,13,11,0,
- 112,179,103,11,0,112,11,0,129,0,
+ 140,12,0,96,0,189,103,0,31,136,
+ 0,144,165,103,13,152,0,98,0,0,
+ 148,103,2,137,0,97,0,148,103,2,
+ 0,151,2,0,112,17,179,103,12,0,
+ 112,179,103,17,12,0,112,17,12,0,
+ 112,179,103,12,0,112,12,0,130,0,
2,0,152,97,0,2,97,0,148,103,
- 2,129,0,2,0,151,97,0,140,2,
- 0,144,177,103,14,117,185,44,0,98,
- 0,144,177,103,14,185,44,0,141,0,
- 99,0,184,103,141,0,103,141,0,142,
- 99,0,173,103,14,183,117,182,157,0,
- 173,103,14,182,157,0,195,85,0,77,
- 2,100,97,99,0,195,115,138,2,89,
- 0,53,0,0,138,69,110,0,29,117,
- 0,164,2,0,97,106,0,144,165,103,
- 14,115,164,2,0,97,3,0,104,0,
- 98,0,181,2,97,0,138,11,97,0,
- 138,2,0
+ 2,130,0,2,0,151,97,0,141,2,
+ 0,144,177,103,13,118,185,44,0,98,
+ 0,144,177,103,13,185,44,0,135,0,
+ 99,0,184,103,135,0,103,135,0,142,
+ 99,0,173,103,13,183,118,182,158,0,
+ 173,103,13,182,158,0,195,85,0,77,
+ 2,100,97,99,0,195,113,134,2,89,
+ 0,53,0,0,134,69,110,0,29,117,
+ 0,153,2,0,97,106,0,153,2,16,
+ 0,144,165,103,13,113,153,2,0,97,
+ 3,0,104,0,98,0,181,2,97,0,
+ 134,12,97,0,134,2,0
};
};
public final static char scopeRhs[] = ScopeRhs.scopeRhs;
@@ -819,15 +823,15 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeState {
public final static char scopeState[] = {0,
- 906,0,1574,1587,1540,0,398,0,374,1293,
- 1397,1232,1220,1145,1115,0,636,1177,316,0,
- 1325,1176,373,341,1220,1145,1115,1549,1398,1417,
- 0,1600,1333,1126,1399,1316,1520,463,1210,640,
- 576,1353,1341,1280,1294,701,1387,1377,1365,1304,
- 1497,1409,1272,480,381,1133,1078,1069,1023,1014,
- 500,1086,1050,1031,995,976,956,936,616,1105,
- 593,509,916,896,876,856,836,816,796,776,
- 756,736,716,316,667,553,533,420,440,347,
+ 1571,0,1566,1585,1554,0,399,0,1428,1266,
+ 1402,1235,1203,1129,1098,0,617,1161,317,0,
+ 1611,1184,986,342,1203,1129,1098,1454,1403,1443,
+ 0,1216,672,372,1319,383,1544,464,1193,1250,
+ 578,1350,1327,1284,481,408,1392,1382,1372,1362,
+ 1472,1414,1405,683,501,1307,1109,1061,1051,1005,
+ 995,1069,1032,1013,976,957,937,917,618,1088,
+ 595,511,897,877,857,837,817,797,777,757,
+ 737,717,697,317,648,555,535,421,441,348,
0
};
};
@@ -836,27 +840,28 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface InSymb {
public final static char inSymb[] = {0,
- 0,180,103,166,17,23,22,10,9,4,
- 12,16,15,97,2,101,100,104,102,106,
- 105,108,107,110,109,98,30,2,67,52,
- 2,11,164,138,141,103,10,9,54,53,
- 4,58,57,56,55,47,48,12,62,61,
- 64,63,69,68,65,79,78,77,75,76,
- 74,73,72,71,70,60,164,181,138,115,
- 103,11,2,136,135,167,168,157,169,46,
- 45,170,44,171,172,1,3,100,100,102,
- 102,102,102,101,101,105,104,104,107,106,
- 138,109,108,115,14,142,124,13,112,103,
- 4,151,103,2,182,158,158,185,158,59,
- 103,124,4,103,112,179,149,148,118,103,
- 150,103,117,14,117,14,165,103,14,152,
- 4,103,179,13,112,4,2,127,129,103,
- 30,148,183,103,14,103,144,30,189,52,
- 11,190,103,14,103,149,112,112,140,103,
- 2,142,14,173,141,174,103,177,117,178,
- 60,139,52,11,103,149,103,103,103,177,
- 144,60,30,139,165,148,186,173,184,59,
- 140,2,103,144,144,30,30,59,142,125
+ 0,180,103,166,16,23,22,10,9,4,
+ 11,15,14,97,2,101,100,104,102,106,
+ 105,108,107,110,109,98,30,2,2,67,
+ 52,2,12,153,134,135,103,10,9,54,
+ 53,4,58,57,56,55,47,48,11,62,
+ 61,64,63,69,68,65,79,78,77,75,
+ 76,74,73,72,71,70,60,153,153,181,
+ 134,113,103,12,2,138,137,167,168,158,
+ 169,46,45,170,44,171,172,1,3,100,
+ 100,102,102,102,102,101,101,105,104,104,
+ 107,106,134,109,108,113,113,13,142,124,
+ 17,112,103,4,151,103,2,182,159,159,
+ 185,159,59,103,124,4,103,112,179,149,
+ 148,117,103,150,103,118,13,118,13,165,
+ 103,13,152,4,103,179,17,112,4,2,
+ 128,130,103,30,148,183,103,13,103,144,
+ 30,189,52,12,190,103,13,103,149,112,
+ 112,141,103,2,142,13,173,135,174,103,
+ 177,118,178,60,140,52,12,103,149,103,
+ 103,103,177,144,60,30,140,165,148,186,
+ 173,184,59,141,2,103,144,144,30,30,
+ 59,142,125
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -967,7 +972,7 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
"expression",
"postfix_expression",
"member_name",
- "type_name",
+ "type_id",
"initializer_list",
"unary_expression",
"cast_expression",
@@ -1042,8 +1047,8 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public final static int
ERROR_SYMBOL = 51,
- SCOPE_UBOUND = 32,
- SCOPE_SIZE = 33,
+ SCOPE_UBOUND = 33,
+ SCOPE_SIZE = 34,
MAX_NAME_LENGTH = 38;
public final int getErrorSymbol() { return ERROR_SYMBOL; }
@@ -1052,20 +1057,20 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
public final static int
- NUM_STATES = 210,
+ NUM_STATES = 213,
NT_OFFSET = 93,
- LA_STATE_OFFSET = 2038,
+ LA_STATE_OFFSET = 2031,
MAX_LA = 2,
- NUM_RULES = 315,
+ NUM_RULES = 316,
NUM_NONTERMINALS = 123,
NUM_SYMBOLS = 216,
SEGMENT_SIZE = 8192,
- START_STATE = 1585,
+ START_STATE = 1584,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 80,
EOLT_SYMBOL = 80,
- ACCEPT_ACTION = 1710,
- ERROR_ACTION = 1723;
+ ACCEPT_ACTION = 1702,
+ ERROR_ACTION = 1715;
public final static boolean BACKTRACK = true;
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParsersym.java
index ffcd02efe9..16c72ffc98 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParsersym.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParsersym.java
@@ -39,8 +39,8 @@ public interface C99SizeofExpressionParsersym {
TK_return = 90,
TK_short = 36,
TK_signed = 37,
- TK_sizeof = 17,
- TK_static = 13,
+ TK_sizeof = 16,
+ TK_static = 17,
TK_struct = 45,
TK_switch = 91,
TK_typedef = 28,
@@ -60,14 +60,14 @@ public interface C99SizeofExpressionParsersym {
TK_Completion = 3,
TK_EndOfCompletion = 5,
TK_Invalid = 93,
- TK_LeftBracket = 11,
+ TK_LeftBracket = 12,
TK_LeftParen = 2,
- TK_LeftBrace = 14,
+ TK_LeftBrace = 13,
TK_Dot = 52,
TK_Arrow = 67,
- TK_PlusPlus = 15,
- TK_MinusMinus = 16,
- TK_And = 12,
+ TK_PlusPlus = 14,
+ TK_MinusMinus = 15,
+ TK_And = 11,
TK_Star = 4,
TK_Plus = 9,
TK_Minus = 10,
@@ -121,13 +121,13 @@ public interface C99SizeofExpressionParsersym {
"volatile",
"Plus",
"Minus",
- "LeftBracket",
"And",
- "static",
+ "LeftBracket",
"LeftBrace",
"PlusPlus",
"MinusMinus",
"sizeof",
+ "static",
"integer",
"floating",
"charconst",
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 dd43000448..317285d79d 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
@@ -28,6 +28,7 @@ import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
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.cpp.CPPSecondaryParserFactory;
public class CPPExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
{
@@ -173,7 +174,7 @@ public CPPExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack);
+ action = new CPPBuildASTParserAction (this, tu, astStack, CPPNodeFactory.getDefault() , CPPSecondaryParserFactory.getDefault() );
action.setParserOptions(options);
@@ -235,8 +236,8 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, CPPExpressionParsersym.TK_EOF_TOKEN));
}
-public CPPExpressionParser(String[] mapFrom) { // constructor
- tokenMap = new TokenMap(CPPExpressionParsersym.orderedTerminalSymbols, mapFrom);
+public CPPExpressionParser(IParserActionTokenProvider parser) { // constructor
+ tokenMap = new TokenMap(CPPExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
@@ -271,1713 +272,1707 @@ public CPPExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 17: literal ::= 0
+ // Rule 17: literal ::= floating
//
- case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break;
+ case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break;
}
//
- // Rule 18: literal ::= floating
+ // Rule 18: literal ::= charconst
//
- case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break;
+ case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break;
}
//
- // Rule 19: literal ::= charconst
+ // Rule 19: literal ::= stringlit
//
- case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break;
+ case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break;
}
//
- // Rule 20: literal ::= stringlit
+ // Rule 20: literal ::= true
//
- case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break;
+ case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break;
}
//
- // Rule 21: literal ::= true
+ // Rule 21: literal ::= false
//
- case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break;
+ case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break;
}
//
- // Rule 22: literal ::= false
+ // Rule 22: literal ::= this
//
- case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break;
+ case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break;
}
//
- // Rule 23: literal ::= this
+ // Rule 24: primary_expression ::= ( expression )
//
- case 23: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break;
+ case 24: { action. consumeExpressionBracketed(); break;
}
//
- // Rule 25: primary_expression ::= ( expression )
+ // Rule 26: id_expression ::= qualified_or_unqualified_name
//
- case 25: { action. consumeExpressionBracketed(); break;
+ case 26: { action. consumeExpressionName(); break;
}
//
- // Rule 27: id_expression ::= qualified_or_unqualified_name
+ // Rule 33: unqualified_id_name ::= ~ identifier_token
//
- case 27: { action. consumeExpressionName(); break;
+ case 33: { action. consumeDestructorName(); break;
}
//
- // Rule 34: unqualified_id_name ::= ~ identifier_token
+ // Rule 34: unqualified_id_name ::= ~ template_id_name
//
- case 34: { action. consumeDestructorName(); break;
+ case 34: { action. consumeDestructorNameTemplateId(); break;
}
//
- // Rule 35: unqualified_id_name ::= ~ template_id_name
+ // Rule 35: identifier_name ::= identifier_token
//
- case 35: { action. consumeDestructorNameTemplateId(); break;
+ case 35: { action. consumeIdentifierName(); break;
}
//
- // Rule 36: identifier_name ::= identifier_token
+ // Rule 36: template_opt ::= template
//
- case 36: { action. consumeIdentifierName(); break;
+ case 36: { action. consumePlaceHolder(); break;
}
//
- // Rule 37: template_opt ::= template
+ // Rule 37: template_opt ::= $Empty
//
- case 37: { action. consumePlaceHolder(); break;
+ case 37: { action. consumeEmpty(); break;
}
//
- // Rule 38: template_opt ::= $Empty
+ // Rule 38: dcolon_opt ::= ::
//
- case 38: { action. consumeEmpty(); break;
+ case 38: { action. consumeToken(); break;
}
//
- // Rule 39: dcolon_opt ::= ::
+ // Rule 39: dcolon_opt ::= $Empty
//
- case 39: { action. consumeToken(); break;
+ case 39: { action. consumeEmpty(); break;
}
//
- // Rule 40: dcolon_opt ::= $Empty
+ // Rule 40: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
//
- case 40: { action. consumeEmpty(); break;
+ case 40: { action. consumeQualifiedId(true); break;
}
//
- // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
+ // Rule 41: qualified_id_name ::= :: unqualified_id_name
//
- case 41: { action. consumeQualifiedId(true); break;
+ case 41: { action. consumeGlobalQualifiedId(); break;
}
//
- // Rule 42: qualified_id_name ::= :: unqualified_id_name
+ // Rule 42: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
//
- case 42: { action. consumeGlobalQualifiedId(); break;
+ case 42: { action. consumeNestedNameSpecifier(true); break;
}
//
- // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
+ // Rule 43: nested_name_specifier ::= class_or_namespace_name ::
//
- case 43: { action. consumeNestedNameSpecifier(true); break;
+ case 43: { action. consumeNestedNameSpecifier(false); break;
}
//
- // Rule 44: nested_name_specifier ::= class_or_namespace_name ::
+ // Rule 44: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
//
- case 44: { action. consumeNestedNameSpecifier(false); break;
+ case 44: { action. consumeNestedNameSpecifier(true); break;
}
//
- // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
+ // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
//
- case 45: { action. consumeNestedNameSpecifier(true); break;
+ case 45: { action. consumeNestedNameSpecifier(false); break;
}
//
- // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
+ // Rule 46: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
//
- case 46: { action. consumeNestedNameSpecifier(false); break;
+ case 46: { action. consumeNameWithTemplateKeyword(); break;
}
//
- // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
+ // Rule 48: nested_name_specifier_opt ::= $Empty
//
- case 47: { action. consumeNameWithTemplateKeyword(); break;
+ case 48: { action. consumeNestedNameSpecifierEmpty(); break;
}
//
- // Rule 49: nested_name_specifier_opt ::= $Empty
+ // Rule 51: postfix_expression ::= postfix_expression [ expression ]
//
- case 49: { action. consumeNestedNameSpecifierEmpty(); break;
+ case 51: { action. consumeExpressionArraySubscript(); break;
}
//
- // Rule 52: postfix_expression ::= postfix_expression [ expression ]
+ // Rule 52: postfix_expression ::= postfix_expression ( expression_list_opt )
//
- case 52: { action. consumeExpressionArraySubscript(); break;
+ case 52: { action. consumeExpressionFunctionCall(); break;
}
//
- // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt )
+ // Rule 53: postfix_expression ::= simple_type_specifier ( expression_list_opt )
//
- case 53: { action. consumeExpressionFunctionCall(); break;
+ case 53: { action. consumeExpressionSimpleTypeConstructor(); break;
}
//
- // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt )
+ // Rule 54: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
//
- case 54: { action. consumeExpressionSimpleTypeConstructor(); break;
+ case 54: { action. consumeExpressionTypeName(); break;
}
//
- // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
+ // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
//
case 55: { action. consumeExpressionTypeName(); break;
}
//
- // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
+ // Rule 56: postfix_expression ::= postfix_expression . qualified_or_unqualified_name
//
- case 56: { action. consumeExpressionTypeName(); break;
+ case 56: { action. consumeExpressionFieldReference(false, false); break;
}
//
- // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name
+ // Rule 57: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
//
- case 57: { action. consumeExpressionFieldReference(false, false); break;
+ case 57: { action. consumeExpressionFieldReference(true, false); break;
}
//
- // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
+ // Rule 58: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
//
- case 58: { action. consumeExpressionFieldReference(true, false); break;
+ case 58: { action. consumeExpressionFieldReference(false, true); break;
}
//
- // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
+ // Rule 59: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
//
- case 59: { action. consumeExpressionFieldReference(false, true); break;
+ case 59: { action. consumeExpressionFieldReference(true, true); break;
}
//
- // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
+ // Rule 60: postfix_expression ::= postfix_expression . pseudo_destructor_name
//
- case 60: { action. consumeExpressionFieldReference(true, true); break;
+ case 60: { action. consumeExpressionFieldReference(false, false); break;
}
//
- // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name
+ // Rule 61: postfix_expression ::= postfix_expression -> pseudo_destructor_name
//
- case 61: { action. consumeExpressionFieldReference(false, false); break;
+ case 61: { action. consumeExpressionFieldReference(true, false); break;
}
//
- // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name
+ // Rule 62: postfix_expression ::= postfix_expression ++
//
- case 62: { action. consumeExpressionFieldReference(true, false); break;
+ case 62: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
}
//
- // Rule 63: postfix_expression ::= postfix_expression ++
+ // Rule 63: postfix_expression ::= postfix_expression --
//
- case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
}
//
- // Rule 64: postfix_expression ::= postfix_expression --
+ // Rule 64: postfix_expression ::= dynamic_cast < type_id > ( expression )
//
- case 64: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ case 64: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break;
}
//
- // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression )
+ // Rule 65: postfix_expression ::= static_cast < type_id > ( expression )
//
- case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break;
+ case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break;
}
//
- // Rule 66: postfix_expression ::= static_cast < type_id > ( expression )
+ // Rule 66: postfix_expression ::= reinterpret_cast < type_id > ( expression )
//
- case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break;
+ case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break;
}
//
- // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression )
+ // Rule 67: postfix_expression ::= const_cast < type_id > ( expression )
//
- case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break;
+ case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break;
}
//
- // Rule 68: postfix_expression ::= const_cast < type_id > ( expression )
+ // Rule 68: postfix_expression ::= typeid ( expression )
//
- case 68: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break;
+ case 68: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break;
}
//
- // Rule 69: postfix_expression ::= typeid ( expression )
+ // Rule 69: postfix_expression ::= typeid ( type_id )
//
- case 69: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break;
+ case 69: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break;
}
//
- // Rule 70: postfix_expression ::= typeid ( type_id )
+ // Rule 70: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
//
- case 70: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break;
+ case 70: { action. consumePsudoDestructorName(true); break;
}
//
- // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
+ // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
//
case 71: { action. consumePsudoDestructorName(true); break;
}
//
- // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
+ // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
//
- case 72: { action. consumePsudoDestructorName(true); break;
+ case 72: { action. consumePsudoDestructorName(false); break;
}
//
- // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
+ // Rule 73: destructor_type_name ::= ~ identifier_token
//
- case 73: { action. consumePsudoDestructorName(false); break;
+ case 73: { action. consumeDestructorName(); break;
}
//
- // Rule 74: destructor_type_name ::= ~ identifier_token
+ // Rule 74: destructor_type_name ::= ~ template_id_name
//
- case 74: { action. consumeDestructorName(); break;
+ case 74: { action. consumeDestructorNameTemplateId(); break;
}
//
- // Rule 75: destructor_type_name ::= ~ template_id_name
+ // Rule 78: unary_expression ::= ++ cast_expression
//
- case 75: { action. consumeDestructorNameTemplateId(); break;
+ case 78: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
}
//
- // Rule 79: unary_expression ::= ++ cast_expression
+ // Rule 79: unary_expression ::= -- cast_expression
//
- case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
}
//
- // Rule 80: unary_expression ::= -- cast_expression
+ // Rule 80: unary_expression ::= & cast_expression
//
- case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
}
//
- // Rule 81: unary_expression ::= & cast_expression
+ // Rule 81: unary_expression ::= * cast_expression
//
- case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
}
//
- // Rule 82: unary_expression ::= * cast_expression
+ // Rule 82: unary_expression ::= + cast_expression
//
- case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
}
//
- // Rule 83: unary_expression ::= + cast_expression
+ // Rule 83: unary_expression ::= - cast_expression
//
- case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
}
//
- // Rule 84: unary_expression ::= - cast_expression
+ // Rule 84: unary_expression ::= ~ cast_expression
//
- case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
}
//
- // Rule 85: unary_expression ::= ~ cast_expression
+ // Rule 85: unary_expression ::= ! cast_expression
//
- case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
}
//
- // Rule 86: unary_expression ::= ! cast_expression
+ // Rule 86: unary_expression ::= sizeof unary_expression
//
- case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
}
//
- // Rule 87: unary_expression ::= sizeof unary_expression
+ // Rule 87: unary_expression ::= sizeof ( type_id )
//
- case 87: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ case 87: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 88: unary_expression ::= sizeof ( type_id )
+ // Rule 88: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
//
- case 88: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break;
+ case 88: { action. consumeExpressionNew(true); break;
}
//
- // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
+ // Rule 89: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
//
- case 89: { action. consumeExpressionNew(true); break;
+ case 89: { action. consumeExpressionNew(false); break;
}
//
- // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
+ // Rule 91: new_placement_opt ::= $Empty
//
- case 90: { action. consumeExpressionNew(false); break;
+ case 91: { action. consumeEmpty(); break;
}
//
- // Rule 92: new_placement_opt ::= $Empty
+ // Rule 92: new_type_id ::= type_specifier_seq
//
- case 92: { action. consumeEmpty(); break;
+ case 92: { action. consumeTypeId(false); break;
}
//
- // Rule 93: new_type_id ::= type_specifier_seq
+ // Rule 93: new_type_id ::= type_specifier_seq new_declarator
//
- case 93: { action. consumeTypeId(false); break;
+ case 93: { action. consumeTypeId(true); break;
}
//
- // Rule 94: new_type_id ::= type_specifier_seq new_declarator
+ // Rule 94: new_declarator ::= <openscope-ast> new_pointer_operators
//
- case 94: { action. consumeTypeId(true); break;
+ case 94: { action. consumeNewDeclarator(); break;
}
//
- // Rule 95: new_declarator ::= <openscope-ast> new_pointer_operators
+ // Rule 101: new_initializer ::= ( expression_list_opt )
//
- case 95: { action. consumeNewDeclarator(); break;
+ case 101: { action. consumeNewInitializer(); break;
}
//
- // Rule 102: new_initializer ::= ( expression_list_opt )
+ // Rule 103: new_initializer_opt ::= $Empty
//
- case 102: { action. consumeNewInitializer(); break;
+ case 103: { action. consumeEmpty(); break;
}
//
- // Rule 104: new_initializer_opt ::= $Empty
+ // Rule 104: delete_expression ::= dcolon_opt delete cast_expression
//
- case 104: { action. consumeEmpty(); break;
+ case 104: { action. consumeExpressionDelete(false); break;
}
//
- // Rule 105: delete_expression ::= dcolon_opt delete cast_expression
+ // Rule 105: delete_expression ::= dcolon_opt delete [ ] cast_expression
//
- case 105: { action. consumeExpressionDelete(false); break;
+ case 105: { action. consumeExpressionDelete(true); break;
}
//
- // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression
+ // Rule 107: cast_expression ::= ( type_id ) cast_expression
//
- case 106: { action. consumeExpressionDelete(true); break;
+ case 107: { action. consumeExpressionCast(ICPPASTCastExpression.op_cast); break;
}
//
- // Rule 108: cast_expression ::= ( type_id ) cast_expression
+ // Rule 109: pm_expression ::= pm_expression .* cast_expression
//
- case 108: { action. consumeExpressionCast(ICPPASTCastExpression.op_cast); break;
+ case 109: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break;
}
//
- // Rule 110: pm_expression ::= pm_expression .* cast_expression
+ // Rule 110: pm_expression ::= pm_expression ->* cast_expression
//
- case 110: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break;
+ case 110: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break;
}
//
- // Rule 111: pm_expression ::= pm_expression ->* cast_expression
+ // Rule 112: multiplicative_expression ::= multiplicative_expression * pm_expression
//
- case 111: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break;
+ case 112: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break;
}
//
- // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression
+ // Rule 113: multiplicative_expression ::= multiplicative_expression / pm_expression
//
- case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break;
+ case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break;
}
//
- // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression
+ // Rule 114: multiplicative_expression ::= multiplicative_expression % pm_expression
//
- case 114: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break;
+ case 114: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break;
}
//
- // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression
+ // Rule 116: additive_expression ::= additive_expression + multiplicative_expression
//
- case 115: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break;
+ case 116: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break;
}
//
- // Rule 117: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 117: additive_expression ::= additive_expression - multiplicative_expression
//
- case 117: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break;
+ case 117: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break;
}
//
- // Rule 118: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 119: shift_expression ::= shift_expression << additive_expression
//
- case 118: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break;
+ case 119: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 120: shift_expression ::= shift_expression << additive_expression
+ // Rule 120: shift_expression ::= shift_expression >> additive_expression
//
- case 120: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break;
+ case 120: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 121: shift_expression ::= shift_expression >> additive_expression
+ // Rule 122: relational_expression ::= relational_expression < shift_expression
//
- case 121: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break;
+ case 122: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 123: relational_expression ::= relational_expression < shift_expression
+ // Rule 123: relational_expression ::= relational_expression > shift_expression
//
- case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break;
+ case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 124: relational_expression ::= relational_expression > shift_expression
+ // Rule 124: relational_expression ::= relational_expression <= shift_expression
//
- case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break;
+ case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 125: relational_expression ::= relational_expression <= shift_expression
+ // Rule 125: relational_expression ::= relational_expression >= shift_expression
//
- case 125: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break;
+ case 125: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 126: relational_expression ::= relational_expression >= shift_expression
+ // Rule 127: equality_expression ::= equality_expression == relational_expression
//
- case 126: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break;
+ case 127: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break;
}
//
- // Rule 128: equality_expression ::= equality_expression == relational_expression
+ // Rule 128: equality_expression ::= equality_expression != relational_expression
//
- case 128: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break;
+ case 128: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break;
}
//
- // Rule 129: equality_expression ::= equality_expression != relational_expression
+ // Rule 130: and_expression ::= and_expression & equality_expression
//
- case 129: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break;
+ case 130: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 131: and_expression ::= and_expression & equality_expression
+ // Rule 132: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
//
- case 131: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break;
+ case 132: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
+ // Rule 134: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
//
- case 133: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break;
+ case 134: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
+ // Rule 136: logical_and_expression ::= logical_and_expression && inclusive_or_expression
//
- case 135: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break;
+ case 136: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression
+ // Rule 138: logical_or_expression ::= logical_or_expression || logical_and_expression
//
- case 137: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break;
+ case 138: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression
+ // Rule 140: conditional_expression ::= logical_or_expression ? expression : assignment_expression
//
- case 139: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break;
+ case 140: { action. consumeExpressionConditional(); break;
}
//
- // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression
+ // Rule 141: throw_expression ::= throw
//
- case 141: { action. consumeExpressionConditional(); break;
+ case 141: { action. consumeExpressionThrow(false); break;
}
//
- // Rule 142: throw_expression ::= throw
+ // Rule 142: throw_expression ::= throw assignment_expression
//
- case 142: { action. consumeExpressionThrow(false); break;
+ case 142: { action. consumeExpressionThrow(true); break;
}
//
- // Rule 143: throw_expression ::= throw assignment_expression
+ // Rule 145: assignment_expression ::= logical_or_expression = assignment_expression
//
- case 143: { action. consumeExpressionThrow(true); break;
+ case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break;
}
//
- // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression
+ // Rule 146: assignment_expression ::= logical_or_expression *= assignment_expression
//
- case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break;
+ case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression
+ // Rule 147: assignment_expression ::= logical_or_expression /= assignment_expression
//
- case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break;
+ case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression
+ // Rule 148: assignment_expression ::= logical_or_expression %= assignment_expression
//
- case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break;
+ case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression
+ // Rule 149: assignment_expression ::= logical_or_expression += assignment_expression
//
- case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break;
+ case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression
+ // Rule 150: assignment_expression ::= logical_or_expression -= assignment_expression
//
- case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break;
+ case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression
+ // Rule 151: assignment_expression ::= logical_or_expression >>= assignment_expression
//
- case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break;
+ case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression
+ // Rule 152: assignment_expression ::= logical_or_expression <<= assignment_expression
//
- case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break;
+ case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression
+ // Rule 153: assignment_expression ::= logical_or_expression &= assignment_expression
//
- case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break;
+ case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression
+ // Rule 154: assignment_expression ::= logical_or_expression ^= assignment_expression
//
- case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break;
+ case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression
+ // Rule 155: assignment_expression ::= logical_or_expression |= assignment_expression
//
- case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break;
+ case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression
+ // Rule 157: expression_list ::= <openscope-ast> expression_list_actual
//
- case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break;
+ case 157: { action. consumeExpressionList(); break;
}
//
- // Rule 158: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 161: expression_list_opt ::= $Empty
//
- case 158: { action. consumeExpressionList(); break;
+ case 161: { action. consumeEmpty(); break;
}
//
- // Rule 162: expression_list_opt ::= $Empty
+ // Rule 163: expression_opt ::= $Empty
//
- case 162: { action. consumeEmpty(); break;
+ case 163: { action. consumeEmpty(); break;
}
//
- // Rule 164: expression_opt ::= $Empty
+ // Rule 166: constant_expression_opt ::= $Empty
//
- case 164: { action. consumeEmpty(); break;
+ case 166: { action. consumeEmpty(); break;
}
//
- // Rule 167: constant_expression_opt ::= $Empty
+ // Rule 175: statement ::= ERROR_TOKEN
//
- case 167: { action. consumeEmpty(); break;
+ case 175: { action. consumeStatementProblem(); break;
}
//
- // Rule 176: statement ::= ERROR_TOKEN
+ // Rule 176: labeled_statement ::= identifier : statement
//
- case 176: { action. consumeStatementProblem(); break;
+ case 176: { action. consumeStatementLabeled(); break;
}
//
- // Rule 177: labeled_statement ::= identifier : statement
+ // Rule 177: labeled_statement ::= case constant_expression : statement
//
- case 177: { action. consumeStatementLabeled(); break;
+ case 177: { action. consumeStatementCase(); break;
}
//
- // Rule 178: labeled_statement ::= case constant_expression : statement
+ // Rule 178: labeled_statement ::= default : statement
//
- case 178: { action. consumeStatementCase(); break;
+ case 178: { action. consumeStatementDefault(); break;
}
//
- // Rule 179: labeled_statement ::= default : statement
+ // Rule 179: expression_statement ::= expression ;
//
- case 179: { action. consumeStatementDefault(); break;
+ case 179: { action. consumeStatementExpression(); break;
}
//
- // Rule 180: expression_statement ::= expression ;
+ // Rule 180: expression_statement ::= ;
//
- case 180: { action. consumeStatementExpression(); break;
+ case 180: { action. consumeStatementNull(); break;
}
//
- // Rule 181: expression_statement ::= ;
+ // Rule 181: compound_statement ::= { <openscope-ast> statement_seq }
//
- case 181: { action. consumeStatementNull(); break;
+ case 181: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 182: compound_statement ::= { <openscope-ast> statement_seq }
+ // Rule 182: compound_statement ::= { }
//
- case 182: { action. consumeStatementCompoundStatement(true); break;
+ case 182: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 183: compound_statement ::= { }
+ // Rule 185: selection_statement ::= if ( condition ) statement
//
- case 183: { action. consumeStatementCompoundStatement(false); break;
+ case 185: { action. consumeStatementIf(false); break;
}
//
- // Rule 186: selection_statement ::= if ( condition ) statement
+ // Rule 186: selection_statement ::= if ( condition ) statement else statement
//
- case 186: { action. consumeStatementIf(false); break;
+ case 186: { action. consumeStatementIf(true); break;
}
//
- // Rule 187: selection_statement ::= if ( condition ) statement else statement
+ // Rule 187: selection_statement ::= switch ( condition ) statement
//
- case 187: { action. consumeStatementIf(true); break;
+ case 187: { action. consumeStatementSwitch(); break;
}
//
- // Rule 188: selection_statement ::= switch ( condition ) statement
+ // Rule 189: condition ::= type_specifier_seq declarator = assignment_expression
//
- case 188: { action. consumeStatementSwitch(); break;
+ case 189: { action. consumeConditionDeclaration(); break;
}
//
- // Rule 190: condition ::= type_specifier_seq declarator = assignment_expression
+ // Rule 191: condition_opt ::= $Empty
//
- case 190: { action. consumeConditionDeclaration(); break;
+ case 191: { action. consumeEmpty(); break;
}
//
- // Rule 192: condition_opt ::= $Empty
+ // Rule 192: iteration_statement ::= while ( condition ) statement
//
- case 192: { action. consumeEmpty(); break;
+ case 192: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 193: iteration_statement ::= while ( condition ) statement
+ // Rule 193: iteration_statement ::= do statement while ( expression ) ;
//
- case 193: { action. consumeStatementWhileLoop(); break;
+ case 193: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 194: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 194: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
//
- case 194: { action. consumeStatementDoLoop(); break;
+ case 194: { action. consumeStatementForLoop(); break;
}
//
- // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
+ // Rule 196: for_init_statement ::= simple_declaration_with_declspec
//
- case 195: { action. consumeStatementForLoop(); break;
+ case 196: { action. consumeStatementDeclaration(); break;
}
//
- // Rule 197: for_init_statement ::= simple_declaration_with_declspec
+ // Rule 197: jump_statement ::= break ;
//
- case 197: { action. consumeStatementDeclaration(); break;
+ case 197: { action. consumeStatementBreak(); break;
}
//
- // Rule 198: jump_statement ::= break ;
+ // Rule 198: jump_statement ::= continue ;
//
- case 198: { action. consumeStatementBreak(); break;
+ case 198: { action. consumeStatementContinue(); break;
}
//
- // Rule 199: jump_statement ::= continue ;
+ // Rule 199: jump_statement ::= return expression ;
//
- case 199: { action. consumeStatementContinue(); break;
+ case 199: { action. consumeStatementReturn(true); break;
}
//
- // Rule 200: jump_statement ::= return expression ;
+ // Rule 200: jump_statement ::= return ;
//
- case 200: { action. consumeStatementReturn(true); break;
+ case 200: { action. consumeStatementReturn(false); break;
}
//
- // Rule 201: jump_statement ::= return ;
+ // Rule 201: jump_statement ::= goto identifier_token ;
//
- case 201: { action. consumeStatementReturn(false); break;
+ case 201: { action. consumeStatementGoto(); break;
}
//
- // Rule 202: jump_statement ::= goto identifier_token ;
+ // Rule 202: declaration_statement ::= block_declaration
//
- case 202: { action. consumeStatementGoto(); break;
+ case 202: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 203: declaration_statement ::= block_declaration
+ // Rule 203: declaration_statement ::= function_definition
//
- case 203: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 203: { action. consumeStatementDeclaration(); break;
}
//
- // Rule 204: declaration_statement ::= function_definition
+ // Rule 211: declaration ::= ERROR_TOKEN
//
- case 204: { action. consumeStatementDeclaration(); break;
+ case 211: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 212: declaration ::= ERROR_TOKEN
+ // Rule 221: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
//
- case 212: { action. consumeDeclarationProblem(); break;
+ case 221: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 222: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
+ // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
//
case 222: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
+ // Rule 223: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 223: { action. consumeDeclarationSimple(true); break;
+ case 223: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 224: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 224: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
//
- case 224: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 224: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 225: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
+ // Rule 225: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 225: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 226: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 226: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
case 226: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 227: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 227: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
//
- case 227: { action. consumeDeclarationSpecifiersComposite(); break;
+ case 227: { action. consumeDeclarationSpecifiersTypeName(); break;
}
//
- // Rule 228: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
+ // Rule 229: declaration_specifiers_opt ::= $Empty
//
- case 228: { action. consumeDeclarationSpecifiersTypeName(); break;
+ case 229: { action. consumeEmpty(); break;
}
//
- // Rule 230: declaration_specifiers_opt ::= $Empty
+ // Rule 233: no_type_declaration_specifier ::= friend
//
- case 230: { action. consumeEmpty(); break;
+ case 233: { action. consumeToken(); break;
}
//
- // Rule 234: no_type_declaration_specifier ::= friend
+ // Rule 234: no_type_declaration_specifier ::= typedef
//
case 234: { action. consumeToken(); break;
}
//
- // Rule 235: no_type_declaration_specifier ::= typedef
+ // Rule 254: storage_class_specifier ::= auto
//
- case 235: { action. consumeToken(); break;
+ case 254: { action. consumeToken(); break;
}
//
- // Rule 255: storage_class_specifier ::= auto
+ // Rule 255: storage_class_specifier ::= register
//
case 255: { action. consumeToken(); break;
}
//
- // Rule 256: storage_class_specifier ::= register
+ // Rule 256: storage_class_specifier ::= static
//
case 256: { action. consumeToken(); break;
}
//
- // Rule 257: storage_class_specifier ::= static
+ // Rule 257: storage_class_specifier ::= extern
//
case 257: { action. consumeToken(); break;
}
//
- // Rule 258: storage_class_specifier ::= extern
+ // Rule 258: storage_class_specifier ::= mutable
//
case 258: { action. consumeToken(); break;
}
//
- // Rule 259: storage_class_specifier ::= mutable
+ // Rule 259: function_specifier ::= inline
//
case 259: { action. consumeToken(); break;
}
//
- // Rule 260: function_specifier ::= inline
+ // Rule 260: function_specifier ::= virtual
//
case 260: { action. consumeToken(); break;
}
//
- // Rule 261: function_specifier ::= virtual
+ // Rule 261: function_specifier ::= explicit
//
case 261: { action. consumeToken(); break;
}
//
- // Rule 262: function_specifier ::= explicit
+ // Rule 262: simple_type_specifier ::= char
//
case 262: { action. consumeToken(); break;
}
//
- // Rule 263: simple_type_specifier ::= char
+ // Rule 263: simple_type_specifier ::= wchar_t
//
case 263: { action. consumeToken(); break;
}
//
- // Rule 264: simple_type_specifier ::= wchar_t
+ // Rule 264: simple_type_specifier ::= bool
//
case 264: { action. consumeToken(); break;
}
//
- // Rule 265: simple_type_specifier ::= bool
+ // Rule 265: simple_type_specifier ::= short
//
case 265: { action. consumeToken(); break;
}
//
- // Rule 266: simple_type_specifier ::= short
+ // Rule 266: simple_type_specifier ::= int
//
case 266: { action. consumeToken(); break;
}
//
- // Rule 267: simple_type_specifier ::= int
+ // Rule 267: simple_type_specifier ::= long
//
case 267: { action. consumeToken(); break;
}
//
- // Rule 268: simple_type_specifier ::= long
+ // Rule 268: simple_type_specifier ::= signed
//
case 268: { action. consumeToken(); break;
}
//
- // Rule 269: simple_type_specifier ::= signed
+ // Rule 269: simple_type_specifier ::= unsigned
//
case 269: { action. consumeToken(); break;
}
//
- // Rule 270: simple_type_specifier ::= unsigned
+ // Rule 270: simple_type_specifier ::= float
//
case 270: { action. consumeToken(); break;
}
//
- // Rule 271: simple_type_specifier ::= float
+ // Rule 271: simple_type_specifier ::= double
//
case 271: { action. consumeToken(); break;
}
//
- // Rule 272: simple_type_specifier ::= double
+ // Rule 272: simple_type_specifier ::= void
//
case 272: { action. consumeToken(); break;
}
//
- // Rule 273: simple_type_specifier ::= void
+ // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 273: { action. consumeToken(); break;
+ case 275: { action. consumeQualifiedId(false); break;
}
//
- // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
//
case 276: { action. consumeQualifiedId(false); break;
}
//
- // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
+ // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
//
case 277: { action. consumeQualifiedId(false); break;
}
//
- // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
+ // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
//
- case 278: { action. consumeQualifiedId(false); break;
+ case 278: { action. consumeQualifiedId(true); break;
}
//
- // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
+ // Rule 280: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
//
- case 279: { action. consumeQualifiedId(true); break;
+ case 280: { action. consumeTypeSpecifierElaborated(false); break;
}
//
- // Rule 281: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
+ // Rule 281: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
//
- case 281: { action. consumeTypeSpecifierElaborated(false); break;
+ case 281: { action. consumeTypeSpecifierElaborated(true); break;
}
//
- // Rule 282: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
+ // Rule 282: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
//
- case 282: { action. consumeTypeSpecifierElaborated(true); break;
+ case 282: { action. consumeTypeSpecifierElaborated(false); break;
}
//
- // Rule 283: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
+ // Rule 284: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt }
//
- case 283: { action. consumeTypeSpecifierElaborated(false); break;
+ case 284: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 285: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt }
+ // Rule 285: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt }
//
- case 285: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 285: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 286: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt }
+ // Rule 291: enumerator_definition ::= identifier_token
//
- case 286: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 291: { action. consumeEnumerator(false); break;
}
//
- // Rule 292: enumerator_definition ::= identifier_token
+ // Rule 292: enumerator_definition ::= identifier_token = constant_expression
//
- case 292: { action. consumeEnumerator(false); break;
+ case 292: { action. consumeEnumerator(true); break;
}
//
- // Rule 293: enumerator_definition ::= identifier_token = constant_expression
+ // Rule 296: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt }
//
- case 293: { action. consumeEnumerator(true); break;
+ case 296: { action. consumeNamespaceDefinition(true); break;
}
//
- // Rule 297: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt }
+ // Rule 297: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt }
//
- case 297: { action. consumeNamespaceDefinition(true); break;
+ case 297: { action. consumeNamespaceDefinition(false); break;
}
//
- // Rule 298: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt }
+ // Rule 298: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
//
- case 298: { action. consumeNamespaceDefinition(false); break;
+ case 298: { action. consumeNamespaceAliasDefinition(); break;
}
//
- // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
+ // Rule 299: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
//
- case 299: { action. consumeNamespaceAliasDefinition(); break;
+ case 299: { action. consumeUsingDeclaration(); break;
}
//
- // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
+ // Rule 300: typename_opt ::= typename
//
- case 300: { action. consumeUsingDeclaration(); break;
+ case 300: { action. consumePlaceHolder(); break;
}
//
- // Rule 301: typename_opt ::= typename
+ // Rule 301: typename_opt ::= $Empty
//
- case 301: { action. consumePlaceHolder(); break;
+ case 301: { action. consumeEmpty(); break;
}
//
- // Rule 302: typename_opt ::= $Empty
+ // Rule 302: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
//
- case 302: { action. consumeEmpty(); break;
+ case 302: { action. consumeUsingDirective(); break;
}
//
- // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
+ // Rule 303: asm_definition ::= asm ( stringlit ) ;
//
- case 303: { action. consumeUsingDirective(); break;
+ case 303: { action. consumeDeclarationASM(); break;
}
//
- // 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. consumeToken(); break;
}
//
- // Rule 339: cv_qualifier ::= volatile
+ // Rule 340: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 339: { action. consumeToken(); 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
- //
- case 528: { action. consumeDeclarationSimple(true); break;
- }
-
- //
- // Rule 529: exception_declaration ::= type_specifier_seq
+ // Rule 528: exception_declaration ::= type_specifier_seq
//
- case 529: { action. consumeDeclarationSimple(false); break;
+ case 528: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 531: exception_specification ::= throw ( )
+ // Rule 530: exception_specification ::= throw ( )
//
- case 531: { action. consumePlaceHolder(); break;
+ case 530: { action. consumePlaceHolder(); break;
}
//
- // Rule 537: expression_parser_start ::= ERROR_TOKEN
+ // Rule 536: expression_parser_start ::= ERROR_TOKEN
//
- case 537: { action. consumeExpressionProblem(); break;
+ case 536: { action. consumeExpressionProblem(); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java
index 3d95f7c52f..c18c485cd7 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java
@@ -29,7 +29,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0
+ 0,0
};
};
public final static byte isKeyword[] = IsKeyword.isKeyword;
@@ -39,496 +39,496 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public final static short baseCheck[] = {0,
0,0,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,3,1,1,1,1,1,
- 1,1,1,2,2,1,1,0,1,0,
- 4,2,3,2,3,2,2,1,0,1,
- 1,4,4,4,8,8,3,3,4,4,
- 3,3,2,2,7,7,7,7,4,4,
- 5,6,3,2,2,1,1,1,2,2,
- 2,2,2,2,2,2,2,4,7,9,
- 3,0,1,2,2,1,2,3,4,1,
- 0,3,1,0,3,5,1,4,1,3,
- 3,1,3,3,3,1,3,3,1,3,
- 3,1,3,3,3,3,1,3,3,1,
- 3,1,3,1,3,1,3,1,3,1,
- 5,1,2,1,1,3,3,3,3,3,
- 3,3,3,3,3,3,1,2,1,3,
- 1,0,1,0,1,1,0,1,1,1,
- 1,1,1,1,1,1,3,4,3,2,
- 1,4,2,1,2,5,7,5,1,4,
- 1,0,5,7,8,1,1,2,2,3,
- 2,3,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,2,1,
- 0,4,4,2,2,2,2,2,1,0,
- 1,1,1,1,1,1,2,1,2,2,
- 2,1,1,2,2,1,2,2,1,2,
- 2,1,2,2,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 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,
+ 1,1,1,3,1,1,1,1,1,1,
+ 1,1,2,2,1,1,0,1,0,4,
+ 2,3,2,3,2,2,1,0,1,1,
+ 4,4,4,8,8,3,3,4,4,3,
+ 3,2,2,7,7,7,7,4,4,5,
+ 6,3,2,2,1,1,1,2,2,2,
+ 2,2,2,2,2,2,4,7,9,3,
+ 0,1,2,2,1,2,3,4,1,0,
+ 3,1,0,3,5,1,4,1,3,3,
+ 1,3,3,3,1,3,3,1,3,3,
+ 1,3,3,3,3,1,3,3,1,3,
+ 1,3,1,3,1,3,1,3,1,5,
+ 1,2,1,1,3,3,3,3,3,3,
+ 3,3,3,3,3,1,2,1,3,1,
+ 0,1,0,1,1,0,1,1,1,1,
+ 1,1,1,1,1,3,4,3,2,1,
+ 4,2,1,2,5,7,5,1,4,1,
+ 0,5,7,8,1,1,2,2,3,2,
3,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,2,1,0,
+ 4,4,2,2,2,2,2,1,0,1,
+ 1,1,1,1,1,2,1,2,2,2,
+ 1,1,2,2,1,2,2,1,2,2,
+ 1,2,2,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,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,
- 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,-62,0,0,
- 0,-2,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-477,
- 0,0,0,0,0,0,-263,0,0,-4,
- 0,0,0,0,0,-398,0,0,0,0,
- -71,0,0,0,-5,0,0,0,0,0,
- 0,0,0,-459,0,-88,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-6,0,0,
- 0,0,0,0,0,0,0,-58,0,0,
- 0,-20,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-7,0,0,0,0,0,-239,
- 0,0,-49,-8,-272,0,0,0,-72,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-417,0,0,0,0,0,0,0,0,
- -115,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
+ 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,-62,0,0,0,
+ -2,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-477,0,
+ 0,0,0,0,0,-263,0,0,-4,0,
+ 0,0,0,0,-398,0,0,0,0,-71,
+ 0,0,0,-5,0,0,0,0,0,0,
+ 0,0,-459,0,-88,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-127,0,
- 0,0,0,0,-113,0,-178,0,0,0,
- -387,-128,0,0,0,0,-116,0,0,0,
+ 0,0,0,0,0,0,-6,0,0,0,
+ 0,0,0,0,0,0,-58,0,0,0,
+ -20,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-7,0,0,0,0,0,-239,0,
+ 0,-49,-8,-272,0,0,0,-72,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-258,0,
- -9,0,0,0,0,0,0,0,0,-356,
- 0,0,-142,0,0,0,-51,0,0,0,
- 0,0,0,-533,0,0,0,0,0,0,
+ -417,0,0,0,0,0,0,0,0,-115,
0,0,0,0,0,0,0,0,0,0,
- -183,0,-11,-54,0,0,-131,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-127,0,0,
+ 0,0,0,-113,0,-178,0,0,0,-387,
+ -128,0,0,0,0,-116,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -61,0,0,0,0,0,0,0,0,-402,
- 0,0,-206,0,0,0,0,0,0,-64,
- 0,0,-220,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-258,0,-9,
+ 0,0,0,0,0,0,0,0,-356,0,
+ 0,-142,0,0,0,-51,0,0,0,0,
+ 0,0,-533,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-183,
+ 0,-11,-54,0,0,-131,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-12,0,-13,0,0,0,
- -179,0,0,0,0,-353,-53,0,-225,-15,
- 0,-224,0,0,0,0,0,0,0,-150,
- 0,0,0,-28,0,0,0,0,0,0,
- 0,0,-59,0,0,0,0,0,-463,0,
- 0,0,-508,0,0,0,-447,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-61,
+ 0,0,0,0,0,0,0,0,-402,0,
+ 0,-206,0,0,0,0,0,0,-64,0,
+ 0,-220,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-10,0,0,0,
- -29,0,0,0,0,-532,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-12,0,-13,0,0,0,-179,
+ 0,0,0,0,-353,-53,0,-225,-15,0,
+ -224,0,0,0,0,0,0,0,-150,0,
+ 0,0,-28,0,0,0,0,0,0,0,
+ 0,-59,0,0,0,0,0,-463,0,0,
+ 0,-508,0,0,0,-447,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-117,0,0,0,0,0,
- 0,0,0,-30,-390,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,0,0,0,0,-10,0,0,0,-29,
+ 0,0,0,0,-532,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-31,0,0,0,0,0,0,-406,
- 0,0,0,0,0,-439,0,0,0,-256,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-117,0,0,0,0,0,0,
+ 0,0,-30,-390,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,-32,
- 0,0,0,0,0,0,0,0,-233,0,
- 0,0,0,-347,-3,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-288,0,0,-122,0,-33,0,
- 0,0,-232,0,0,0,0,-106,0,0,
+ 0,-31,0,0,0,0,0,0,-406,0,
+ 0,0,0,0,-439,0,0,0,-256,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-34,
- 0,0,0,0,0,0,-188,0,0,-242,
- 0,0,0,0,0,-276,0,0,0,-35,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-32,0,
+ 0,0,0,0,0,0,0,-233,0,0,
+ 0,0,-347,-3,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-65,0,0,0,0,-311,
- 0,0,0,-270,0,0,0,0,-152,0,
- 0,0,-36,0,0,0,0,0,0,0,
- 0,-240,0,0,0,-319,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-37,0,0,
+ 0,0,-288,0,0,-122,0,-33,0,0,
+ 0,-232,0,0,0,0,-106,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-273,0,0,0,0,0,0,
- -320,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-34,0,
+ 0,0,0,0,0,-188,0,0,-242,0,
+ 0,0,0,0,-276,0,0,0,-35,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-38,0,
- 0,0,0,-39,0,0,0,-40,0,0,
+ 0,0,0,-65,0,0,0,0,-311,0,
+ 0,0,-270,0,0,0,0,-152,0,0,
+ 0,-36,0,0,0,0,0,0,0,0,
+ -240,0,0,0,-319,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-55,0,0,0,0,
- 0,0,-221,0,0,-56,0,-50,0,0,
- 0,0,0,-66,0,0,-342,-41,0,0,
- 0,-67,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-69,
- 0,0,0,0,0,0,-70,0,0,-120,
- 0,-57,0,0,0,0,0,0,0,0,
- -94,0,0,0,-109,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,
- 0,0,-110,0,0,0,0,0,0,0,
- 0,0,-413,0,-186,0,0,0,0,-111,
- -60,0,0,-95,0,0,0,-112,0,0,
+ 0,0,-273,0,0,0,0,0,0,-320,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-132,0,0,0,0,
- 0,0,0,0,0,-493,0,-190,0,0,
- 0,-370,0,-139,0,0,-96,0,0,0,
- -140,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,-531,0,
- -200,0,0,0,0,0,-155,0,0,-97,
- 0,0,0,-156,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-157,0,0,0,0,0,0,0,0,
- 0,-537,0,-304,0,0,0,0,0,-158,
- 0,0,-98,0,0,0,-159,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-160,0,0,0,0,0,
- 0,0,0,0,-161,0,-384,0,0,0,
- 0,0,-107,0,0,-99,0,0,0,-162,
+ 0,0,0,0,0,0,0,-38,0,0,
+ 0,0,-39,0,0,0,-40,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-55,0,0,0,0,0,
+ 0,-221,0,0,-56,0,-50,0,0,0,
+ 0,0,-66,0,0,-342,-41,0,0,0,
+ -67,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-69,0,
+ 0,0,0,0,0,-70,0,0,-120,0,
+ -57,0,0,0,0,0,0,0,0,-94,
+ 0,0,0,-109,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-163,0,-205,
- 0,0,0,0,-164,-108,0,0,-100,0,
- 0,0,-165,0,0,0,0,0,0,0,
+ 0,-110,0,0,0,0,0,0,0,0,
+ 0,-413,0,-186,0,0,0,0,-111,-60,
+ 0,0,-95,0,0,0,-112,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-132,0,0,0,0,0,
+ 0,0,0,0,-493,0,-190,0,0,0,
+ -370,0,-139,0,0,-96,0,0,0,-140,
0,0,0,0,0,0,0,0,0,0,
- -129,0,-222,0,0,0,0,-166,-114,0,
- 0,-101,0,0,0,-167,0,0,0,0,
+ 0,0,0,0,0,0,0,-141,0,0,
+ 0,0,0,0,0,0,0,-531,0,-200,
+ 0,0,0,0,0,-155,0,0,-97,0,
+ 0,0,-156,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -157,0,0,0,0,0,0,0,0,0,
+ -537,0,-304,0,0,0,0,0,-158,0,
+ 0,-98,0,0,0,-159,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-168,0,-230,0,0,0,0,
- -344,-169,0,0,-102,0,0,0,-170,0,
+ 0,0,0,-160,0,0,0,0,0,0,
+ 0,0,0,-161,0,-384,0,0,0,0,
+ 0,-107,0,0,-99,0,0,0,-162,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-385,0,0,0,
- 0,0,0,0,0,0,-130,0,0,0,
- 0,0,-507,-363,-171,0,0,-103,0,0,
- 0,-172,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-173,
- 0,0,0,0,0,0,-360,0,0,-144,
- 0,0,0,0,0,-399,0,0,0,0,
- -104,0,0,0,-292,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-174,0,0,0,0,0,0,0,
- 0,0,-175,0,-394,0,0,0,0,0,
- -137,0,0,-135,0,0,0,-375,0,0,
+ 0,0,0,0,0,0,-163,0,-205,0,
+ 0,0,0,-164,-108,0,0,-100,0,0,
+ 0,-165,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-129,
+ 0,-222,0,0,0,0,-166,-114,0,0,
+ -101,0,0,0,-167,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-176,0,-177,0,0,
- 0,-213,0,0,0,-180,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-168,0,-230,0,0,0,0,-344,
+ -169,0,0,-102,0,0,0,-170,0,0,
0,0,0,0,0,0,0,0,0,0,
- -181,0,0,0,0,0,0,0,0,0,
- -189,0,0,0,-74,-154,0,0,0,0,
- 0,-526,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-385,0,0,0,0,
+ 0,0,0,0,0,-130,0,0,0,0,
+ 0,-507,-363,-171,0,0,-103,0,0,0,
+ -172,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-173,0,
+ 0,0,0,0,0,-360,0,0,-144,0,
+ 0,0,0,0,-399,0,0,0,0,-104,
+ 0,0,0,-292,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-174,0,0,0,0,0,0,0,0,
+ 0,-175,0,-394,0,0,0,0,0,-137,
+ 0,0,-135,0,0,0,-375,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-408,0,0,0,-138,
- 0,-149,0,0,-345,0,0,0,-196,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-124,0,0,0,
+ 0,0,0,0,-176,0,-177,0,0,0,
+ -213,0,0,0,-180,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,-181,
+ 0,0,0,0,0,0,0,0,0,-189,
+ 0,0,0,-74,-154,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,0,-226,0,0,0,0,0,
- 0,-182,0,0,0,0,-332,0,0,0,
- -16,0,0,0,-229,-315,0,0,0,0,
- 0,0,-379,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-185,0,0,0,0,0,
- 0,-193,0,0,0,0,-400,0,0,0,
- -380,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-408,0,0,0,-138,0,
+ -149,0,0,-345,0,0,0,-196,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-124,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-194,0,0,0,0,0,-147,0,
- 0,0,-279,0,0,0,0,0,0,0,
- -450,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,-381,0,0,0,0,0,0,0,
- 0,0,-416,0,-333,0,0,0,-93,0,
+ 0,0,0,-226,0,0,0,0,0,0,
+ -182,0,0,0,0,-332,0,0,0,-16,
+ 0,0,0,-229,-315,0,0,0,0,0,
+ 0,-379,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-185,0,0,0,0,0,0,
+ -193,0,0,0,0,-400,0,0,0,-380,
0,0,0,0,0,0,0,0,0,0,
- -197,0,0,0,0,0,0,0,0,0,
- 0,0,-335,0,0,0,0,-266,0,0,
- 0,0,0,-410,0,0,0,0,-91,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -153,0,0,0,0,0,0,0,0,0,
- -92,0,0,0,-208,0,0,0,0,0,
+ 0,-194,0,0,0,0,0,-147,0,0,
+ 0,-279,0,0,0,0,0,0,0,-450,
0,0,0,0,0,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,-89,0,0,0,-255,0,
+ 0,-381,0,0,0,0,0,0,0,0,
+ 0,-416,0,-333,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,-197,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-218,-409,-377,0,0,-136,0,0,
- -219,0,-509,0,0,0,-202,-118,-420,0,
- 0,0,0,0,0,0,-374,0,0,0,
- 0,-267,0,0,0,0,0,0,-227,0,
- 0,-211,0,0,0,-314,0,-90,0,0,
+ 0,-335,0,0,0,0,-266,0,0,0,
+ 0,0,-410,0,0,0,0,-91,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,-212,0,0,0,
- -235,0,0,-119,0,0,0,-236,0,0,
+ 0,0,0,0,0,0,0,0,0,-153,
+ 0,0,0,0,0,0,0,0,0,-92,
+ 0,0,0,-208,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-143,
- 0,0,0,-146,-429,0,0,0,0,0,
- 0,-151,0,0,0,-198,-282,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-237,
- 0,0,0,0,-245,0,0,0,0,-254,
- -207,-259,0,0,0,0,0,0,-261,-238,
- 0,0,0,0,0,0,0,-312,0,-262,
- 0,0,0,0,-277,0,0,0,0,0,
- 0,0,0,-121,-246,0,0,0,-354,0,
- 0,0,0,-306,0,0,0,0,0,0,
- 0,0,0,0,0,0,-260,0,0,0,
- 0,0,0,-82,0,0,0,0,0,0,
+ -391,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-89,0,0,0,-255,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-278,0,0,0,0,
- -247,0,0,0,-438,0,0,0,0,-289,
- 0,0,0,0,0,0,0,0,-274,0,
- 0,0,0,-299,0,0,0,-329,-293,0,
- 0,0,0,0,0,0,0,0,0,-83,
0,0,0,0,0,0,0,0,0,0,
+ 0,-218,-409,-377,0,0,-136,0,0,-219,
+ 0,-509,0,0,0,-202,-118,-420,0,0,
+ 0,0,0,0,0,-374,0,0,0,0,
+ -267,0,0,0,0,0,0,-227,0,0,
+ -211,0,0,0,-314,0,-90,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-520,0,0,0,0,-84,0,0,0,
+ 0,0,0,0,0,0,0,0,-280,0,
+ 0,0,0,0,0,-212,0,0,0,-235,
+ 0,0,-119,0,0,0,-236,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-143,0,
+ 0,0,-146,-429,0,0,0,0,0,0,
+ -151,0,0,0,-198,-282,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-77,0,0,0,-294,0,0,
+ 0,0,0,0,0,0,0,0,-237,0,
+ 0,0,0,-245,0,0,0,0,-254,-207,
+ -259,0,0,0,0,0,0,-261,-238,0,
+ 0,0,0,0,0,0,-312,0,-262,0,
+ 0,0,0,-277,0,0,0,0,0,0,
+ 0,0,-121,-246,0,0,0,-354,0,0,
+ 0,0,-306,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-260,0,0,0,0,
+ 0,0,-82,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-302,0,0,0,0,
- 0,-440,0,0,0,0,0,0,0,0,
- 0,0,0,0,-187,0,0,0,-85,0,
+ 0,0,0,0,-278,0,0,0,0,-247,
+ 0,0,0,-438,0,0,0,0,-289,0,
+ 0,0,0,0,0,0,0,-274,0,0,
+ 0,0,-299,0,0,0,-329,-293,0,0,
+ 0,0,0,0,0,0,0,0,-83,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -234,0,0,0,0,-428,-123,0,0,0,
- 0,-199,-441,-303,0,0,0,0,0,-268,
- 0,0,0,0,0,0,-323,0,-430,0,
- 0,0,0,0,0,-241,-308,0,-14,-148,
- -248,-316,0,0,0,0,-228,0,0,0,
- 0,0,0,0,0,0,0,0,0,-448,
- 0,0,0,0,-249,0,-269,0,0,0,
+ -520,0,0,0,0,-84,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-250,0,0,
- 0,0,-362,0,0,0,0,0,0,0,
- -317,0,0,0,0,0,0,0,0,0,
- 0,0,0,-328,-346,0,0,0,0,0,
- -348,-432,0,0,0,0,0,0,0,0,
- 0,0,0,0,-525,0,0,0,0,0,
- 0,0,0,0,0,0,0,-452,-195,-52,
- 0,0,0,0,0,0,-301,-365,-326,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-18,0,0,0,0,0,0,-364,-466,
- 0,0,0,0,0,0,-467,0,0,0,
- -395,-473,-251,0,0,0,0,0,0,-464,
- -523,-368,0,-43,-44,0,0,0,0,0,
+ 0,0,-77,0,0,0,-294,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-302,0,0,0,0,0,
+ -440,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-187,0,0,0,-85,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-234,
+ 0,0,0,0,-428,-123,0,0,0,0,
+ -199,-441,-303,0,0,0,0,0,-268,0,
+ 0,0,0,0,0,-323,0,-430,0,0,
+ 0,0,0,0,-241,-308,0,-14,-148,-248,
+ -316,0,0,0,0,-228,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-448,0,
+ 0,0,0,-249,0,-269,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-271,0,0,0,
+ 0,0,0,0,0,0,-250,0,0,0,
+ 0,-362,0,0,0,0,0,0,0,-317,
0,0,0,0,0,0,0,0,0,0,
- -286,0,0,0,-383,-392,0,0,0,0,
- 0,-313,0,0,0,-19,0,0,0,0,
+ 0,0,-328,-346,0,0,0,0,0,-348,
+ -432,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-525,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-452,-195,-52,0,
+ 0,0,0,0,0,-301,-365,-326,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -18,0,0,0,0,0,0,-364,-466,0,
+ 0,0,0,0,0,-467,0,0,0,-395,
+ -473,-251,0,0,0,0,0,0,-464,-523,
+ -368,0,-43,-44,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-86,0,0,0,-393,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-125,0,0,0,-87,0,
- 0,0,-285,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -457,0,0,0,0,-284,-422,-275,-358,0,
- 0,0,0,-470,0,-396,-1,-298,-397,-318,
- 0,-461,0,-192,0,0,0,0,0,0,
- 0,-322,0,0,0,-295,0,-403,0,0,
- 0,-231,0,0,0,0,0,0,0,0,
- 0,0,0,0,-480,0,0,0,0,0,
- -287,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-134,-405,0,
- 0,0,0,0,0,0,-297,-45,-411,-418,
- 0,0,0,0,0,-462,0,0,0,0,
- 0,0,0,0,0,0,0,0,-482,0,
- 0,-296,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-271,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-286,
+ 0,0,0,-383,-392,0,0,0,0,0,
+ -313,0,0,0,-19,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-425,0,-494,0,0,0,
- -48,-46,0,0,0,0,0,0,0,-281,
- 0,0,0,-426,0,0,0,0,0,0,
- 0,0,-499,0,0,-243,0,0,-105,0,
- 0,-300,0,-324,0,0,0,0,0,0,
- 0,0,0,0,0,-524,0,-244,-449,-283,
- 0,0,0,0,0,-145,0,0,-451,0,
- 0,0,0,0,-453,0,0,0,0,0,
- 0,0,0,0,0,0,-513,0,0,0,
- 0,-454,-325,0,-455,0,0,0,0,-361,
- 0,0,0,0,0,0,0,0,0,-521,
- 0,0,-305,0,0,0,0,0,-456,-204,
- -458,-388,0,0,0,0,0,-340,0,0,
0,0,0,0,0,0,0,0,0,0,
- -515,0,0,-73,0,-476,0,0,-478,0,
- 0,-479,0,0,0,0,0,0,0,0,
- 0,0,0,-481,0,-369,0,0,-486,0,
- 0,0,0,-490,0,-419,0,0,0,0,
- 0,-497,0,0,0,-334,0,0,0,0,
+ 0,-86,0,0,0,-393,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -349,0,0,0,-465,0,0,0,0,0,
- 0,0,0,0,0,-517,0,0,0,0,
- 0,0,0,0,0,0,0,0,-359,-47,
- 0,0,0,-351,0,-309,0,-505,-514,0,
- 0,0,-485,0,0,-310,0,0,-519,0,
- -321,-350,0,-522,0,-527,0,0,-538,-184,
- 0,0,0,0,0,-443,0,0,0,0,
+ 0,0,0,-125,0,0,0,-87,0,0,
+ 0,-285,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-457,
+ 0,0,0,0,-284,-422,-275,-358,0,0,
+ 0,0,-470,0,-396,-1,-298,-397,-318,0,
+ -461,0,-192,0,0,0,0,0,0,0,
+ -322,0,0,0,-295,0,-403,0,0,0,
+ -231,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-480,0,0,0,0,0,-287,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-134,-405,0,0,
+ 0,0,0,0,0,-297,-45,-411,-418,0,
+ 0,0,0,0,-462,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-482,0,0,
+ -296,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-425,0,-494,0,0,0,-48,
+ -46,0,0,0,0,0,0,0,-281,0,
+ 0,0,-426,0,0,0,0,0,0,0,
+ 0,-499,0,0,-243,0,0,-105,0,0,
+ -300,0,-324,0,0,0,0,0,0,0,
+ 0,0,0,0,-524,0,-244,-449,-283,0,
+ 0,0,0,0,-145,0,0,-451,0,0,
+ 0,0,0,-453,0,0,0,0,0,0,
+ 0,0,0,0,0,-513,0,0,0,0,
+ -454,-325,0,-455,0,0,0,0,-361,0,
+ 0,0,0,0,0,0,0,0,-521,0,
+ 0,-305,0,0,0,0,0,-456,-204,-458,
+ -388,0,0,0,0,0,-340,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-515,
+ 0,0,-73,0,-476,0,0,-478,0,0,
+ -479,0,0,0,0,0,0,0,0,0,
+ 0,0,-481,0,-369,0,0,-486,0,0,
+ 0,0,-490,0,-419,0,0,0,0,0,
+ -497,0,0,0,-334,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-349,
+ 0,0,0,-465,0,0,0,0,0,0,
+ 0,0,0,0,-517,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-359,-47,0,
+ 0,0,-351,0,-309,0,-505,-514,0,0,
+ 0,-485,0,0,-310,0,0,-519,0,-321,
+ -350,0,-522,0,-527,0,0,-538,-184,0,
+ 0,0,0,0,-443,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-252,-534,0,0,
- 0,0,0,0,0,-352,0,0,0,0,
- 0,0,0,-474,0,0,0,0,0,0,
- -376,-209,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-401,-386,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-539,0,-327,0,0,-337,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-339,0,0,0,0,
- -528,0,0,0,0,-341,0,0,0,0,
+ 0,0,0,0,0,-252,-534,0,0,0,
+ 0,0,0,0,-352,0,0,0,0,0,
+ 0,0,-474,0,0,0,0,0,0,-376,
+ -209,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-401,-386,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-357,-389,0,0,
+ 0,-539,0,-327,0,0,-337,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-78,0,0,
+ 0,0,0,0,-339,0,0,0,0,-528,
+ 0,0,0,0,-341,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-357,-389,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-79,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-78,0,0,0,
0,0,0,0,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,-79,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -81,0,0,0,-475,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,-336,0,-373,-412,0,-468,0,0,
- -415,-445,-372,-291,0,0,0,0,0,0,
- 0,-444,0,-446,0,0,0,0,-253,0,
- 0,-424,0,0,0,0,-427,-469,0,0,
- 0,0,-471,0,0,0,0,-488,0,0,
+ 0,0,0,0,0,0,0,0,0,-81,
+ 0,0,0,-475,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-472,
- 0,0,0,0,0,0,-489,-496,0,0,
+ 0,-336,0,-373,-412,0,-468,0,0,-415,
+ -445,-372,-291,0,0,0,0,0,0,0,
+ -444,0,-446,0,0,0,0,-253,0,0,
+ -424,0,0,0,0,-427,-469,0,0,0,
+ 0,-471,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,-378,
+ 0,0,0,0,0,0,0,0,-472,0,
+ 0,0,0,0,0,-489,-496,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-330,0,0,0,0,0,-437,
- -491,0,0,0,0,0,0,0,0,-436,
- -404,0,0,0,-495,-492,0,0,0,0,
- 0,0,0,0,-500,-407,0,0,0,-191,
+ 0,0,0,0,0,0,0,0,-378,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-330,0,0,0,0,0,-437,-491,
+ 0,0,0,0,0,0,0,0,-436,-404,
+ 0,0,0,-495,-492,0,0,0,0,0,
+ 0,0,0,-500,-407,0,0,0,-191,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-504,0,
- 0,-512,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,0,0,
+ 0,0,0,0,0,0,0,-504,0,0,
+ -512,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,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -502,-506,0,0,0,0,-22,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-502,
+ -506,0,0,0,0,-22,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-510,0,0,0,0,0,-23,0,0,
+ -510,0,0,0,0,0,-23,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-24,
+ 0,0,0,0,0,0,0,0,-24,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,0,
+ -25,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,-26,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-27,0,0,0,0,
+ 0,0,0,0,-27,0,0,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,-63,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-75,
+ 0,0,0,0,0,0,0,0,-75,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-76,0,0,0,0,0,0,0,0,
+ -76,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-133,0,0,0,0,0,0,
+ 0,0,-133,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-203,0,0,0,0,
+ 0,0,0,0,-203,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-338,-460,-214,
- -511,0,0,0,-516,0,0,-366,-530,0,
- 0,0,-215,0,-529,0,0,-371,0,0,
- 0,0,0,-536,0,0,0,0,0,0,
- -535,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-338,-460,-214,-511,
+ 0,0,0,-516,0,0,-366,-530,0,0,
+ 0,-215,0,-529,0,0,-371,0,0,0,
+ 0,0,-536,0,0,0,0,0,0,-535,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -414,0,0,0,0,0,0,0,0,-498,
- -423,0,0,0,0,0,-216,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-414,
+ 0,0,0,0,0,0,0,0,-498,-423,
+ 0,0,0,0,0,-216,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-307,0,0,0,0,0,
+ 0,0,0,-307,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-343,0,0,
+ 0,0,0,0,0,0,-343,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-382,
0,0,0,0,0,0,0,0,0,0,
- -382,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-126,
- 0,0,0,-217,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-126,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,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-501,0,0,0,0,
+ 0,0,0,0,-501,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-483,0,-290,0,0,-223,0,0,
- -431,0,0,-518,0,0,0,0,0,0,
+ 0,-483,0,-290,0,0,-223,0,0,-431,
+ 0,0,-518,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,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,0,
- -264,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-367,
0,0,0,0,0,0,0,0,0,0,
- -367,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-265,0,0,0,
- 0,0,-421,0,0,0,0,0,0,0,
- 0,0,0,-433,0,0,0,0,0,0,
- 0,0,0,0,-434,0,0,0,-442,0,
+ 0,0,0,0,0,-265,0,0,0,0,
+ 0,-421,0,0,0,0,0,0,0,0,
+ 0,0,-433,0,0,0,0,0,0,0,
+ 0,0,0,-434,0,0,0,-442,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-201,
+ 0,0,0,0,0,0,0,0,-201,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-503,0,0,0,0,0,0,0,
- -17,-42,0,0,0,0,0,0,0,0,
- 0,0,-68,0,0,0,0,0,0,0,
+ 0,-503,0,0,0,0,0,0,0,-17,
+ -42,0,0,0,0,0,0,0,0,0,
+ 0,-68,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-435,
- 0,0,0,0,0,0,0,0,-210,0,
- 0,0,-257,0,0,0,0,0,-484,0,
+ 0,0,0,0,0,0,0,0,-435,0,
+ 0,0,0,0,0,0,0,-210,0,0,
+ 0,-257,0,0,0,0,0,-484,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,0,0,0,-487,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
@@ -544,7 +544,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,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;
@@ -556,549 +556,549 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public final static char baseAction[] = {
174,4,136,83,83,32,32,67,67,38,
38,40,40,200,1,1,15,15,15,15,
- 15,15,15,15,16,16,16,14,11,11,
- 6,6,6,6,6,6,2,65,65,5,
- 5,12,12,44,44,137,137,138,57,57,
- 43,17,17,17,17,17,17,17,17,17,
+ 15,15,15,16,16,16,14,11,11,6,
+ 6,6,6,6,6,2,65,65,5,5,
+ 12,12,44,44,137,137,138,57,57,43,
17,17,17,17,17,17,17,17,17,17,
- 17,139,139,139,115,115,18,18,18,18,
- 18,18,18,18,18,18,18,18,18,19,
- 19,175,175,176,176,177,142,142,143,143,
- 140,140,144,141,141,20,20,21,21,23,
- 23,23,24,24,24,24,25,25,25,26,
- 26,26,27,27,27,27,27,28,28,28,
- 30,30,31,31,33,33,35,35,36,36,
- 37,37,42,42,41,41,41,41,41,41,
- 41,41,41,41,41,41,41,39,29,145,
- 145,97,97,178,178,92,201,201,68,68,
- 68,68,68,68,68,68,68,69,69,69,
- 66,66,56,56,179,179,70,70,70,103,
- 103,180,180,71,71,71,181,181,72,72,
- 72,72,72,73,73,84,84,84,84,84,
- 84,84,84,49,49,49,49,49,116,116,
- 114,114,50,182,22,22,22,22,22,48,
- 48,87,87,87,87,87,152,152,147,147,
- 147,147,147,148,148,148,149,149,149,150,
- 150,150,151,151,151,88,88,88,88,88,
- 89,89,89,13,13,13,13,13,13,13,
- 13,13,13,13,98,120,120,120,120,120,
- 120,118,118,118,153,119,119,183,155,155,
- 154,154,122,122,104,79,79,80,81,52,
- 47,156,156,53,51,86,86,157,157,146,
- 146,123,124,124,125,76,76,158,158,63,
- 63,63,60,60,59,64,64,75,75,58,
- 58,58,54,90,90,100,99,99,62,62,
- 61,61,55,55,45,101,101,101,93,93,
- 93,94,94,95,95,95,96,96,105,105,
- 105,107,107,106,106,202,202,91,91,185,
- 185,185,185,185,127,46,46,160,184,184,
- 128,128,128,128,129,162,186,186,34,34,
- 117,130,130,130,130,188,109,108,108,121,
- 121,121,163,164,164,164,164,164,164,164,
- 164,164,164,164,190,190,187,187,189,189,
- 165,166,166,166,166,167,191,111,110,110,
- 192,192,168,168,168,168,102,102,102,193,
- 193,8,8,9,194,194,195,169,159,159,
- 170,170,171,172,172,7,7,10,196,196,
- 196,196,196,196,196,196,196,196,196,196,
+ 17,17,17,17,17,17,17,17,17,17,
+ 139,139,139,115,115,18,18,18,18,18,
+ 18,18,18,18,18,18,18,18,19,19,
+ 175,175,176,176,177,142,142,143,143,140,
+ 140,144,141,141,20,20,21,21,23,23,
+ 23,24,24,24,24,25,25,25,26,26,
+ 26,27,27,27,27,27,28,28,28,30,
+ 30,31,31,33,33,35,35,36,36,37,
+ 37,42,42,41,41,41,41,41,41,41,
+ 41,41,41,41,41,41,39,29,145,145,
+ 97,97,178,178,92,201,201,68,68,68,
+ 68,68,68,68,68,68,69,69,69,66,
+ 66,56,56,179,179,70,70,70,103,103,
+ 180,180,71,71,71,181,181,72,72,72,
+ 72,72,73,73,84,84,84,84,84,84,
+ 84,84,49,49,49,49,49,116,116,114,
+ 114,50,182,22,22,22,22,22,48,48,
+ 87,87,87,87,87,152,152,147,147,147,
+ 147,147,148,148,148,149,149,149,150,150,
+ 150,151,151,151,88,88,88,88,88,89,
+ 89,89,13,13,13,13,13,13,13,13,
+ 13,13,13,98,120,120,120,120,120,120,
+ 118,118,118,153,119,119,183,155,155,154,
+ 154,122,122,104,79,79,80,81,52,47,
+ 156,156,53,51,86,86,157,157,146,146,
+ 123,124,124,125,76,76,158,158,63,63,
+ 63,60,60,59,64,64,75,75,58,58,
+ 58,54,90,90,100,99,99,62,62,61,
+ 61,55,55,45,101,101,101,93,93,93,
+ 94,94,95,95,95,96,96,105,105,105,
+ 107,107,106,106,202,202,91,91,185,185,
+ 185,185,185,127,46,46,160,184,184,128,
+ 128,128,128,129,162,186,186,34,34,117,
+ 130,130,130,130,188,109,108,108,121,121,
+ 121,163,164,164,164,164,164,164,164,164,
+ 164,164,164,190,190,187,187,189,189,165,
+ 166,166,166,166,167,191,111,110,110,192,
+ 192,168,168,168,168,102,102,102,193,193,
+ 8,8,9,194,194,195,169,159,159,170,
+ 170,171,172,172,7,7,10,196,196,196,
196,196,196,196,196,196,196,196,196,196,
196,196,196,196,196,196,196,196,196,196,
196,196,196,196,196,196,196,196,196,196,
- 77,82,82,173,173,132,132,133,133,133,
- 133,133,133,3,134,134,131,131,112,112,
- 85,78,74,161,161,113,113,197,197,197,
- 135,135,126,126,198,198,174,174,1132,36,
- 1569,1551,1116,2540,28,31,32,917,930,27,
- 29,1544,26,24,51,944,107,77,78,109,
- 2758,1001,1083,1044,1179,1130,1230,2065,1210,1308,
- 152,1273,274,1369,1378,144,1292,36,397,159,
- 145,1621,36,915,33,1028,2552,28,31,32,
- 917,930,58,29,595,3898,3172,36,915,33,
- 233,3012,28,31,32,917,930,27,29,823,
- 26,24,51,944,107,77,78,109,1239,1001,
- 1083,1044,1179,1130,1758,236,231,232,595,1440,
- 1526,35,3172,36,915,33,275,3012,28,31,
- 32,917,930,27,29,823,26,24,51,944,
- 107,77,78,86,1511,243,246,249,252,1177,
- 2106,36,278,70,1525,1408,2882,691,1450,1738,
- 36,915,33,524,2552,28,31,32,917,930,
- 57,29,2375,570,3325,2448,2514,2624,2847,3165,
- 4570,2347,36,915,33,2990,3012,28,31,32,
- 917,930,27,29,823,26,24,51,944,107,
- 77,78,109,344,1001,1083,1044,1179,1130,1230,
- 62,1210,1308,1624,1273,3101,1369,1378,144,331,
- 36,280,518,145,4000,1446,861,595,36,1526,
- 2433,2192,940,36,1422,389,519,2347,36,915,
- 33,2990,3012,28,31,32,917,930,27,29,
- 823,26,24,51,944,107,77,78,109,344,
- 1001,1083,1044,1179,1130,1230,50,1210,1308,2156,
- 1273,1670,1369,1378,144,1414,2182,288,518,145,
- 595,2882,861,331,36,280,921,1885,4790,3214,
- 737,1035,519,514,1337,36,915,33,61,4889,
- 28,31,32,917,930,27,29,405,512,2146,
- 2941,1973,1976,1379,1356,2001,3580,2347,36,915,
- 33,2990,3012,28,31,32,917,930,27,29,
- 823,26,24,51,944,107,77,78,109,344,
- 1001,1083,1044,1179,1130,1230,498,1210,1308,514,
- 1273,2173,1369,1378,144,3268,313,357,518,145,
- 2374,921,861,2149,2846,2175,532,3356,2132,334,
- 1627,2001,519,2558,36,915,33,2990,3012,28,
- 31,32,917,930,27,29,823,26,24,51,
- 944,107,77,78,109,344,1001,1083,1044,1179,
- 1130,1230,289,1210,1308,2194,1273,2315,1369,1378,
- 144,595,36,2441,518,145,2163,1022,861,144,
- 2465,3670,595,36,2462,2318,353,183,519,514,
- 1231,36,915,33,2275,4889,28,31,32,917,
- 930,60,29,1356,345,2060,1931,350,2223,595,
- 3494,2001,343,2695,36,915,33,1101,3012,28,
- 31,32,917,930,27,29,823,26,24,51,
- 944,107,77,78,109,4294,1001,1083,1044,1179,
- 1130,1230,444,1210,1308,515,1273,505,1369,1378,
- 144,418,3550,3920,380,145,2417,36,915,33,
- 499,3012,28,31,32,917,930,27,29,823,
- 26,24,51,944,107,77,78,109,1667,1001,
- 1083,1044,1179,1130,1230,1983,1210,1308,2860,1273,
- 3580,1369,1378,144,49,2335,3920,380,145,4441,
- 94,3172,36,915,33,3386,3012,28,31,32,
- 917,930,27,29,823,26,24,51,944,107,
- 77,78,109,1622,1001,1083,1044,1179,1130,1230,
- 523,1210,1308,65,1273,3861,1369,2301,165,2175,
- 2163,386,3032,333,430,3670,2626,36,915,33,
- 2013,3012,28,31,32,917,930,27,29,823,
- 26,24,51,944,107,77,78,109,3105,1001,
- 1083,1044,1179,1130,1230,821,1210,1308,560,1273,
- 2314,1369,1378,144,387,3032,3920,380,145,595,
- 36,1526,277,2933,2623,2820,36,915,33,3430,
- 3012,28,31,32,917,930,27,29,823,26,
- 24,51,944,107,77,78,109,390,1001,1083,
- 1044,1179,1130,1230,2477,1210,1308,1914,1273,594,
- 1369,1378,144,2090,36,278,159,145,3172,36,
- 915,33,1667,3012,28,31,32,917,930,27,
- 29,823,26,24,51,944,107,77,78,109,
- 761,1001,1083,1044,1179,1130,1230,505,1210,1308,
- 2161,1273,2887,1870,378,3032,2820,36,915,33,
- 1280,3012,28,31,32,917,930,27,29,823,
- 26,24,51,944,107,77,78,109,2699,1001,
- 1083,1044,1179,1130,1230,1650,1210,1308,431,1273,
- 2588,1369,1378,144,2307,36,281,374,145,1231,
- 36,915,33,57,4889,28,31,32,917,930,
- 59,29,1365,36,1526,277,2820,36,915,33,
- 570,3012,28,31,32,917,930,27,29,823,
- 26,24,51,944,107,77,78,109,1159,1001,
- 1083,1044,1179,1130,1230,89,1210,1308,103,1273,
- 2229,1369,1378,144,595,36,283,374,145,3112,
- 1217,2820,36,915,33,422,3012,28,31,32,
- 917,930,27,29,823,26,24,51,944,107,
- 77,78,109,373,1001,1083,1044,1179,1130,1230,
- 1174,1210,1308,2690,1273,2815,1369,1378,144,1723,
- 391,428,374,145,2490,36,915,33,1639,3012,
- 28,31,32,917,930,27,29,823,26,24,
- 51,944,107,77,78,109,420,1001,1083,1044,
- 1179,1130,1230,72,1210,1308,1473,1273,70,1369,
- 1378,144,747,372,1188,143,145,2615,2820,36,
- 915,33,2524,3012,28,31,32,917,930,27,
- 29,823,26,24,51,944,107,77,78,109,
- 1343,1001,1083,1044,1179,1130,1230,1462,1210,1308,
- 1893,1273,70,1369,1378,144,827,2590,370,160,
- 145,2820,36,915,33,336,3012,28,31,32,
- 917,930,27,29,823,26,24,51,944,107,
- 77,78,109,684,1001,1083,1044,1179,1130,1230,
- 1495,1210,1308,2192,1273,70,1369,1378,144,4638,
- 858,1356,156,145,2820,36,915,33,1180,3012,
- 28,31,32,917,930,27,29,823,26,24,
- 51,944,107,77,78,109,2530,1001,1083,1044,
- 1179,1130,1230,25,1210,1308,2192,1273,505,1369,
- 1378,144,2251,3232,1645,155,145,2820,36,915,
- 33,3375,3012,28,31,32,917,930,27,29,
- 823,26,24,51,944,107,77,78,109,1474,
- 1001,1083,1044,1179,1130,1230,3651,1210,1308,231,
- 1273,70,1369,1378,144,2600,448,413,154,145,
- 2820,36,915,33,587,3012,28,31,32,917,
- 930,27,29,823,26,24,51,944,107,77,
- 78,109,1027,1001,1083,1044,1179,1130,1230,356,
- 1210,1308,231,1273,505,1369,1378,144,532,3448,
- 1296,153,145,2820,36,915,33,1722,3012,28,
- 31,32,917,930,27,29,823,26,24,51,
- 944,107,77,78,109,1521,1001,1083,1044,1179,
- 1130,1230,324,1210,1308,1566,1273,2252,1369,1378,
- 144,532,3996,1356,152,145,2820,36,915,33,
- 1785,3012,28,31,32,917,930,27,29,823,
- 26,24,51,944,107,77,78,109,1624,1001,
- 1083,1044,1179,1130,1230,70,1210,1308,1990,1273,
- 70,1369,1378,144,1220,136,1356,151,145,2820,
- 36,915,33,1350,3012,28,31,32,917,930,
- 27,29,823,26,24,51,944,107,77,78,
- 109,382,1001,1083,1044,1179,1130,1230,69,1210,
- 1308,1022,1273,70,1369,1378,144,2409,1713,1356,
- 150,145,2820,36,915,33,2457,3012,28,31,
- 32,917,930,27,29,823,26,24,51,944,
- 107,77,78,109,381,1001,1083,1044,1179,1130,
- 1230,54,1210,1308,2525,1273,70,1369,1378,144,
- 665,1347,1736,149,145,2820,36,915,33,1486,
- 3012,28,31,32,917,930,27,29,823,26,
- 24,51,944,107,77,78,109,318,1001,1083,
- 1044,1179,1130,1230,461,1210,1308,1022,1273,403,
- 1369,1378,144,1101,2590,492,148,145,2820,36,
- 915,33,1844,3012,28,31,32,917,930,27,
- 29,823,26,24,51,944,107,77,78,109,
- 2137,1001,1083,1044,1179,1130,1230,2477,1210,1308,
- 1022,1273,407,1369,1378,144,1292,36,397,147,
- 145,2820,36,915,33,674,3012,28,31,32,
- 917,930,27,29,823,26,24,51,944,107,
- 77,78,109,1798,1001,1083,1044,1179,1130,1230,
- 460,1210,1308,1988,1273,505,1369,1378,144,439,
- 4743,1757,146,145,2764,36,915,33,2615,3012,
- 28,31,32,917,930,27,29,823,26,24,
- 51,944,107,77,78,109,523,1001,1083,1044,
- 1179,1130,1230,4316,1210,1308,2100,1273,2303,1369,
- 2301,165,2820,36,915,33,1912,3012,28,31,
- 32,917,930,27,29,823,26,24,51,944,
- 107,77,78,109,3344,1001,1083,1044,1179,1130,
- 1230,239,1210,1308,2742,1273,354,1369,1378,144,
- 71,2269,2145,141,145,70,1022,328,90,1145,
- 2434,103,3054,36,915,33,2069,3012,28,31,
- 32,917,930,27,29,823,26,24,51,944,
- 107,77,78,109,157,1001,1083,1044,1179,1130,
- 1230,1796,1210,1308,2016,1273,505,1369,1378,144,
- 1029,4754,1356,190,145,3172,36,915,33,1022,
- 3012,28,31,32,917,930,27,29,823,26,
- 24,51,944,107,77,78,109,244,1001,1083,
- 1044,1179,1130,1230,88,1210,1308,3669,1273,52,
- 1369,2301,165,3172,36,915,33,448,3012,28,
- 31,32,917,930,27,29,823,26,24,51,
- 944,107,77,78,109,2519,1001,1083,1044,1179,
- 1130,1230,1931,1210,1308,355,1273,1022,1369,2301,
- 165,1522,36,915,33,1893,2013,42,31,32,
- 917,930,327,3172,36,915,33,424,3012,28,
- 31,32,917,930,27,29,823,26,24,51,
- 944,107,77,78,109,1109,1001,1083,1044,1179,
- 1130,1230,1710,1210,1308,3087,1273,2590,1369,2301,
- 165,3172,36,915,33,293,3012,28,31,32,
- 917,930,27,29,823,26,24,51,944,107,
- 77,78,109,285,1001,1083,1044,1179,1130,1230,
- 98,1210,1308,2157,1273,300,1369,2301,165,1897,
- 36,915,33,2591,2907,41,31,32,917,930,
- 1538,3228,36,915,33,423,3012,28,31,32,
- 917,930,27,29,823,26,24,51,944,107,
- 77,78,109,2405,1001,1083,1044,1179,1130,1230,
- 2011,1210,1308,2590,1273,674,1369,2301,165,3172,
- 36,915,33,426,3012,28,31,32,917,930,
- 27,29,823,26,24,51,944,107,77,78,
- 109,1895,1001,1083,1044,1179,1130,1230,325,1210,
- 1308,222,1845,1897,36,915,33,2590,144,1844,
- 31,32,917,930,595,36,1422,389,2229,3172,
- 36,915,33,3484,3012,28,31,32,917,930,
- 27,29,823,26,24,51,944,107,77,78,
- 109,1356,1001,1083,1044,1179,1130,1230,432,1210,
- 1802,3172,36,915,33,2272,3012,28,31,32,
- 917,930,27,29,823,26,24,51,944,107,
- 77,78,109,53,1001,1083,1044,1179,1130,1230,
- 72,1809,1540,36,915,33,3572,3521,28,31,
- 32,917,930,340,29,3172,36,915,33,2165,
- 3012,28,31,32,917,930,27,29,823,26,
- 24,51,944,107,77,78,109,3556,1001,1083,
- 1044,1179,1766,2376,505,331,36,454,2190,4765,
- 3981,2377,2852,1292,36,397,2175,2061,2879,505,
- 333,320,2500,322,4769,315,2233,1897,36,915,
- 33,240,2592,2187,31,32,917,930,314,2245,
- 352,3208,766,36,1422,389,1408,2882,3172,36,
- 915,33,4538,3012,28,31,32,917,930,27,
- 29,823,26,24,51,944,107,77,78,109,
- 2102,1001,1083,1044,1179,1794,274,2439,329,336,
- 233,1919,2229,353,1240,307,311,682,1420,36,
- 915,33,3380,3340,28,31,32,917,930,340,
- 29,345,2060,1931,350,241,231,232,2273,2556,
- 1400,36,1422,389,70,853,36,454,1145,3280,
- 3981,3574,943,36,1422,389,1356,1826,36,915,
- 33,3413,3340,28,31,32,917,930,340,29,
- 2585,3566,2229,2591,50,326,233,320,2500,322,
- 326,315,2233,1414,2447,2585,50,73,351,352,
- 2162,1356,2415,353,2676,1414,2507,3214,288,2566,
- 1725,245,231,232,2990,447,3228,3269,2588,2472,
- 2191,345,2060,1931,350,2447,320,2500,322,2615,
- 315,2233,2518,91,1255,595,2709,1526,75,2013,
- 2629,2941,353,3364,1836,36,2961,33,3572,3521,
- 28,31,32,917,930,340,29,2269,36,294,
- 345,2060,1931,350,3172,36,915,33,2556,3012,
- 28,31,32,917,930,27,29,823,26,24,
- 51,944,107,77,78,109,2448,1001,1083,1044,
- 1655,1365,36,1526,2778,70,233,3362,2175,1145,
- 2653,361,333,320,2500,322,286,315,2233,595,
- 36,1526,279,367,1650,3173,2511,2580,2161,2618,
- 1144,248,231,232,3893,451,3228,3269,392,428,
- 3172,36,915,33,4538,3012,28,31,32,917,
- 930,27,29,823,26,24,51,944,107,77,
- 78,109,2800,1001,1083,1044,1665,3172,36,915,
- 33,2997,3012,28,31,32,917,930,27,29,
- 823,26,24,51,944,107,77,78,109,2313,
- 1001,1083,1044,1680,3172,36,915,33,2650,3012,
- 28,31,32,917,930,27,29,823,26,24,
- 51,944,107,77,78,109,2186,1001,1587,418,
- 420,2955,1243,36,915,33,3572,3340,28,31,
- 32,917,930,340,29,1292,36,2469,2125,3172,
- 36,915,33,1801,3012,28,31,32,917,930,
- 27,29,823,26,24,51,944,107,77,78,
- 109,1356,1001,1083,1044,1708,262,1361,1877,50,
- 538,2690,2003,2590,2662,524,2990,3580,1414,932,
- 70,320,2500,322,1260,315,2233,2450,229,595,
- 36,1422,389,3198,2518,157,1356,2656,314,2880,
- 1932,1356,2546,2990,181,2988,870,943,36,1422,
- 389,304,204,216,4721,203,213,214,215,217,
- 1,344,170,453,538,1356,2175,70,3251,233,
- 333,2608,169,68,184,168,171,172,173,174,
- 175,50,229,929,797,308,311,682,1356,157,
- 1414,48,2229,1022,251,231,232,67,181,2988,
- 870,500,2989,361,1264,3652,204,216,4721,203,
- 213,214,215,217,2657,2686,170,2841,2511,2580,
- 66,2246,595,36,1422,389,169,182,185,168,
- 171,172,173,174,175,1633,36,915,33,3380,
- 3340,28,31,32,917,930,340,29,2590,2095,
- 3284,36,1422,389,3580,742,435,1893,2689,1921,
- 36,915,33,238,3521,28,31,32,917,930,
- 340,29,1259,36,1422,389,99,43,2365,2013,
- 595,36,1422,389,274,2900,180,595,36,1422,
- 389,2013,1893,1356,320,2500,322,3688,315,2233,
- 1893,1893,2723,2175,70,70,50,334,2990,2990,
- 353,527,233,2175,434,1414,1255,334,320,2500,
- 322,433,316,2233,353,65,344,344,345,2060,
- 1931,350,3985,443,353,457,528,236,231,232,
- 870,870,347,2060,1931,350,298,70,275,861,
- 861,2476,347,2060,1931,350,3971,526,297,1465,
- 1483,595,36,1526,2954,769,2690,243,246,249,
- 252,1177,595,36,1526,282,3116,36,915,33,
- 1450,3012,28,31,32,917,930,27,29,823,
- 26,24,51,944,87,77,78,2448,2514,2624,
- 2847,3165,4570,3172,36,915,33,2649,3012,28,
- 31,32,917,930,27,29,823,26,24,51,
- 944,107,77,78,109,1629,1001,1083,1715,3172,
- 36,915,33,1356,3012,28,31,32,917,930,
- 27,29,823,26,24,51,944,107,77,78,
- 109,349,1001,1083,1723,538,2593,2474,70,1725,
- 2990,2990,3210,2990,2013,3685,1744,2279,2165,2731,
- 2165,1145,2590,229,595,36,1422,389,2518,2518,
- 157,2518,595,36,1422,389,1356,233,848,181,
- 2988,870,940,36,1422,389,157,204,216,4721,
- 203,213,214,215,217,436,536,170,274,538,
- 199,70,254,231,232,2708,274,169,56,3489,
- 168,171,172,173,174,175,50,229,1983,2752,
- 3208,305,3208,3580,157,1414,48,70,70,2757,
- 935,3506,2990,181,2988,870,2590,362,506,1324,
- 361,204,216,4721,203,213,214,215,217,523,
- 344,170,1356,538,3442,2511,2580,335,336,3737,
- 336,169,276,179,168,171,172,173,174,175,
- 341,229,2175,861,198,2683,333,2013,157,504,
- 505,1345,70,1500,55,1145,2990,181,2988,870,
- 940,36,1422,389,2691,204,216,4721,203,213,
- 214,215,217,610,344,170,1983,538,2989,70,
- 161,3580,70,1145,1356,169,3853,177,168,171,
- 172,173,174,175,50,229,1893,861,2195,2724,
- 1983,542,157,1414,2867,3580,1724,1508,157,2725,
- 2990,181,2988,870,383,88,323,3222,1852,204,
- 216,4721,203,213,214,215,217,697,344,170,
- 2175,538,2788,2003,3864,2792,870,2990,3580,169,
- 1356,178,168,171,172,173,174,175,1759,229,
- 1978,873,525,2512,2175,2518,157,1417,333,2793,
- 70,2844,1356,3652,2990,181,2988,870,943,36,
- 1422,389,102,204,216,4721,203,213,214,215,
- 217,784,344,170,1345,538,2273,2175,1145,2848,
- 2999,333,175,169,3856,188,168,171,172,173,
- 174,175,50,229,2843,861,2269,3147,294,2479,
- 157,1414,48,161,2786,2876,1356,1579,95,181,
- 2988,870,1371,2999,361,2457,2165,204,216,4721,
- 203,213,214,215,217,45,2365,170,2841,2511,
- 2580,940,36,1422,389,1356,3362,169,2853,3576,
- 168,171,172,173,174,175,2066,36,915,33,
- 3572,3340,28,31,32,917,930,340,29,2165,
- 595,36,1422,389,2588,50,70,452,2849,2850,
- 3554,2351,1710,2658,1414,2263,70,538,3208,871,
- 3636,70,1983,538,2853,3199,2327,3580,3222,2404,
- 595,36,1422,389,50,4029,595,36,294,5445,
- 2997,229,157,1414,735,320,2500,322,157,315,
- 2233,181,2988,5445,5445,331,336,181,2988,870,
- 5445,3208,314,5445,50,204,216,4721,203,213,
- 214,215,217,1414,1403,170,2175,1345,958,196,
- 333,1145,538,5445,5445,169,2588,193,168,171,
- 172,173,174,175,595,36,294,5445,3738,336,
- 229,1893,595,36,1422,389,161,157,5445,307,
- 311,682,4551,5445,394,428,181,2988,870,1893,
- 940,36,1422,389,204,216,4721,203,213,214,
- 215,217,4355,1045,170,70,50,538,70,3549,
- 3835,870,3863,3280,169,47,187,168,171,172,
- 173,174,175,5445,50,229,70,377,5445,870,
- 3855,2475,157,1414,48,1145,70,5445,5445,5445,
- 1938,181,2988,870,3226,377,5445,2324,5445,204,
- 216,4721,203,213,214,215,217,70,70,170,
- 157,741,1493,5445,4823,197,393,428,3928,169,
- 163,195,168,171,172,173,174,175,3172,36,
- 915,33,5445,3012,28,31,32,917,930,27,
- 29,823,26,24,51,944,107,77,78,109,
- 5445,1001,1594,3172,36,915,33,5445,3012,28,
- 31,32,917,930,27,29,823,26,24,51,
- 944,107,77,78,109,5445,1612,3172,36,915,
- 33,375,3012,28,31,32,917,930,27,29,
- 823,26,24,51,944,107,77,78,109,3887,
- 1630,3172,36,915,33,2590,3012,28,31,32,
- 917,930,27,29,823,26,24,51,944,107,
- 77,78,109,1584,1637,2474,70,2990,1398,2990,
- 3980,70,70,1848,2178,3970,2990,2990,5445,3580,
- 5445,5445,2682,303,70,229,2990,2518,2990,1345,
- 5445,5445,70,1145,344,229,3872,70,70,4371,
- 530,967,1536,1356,2518,5445,344,5445,2590,206,
- 216,4721,205,213,214,215,217,861,161,206,
- 216,4721,205,213,214,215,217,510,2175,861,
- 70,5445,3864,5445,3327,379,5445,2590,2590,508,
- 207,209,211,295,296,2610,202,218,208,210,
- 207,209,211,295,296,2610,506,218,208,210,
- 2015,36,2961,33,3572,3340,28,31,32,917,
- 930,340,29,506,1345,200,299,3019,1145,4358,
- 1936,70,5445,5445,2990,1843,3302,3031,5445,4358,
- 2165,940,36,1422,389,70,70,503,505,963,
- 2990,5445,229,161,5445,1356,940,36,1422,389,
- 595,36,1422,389,503,505,97,5445,344,320,
- 2500,322,5445,315,2233,50,206,216,4721,205,
- 213,214,215,217,1414,48,1144,3407,3206,70,
- 50,861,2473,3536,50,5445,2975,5445,2869,1414,
- 48,535,3208,1414,1183,3466,5445,207,209,211,
- 295,296,2610,2962,218,208,210,3172,1440,915,
- 1447,3420,3012,28,31,32,917,930,27,29,
- 823,26,24,51,944,107,77,78,85,3888,
- 336,1356,1356,5445,3204,5445,4358,3172,36,915,
- 33,5445,3012,28,31,32,917,930,27,29,
- 823,26,24,51,944,107,77,78,84,5445,
- 5445,5445,1356,3461,3569,419,420,2955,3172,36,
- 915,33,5445,3012,28,31,32,917,930,27,
- 29,823,26,24,51,944,107,77,78,83,
- 3172,36,915,33,3041,3012,28,31,32,917,
- 930,27,29,823,26,24,51,944,107,77,
- 78,82,3172,36,915,33,5445,3012,28,31,
- 32,917,930,27,29,823,26,24,51,944,
- 107,77,78,81,3172,36,915,33,5445,3012,
- 28,31,32,917,930,27,29,823,26,24,
- 51,944,107,77,78,80,3172,36,915,33,
- 5445,3012,28,31,32,917,930,27,29,823,
- 26,24,51,944,107,77,78,79,2998,36,
- 915,33,5445,3012,28,31,32,917,930,27,
- 29,823,26,24,51,944,107,77,78,105,
- 3172,36,915,33,5445,3012,28,31,32,917,
- 930,27,29,823,26,24,51,944,107,77,
- 78,111,3172,36,915,33,5445,3012,28,31,
- 32,917,930,27,29,823,26,24,51,944,
- 107,77,78,110,3172,36,915,33,5445,3012,
- 28,31,32,917,930,27,29,823,26,24,
- 51,944,107,77,78,108,3172,36,915,33,
- 5445,3012,28,31,32,917,930,27,29,823,
- 26,24,51,944,107,77,78,106,2024,2658,
- 70,1356,2990,1145,1145,2590,5445,5445,1672,1356,
- 5445,5445,2990,70,5445,2590,5445,1145,1760,5445,
- 229,5445,2990,5445,2590,5445,5445,5445,157,157,
- 229,1356,5445,3376,5445,5445,5445,201,3927,2881,
- 229,4364,157,3711,206,216,4721,205,213,214,
- 215,217,2905,223,206,216,4721,205,213,214,
- 215,217,194,3683,206,216,4721,205,213,214,
- 215,217,5445,5445,5445,207,209,211,295,296,
- 2610,5445,521,208,210,207,209,211,295,296,
- 2610,5445,520,208,210,207,209,211,295,296,
- 2610,2112,219,208,210,2990,5445,5445,5445,5445,
- 2751,2200,5445,5445,2990,2990,5445,70,5445,5445,
- 5445,1145,5445,229,5445,5445,5445,5445,5445,5445,
- 5445,5445,344,229,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,157,206,216,4721,
- 205,213,214,215,217,4032,2928,206,216,4721,
- 205,213,214,215,217,1243,36,915,33,3572,
- 3340,28,31,32,917,930,340,29,207,209,
- 211,295,296,2610,5445,306,208,210,207,209,
- 211,295,296,2610,5445,500,208,210,1714,36,
- 915,33,5445,3521,28,31,32,917,930,340,
- 29,1714,36,915,33,5445,3521,28,31,32,
- 917,930,340,29,320,2500,322,5445,315,2233,
- 3334,36,1422,389,70,742,5445,5445,1145,5445,
- 5445,3364,5445,239,5445,5445,5445,5445,5445,5445,
- 5445,5445,2175,5445,5445,5445,334,320,2500,322,
- 5445,318,2233,157,274,2175,5445,5445,5445,334,
- 320,2500,322,3033,316,2233,1243,36,915,33,
- 3572,3340,28,31,32,917,930,340,29,5445,
- 5445,5445,233,70,5445,70,5445,538,1194,1145,
- 5445,1345,2990,4893,70,1145,5445,4341,1145,5445,
- 5445,5445,5445,5445,5445,344,5445,237,231,232,
- 229,5445,157,5445,157,5445,5445,5445,275,5445,
- 161,5445,189,157,2137,320,2500,322,4616,315,
- 2233,5445,5445,4349,779,408,4701,244,247,250,
- 253,1177,3559,5445,5445,5445,5445,5445,5445,5445,
- 1450,1512,36,915,33,2634,3340,28,31,32,
- 917,930,340,29,5445,409,410,411,295,296,
- 2610,1802,36,915,33,2392,3340,28,31,32,
- 917,930,340,29,5445,5445,3995,1300,3525,404,
- 2592,2990,4893,1491,36,1422,389,5445,5445,5445,
- 5445,5445,5445,5445,940,36,1422,389,5445,229,
- 317,2877,322,5445,5445,940,36,1422,389,1666,
- 36,1422,389,5445,5445,5445,5445,50,5445,5445,
- 317,2877,322,779,408,4701,1414,48,50,5445,
- 595,36,1422,389,5445,5445,5445,1414,48,50,
- 3586,412,414,50,5445,5445,5445,5445,1414,48,
- 5445,3020,1414,48,409,410,411,295,296,2610,
- 5445,5445,3027,2727,50,1100,3644,538,4737,5445,
- 5445,70,70,1414,660,538,538,5445,5445,2592,
- 5445,5445,5445,70,5445,344,5445,538,5445,5445,
- 5445,5445,157,344,344,5445,5445,5445,5445,3433,
- 157,157,189,5445,5445,344,5445,5445,4616,5445,
- 1501,1716,157,5445,5445,5445,861,861,5445,3433,
- 2006,5445,1501,5445,2990,5445,953,1673,861,595,
- 36,1422,389,595,36,1422,389,5445,2062,70,
- 412,415,344,538,5445,5445,5445,5445,5445,5445,
- 5445,5445,531,5445,5445,5445,5445,5445,70,5445,
- 5445,344,538,50,5445,861,191,50,157,5445,
- 5445,5445,1414,1255,5445,534,1414,2704,189,5445,
- 344,5445,5445,5445,4616,5445,5445,157,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,189,5445,5445,
- 5445,5445,5445,4616,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,4081,4345,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,4082,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,3858,5445,
- 0,40,5460,0,40,5459,0,663,30,0,
- 441,1408,0,455,1452,0,39,628,0,39,
- 5460,0,39,5459,0,2747,127,0,1,445,
- 0,459,1751,0,458,1837,0,2544,92,0,
- 663,388,0,36,34,0,33,35,0,40,
- 628,0,1,997,0,1,5718,0,1,5717,
- 0,1,5716,0,1,5715,0,1,5714,0,
- 1,5713,0,1,5712,0,1,5711,0,1,
- 5710,0,1,5709,0,1,5708,0,40,1,
- 5460,0,40,1,5459,0,2141,1,0,284,
- 395,0,284,287,0,5680,242,0,5679,242,
- 0,5784,242,0,5783,242,0,5707,242,0,
- 5706,242,0,5705,242,0,5704,242,0,5703,
- 242,0,5702,242,0,5701,242,0,5700,242,
- 0,5718,242,0,5717,242,0,5716,242,0,
- 5715,242,0,5714,242,0,5713,242,0,5712,
- 242,0,5711,242,0,5710,242,0,5709,242,
- 0,5708,242,0,40,5460,242,0,40,5459,
- 242,0,5484,242,0,5460,49,0,5459,49,
- 0,5451,1,0,5450,1,0,3331,238,0,
- 33,389,0,30,388,0,44,5482,0,44,
- 38,0,2747,129,0,2747,128,0,332,446,
- 0,5484,1,0,40,1,0,48,38,0,
- 1,93,0,502,2599,0,5484,1,230,0,
- 40,1,230,0,230,417,0,5460,38,0,
- 5459,38,0,5460,2,38,0,5459,2,38,
- 0,5460,37,0,5459,37,0,5482,46,0,
- 38,46,0,5455,406,0,5454,406,0,1,
- 4505,0,1,2879,0,1,628,0,230,416,
- 0,3571,319,0,332,96,0,36,74,0,
- 1,332,0,3627,279,0,502,4348,0,1,
- 230,0,230,221,0,230,220,0,1,576,
- 0,1,1886,0,5457,1,0,5453,1,0,
- 1,230,3389,0,5454,230,0,3395,230,0,
- 5457,384,0,5456,384,0,3472,230,0,10,
- 12,0,8,10,12,0,186,3628,0,3579,
- 384,0,8,12,0
+ 196,196,196,196,196,196,196,196,196,77,
+ 82,82,173,173,132,132,133,133,133,133,
+ 133,133,3,134,134,131,131,112,112,85,
+ 78,74,161,161,113,113,197,197,197,135,
+ 135,126,126,198,198,174,174,1119,35,1568,
+ 1550,1278,2539,27,30,31,916,929,26,28,
+ 1543,25,23,50,943,106,76,77,108,1964,
+ 1000,1082,1043,1178,1129,1229,236,1209,1307,1982,
+ 1272,273,1368,1377,143,1243,35,396,158,144,
+ 1217,35,914,32,71,2551,27,30,31,916,
+ 929,57,28,588,3897,3121,35,914,32,232,
+ 3011,27,30,31,916,929,26,28,822,25,
+ 23,50,943,106,76,77,108,1267,1000,1082,
+ 1043,1178,1129,1757,235,230,231,588,1439,1525,
+ 34,3121,35,914,32,274,3011,27,30,31,
+ 916,929,26,28,822,25,23,50,943,106,
+ 76,77,85,2023,242,245,248,251,1176,2079,
+ 35,277,56,2168,1643,2881,690,1449,1860,35,
+ 914,32,523,2551,27,30,31,916,929,56,
+ 28,2244,569,3324,2447,2513,2623,2846,3164,4569,
+ 2316,35,914,32,2989,3011,27,30,31,916,
+ 929,26,28,822,25,23,50,943,106,76,
+ 77,108,343,1000,1082,1043,1178,1129,1229,61,
+ 1209,1307,1623,1272,3100,1368,1377,143,327,35,
+ 279,517,144,3999,1279,860,588,35,1525,2432,
+ 1721,929,35,1421,388,518,2316,35,914,32,
+ 2989,3011,27,30,31,916,929,26,28,822,
+ 25,23,50,943,106,76,77,108,343,1000,
+ 1082,1043,1178,1129,1229,49,1209,1307,2049,1272,
+ 2493,1368,1377,143,1413,2181,287,517,144,588,
+ 2881,860,327,35,279,920,1599,4789,3213,736,
+ 1034,518,513,2344,35,914,32,60,4888,27,
+ 30,31,916,929,26,28,404,511,2145,2940,
+ 1773,1975,1016,1614,2000,3579,2316,35,914,32,
+ 2989,3011,27,30,31,916,929,26,28,822,
+ 25,23,50,943,106,76,77,108,343,1000,
+ 1082,1043,1178,1129,1229,497,1209,1307,513,1272,
+ 2147,1368,1377,143,3267,312,356,517,144,838,
+ 920,860,1868,2845,2174,531,3355,2131,333,1017,
+ 2000,518,2524,35,914,32,2989,3011,27,30,
+ 31,916,929,26,28,822,25,23,50,943,
+ 106,76,77,108,343,1000,1082,1043,1178,1129,
+ 1229,288,1209,1307,2681,1272,2682,1368,1377,143,
+ 588,35,2440,517,144,2122,1010,860,142,2683,
+ 3669,588,35,2461,2317,352,182,518,513,1715,
+ 35,914,32,2245,4888,27,30,31,916,929,
+ 59,28,1614,344,2059,1930,349,2222,588,3493,
+ 2000,342,2659,35,914,32,1088,3011,27,30,
+ 31,916,929,26,28,822,25,23,50,943,
+ 106,76,77,108,4293,1000,1082,1043,1178,1129,
+ 1229,443,1209,1307,514,1272,69,1368,1377,143,
+ 413,3549,3919,379,144,2385,35,914,32,498,
+ 3011,27,30,31,916,929,26,28,822,25,
+ 23,50,943,106,76,77,108,1666,1000,1082,
+ 1043,1178,1129,1229,1607,1209,1307,2859,1272,3579,
+ 1368,1377,143,1445,2154,3919,379,144,4440,93,
+ 3121,35,914,32,3385,3011,27,30,31,916,
+ 929,26,28,822,25,23,50,943,106,76,
+ 77,108,1621,1000,1082,1043,1178,1129,1229,522,
+ 1209,1307,64,1272,3860,1368,2300,164,2174,2122,
+ 385,3031,332,429,3669,2591,35,914,32,322,
+ 3011,27,30,31,916,929,26,28,822,25,
+ 23,50,943,106,76,77,108,3104,1000,1082,
+ 1043,1178,1129,1229,820,1209,1307,559,1272,2284,
+ 1368,1377,143,386,3031,3919,379,144,588,35,
+ 1525,276,2932,2750,2887,35,914,32,3429,3011,
+ 27,30,31,916,929,26,28,822,25,23,
+ 50,943,106,76,77,108,389,1000,1082,1043,
+ 1178,1129,1229,2580,1209,1307,1229,1272,587,1368,
+ 1377,143,1947,35,277,158,144,3121,35,914,
+ 32,1666,3011,27,30,31,916,929,26,28,
+ 822,25,23,50,943,106,76,77,108,494,
+ 1000,1082,1043,1178,1129,1229,69,1209,1307,1988,
+ 1272,2886,1869,377,3031,2887,35,914,32,1355,
+ 3011,27,30,31,916,929,26,28,822,25,
+ 23,50,943,106,76,77,108,2698,1000,1082,
+ 1043,1178,1129,1229,2121,1209,1307,430,1272,2433,
+ 1368,1377,143,2449,35,280,373,144,1715,35,
+ 914,32,400,4888,27,30,31,916,929,58,
+ 28,1543,35,1525,276,2887,35,914,32,569,
+ 3011,27,30,31,916,929,26,28,822,25,
+ 23,50,943,106,76,77,108,1226,1000,1082,
+ 1043,1178,1129,1229,88,1209,1307,102,1272,2228,
+ 1368,1377,143,588,35,282,373,144,3111,1216,
+ 2887,35,914,32,421,3011,27,30,31,916,
+ 929,26,28,822,25,23,50,943,106,76,
+ 77,108,372,1000,1082,1043,1178,1129,1229,1173,
+ 1209,1307,2689,1272,2814,1368,1377,143,1146,390,
+ 427,373,144,2457,35,914,32,1617,3011,27,
+ 30,31,916,929,26,28,822,25,23,50,
+ 943,106,76,77,108,1625,1000,1082,1043,1178,
+ 1129,1229,135,1209,1307,1627,1272,56,1368,1377,
+ 143,746,371,1174,142,144,2728,2887,35,914,
+ 32,2690,3011,27,30,31,916,929,26,28,
+ 822,25,23,50,943,106,76,77,108,1323,
+ 1000,1082,1043,1178,1129,1229,1441,1209,1307,1330,
+ 1272,56,1368,1377,143,826,2589,369,159,144,
+ 2887,35,914,32,160,3011,27,30,31,916,
+ 929,26,28,822,25,23,50,943,106,76,
+ 77,108,676,1000,1082,1043,1178,1129,1229,1494,
+ 1209,1307,1721,1272,56,1368,1377,143,4637,848,
+ 1614,155,144,2887,35,914,32,1167,3011,27,
+ 30,31,916,929,26,28,822,25,23,50,
+ 943,106,76,77,108,2691,1000,1082,1043,1178,
+ 1129,1229,24,1209,1307,1721,1272,69,1368,1377,
+ 143,2050,3231,1503,154,144,2887,35,914,32,
+ 3321,3011,27,30,31,916,929,26,28,822,
+ 25,23,50,943,106,76,77,108,1453,1000,
+ 1082,1043,1178,1129,1229,3650,1209,1307,159,1272,
+ 56,1368,1377,143,2599,447,408,153,144,2887,
+ 35,914,32,580,3011,27,30,31,916,929,
+ 26,28,822,25,23,50,943,106,76,77,
+ 108,1015,1000,1082,1043,1178,1129,1229,355,1209,
+ 1307,159,1272,69,1368,1377,143,531,3447,1700,
+ 152,144,2887,35,914,32,1787,3011,27,30,
+ 31,916,929,26,28,822,25,23,50,943,
+ 106,76,77,108,1223,1000,1082,1043,1178,1129,
+ 1229,323,1209,1307,1385,1272,2627,1368,1377,143,
+ 531,3995,1614,151,144,2887,35,914,32,1559,
+ 3011,27,30,31,916,929,26,28,822,25,
+ 23,50,943,106,76,77,108,1623,1000,1082,
+ 1043,1178,1129,1229,69,1209,1307,1875,1272,56,
+ 1368,1377,143,1219,1965,1614,150,144,2887,35,
+ 914,32,2022,3011,27,30,31,916,929,26,
+ 28,822,25,23,50,943,106,76,77,108,
+ 381,1000,1082,1043,1178,1129,1229,68,1209,1307,
+ 1010,1272,56,1368,1377,143,2408,1709,1614,149,
+ 144,2887,35,914,32,2491,3011,27,30,31,
+ 916,929,26,28,822,25,23,50,943,106,
+ 76,77,108,380,1000,1082,1043,1178,1129,1229,
+ 53,1209,1307,2558,1272,56,1368,1377,143,664,
+ 1604,1701,148,144,2887,35,914,32,1703,3011,
+ 27,30,31,916,929,26,28,822,25,23,
+ 50,943,106,76,77,108,314,1000,1082,1043,
+ 1178,1129,1229,460,1209,1307,1010,1272,402,1368,
+ 1377,143,1088,2552,486,147,144,2887,35,914,
+ 32,1374,3011,27,30,31,916,929,26,28,
+ 822,25,23,50,943,106,76,77,108,1515,
+ 1000,1082,1043,1178,1129,1229,2580,1209,1307,1010,
+ 1272,406,1368,1377,143,1243,35,396,146,144,
+ 2887,35,914,32,666,3011,27,30,31,916,
+ 929,26,28,822,25,23,50,943,106,76,
+ 77,108,1883,1000,1082,1043,1178,1129,1229,459,
+ 1209,1307,2125,1272,69,1368,1377,143,438,4742,
+ 1873,145,144,2832,35,914,32,2728,3011,27,
+ 30,31,916,929,26,28,822,25,23,50,
+ 943,106,76,77,108,522,1000,1082,1043,1178,
+ 1129,1229,4315,1209,1307,2276,1272,2413,1368,2300,
+ 164,2887,35,914,32,2306,3011,27,30,31,
+ 916,929,26,28,822,25,23,50,943,106,
+ 76,77,108,3343,1000,1082,1043,1178,1129,1229,
+ 2139,1209,1307,2741,1272,353,1368,1377,143,70,
+ 2129,2144,140,144,56,1010,327,89,1144,2433,
+ 102,3005,35,914,32,2068,3011,27,30,31,
+ 916,929,26,28,822,25,23,50,943,106,
+ 76,77,108,156,1000,1082,1043,1178,1129,1229,
+ 1795,1209,1307,2015,1272,69,1368,1377,143,1699,
+ 4753,1614,189,144,3121,35,914,32,1010,3011,
+ 27,30,31,916,929,26,28,822,25,23,
+ 50,943,106,76,77,108,241,1000,1082,1043,
+ 1178,1129,1229,87,1209,1307,3668,1272,51,1368,
+ 2300,164,3121,35,914,32,447,3011,27,30,
+ 31,916,929,26,28,822,25,23,50,943,
+ 106,76,77,108,2551,1000,1082,1043,1178,1129,
+ 1229,2347,1209,1307,354,1272,1010,1368,2300,164,
+ 1500,35,914,32,1330,322,41,30,31,916,
+ 929,326,3121,35,914,32,423,3011,27,30,
+ 31,916,929,26,28,822,25,23,50,943,
+ 106,76,77,108,1096,1000,1082,1043,1178,1129,
+ 1229,2149,1209,1307,3086,1272,2552,1368,2300,164,
+ 3121,35,914,32,292,3011,27,30,31,916,
+ 929,26,28,822,25,23,50,943,106,76,
+ 77,108,284,1000,1082,1043,1178,1129,1229,97,
+ 1209,1307,2453,1272,299,1368,2300,164,2407,35,
+ 914,32,2556,2906,40,30,31,916,929,1537,
+ 3176,35,914,32,422,3011,27,30,31,916,
+ 929,26,28,822,25,23,50,943,106,76,
+ 77,108,2371,1000,1082,1043,1178,1129,1229,2010,
+ 1209,1307,2552,1272,666,1368,2300,164,3121,35,
+ 914,32,425,3011,27,30,31,916,929,26,
+ 28,822,25,23,50,943,106,76,77,108,
+ 49,1000,1082,1043,1178,1129,1229,324,1209,1307,
+ 221,1844,2407,35,914,32,2589,142,1843,30,
+ 31,916,929,588,35,1421,388,2228,3121,35,
+ 914,32,3483,3011,27,30,31,916,929,26,
+ 28,822,25,23,50,943,106,76,77,108,
+ 1614,1000,1082,1043,1178,1129,1229,431,1209,1801,
+ 3121,35,914,32,1817,3011,27,30,31,916,
+ 929,26,28,822,25,23,50,943,106,76,
+ 77,108,52,1000,1082,1043,1178,1129,1229,71,
+ 1808,1518,35,914,32,3571,3520,27,30,31,
+ 916,929,339,28,3121,35,914,32,737,3011,
+ 27,30,31,916,929,26,28,822,25,23,
+ 50,943,106,76,77,108,3555,1000,1082,1043,
+ 1178,1765,2418,69,327,35,453,2417,4764,3980,
+ 2515,2851,1243,35,396,2174,1818,3347,69,332,
+ 319,2499,321,4768,314,2232,2407,35,914,32,
+ 239,2699,2186,30,31,916,929,313,2218,351,
+ 3207,757,35,1421,388,1643,2881,3121,35,914,
+ 32,4537,3011,27,30,31,916,929,26,28,
+ 822,25,23,50,943,106,76,77,108,2380,
+ 1000,1082,1043,1178,1793,273,1334,328,335,232,
+ 1250,2228,352,1225,306,310,681,1400,35,914,
+ 32,3379,3339,27,30,31,916,929,339,28,
+ 344,2059,1930,349,240,230,231,2272,2555,2212,
+ 35,1421,388,56,843,35,453,1144,3279,3980,
+ 3573,932,35,1421,388,1614,1888,35,914,32,
+ 3412,3339,27,30,31,916,929,339,28,2584,
+ 3565,2228,2590,49,325,232,319,2499,321,2305,
+ 314,2232,1413,2446,2553,49,72,350,351,1790,
+ 1614,2271,352,2675,1413,2506,3213,287,2693,2234,
+ 244,230,231,2989,446,3227,3268,2433,2471,2465,
+ 344,2059,1930,349,1714,319,2499,321,2614,314,
+ 2232,2517,90,1240,588,2708,1525,74,322,2628,
+ 2940,352,3363,1898,35,2960,32,3571,3520,27,
+ 30,31,916,929,339,28,2129,35,293,344,
+ 2059,1930,349,3121,35,914,32,2555,3011,27,
+ 30,31,916,929,26,28,822,25,23,50,
+ 943,106,76,77,108,1906,1000,1082,1043,1654,
+ 1543,35,1525,2777,56,232,3361,2174,1144,2587,
+ 360,332,319,2499,321,285,314,2232,588,35,
+ 1525,278,366,2121,3172,2510,2579,1988,2707,1143,
+ 247,230,231,3892,450,3227,3268,391,427,3121,
+ 35,914,32,4537,3011,27,30,31,916,929,
+ 26,28,822,25,23,50,943,106,76,77,
+ 108,2615,1000,1082,1043,1664,3121,35,914,32,
+ 2996,3011,27,30,31,916,929,26,28,822,
+ 25,23,50,943,106,76,77,108,2312,1000,
+ 1082,1043,1679,3121,35,914,32,2614,3011,27,
+ 30,31,916,929,26,28,822,25,23,50,
+ 943,106,76,77,108,2621,1000,1586,417,419,
+ 2954,1691,35,914,32,3571,3339,27,30,31,
+ 916,929,339,28,1243,35,2468,2124,3121,35,
+ 914,32,1800,3011,27,30,31,916,929,26,
+ 28,822,25,23,50,943,106,76,77,108,
+ 1614,1000,1082,1043,1707,259,1606,1876,49,537,
+ 2689,1375,2552,2716,523,2989,3579,1413,931,56,
+ 319,2499,321,1259,314,2232,2484,228,588,35,
+ 1421,388,3197,2517,156,1614,2620,313,2715,1351,
+ 1614,2654,2989,180,2987,869,932,35,1421,388,
+ 303,203,215,4720,202,212,213,214,216,1,
+ 343,169,452,537,1614,2174,56,3250,232,332,
+ 2607,168,67,183,167,170,171,172,173,174,
+ 49,228,928,796,307,310,681,1614,156,1413,
+ 47,2228,1010,250,230,231,66,180,2987,869,
+ 2727,2988,360,1263,3651,203,215,4720,202,212,
+ 213,214,216,2622,2729,169,2840,2510,2579,65,
+ 2492,588,35,1421,388,168,181,184,167,170,
+ 171,172,173,174,2070,35,914,32,3379,3339,
+ 27,30,31,916,929,339,28,2552,1983,3231,
+ 35,1421,388,3579,741,434,1330,2272,1363,35,
+ 914,32,237,3520,27,30,31,916,929,339,
+ 28,1976,35,1421,388,98,42,2364,322,588,
+ 35,1421,388,273,2899,179,588,35,1421,388,
+ 322,1330,1614,319,2499,321,3687,314,2232,1330,
+ 1330,2731,2174,56,56,49,333,2989,2989,352,
+ 526,232,2174,433,1413,1254,333,319,2499,321,
+ 432,315,2232,352,64,343,343,344,2059,1930,
+ 349,3984,442,352,456,527,235,230,231,869,
+ 869,346,2059,1930,349,297,56,274,860,860,
+ 2475,346,2059,1930,349,3970,525,296,1464,1482,
+ 588,35,1525,2953,2735,2448,242,245,248,251,
+ 1176,588,35,1525,281,3066,35,914,32,1449,
+ 3011,27,30,31,916,929,26,28,822,25,
+ 23,50,943,86,76,77,2447,2513,2623,2846,
+ 3164,4569,3121,35,914,32,2786,3011,27,30,
+ 31,916,929,26,28,822,25,23,50,943,
+ 106,76,77,108,1780,1000,1082,1714,3121,35,
+ 914,32,1614,3011,27,30,31,916,929,26,
+ 28,822,25,23,50,943,106,76,77,108,
+ 345,1000,1082,1722,537,2624,2646,56,2234,2989,
+ 2989,3209,2989,322,3684,2068,2249,737,2732,737,
+ 1144,2552,228,588,35,1421,388,2517,2517,156,
+ 2517,588,35,1421,388,1614,232,2747,180,2987,
+ 869,929,35,1421,388,156,203,215,4720,202,
+ 212,213,214,216,431,535,169,273,537,198,
+ 56,253,230,231,2707,273,168,55,3488,167,
+ 170,171,172,173,174,49,228,1607,2739,3207,
+ 304,3207,3579,156,1413,47,56,56,2755,2751,
+ 3505,2989,180,2987,869,2552,361,505,1323,360,
+ 203,215,4720,202,212,213,214,216,517,343,
+ 169,1614,537,3441,2510,2579,334,335,3736,335,
+ 168,275,178,167,170,171,172,173,174,340,
+ 228,2174,860,197,2790,332,322,156,503,504,
+ 1354,56,1499,54,1144,2989,180,2987,869,929,
+ 35,1421,388,2791,203,215,4720,202,212,213,
+ 214,216,603,343,169,1607,537,2988,56,160,
+ 3579,56,1144,1614,168,3852,176,167,170,171,
+ 172,173,174,49,228,1330,860,2440,2782,1607,
+ 541,156,1413,2866,3579,1785,1507,156,2789,2989,
+ 180,2987,869,382,87,322,3221,1851,203,215,
+ 4720,202,212,213,214,216,689,343,169,2174,
+ 537,2757,1375,3863,2761,869,2989,3579,168,1614,
+ 177,167,170,171,172,173,174,1758,228,1778,
+ 872,524,1390,2174,2517,156,1416,332,2763,56,
+ 2765,1614,3651,2989,180,2987,869,932,35,1421,
+ 388,101,203,215,4720,202,212,213,214,216,
+ 775,343,169,1354,537,2444,2174,1144,2769,2998,
+ 332,173,168,3855,187,167,170,171,172,173,
+ 174,49,228,2792,860,2129,3146,293,2788,156,
+ 1413,47,160,2793,2875,1614,1578,94,180,2987,
+ 869,1761,2998,360,2456,737,203,215,4720,202,
+ 212,213,214,216,44,2364,169,2840,2510,2579,
+ 929,35,1421,388,1614,3361,168,2852,3575,167,
+ 170,171,172,173,174,1952,35,914,32,3571,
+ 3339,27,30,31,916,929,339,28,737,588,
+ 35,1421,388,2433,49,56,451,2773,2798,3553,
+ 2350,1709,2717,1413,2262,56,537,3207,861,3635,
+ 56,1607,537,2799,3198,2110,3579,3221,1337,588,
+ 35,1421,388,49,4028,588,35,293,5444,2996,
+ 228,156,1413,734,319,2499,321,156,314,2232,
+ 180,2987,5444,5444,330,335,180,2987,869,5444,
+ 3207,313,5444,49,203,215,4720,202,212,213,
+ 214,216,1413,1402,169,2174,1354,947,195,332,
+ 1144,537,5444,5444,168,2433,192,167,170,171,
+ 172,173,174,588,35,293,5444,3737,335,228,
+ 1330,588,35,1421,388,160,156,5444,306,310,
+ 681,4550,5444,393,427,180,2987,869,1330,929,
+ 35,1421,388,203,215,4720,202,212,213,214,
+ 216,4354,1033,169,56,49,537,56,3548,3834,
+ 869,3862,3279,168,46,186,167,170,171,172,
+ 173,174,5444,49,228,56,376,5444,869,3854,
+ 2481,156,1413,47,1144,56,5444,5444,5444,1937,
+ 180,2987,869,3225,376,5444,2323,5444,203,215,
+ 4720,202,212,213,214,216,56,56,169,156,
+ 740,1492,5444,4822,196,392,427,3927,168,162,
+ 194,167,170,171,172,173,174,3121,35,914,
+ 32,5444,3011,27,30,31,916,929,26,28,
+ 822,25,23,50,943,106,76,77,108,5444,
+ 1000,1593,3121,35,914,32,5444,3011,27,30,
+ 31,916,929,26,28,822,25,23,50,943,
+ 106,76,77,108,5444,1611,3121,35,914,32,
+ 374,3011,27,30,31,916,929,26,28,822,
+ 25,23,50,943,106,76,77,108,3886,1629,
+ 3121,35,914,32,2552,3011,27,30,31,916,
+ 929,26,28,822,25,23,50,943,106,76,
+ 77,108,1562,1636,2646,56,2989,2446,2989,3979,
+ 56,56,1823,2034,3969,2989,2989,5444,3579,5444,
+ 5444,2647,302,56,228,2989,2517,2989,1354,5444,
+ 5444,56,1144,343,228,3871,56,56,4370,529,
+ 966,1535,1614,2517,5444,343,5444,2552,205,215,
+ 4720,204,212,213,214,216,860,160,205,215,
+ 4720,204,212,213,214,216,509,2174,860,56,
+ 5444,3863,5444,3326,378,5444,2552,2552,507,206,
+ 208,210,294,295,2609,201,217,207,209,206,
+ 208,210,294,295,2609,505,217,207,209,2062,
+ 35,2960,32,3571,3339,27,30,31,916,929,
+ 339,28,505,1354,199,298,3018,1144,4357,1910,
+ 56,5444,5444,2989,1842,3301,3030,5444,4357,737,
+ 929,35,1421,388,56,56,502,504,962,2989,
+ 5444,228,160,5444,1614,929,35,1421,388,588,
+ 35,1421,388,502,504,96,5444,343,319,2499,
+ 321,5444,314,2232,49,205,215,4720,204,212,
+ 213,214,216,1413,47,1143,3406,3205,56,49,
+ 860,2447,3535,49,5444,2974,5444,2868,1413,47,
+ 534,3207,1413,1182,3465,5444,206,208,210,294,
+ 295,2609,2961,217,207,209,3121,1439,914,1446,
+ 3419,3011,27,30,31,916,929,26,28,822,
+ 25,23,50,943,106,76,77,84,3887,335,
+ 1614,1614,5444,3203,5444,4357,3121,35,914,32,
+ 5444,3011,27,30,31,916,929,26,28,822,
+ 25,23,50,943,106,76,77,83,5444,5444,
+ 5444,1614,3460,3568,418,419,2954,3121,35,914,
+ 32,5444,3011,27,30,31,916,929,26,28,
+ 822,25,23,50,943,106,76,77,82,3121,
+ 35,914,32,3040,3011,27,30,31,916,929,
+ 26,28,822,25,23,50,943,106,76,77,
+ 81,3121,35,914,32,5444,3011,27,30,31,
+ 916,929,26,28,822,25,23,50,943,106,
+ 76,77,80,3121,35,914,32,5444,3011,27,
+ 30,31,916,929,26,28,822,25,23,50,
+ 943,106,76,77,79,3121,35,914,32,5444,
+ 3011,27,30,31,916,929,26,28,822,25,
+ 23,50,943,106,76,77,78,2950,35,914,
+ 32,5444,3011,27,30,31,916,929,26,28,
+ 822,25,23,50,943,106,76,77,104,3121,
+ 35,914,32,5444,3011,27,30,31,916,929,
+ 26,28,822,25,23,50,943,106,76,77,
+ 110,3121,35,914,32,5444,3011,27,30,31,
+ 916,929,26,28,822,25,23,50,943,106,
+ 76,77,109,3121,35,914,32,5444,3011,27,
+ 30,31,916,929,26,28,822,25,23,50,
+ 943,106,76,77,107,3121,35,914,32,5444,
+ 3011,27,30,31,916,929,26,28,822,25,
+ 23,50,943,106,76,77,105,1997,2717,56,
+ 1614,2989,1144,1144,2552,5444,5444,1649,1614,5444,
+ 5444,2989,56,5444,2552,5444,1144,1736,5444,228,
+ 5444,2989,5444,2552,5444,5444,5444,156,156,228,
+ 1614,5444,3375,5444,5444,5444,200,3926,2880,228,
+ 4363,156,3710,205,215,4720,204,212,213,214,
+ 216,2904,222,205,215,4720,204,212,213,214,
+ 216,193,3682,205,215,4720,204,212,213,214,
+ 216,5444,5444,5444,206,208,210,294,295,2609,
+ 5444,520,207,209,206,208,210,294,295,2609,
+ 5444,519,207,209,206,208,210,294,295,2609,
+ 2084,218,207,209,2989,5444,5444,5444,5444,2775,
+ 2171,5444,5444,2989,2989,5444,56,5444,5444,5444,
+ 1144,5444,228,5444,5444,5444,5444,5444,5444,5444,
+ 5444,343,228,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,156,205,215,4720,204,
+ 212,213,214,216,4031,2927,205,215,4720,204,
+ 212,213,214,216,1691,35,914,32,3571,3339,
+ 27,30,31,916,929,339,28,206,208,210,
+ 294,295,2609,5444,305,207,209,206,208,210,
+ 294,295,2609,5444,499,207,209,2156,35,914,
+ 32,5444,3520,27,30,31,916,929,339,28,
+ 2156,35,914,32,5444,3520,27,30,31,916,
+ 929,339,28,319,2499,321,5444,314,2232,3280,
+ 35,1421,388,56,741,5444,5444,1144,5444,5444,
+ 3363,5444,238,5444,5444,5444,5444,5444,5444,5444,
+ 5444,2174,5444,5444,5444,333,319,2499,321,5444,
+ 317,2232,156,273,2174,5444,5444,5444,333,319,
+ 2499,321,3032,315,2232,1691,35,914,32,3571,
+ 3339,27,30,31,916,929,339,28,5444,5444,
+ 5444,232,56,5444,56,5444,537,1180,1144,5444,
+ 1354,2989,4892,56,1144,5444,4340,1144,5444,5444,
+ 5444,5444,5444,5444,343,5444,236,230,231,228,
+ 5444,156,5444,156,5444,5444,5444,274,5444,160,
+ 5444,188,156,2136,319,2499,321,4615,314,2232,
+ 5444,5444,4348,778,407,4700,243,246,249,252,
+ 1176,3558,5444,5444,5444,5444,5444,5444,5444,1449,
+ 1490,35,914,32,2633,3339,27,30,31,916,
+ 929,339,28,5444,408,409,410,294,295,2609,
+ 2236,35,914,32,2391,3339,27,30,31,916,
+ 929,339,28,5444,5444,3994,1285,3524,403,2591,
+ 2989,4892,2151,35,1421,388,5444,5444,5444,5444,
+ 5444,5444,5444,929,35,1421,388,5444,228,316,
+ 2876,321,5444,5444,929,35,1421,388,2164,35,
+ 1421,388,5444,5444,5444,5444,49,5444,5444,316,
+ 2876,321,778,407,4700,1413,47,49,5444,588,
+ 35,1421,388,5444,5444,5444,1413,47,49,3585,
+ 411,413,49,5444,5444,5444,5444,1413,47,5444,
+ 3019,1413,47,408,409,410,294,295,2609,5444,
+ 5444,3026,2722,49,1099,3643,537,4736,5444,5444,
+ 56,56,1413,659,537,537,5444,5444,2591,5444,
+ 5444,5444,56,5444,343,5444,537,5444,5444,5444,
+ 5444,156,343,343,5444,5444,5444,5444,3432,156,
+ 156,188,5444,5444,343,5444,5444,4615,5444,1500,
+ 1715,156,5444,5444,5444,860,860,5444,3432,2208,
+ 5444,1500,5444,2989,5444,952,1672,860,588,35,
+ 1421,388,588,35,1421,388,5444,2061,56,411,
+ 414,343,537,5444,5444,5444,5444,5444,5444,5444,
+ 5444,530,5444,5444,5444,5444,5444,56,5444,5444,
+ 343,537,49,5444,860,190,49,156,5444,5444,
+ 5444,1413,1254,5444,533,1413,2703,188,5444,343,
+ 5444,5444,5444,4615,5444,5444,156,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,188,5444,5444,5444,
+ 5444,5444,4615,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,4080,4344,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444,
+ 4081,5444,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,5444,3857,5444,0,
+ 39,5459,0,39,5458,0,662,29,0,440,
+ 1407,0,454,1451,0,38,627,0,38,5459,
+ 0,38,5458,0,2746,126,0,1,444,0,
+ 458,1750,0,457,1836,0,2543,91,0,662,
+ 387,0,35,33,0,32,34,0,39,627,
+ 0,1,996,0,1,5716,0,1,5715,0,
+ 1,5714,0,1,5713,0,1,5712,0,1,
+ 5711,0,1,5710,0,1,5709,0,1,5708,
+ 0,1,5707,0,1,5706,0,39,1,5459,
+ 0,39,1,5458,0,2140,1,0,283,394,
+ 0,283,286,0,5678,241,0,5677,241,0,
+ 5782,241,0,5781,241,0,5705,241,0,5704,
+ 241,0,5703,241,0,5702,241,0,5701,241,
+ 0,5700,241,0,5699,241,0,5698,241,0,
+ 5716,241,0,5715,241,0,5714,241,0,5713,
+ 241,0,5712,241,0,5711,241,0,5710,241,
+ 0,5709,241,0,5708,241,0,5707,241,0,
+ 5706,241,0,39,5459,241,0,39,5458,241,
+ 0,5482,241,0,5459,48,0,5458,48,0,
+ 5450,1,0,5449,1,0,3330,237,0,32,
+ 388,0,29,387,0,43,5480,0,43,37,
+ 0,2746,128,0,2746,127,0,331,445,0,
+ 5482,1,0,39,1,0,47,37,0,1,
+ 92,0,501,2598,0,5482,1,229,0,39,
+ 1,229,0,229,416,0,5459,37,0,5458,
+ 37,0,5459,2,37,0,5458,2,37,0,
+ 5459,36,0,5458,36,0,5480,45,0,37,
+ 45,0,5454,405,0,5453,405,0,1,4504,
+ 0,1,2878,0,1,627,0,229,415,0,
+ 3570,318,0,331,95,0,35,73,0,1,
+ 331,0,3626,278,0,501,4347,0,1,229,
+ 0,229,220,0,229,219,0,1,575,0,
+ 1,1885,0,5456,1,0,5452,1,0,1,
+ 229,3388,0,5453,229,0,3394,229,0,5456,
+ 383,0,5455,383,0,3471,229,0,10,12,
+ 0,8,10,12,0,185,3627,0,3578,383,
+ 0,8,12,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -1113,351 +1113,348 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
20,21,22,23,24,25,26,27,28,29,
30,31,32,33,34,35,36,37,38,39,
40,41,42,43,44,45,46,47,0,49,
- 50,51,52,53,54,55,0,57,58,59,
- 60,61,62,63,0,65,66,67,68,0,
- 6,0,72,25,26,75,76,77,78,79,
- 80,81,82,83,84,85,86,0,1,2,
- 3,4,5,6,7,8,9,10,11,12,
- 13,14,15,16,17,18,19,20,21,22,
- 23,24,25,26,27,28,29,30,31,32,
- 33,34,35,36,37,38,39,40,41,42,
- 43,44,45,46,47,0,49,50,51,52,
- 53,54,55,0,57,58,59,60,61,62,
- 63,0,65,66,67,68,100,93,94,72,
- 25,26,75,76,77,78,79,80,81,82,
- 83,84,85,86,0,1,2,3,4,5,
+ 50,51,52,53,54,0,56,57,58,59,
+ 60,61,62,0,64,65,66,67,0,6,
+ 0,71,4,3,74,75,76,77,78,79,
+ 80,81,82,83,84,85,0,1,2,3,
+ 4,5,6,7,8,9,10,11,12,13,
+ 14,15,16,17,18,19,20,21,22,23,
+ 24,25,26,27,28,29,30,31,32,33,
+ 34,35,36,37,38,39,40,41,42,43,
+ 44,45,46,47,0,49,50,51,52,53,
+ 54,0,56,57,58,59,60,61,62,101,
+ 64,65,66,67,106,92,93,71,0,0,
+ 74,75,76,77,78,79,80,81,82,83,
+ 84,85,0,1,2,3,4,5,6,7,
+ 8,9,10,11,12,13,14,15,16,17,
+ 18,19,20,21,22,23,24,25,26,27,
+ 28,29,30,31,32,33,34,35,36,37,
+ 38,39,40,41,42,43,44,45,46,47,
+ 0,49,50,51,52,53,54,68,56,57,
+ 58,59,60,61,62,0,64,65,66,67,
+ 0,1,2,71,4,10,74,75,76,77,
+ 78,79,80,81,82,83,84,85,0,1,
+ 2,3,4,5,6,7,8,9,10,11,
+ 12,13,14,15,16,17,18,19,20,21,
+ 22,23,24,25,26,27,28,29,30,31,
+ 32,33,34,35,36,37,38,39,40,41,
+ 42,43,44,45,46,47,0,49,50,51,
+ 52,53,54,0,56,57,58,59,60,61,
+ 62,0,64,65,66,67,0,1,2,8,
+ 4,0,74,75,76,77,78,79,80,81,
+ 82,83,84,85,0,1,2,3,4,5,
6,7,8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,25,
26,27,28,29,30,31,32,33,34,35,
36,37,38,39,40,41,42,43,44,45,
- 46,47,71,49,50,51,52,53,54,55,
- 0,57,58,59,60,61,62,63,0,65,
- 66,67,68,0,1,2,72,4,0,75,
+ 46,47,71,49,50,51,52,53,54,0,
+ 56,57,58,59,60,61,62,0,64,65,
+ 66,67,0,6,0,102,103,104,74,75,
76,77,78,79,80,81,82,83,84,85,
- 86,0,1,2,3,4,5,6,7,8,
- 9,10,11,12,13,14,15,16,17,18,
- 19,20,21,22,23,24,25,26,27,28,
- 29,30,31,32,33,34,35,36,37,38,
- 39,40,41,42,43,44,45,46,47,71,
- 49,50,51,52,53,54,55,0,57,58,
- 59,60,61,62,63,0,65,66,67,68,
- 0,1,2,0,4,0,75,76,77,78,
- 79,80,81,82,83,84,85,86,0,1,
- 2,3,4,5,6,7,8,9,10,11,
- 12,13,14,15,16,17,18,19,20,21,
- 22,23,24,25,26,27,28,29,30,31,
- 32,33,34,35,36,37,38,39,40,41,
- 42,43,44,45,46,47,71,49,50,51,
- 52,53,54,55,69,57,58,59,60,61,
- 62,63,0,65,66,67,68,0,6,0,
- 103,104,105,75,76,77,78,79,80,81,
- 82,83,84,85,86,0,1,2,3,4,
- 5,6,7,8,9,10,11,12,13,14,
- 15,16,17,18,19,20,21,22,23,24,
- 25,26,27,28,29,30,31,32,33,34,
- 35,36,37,38,39,40,41,42,43,44,
- 45,46,47,64,49,50,51,52,53,54,
- 55,0,57,58,59,60,61,62,63,0,
- 65,66,67,68,0,93,94,90,4,92,
- 75,76,77,78,79,80,81,82,83,84,
- 85,86,0,1,2,3,4,5,6,7,
- 8,9,10,11,12,13,14,15,16,17,
- 18,19,20,21,22,23,24,25,26,27,
- 28,29,30,31,32,33,34,35,36,37,
- 38,39,40,41,42,43,44,45,46,47,
- 71,49,50,51,52,53,54,55,0,57,
- 58,59,60,61,62,63,0,65,66,67,
- 68,100,6,0,0,1,2,75,76,77,
- 78,79,80,81,82,83,84,85,86,0,
- 1,2,3,4,5,6,7,8,9,10,
- 11,12,13,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,30,
- 31,32,33,34,35,36,37,38,39,40,
- 41,42,43,44,45,46,47,0,49,50,
- 51,52,53,54,55,0,57,58,59,60,
- 61,62,63,0,65,66,67,68,5,93,
- 94,88,89,0,75,76,77,78,79,80,
- 81,82,83,84,85,86,0,1,2,3,
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,
+ 30,31,32,33,34,35,36,37,38,39,
+ 40,41,42,43,44,45,46,47,0,49,
+ 50,51,52,53,54,0,56,57,58,59,
+ 60,61,62,0,64,65,66,67,99,92,
+ 93,89,9,91,74,75,76,77,78,79,
+ 80,81,82,83,84,85,0,1,2,3,
4,5,6,7,8,9,10,11,12,13,
14,15,16,17,18,19,20,21,22,23,
24,25,26,27,28,29,30,31,32,33,
34,35,36,37,38,39,40,41,42,43,
44,45,46,47,0,49,50,51,52,53,
- 54,55,69,57,58,59,60,61,62,63,
- 0,65,66,67,68,0,1,2,0,9,
- 5,75,76,77,78,79,80,81,82,83,
- 84,85,86,0,1,2,3,4,5,6,
- 7,8,9,10,11,12,13,14,15,16,
- 17,18,19,20,21,22,23,24,25,26,
- 27,28,29,30,31,32,33,34,35,36,
- 37,38,39,40,41,42,43,44,45,46,
- 47,0,49,50,51,52,53,54,55,71,
- 57,58,59,60,61,62,63,0,65,66,
- 67,68,0,1,2,0,4,0,75,76,
- 77,78,79,80,81,82,83,84,85,86,
- 0,1,2,3,4,5,6,7,8,9,
- 10,11,12,13,14,15,16,17,18,19,
- 20,21,22,23,24,25,26,27,28,29,
- 30,31,32,33,34,35,36,37,38,39,
- 40,41,42,43,44,45,46,47,71,49,
- 50,51,52,53,54,55,69,57,58,59,
- 60,61,62,63,0,65,66,67,68,0,
- 1,2,0,1,2,75,76,77,78,79,
- 80,81,82,83,84,85,86,0,1,2,
- 3,4,5,6,7,8,9,10,11,12,
- 13,14,15,16,17,18,19,20,21,22,
- 23,24,25,26,27,28,29,30,31,32,
- 33,34,35,36,37,38,39,40,41,42,
- 43,44,45,46,47,71,49,50,51,52,
- 53,54,55,0,57,58,59,60,61,62,
- 63,0,65,66,67,68,0,0,0,8,
- 3,3,75,76,77,78,79,80,81,82,
- 83,84,85,86,0,1,2,3,4,5,
+ 54,0,56,57,58,59,60,61,62,0,
+ 64,65,66,67,99,6,0,0,1,2,
+ 74,75,76,77,78,79,80,81,82,83,
+ 84,85,0,1,2,3,4,5,6,7,
+ 8,9,10,11,12,13,14,15,16,17,
+ 18,19,20,21,22,23,24,25,26,27,
+ 28,29,30,31,32,33,34,35,36,37,
+ 38,39,40,41,42,43,44,45,46,47,
+ 0,49,50,51,52,53,54,0,56,57,
+ 58,59,60,61,62,0,64,65,66,67,
+ 5,92,93,87,88,0,74,75,76,77,
+ 78,79,80,81,82,83,84,85,0,1,
+ 2,3,4,5,6,7,8,9,10,11,
+ 12,13,14,15,16,17,18,19,20,21,
+ 22,23,24,25,26,27,28,29,30,31,
+ 32,33,34,35,36,37,38,39,40,41,
+ 42,43,44,45,46,47,0,49,50,51,
+ 52,53,54,68,56,57,58,59,60,61,
+ 62,0,64,65,66,67,0,1,2,23,
+ 24,5,74,75,76,77,78,79,80,81,
+ 82,83,84,85,0,1,2,3,4,5,
6,7,8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,25,
26,27,28,29,30,31,32,33,34,35,
36,37,38,39,40,41,42,43,44,45,
- 46,47,64,49,50,51,52,53,54,55,
- 0,57,58,59,60,61,62,63,0,65,
- 66,67,68,0,6,0,90,9,92,75,
+ 46,47,0,49,50,51,52,53,54,0,
+ 56,57,58,59,60,61,62,0,64,65,
+ 66,67,0,1,2,8,4,0,74,75,
76,77,78,79,80,81,82,83,84,85,
- 86,0,1,2,3,4,5,6,7,118,
- 9,10,11,12,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,38,
- 39,40,41,42,43,44,45,46,47,0,
- 49,50,51,52,53,54,55,0,57,58,
- 59,4,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,0,119,
- 27,28,29,30,31,32,33,34,35,36,
- 0,1,2,40,4,5,121,7,0,0,
- 0,48,0,1,2,3,4,5,69,7,
- 57,58,59,60,0,62,63,99,0,1,
- 2,22,23,24,0,72,73,28,29,30,
- 31,32,33,34,35,36,22,23,24,0,
- 87,0,28,29,30,31,32,33,34,35,
- 36,0,1,2,56,0,103,104,105,0,
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,
+ 30,31,32,33,34,35,36,37,38,39,
+ 40,41,42,43,44,45,46,47,71,49,
+ 50,51,52,53,54,68,56,57,58,59,
+ 60,61,62,0,64,65,66,67,0,1,
+ 2,0,1,2,74,75,76,77,78,79,
+ 80,81,82,83,84,85,0,1,2,3,
+ 4,5,6,7,8,9,10,11,12,13,
+ 14,15,16,17,18,19,20,21,22,23,
+ 24,25,26,27,28,29,30,31,32,33,
+ 34,35,36,37,38,39,40,41,42,43,
+ 44,45,46,47,0,49,50,51,52,53,
+ 54,0,56,57,58,59,60,61,62,0,
+ 64,65,66,67,0,0,0,8,3,3,
+ 74,75,76,77,78,79,80,81,82,83,
+ 84,85,0,1,2,3,4,5,6,7,
+ 8,9,10,11,12,13,14,15,16,17,
+ 18,19,20,21,22,23,24,25,26,27,
+ 28,29,30,31,32,33,34,35,36,37,
+ 38,39,40,41,42,43,44,45,46,47,
+ 0,49,50,51,52,53,54,0,56,57,
+ 58,59,60,61,62,0,64,65,66,67,
+ 0,6,0,89,9,91,74,75,76,77,
+ 78,79,80,81,82,83,84,85,0,1,
+ 2,3,4,5,6,7,117,9,10,11,
+ 12,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,38,39,40,41,
+ 42,43,44,45,46,47,0,49,50,51,
+ 52,53,54,0,56,57,58,4,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,66,67,27,28,29,30,
+ 21,22,23,24,0,118,27,28,29,30,
31,32,33,34,35,36,0,1,2,40,
- 4,5,0,7,0,3,0,48,6,0,
- 8,9,8,0,8,0,57,58,59,60,
- 0,62,63,8,0,1,2,25,26,27,
- 0,72,73,27,25,26,97,98,0,37,
- 38,3,22,23,24,90,87,92,28,29,
- 30,31,32,33,34,35,36,0,56,0,
- 1,2,103,104,105,8,64,0,1,2,
- 40,69,70,71,72,73,74,71,74,0,
- 1,2,3,4,5,6,7,0,9,74,
+ 4,5,0,7,0,0,0,48,0,1,
+ 2,0,4,0,68,56,57,58,59,0,
+ 61,62,0,1,2,100,22,23,24,0,
+ 71,72,28,29,30,31,32,33,34,35,
+ 36,22,23,24,48,86,0,28,29,30,
+ 31,32,33,34,35,36,48,0,0,1,
+ 2,102,103,104,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,87,
+ 88,27,28,29,30,31,32,33,34,35,
+ 36,55,0,98,40,3,48,0,6,0,
+ 8,9,48,0,1,2,0,8,5,90,
+ 56,57,58,59,8,61,62,25,26,27,
+ 0,1,2,0,0,71,72,0,0,37,
+ 38,8,0,1,2,3,4,5,6,7,
+ 86,9,0,0,0,1,2,55,4,0,
+ 6,48,8,9,0,63,102,103,104,0,
+ 68,69,70,71,72,73,67,120,48,0,
+ 1,2,3,4,5,6,7,71,9,87,
88,89,90,91,92,93,94,95,96,97,
- 98,99,100,101,102,0,1,2,106,107,
+ 98,99,100,101,0,63,73,105,106,107,
108,109,110,111,112,113,114,115,116,117,
- 118,0,120,121,3,66,67,6,71,8,
- 9,74,0,0,1,2,3,4,5,6,
- 7,8,9,64,0,0,25,26,27,70,
- 0,1,2,48,9,22,23,24,37,38,
- 27,28,29,30,31,32,33,34,35,36,
- 0,0,1,2,3,4,5,56,7,8,
- 0,0,1,2,0,64,5,0,7,56,
- 69,70,71,72,73,74,64,64,27,0,
- 1,2,3,4,5,6,7,74,9,88,
- 89,90,91,92,93,94,95,96,97,98,
- 99,100,101,102,0,0,56,106,107,108,
- 109,110,111,112,113,114,115,116,117,118,
- 56,120,121,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,88,89,
- 27,28,29,30,31,32,33,34,35,36,
- 0,1,2,40,4,5,0,7,0,3,
- 0,48,0,1,2,3,4,5,0,7,
- 57,58,59,60,0,62,63,3,65,0,
- 22,23,24,88,89,72,28,29,30,31,
- 32,33,34,35,36,0,1,2,48,0,
- 87,0,1,2,3,4,5,6,7,8,
+ 0,119,120,3,0,72,6,73,8,9,
+ 96,97,0,1,2,3,4,5,6,7,
+ 8,9,63,74,90,25,26,27,69,25,
+ 26,87,88,0,22,23,24,37,38,27,
+ 28,29,30,31,32,33,34,35,36,0,
+ 1,2,3,4,5,55,7,8,0,0,
+ 1,2,0,63,5,3,7,55,68,69,
+ 70,71,72,73,0,63,27,0,1,2,
+ 3,4,5,6,7,73,9,87,88,89,
+ 90,91,92,93,94,95,96,97,98,99,
+ 100,101,0,1,2,105,106,107,108,109,
+ 110,111,112,113,114,115,116,117,0,119,
+ 120,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,64,48,27,28,
- 29,30,31,32,33,34,35,36,70,0,
- 0,40,0,0,1,2,3,4,5,48,
- 7,0,0,0,0,56,3,56,57,58,
- 59,60,8,62,63,0,65,0,1,2,
- 102,4,5,0,7,107,108,109,110,111,
- 112,113,114,115,116,117,0,48,87,0,
- 1,2,3,4,5,6,7,8,9,10,
- 11,12,13,14,15,16,17,18,19,20,
- 21,22,23,24,0,48,27,28,29,30,
- 31,32,33,34,35,36,0,0,74,40,
- 3,0,1,2,3,4,5,48,7,97,
- 98,90,69,92,71,91,57,58,59,60,
- 64,62,63,101,65,0,1,2,3,4,
- 5,72,7,8,99,0,1,2,3,4,
- 5,6,7,0,9,0,87,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,88,89,27,28,29,30,31,32,
- 33,34,35,36,0,1,2,40,4,64,
- 6,0,0,9,0,48,0,1,2,74,
- 8,5,0,7,57,58,59,60,73,62,
- 63,0,65,0,1,2,73,4,0,72,
- 0,1,2,3,4,5,6,7,0,9,
- 0,0,1,2,87,0,1,2,3,4,
+ 19,20,21,22,23,24,0,0,27,28,
+ 29,30,31,32,33,34,35,36,0,1,
+ 2,40,4,0,6,0,0,9,0,48,
+ 4,8,6,0,100,9,0,56,57,58,
+ 59,8,61,62,0,64,0,22,23,24,
+ 27,0,71,28,29,30,31,32,33,34,
+ 35,36,0,1,2,87,88,86,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,70,0,27,28,29,30,31,
+ 32,33,34,35,36,69,73,63,40,63,
+ 0,1,2,3,4,5,48,7,0,0,
+ 0,3,0,55,56,57,58,59,0,61,
+ 62,9,64,0,0,1,2,101,4,5,
+ 0,7,106,107,108,109,110,111,112,113,
+ 114,115,116,0,86,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,
- 68,48,27,28,29,30,31,32,33,34,
- 35,36,0,1,2,40,4,0,6,48,
- 69,9,0,48,64,8,4,0,6,0,
- 3,9,57,58,59,60,102,62,63,69,
- 65,107,0,1,2,0,4,72,6,91,
- 8,9,0,8,0,1,2,3,4,5,
- 8,7,87,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,71,72,
- 27,28,29,30,31,32,33,34,35,36,
- 0,1,2,40,0,0,1,2,3,4,
- 5,48,7,8,10,0,74,88,89,74,
- 57,58,59,60,72,62,63,73,65,0,
- 1,2,27,91,0,1,2,3,4,0,
- 6,0,3,9,3,0,1,2,48,0,
- 87,0,1,2,3,4,5,6,7,8,
- 9,10,11,12,13,14,15,16,17,18,
- 19,20,21,22,23,24,0,48,27,28,
- 29,30,31,32,33,34,35,36,0,1,
- 2,40,4,48,6,0,0,9,64,48,
- 0,0,0,8,0,64,4,6,57,58,
- 59,60,0,62,63,3,65,0,1,2,
- 8,4,27,6,22,0,9,23,24,0,
- 0,0,3,0,0,1,2,8,87,0,
+ 0,63,27,28,29,30,31,32,33,34,
+ 35,36,0,1,2,40,4,0,6,0,
+ 60,9,69,48,0,8,0,3,89,0,
+ 91,56,57,58,59,6,61,62,98,64,
+ 40,22,23,24,96,97,71,28,29,30,
+ 31,32,33,34,35,36,0,0,1,2,
+ 4,86,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,70,71,27,
+ 28,29,30,31,32,33,34,35,36,0,
+ 1,2,40,4,5,48,7,0,1,2,
+ 48,4,0,6,0,89,9,91,56,57,
+ 58,59,0,61,62,3,64,0,1,2,
+ 3,4,5,71,7,8,0,0,1,2,
+ 3,4,5,6,7,0,9,48,86,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,64,69,27,28,29,30,
- 31,32,33,34,35,36,64,101,48,40,
- 0,69,48,71,0,0,74,48,4,56,
- 0,0,61,64,69,4,57,58,59,60,
- 10,62,63,74,65,103,104,105,0,1,
- 2,0,0,22,0,4,8,3,0,1,
- 2,3,4,5,6,7,87,9,10,11,
+ 21,22,23,24,0,63,27,28,29,30,
+ 31,32,33,34,35,36,0,1,2,40,
+ 63,0,1,2,3,4,5,48,7,8,
+ 73,87,88,0,0,56,57,58,59,72,
+ 61,62,0,64,69,0,1,2,27,0,
+ 71,0,0,1,2,3,4,0,6,25,
+ 26,9,0,0,48,86,0,1,2,3,
+ 4,5,6,7,8,9,10,11,12,13,
+ 14,15,16,17,18,19,20,21,22,23,
+ 24,0,0,27,28,29,30,31,32,33,
+ 34,35,36,0,1,2,40,4,0,6,
+ 65,66,9,0,48,63,25,26,0,0,
+ 63,70,56,57,58,59,8,61,62,10,
+ 64,0,1,2,3,4,5,0,7,0,
+ 1,2,3,4,5,27,7,55,0,1,
+ 2,118,86,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,59,0,
+ 27,28,29,30,31,32,33,34,35,36,
+ 0,0,0,40,0,4,48,3,0,1,
+ 2,48,63,72,0,68,8,70,0,56,
+ 57,58,59,22,61,62,0,64,0,3,
+ 0,1,2,0,8,0,1,2,3,4,
+ 5,8,7,0,1,2,0,0,48,86,
+ 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,67,48,27,28,29,
+ 30,31,32,33,34,35,36,0,70,63,
+ 40,0,1,2,68,8,70,0,48,73,
+ 67,4,55,102,103,104,56,57,58,59,
+ 121,61,62,0,64,0,1,2,3,4,
+ 5,8,7,0,0,0,3,3,0,1,
+ 2,3,4,5,6,7,86,9,10,11,
12,13,14,15,16,17,18,19,20,21,
- 56,56,0,25,26,3,0,1,2,0,
- 60,37,38,0,0,37,38,39,73,41,
+ 0,0,55,25,26,0,65,66,3,0,
+ 73,37,38,0,0,37,38,39,4,41,
42,43,44,45,46,47,0,49,50,51,
- 52,53,54,55,0,0,68,0,64,61,
- 62,69,8,71,66,67,0,1,2,3,
- 4,5,6,7,48,9,10,11,12,13,
- 14,15,16,17,18,19,20,21,0,56,
- 56,25,26,0,0,0,0,3,3,3,
- 106,8,69,37,38,39,0,41,42,43,
- 44,45,46,47,120,49,50,51,52,53,
- 54,55,68,0,0,1,2,61,95,96,
- 6,8,66,67,0,69,0,1,2,3,
- 4,5,6,7,8,9,10,11,12,13,
- 14,15,16,17,18,19,20,21,0,1,
- 2,25,26,5,70,72,0,0,122,0,
- 1,2,48,37,38,39,0,41,42,43,
- 44,45,46,47,0,49,50,51,52,53,
- 54,55,0,0,0,72,0,61,0,3,
- 8,0,8,10,68,4,48,73,72,0,
- 1,2,3,4,5,6,7,48,9,10,
- 11,12,13,14,15,16,17,18,19,20,
- 21,0,56,40,25,26,70,70,0,0,
- 56,48,4,0,0,69,37,38,39,0,
- 41,42,43,44,45,46,47,56,49,50,
- 51,52,53,54,55,0,74,0,74,0,
- 61,95,96,4,76,66,67,0,1,2,
- 3,4,5,6,7,0,9,10,11,12,
- 13,14,15,16,17,18,19,20,21,56,
- 56,0,25,26,0,56,75,0,4,0,
- 0,0,0,69,37,38,39,8,41,42,
- 43,44,45,46,47,56,49,50,51,52,
- 53,54,55,0,0,70,27,0,61,95,
- 96,56,0,66,67,0,1,2,3,4,
- 5,6,7,8,9,10,11,12,13,14,
- 15,16,17,18,19,20,21,56,0,0,
- 25,26,0,4,64,0,0,0,3,3,
- 73,0,37,38,39,8,41,42,43,44,
- 45,46,47,56,49,50,51,52,53,54,
- 55,0,0,91,27,0,61,73,0,0,
- 0,10,70,68,0,1,2,3,4,5,
+ 52,53,54,0,0,0,73,63,60,61,
+ 39,0,69,65,66,0,1,2,3,4,
+ 5,6,7,90,9,10,11,12,13,14,
+ 15,16,17,18,19,20,21,0,55,55,
+ 25,26,72,0,1,2,0,4,5,105,
+ 7,68,37,38,39,0,41,42,43,44,
+ 45,46,47,119,49,50,51,52,53,54,
+ 0,1,2,68,70,60,6,94,95,0,
+ 65,66,3,68,0,1,2,3,4,5,
6,7,8,9,10,11,12,13,14,15,
- 16,17,18,19,20,21,64,56,70,25,
- 26,40,0,0,0,3,0,39,39,48,
- 0,37,38,39,8,41,42,43,44,45,
- 46,47,0,49,50,51,52,53,54,55,
- 0,0,70,27,3,61,0,0,73,3,
- 70,0,68,0,1,2,3,4,5,6,
- 7,8,9,10,11,12,13,14,15,16,
- 17,18,19,20,21,0,56,0,25,26,
- 3,0,0,0,3,3,73,73,56,0,
- 37,38,39,0,41,42,43,44,45,46,
- 47,0,49,50,51,52,53,54,55,0,
+ 16,17,18,19,20,21,0,1,2,25,
+ 26,5,0,7,68,3,0,0,48,3,
+ 3,37,38,39,8,41,42,43,44,45,
+ 46,47,0,49,50,51,52,53,54,0,
+ 1,2,63,0,60,0,0,0,0,1,
+ 2,67,0,8,8,71,0,1,2,3,
+ 4,5,6,7,0,9,10,11,12,13,
+ 14,15,16,17,18,19,20,21,0,63,
+ 0,25,26,0,1,2,39,48,8,73,
+ 0,0,0,37,38,39,48,41,42,43,
+ 44,45,46,47,72,49,50,51,52,53,
+ 54,68,48,70,0,70,60,3,73,73,
+ 68,65,66,0,1,2,3,4,5,6,
+ 7,48,9,10,11,12,13,14,15,16,
+ 17,18,19,20,21,55,55,55,25,26,
+ 0,0,0,73,4,0,4,0,68,8,
+ 37,38,39,72,41,42,43,44,45,46,
+ 47,0,49,50,51,52,53,54,27,0,
+ 0,0,3,60,94,95,0,0,65,66,
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,55,0,0,25,26,4,63,0,
+ 0,0,3,0,3,68,0,37,38,39,
+ 4,41,42,43,44,45,46,47,0,49,
+ 50,51,52,53,54,0,0,0,22,63,
+ 60,94,95,0,0,10,10,67,0,1,
+ 2,3,4,5,6,7,8,9,10,11,
+ 12,13,14,15,16,17,18,19,20,21,
+ 0,0,0,25,26,40,40,0,68,0,
+ 0,4,0,48,48,37,38,39,0,41,
+ 42,43,44,45,46,47,0,49,50,51,
+ 52,53,54,90,0,0,0,3,60,5,
+ 6,0,69,9,8,67,0,0,0,8,
+ 0,0,118,3,0,55,55,55,0,25,
+ 26,3,55,27,55,55,0,55,27,0,
+ 0,37,38,55,0,41,0,3,0,3,
+ 0,55,0,3,0,3,0,3,0,55,
+ 55,3,0,0,0,3,0,63,0,65,
+ 66,0,68,69,70,0,55,0,0,0,
+ 0,0,0,0,0,0,70,0,0,72,
+ 72,87,88,89,70,39,92,93,94,95,
+ 96,97,98,99,100,101,70,0,69,105,
+ 70,107,108,109,110,111,112,113,114,115,
+ 116,0,1,2,3,4,5,6,7,8,
+ 9,10,11,12,13,14,15,16,17,18,
+ 19,20,21,72,69,0,25,26,69,69,
+ 72,69,75,72,90,0,69,69,37,38,
+ 39,0,41,42,43,44,45,46,47,0,
+ 49,50,51,52,53,54,0,1,2,3,
+ 4,5,6,7,0,9,10,11,12,13,
+ 14,15,16,17,18,19,20,21,0,0,
+ 55,25,26,0,0,0,0,0,0,0,
+ 0,0,0,37,38,39,0,41,42,43,
+ 44,45,46,47,0,49,50,51,52,53,
+ 54,0,0,0,0,0,60,0,117,0,
1,2,3,4,5,6,7,0,9,10,
11,12,13,14,15,16,17,18,19,20,
- 21,91,0,0,25,26,3,0,0,0,
- 3,3,0,0,0,70,37,38,39,0,
+ 21,0,0,0,25,26,0,0,0,0,
+ 0,0,0,0,0,0,37,38,39,0,
41,42,43,44,45,46,47,0,49,50,
- 51,52,53,54,55,0,119,0,0,0,
- 61,118,3,0,5,6,0,0,9,11,
- 12,13,14,15,16,17,18,19,20,21,
- 22,23,24,0,25,26,28,29,30,31,
- 32,33,34,35,36,73,37,38,119,70,
- 41,0,70,0,0,39,0,0,0,0,
- 0,0,0,0,0,56,0,0,0,0,
- 0,0,0,64,0,66,67,0,69,70,
- 71,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,88,89,90,
- 0,0,93,94,95,96,97,98,99,100,
- 101,102,0,0,0,106,0,108,109,110,
- 111,112,113,114,115,116,117,0,1,2,
- 3,4,5,6,7,0,9,10,11,12,
- 13,14,15,16,17,18,19,20,21,0,
- 0,0,25,26,0,0,0,0,0,0,
- 0,0,0,0,37,38,39,0,41,42,
- 43,44,45,46,47,0,49,50,51,52,
- 53,54,55,0,1,2,3,4,5,6,
- 7,64,9,10,11,12,13,14,15,16,
- 17,18,19,20,21,0,0,0,25,26,
- 0,0,0,0,0,0,0,0,0,0,
- 37,38,39,0,41,42,43,44,45,46,
- 47,0,49,50,51,52,53,54,55,0,
- 0,0,0,0,61,0,1,2,3,4,
+ 51,52,53,54,0,1,2,3,4,5,
+ 6,7,63,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,0,0,0,25,
+ 26,0,0,0,0,0,0,0,0,0,
+ 0,37,38,39,0,41,42,43,44,45,
+ 46,47,0,49,50,51,52,53,54,0,
+ 0,0,0,0,60,0,1,2,3,4,
5,6,7,0,9,10,11,12,13,14,
15,16,17,18,19,20,21,0,0,0,
25,26,0,0,0,0,0,0,0,0,
0,0,37,38,39,0,41,42,43,44,
45,46,47,0,49,50,51,52,53,54,
- 55,0,1,2,3,4,5,6,7,0,
- 9,10,11,12,13,14,15,16,17,18,
- 19,20,21,0,0,0,25,26,0,0,
- 0,0,0,0,0,0,0,0,37,38,
- 39,0,41,42,43,44,45,46,47,0,
- 49,50,51,52,53,54,55,0,1,2,
- 3,4,5,6,7,0,9,10,11,12,
- 13,14,15,16,17,18,19,20,21,0,
- 0,0,25,26,0,0,0,0,0,0,
- 0,0,0,0,37,38,39,0,41,42,
- 43,44,45,46,47,0,49,50,51,52,
- 53,54,55,0,1,2,0,4,0,0,
- 0,0,0,10,11,12,13,14,15,16,
- 17,18,19,20,21,22,23,24,0,0,
- 0,28,29,30,31,32,33,34,35,36,
- 0,0,0,40,0,0,0,0,0,0,
- 0,0,0,0,1,2,0,4,0,0,
- 57,58,59,10,11,12,13,14,15,16,
- 17,18,19,20,21,22,23,24,0,0,
- 0,28,29,30,31,32,33,34,35,36,
- 0,0,0,40,0,1,2,3,4,5,
- 6,7,8,9,0,0,0,0,0,0,
- 57,58,59,0,0,0,22,23,24,0,
- 0,27,28,29,30,31,32,33,34,35,
- 36,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,64,0,
- 0,0,0,0,0,0,0,0,74,0,
+ 0,1,2,3,4,5,6,7,0,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,0,0,0,25,26,0,0,0,
+ 0,0,0,0,0,0,0,37,38,39,
+ 0,41,42,43,44,45,46,47,0,49,
+ 50,51,52,53,54,0,1,2,3,4,
+ 5,6,7,0,9,10,11,12,13,14,
+ 15,16,17,18,19,20,21,0,0,0,
+ 25,26,0,0,0,0,0,0,0,0,
+ 0,0,37,38,39,0,41,42,43,44,
+ 45,46,47,0,49,50,51,52,53,54,
+ 0,1,2,0,4,0,0,0,0,0,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,0,0,0,28,29,
+ 30,31,32,33,34,35,36,0,0,0,
+ 40,0,0,0,0,0,0,0,0,0,
+ 1,2,0,4,0,0,56,57,58,10,
+ 11,12,13,14,15,16,17,18,19,20,
+ 21,22,23,24,0,0,0,28,29,30,
+ 31,32,33,34,35,36,0,0,0,40,
+ 0,1,2,3,4,5,6,7,8,9,
+ 0,0,0,0,0,56,57,58,0,0,
+ 0,0,22,23,24,0,0,27,28,29,
+ 30,31,32,33,34,35,36,11,12,13,
+ 14,15,16,17,18,19,20,21,22,23,
+ 24,0,0,0,28,29,30,31,32,33,
+ 34,35,36,63,0,0,0,0,0,0,
+ 0,0,0,73,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0
+ 0,0,0,0,0,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;
@@ -1465,351 +1462,346 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public interface TermAction {
public final static char termAction[] = {0,
- 5445,5410,5389,5389,5389,5389,5389,5389,5426,5389,
+ 5444,5409,5388,5388,5388,5388,5388,5388,5425,5388,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,5414,1,1,
+ 1,1,1,1,1,1,1,5413,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,119,1,
- 1,1,1,1,1,1,136,1,1,1,
- 959,1,5621,1542,116,3042,1,1,5456,1,
- 3831,332,5452,3758,2774,3040,3441,3286,2241,3212,
- 3379,3191,3439,594,3415,4339,3412,10,5429,5429,
- 5429,5429,5429,5429,5429,5429,5429,5429,5429,5429,
- 5429,5429,5429,5429,5429,5429,5429,5429,5429,5429,
- 5429,5429,5429,5429,5429,5429,5429,5429,5429,5429,
- 5429,5429,5429,5429,5429,5429,5429,5429,5429,5429,
- 5429,5429,5429,5429,5429,121,5429,5429,5429,5429,
- 5429,5429,5429,396,5429,5429,5429,5429,5429,5429,
- 5429,158,5429,5429,5429,5429,2329,3807,3783,5429,
- 3758,2774,5429,5429,5429,5429,5429,5429,5429,5429,
- 5429,5429,5429,5429,8,5432,5432,5432,5432,5432,
- 5432,5432,5432,5432,5432,5432,5432,5432,5432,5432,
- 5432,5432,5432,5432,5432,5432,5432,5432,5432,5432,
- 5432,5432,5432,5432,5432,5432,5432,5432,5432,5432,
- 5432,5432,5432,5432,5432,5432,5432,5432,5432,5432,
- 5432,5432,1418,5432,5432,5432,5432,5432,5432,5432,
- 385,5432,5432,5432,5432,5432,5432,5432,516,5432,
- 5432,5432,5432,287,5182,5182,5432,284,5445,5432,
- 5432,5432,5432,5432,5432,5432,5432,5432,5432,5432,
- 5432,5445,5410,5389,5389,5389,5389,5389,5389,5417,
- 5389,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,5414,1,
+ 1,1,1,1,1,1,1,1,139,1,
+ 1,1,1,1,1,1,1,1,1,958,
+ 1,5619,1541,115,3041,1,1,5455,39,3830,
+ 5444,5451,5482,4831,3039,3440,3285,2240,3211,3378,
+ 3190,3438,593,3414,4338,3411,10,5428,5428,5428,
+ 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428,
+ 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428,
+ 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428,
+ 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428,
+ 5428,5428,5428,5428,331,5428,5428,5428,5428,5428,
+ 5428,395,5428,5428,5428,5428,5428,5428,5428,1187,
+ 5428,5428,5428,5428,3358,3806,3782,5428,384,5444,
+ 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428,
+ 5428,5428,8,5431,5431,5431,5431,5431,5431,5431,
+ 5431,5431,5431,5431,5431,5431,5431,5431,5431,5431,
+ 5431,5431,5431,5431,5431,5431,5431,5431,5431,5431,
+ 5431,5431,5431,5431,5431,5431,5431,5431,5431,5431,
+ 5431,5431,5431,5431,5431,5431,5431,5431,5431,5431,
+ 5444,5431,5431,5431,5431,5431,5431,1912,5431,5431,
+ 5431,5431,5431,5431,5431,301,5431,5431,5431,5431,
+ 286,5181,5181,5431,283,5744,5431,5431,5431,5431,
+ 5431,5431,5431,5431,5431,5431,5431,5431,5444,5409,
+ 5388,5388,5388,5388,5388,5388,5416,5388,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,883,
- 1,1,1,1,1,1,1,440,1,1,
- 1,959,1,5621,1542,363,3042,1,1,5456,
- 5445,5084,5081,5445,5484,5445,3040,3441,3286,2241,
- 3212,3379,3191,3439,594,3415,4339,3412,5445,5410,
- 5389,5389,5389,5389,5389,5389,5417,5389,1,1,
+ 1,1,1,1,1,5413,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,5414,1,1,1,1,
+ 1,1,1,1,1,1,5444,1,1,1,
+ 1,1,1,439,1,1,1,958,1,5619,
+ 1541,5444,3041,1,1,5455,5444,5083,5080,5452,
+ 5482,5444,3039,3440,3285,2240,3211,3378,3190,3438,
+ 593,3414,4338,3411,5444,5409,5388,5388,5388,5388,
+ 5388,5388,5416,5388,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,3196,1,1,1,
- 1,1,1,1,1913,1,1,1,959,1,
- 5621,1542,118,3042,1,1,5456,112,3831,459,
- 5881,5882,5883,3040,3441,3286,2241,3212,3379,3191,
- 3439,594,3415,4339,3412,5445,5410,5389,5389,5389,
- 5389,5389,5389,5417,5389,1,1,1,1,1,
+ 1,5413,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,5414,1,1,1,1,1,1,1,
+ 1,1,5451,1,1,1,1,1,1,135,
+ 1,1,1,958,1,5619,1541,117,3041,1,
+ 1,5455,111,3830,5444,5879,5880,5881,3039,3440,
+ 3285,2240,3211,3378,3190,3438,593,3414,4338,3411,
+ 5444,5409,5388,5388,5388,5388,5388,5388,5416,5388,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,5111,1,1,1,1,1,1,
- 1,137,1,1,1,959,1,5621,1542,290,
- 3042,1,1,5456,40,3807,3783,4250,5484,4272,
- 3040,3441,3286,2241,3212,3379,3191,3439,594,3415,
- 4339,3412,5445,5410,5389,5389,5389,5389,5389,5389,
- 5417,5389,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,5414,
+ 1,1,1,1,1,1,1,5413,1,1,
1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,5444,1,
+ 1,1,1,1,1,136,1,1,1,958,
+ 1,5619,1541,131,3041,1,1,5455,2328,3806,
+ 3782,4249,595,4271,3039,3440,3285,2240,3211,3378,
+ 3190,3438,593,3414,4338,3411,5444,5409,5388,5388,
+ 5388,5388,5388,5388,5416,5388,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 790,1,1,1,1,1,1,1,5445,1,
- 1,1,959,1,5621,1542,117,3042,1,1,
- 5456,2329,3831,122,5445,5459,5460,3040,3441,3286,
- 2241,3212,3379,3191,3439,594,3415,4339,3412,5445,
- 5410,5389,5389,5389,5389,5389,5389,5417,5389,1,
+ 1,1,1,5413,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,5414,1,1,1,
+ 1,1,1,1,5444,1,1,1,1,1,
+ 1,5444,1,1,1,958,1,5619,1541,116,
+ 3041,1,1,5455,2328,3830,121,5444,5458,5459,
+ 3039,3440,3285,2240,3211,3378,3190,3438,593,3414,
+ 4338,3411,5444,5409,5388,5388,5388,5388,5388,5388,
+ 5416,5388,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,5413,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,5445,1,1,
- 1,1,1,1,1,5445,1,1,1,959,
- 1,5621,1542,5445,3042,1,1,5456,2625,3807,
- 3783,3143,3169,5445,3040,3441,3286,2241,3212,3379,
- 3191,3439,594,3415,4339,3412,5445,5410,5389,5389,
- 5389,5389,5389,5389,5417,5389,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,5414,1,1,1,1,1,1,
+ 5444,1,1,1,1,1,1,5444,1,1,
+ 1,958,1,5619,1541,5444,3041,1,1,5455,
+ 2624,3806,3782,3142,3168,5444,3039,3440,3285,2240,
+ 3211,3378,3190,3438,593,3414,4338,3411,5444,5409,
+ 5388,5388,5388,5388,5388,5388,5416,5388,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,5445,1,1,1,1,1,
- 1,1,1923,1,1,1,959,1,5621,1542,
- 132,3042,1,1,5456,5445,5459,5460,427,596,
- 2625,3040,3441,3286,2241,3212,3379,3191,3439,594,
- 3415,4339,3412,5445,5410,5389,5389,5389,5389,5389,
- 5389,5417,5389,1,1,1,1,1,1,1,
+ 1,1,1,1,1,5413,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 5414,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,336,1,1,1,
+ 1,1,1,1922,1,1,1,958,1,5619,
+ 1541,5444,3041,1,1,5455,5444,5458,5459,5781,
+ 5782,2624,3039,3440,3285,2240,3211,3378,3190,3438,
+ 593,3414,4338,3411,5444,5409,5388,5388,5388,5388,
+ 5388,5388,5416,5388,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,5445,1,1,1,1,1,1,1,1090,
- 1,1,1,959,1,5621,1542,450,3042,1,
- 1,5456,5445,5084,5081,5445,5484,5445,3040,3441,
- 3286,2241,3212,3379,3191,3439,594,3415,4339,3412,
- 5445,5410,5389,5389,5389,5389,5389,5389,5417,5389,
+ 1,5413,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,5414,1,1,
+ 1,1,5444,1,1,1,1,1,1,5444,
+ 1,1,1,958,1,5619,1541,1,3041,1,
+ 1,5455,5444,5083,5080,5406,5482,5444,3039,3440,
+ 3285,2240,3211,3378,3190,3438,593,3414,4338,3411,
+ 5444,5409,5388,5388,5388,5388,5388,5388,5416,5388,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,2545,1,
- 1,1,1,1,1,1,1966,1,1,1,
- 959,1,5621,1542,309,3042,1,1,5456,5445,
- 5268,5265,49,5268,5265,3040,3441,3286,2241,3212,
- 3379,3191,3439,594,3415,4339,3412,5445,5410,5389,
- 5389,5389,5389,5389,5389,5417,5389,1,1,1,
+ 1,1,1,1,1,1,1,5413,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,5414,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,5451,1,
+ 1,1,1,1,1,1965,1,1,1,958,
+ 1,5619,1541,5444,3041,1,1,5455,5444,5267,
+ 5264,48,5267,5264,3039,3440,3285,2240,3211,3378,
+ 3190,3438,593,3414,4338,3411,5444,5409,5388,5388,
+ 5388,5388,5388,5388,5416,5388,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,2802,1,1,1,1,
- 1,1,1,5445,1,1,1,959,1,5621,
- 1542,5445,3042,1,1,5456,115,5445,348,5449,
- 4832,1581,3040,3441,3286,2241,3212,3379,3191,3439,
- 594,3415,4339,3412,5445,3389,1,1,1,1,
- 1,1,3395,1,1,1,1,1,1,1,
+ 1,1,1,5413,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,5454,1,1,1,1,1,1,1,1,
+ 1,1,1,1,5444,1,1,1,1,1,
+ 1,5444,1,1,1,958,1,5619,1541,5444,
+ 3041,1,1,5455,114,5444,91,5448,3330,5116,
+ 3039,3440,3285,2240,3211,3378,3190,3438,593,3414,
+ 4338,3411,5444,3388,1,1,1,1,1,1,
+ 3394,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,5453,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1934,1,1,1,1,1,1,1,
- 5445,1,1,1,959,1,5621,1542,5445,3042,
- 1,1,5456,5445,1753,5445,4250,5775,4272,3040,
- 3441,3286,2241,3212,3379,3191,3439,594,3415,4339,
- 3412,40,5084,5081,4831,2141,4057,4140,2879,5448,
- 4162,793,5710,5708,5717,5716,5712,5713,5711,5714,
- 5715,5718,5709,5706,5783,5784,4118,4087,134,5700,
- 5707,5703,5679,5705,5704,5701,5702,5680,4206,4184,
- 5465,5844,632,618,781,5467,654,3116,664,5445,
- 5468,5466,585,5461,5463,5464,5462,5445,2087,5845,
- 5846,2880,1374,5445,5320,5320,230,5316,230,230,
- 230,5324,230,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,5445,3469,
- 230,1,1,1,1,1,1,1,1,1,
- 5445,5084,5081,1,2141,628,5080,2879,5445,225,
- 5445,5313,1,5172,5168,4505,5176,628,1968,2879,
- 1,1,1,2647,226,5858,567,2361,5445,5459,
- 5460,5706,5783,5784,5445,417,230,5700,5707,5703,
- 5679,5705,5704,5701,5702,5680,5706,5783,5784,130,
- 5946,5445,5700,5707,5703,5679,5705,5704,5701,5702,
- 5680,398,5459,5460,3044,114,5881,5882,5883,5445,
- 5320,5320,230,5316,230,230,230,5368,230,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,4228,880,230,1,1,1,
- 1,1,1,1,1,1,5445,5084,5081,1,
- 2141,628,34,2879,1,5123,5445,5313,5123,120,
- 5123,5123,162,5445,5455,5445,1,1,1,2647,
- 227,5858,567,5451,37,5344,5341,5123,5123,5123,
- 5445,416,230,5454,3758,2774,2478,2405,5445,5123,
- 5123,3331,5706,5783,5784,4250,5946,4272,5700,5707,
- 5703,5679,5705,5704,5701,5702,5680,5445,5123,5445,
- 5268,5265,5881,5882,5883,5451,5123,291,5459,5460,
- 2443,5123,5123,5123,5123,5123,5123,3950,162,368,
- 5172,5168,2557,5176,628,1,2879,5445,1,5450,
- 5123,5123,5123,5123,5123,5123,5123,5123,5123,5123,
- 5123,5123,5123,5123,5123,5445,8725,8725,5123,5123,
- 5123,5123,5123,5123,5123,5123,5123,5123,5123,5123,
- 5123,5445,5123,5123,5126,4228,880,5126,3986,5126,
- 5126,5450,458,30,388,388,5283,388,388,5283,
- 388,5283,5283,1934,5445,133,5126,5126,5126,1226,
- 5445,8532,8464,5482,596,388,388,388,5126,5126,
- 5283,388,388,388,388,388,388,388,388,388,
- 5445,1,5172,5168,5359,5176,5365,5126,5362,5455,
- 126,39,5102,5099,5445,5126,5096,5445,2879,5087,
- 5126,5126,5126,5126,5126,5126,5114,5283,5454,310,
- 5172,5168,4505,5176,628,5380,2879,5283,5380,5126,
- 5126,5126,5126,5126,5126,5126,5126,5126,5126,5126,
- 5126,5126,5126,5126,5445,125,3045,5126,5126,5126,
- 5126,5126,5126,5126,5126,5126,5126,5126,5126,5126,
- 3278,5126,5126,5445,5389,5389,230,5389,230,230,
- 230,5392,230,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,3143,3169,
- 230,1,1,8869,1,1,1,1,1,1,
- 5445,5084,5081,1,2141,5129,92,2879,228,5117,
- 5445,5386,1,5172,5168,2557,5176,628,140,2879,
- 1,1,1,3486,238,5657,1542,5277,3042,38,
- 5706,5783,5784,3143,3169,221,5700,5707,5703,5679,
- 5705,5704,5701,5702,5680,5445,8532,8464,940,5445,
- 5946,5445,5389,5389,230,5389,230,230,230,230,
- 230,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1934,5482,230,1,
- 1,8869,1,1,1,1,1,1,1891,48,
- 5445,1,131,332,5084,5081,4505,2141,628,5386,
- 2879,113,138,1,1,3332,3440,2796,1,1,
- 1,3486,364,5657,1542,135,3042,5445,5084,5081,
- 1188,2141,5129,5445,2879,3359,1848,1805,1762,1719,
- 1676,1633,1590,1547,1504,1461,349,1139,5946,5445,
- 5389,5389,230,5389,230,230,230,5395,230,1,
+ 5444,1,1,1,1,1,1,5444,1,1,
+ 1,958,1,5619,1541,5444,3041,1,1,5455,
+ 5444,1752,5444,4249,5773,4271,3039,3440,3285,2240,
+ 3211,3378,3190,3438,593,3414,4338,3411,39,5083,
+ 5080,4830,2140,4056,4139,2878,5447,4161,792,5708,
+ 5706,5715,5714,5710,5711,5709,5712,5713,5716,5707,
+ 5704,5781,5782,4117,4086,137,5698,5705,5701,5677,
+ 5703,5702,5699,5700,5678,4205,4183,5463,5842,631,
+ 617,780,5465,653,3115,663,5444,5466,5464,584,
+ 5460,5461,5462,5444,2086,5843,5844,2879,1373,5444,
+ 5319,5319,229,5315,229,229,229,5323,229,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,124,1269,230,1,1,8869,
- 1,1,1,1,1,1,5445,5445,364,1,
- 4340,1,5172,5168,5359,5176,5365,5386,5362,2478,
- 2405,4250,4451,4272,3197,364,1,1,1,3486,
- 1934,5657,1542,2279,3042,1,5172,5168,2557,5176,
- 628,220,2879,5271,2361,5445,5172,5168,4505,5176,
- 628,5380,2879,5445,5380,5445,5946,5445,5389,5389,
- 230,5389,230,230,230,5392,230,1,1,1,
+ 1,1,1,1,5444,3468,229,1,1,1,
+ 1,1,1,1,1,1,5444,5083,5080,1,
+ 2140,5128,125,2878,224,133,5444,5312,394,5178,
+ 5178,5444,283,5444,1967,1,1,1,2646,225,
+ 5856,566,397,5458,5459,2278,5704,5781,5782,358,
+ 416,229,5698,5705,5701,5677,5703,5702,5699,5700,
+ 5678,5704,5781,5782,939,5944,5444,5698,5705,5701,
+ 5677,5703,5702,5699,5700,5678,283,5444,5444,8836,
+ 8836,5879,5880,5881,5444,5319,5319,229,5315,229,
+ 229,229,5367,229,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,3142,
+ 3168,229,1,1,1,1,1,1,1,1,
+ 1,3043,33,2360,1,5122,5480,5444,5122,5444,
+ 5122,5122,5312,37,5306,5306,8,5456,5306,5801,
+ 1,1,1,2646,5441,5856,566,5122,5122,5122,
+ 43,5288,5288,1,129,415,229,5444,5444,5122,
+ 5122,161,345,5083,5080,2556,2140,627,331,2878,
+ 5944,331,5444,5444,1,5303,5303,5122,5300,5444,
+ 331,2680,363,331,124,5122,5879,5880,5881,1,
+ 5122,5122,5122,5122,5122,5122,5455,5079,5285,367,
+ 5171,5167,2556,5175,627,1,2878,5441,1,5122,
+ 5122,5122,5122,5122,5122,5122,5122,5122,5122,5122,
+ 5122,5122,5122,5122,5444,1933,161,5122,5122,5122,
+ 5122,5122,5122,5122,5122,5122,5122,5122,5122,5122,
+ 5444,5122,5122,5125,118,1971,5125,363,5125,5125,
+ 2477,2404,29,387,387,5282,387,387,5282,387,
+ 5282,5282,1933,3715,363,5125,5125,5125,1225,3757,
+ 2773,3142,3168,5444,387,387,387,5125,5125,5282,
+ 387,387,387,387,387,387,387,387,387,1,
+ 5171,5167,5358,5175,5364,5125,5361,5454,5444,38,
+ 5101,5098,237,5125,5095,5276,2878,5086,5125,5125,
+ 5125,5125,5125,5125,138,5282,5453,309,5171,5167,
+ 4504,5175,627,5379,2878,5282,5379,5125,5125,5125,
+ 5125,5125,5125,5125,5125,5125,5125,5125,5125,5125,
+ 5125,5125,36,5343,5340,5125,5125,5125,5125,5125,
+ 5125,5125,5125,5125,5125,5125,5125,5125,123,5125,
+ 5125,5444,5388,5388,229,5388,229,229,229,5391,
+ 229,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,5444,5444,229,1,
+ 1,8747,1,1,1,1,1,1,444,1,
+ 1,1,1,5444,5107,226,39,5107,5444,5385,
+ 5482,5454,331,5444,2278,331,139,1,1,1,
+ 3485,5450,5655,1541,458,3041,457,5704,5781,5782,
+ 5453,5444,220,5698,5705,5701,5677,5703,5702,5699,
+ 5700,5678,290,5458,5459,3142,3168,5944,5444,5388,
+ 5388,229,5388,229,229,229,229,229,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,3143,3169,230,1,1,8869,1,1,
- 1,1,1,1,445,1,1,1,1,1934,
- 5108,5445,5445,5108,140,5386,5445,5459,5460,5274,
- 5457,628,5445,2879,1,1,1,3486,2065,5657,
- 1542,5445,3042,395,5179,5179,1972,284,359,221,
- 346,5084,5081,2557,2141,628,332,2879,5445,332,
- 5445,44,5289,5289,5946,5445,5389,5389,230,5389,
- 230,230,230,5392,230,1,1,1,1,1,
+ 1,1,1,3949,5444,229,1,1,8747,1,
+ 1,1,1,1,1,1890,5449,5110,1,5113,
+ 1,5171,5167,4504,5175,627,5385,2878,347,113,
+ 134,1580,132,2795,1,1,1,3485,130,5655,
+ 1541,595,3041,370,5444,5083,5080,1187,2140,627,
+ 532,2878,3358,1847,1804,1761,1718,1675,1632,1589,
+ 1546,1503,1460,5444,5944,5444,5388,5388,229,5388,
+ 229,229,229,5394,229,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 5456,284,230,1,1,8869,1,1,1,1,
- 1,1,446,40,40,1,5484,5445,5298,5286,
- 5958,5298,40,5386,1934,5453,5484,5445,332,123,
- 4353,332,1,1,1,3486,1188,5657,1542,5887,
- 3042,3359,1,5304,5304,1,5301,221,332,5803,
- 364,332,5445,5451,1,5172,5168,4505,5176,628,
- 5453,2879,5946,5445,5389,5389,230,5389,230,230,
- 230,230,230,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1006,5452,
- 230,1,1,8869,1,1,1,1,1,1,
- 38,5307,5307,1,302,1,5172,5168,4505,5176,
- 628,5386,2879,310,5746,5445,364,3143,3169,5450,
- 1,1,1,3486,5452,5657,1542,2065,3042,5445,
- 5330,5327,310,364,346,40,40,2438,5484,5445,
- 332,319,4457,332,5371,5445,5337,5333,1282,5445,
- 5946,5445,5389,5389,230,5389,230,230,230,230,
- 230,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,139,5482,230,1,
- 1,8869,1,1,1,1,1,1,93,1,
- 1,1,1,5482,5310,406,5445,5310,1934,5386,
- 101,5445,40,5353,337,1934,5484,3277,1,1,
- 1,3486,1,5657,1542,2438,3042,96,40,40,
- 342,5484,5356,5374,1827,5445,5374,5783,5784,1,
- 5445,533,2438,30,46,5350,5350,5271,5946,5445,
- 5389,5389,230,5389,230,230,230,230,230,1,
+ 5444,1933,229,1,1,8747,1,1,1,1,
+ 1,1,445,39,39,1,5482,5444,5297,227,
+ 3278,5297,1285,5385,1,5452,112,3439,4249,5444,
+ 4271,1,1,1,3485,3276,5655,1541,2360,3041,
+ 2442,5704,5781,5782,2477,2404,219,5698,5705,5701,
+ 5677,5703,5702,5699,5700,5678,5444,37,5306,5306,
+ 3377,5944,5444,5388,5388,229,5388,229,229,229,
+ 5391,229,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1005,5451,229,
+ 1,1,8747,1,1,1,1,1,1,5444,
+ 5083,5080,1,2140,5128,1281,2878,92,1,1,
+ 5385,1,348,5309,122,4249,5309,4271,1,1,
+ 1,3485,5444,5655,1541,4339,3041,1,5171,5167,
+ 2556,5175,627,220,2878,5270,5444,5444,5171,5167,
+ 4504,5175,627,5379,2878,368,5379,1268,5944,5444,
+ 5388,5388,229,5388,229,229,229,5391,229,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,4635,5901,230,1,1,8869,
- 1,1,1,1,1,1,1934,2279,2854,1,
- 5445,342,5347,342,397,30,342,5386,388,5087,
- 302,40,3279,1934,4338,5484,1,1,1,3486,
- 5746,5657,1542,5274,3042,5881,5882,5883,5445,5459,
- 5460,5445,5445,2056,76,3378,5457,3464,5445,1,
- 1,1,1,1,1,1,5946,1,1,1,
+ 1,1,1,1,5444,1933,229,1,1,8747,
+ 1,1,1,1,1,1,5444,5329,5326,1,
+ 1933,1,5171,5167,4504,5175,627,5385,2878,309,
+ 5273,3142,3168,375,120,1,1,1,3485,2064,
+ 5655,1541,5444,3041,1330,5444,5458,5459,309,5444,
+ 220,157,345,39,39,2437,5482,100,331,3757,
+ 2773,331,5444,5444,5480,5944,5444,5388,5388,229,
+ 5388,229,229,229,229,229,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 663,663,5445,1,1,4574,5445,5330,5327,5445,
- 1925,5508,5509,127,441,1,1,1,425,1,
- 1,1,1,1,1,1,186,1,1,1,
- 1,1,1,1,1,5445,5456,5445,2015,1,
- 5982,3502,5404,3197,1,1,1,5172,5168,4831,
- 5176,4057,4140,2879,5482,4162,5132,5159,5165,5138,
- 5141,5153,5150,5156,5147,5144,5135,5162,5445,2819,
- 5090,4118,4087,1,312,5445,5445,2685,3627,3879,
- 581,5407,5105,4206,4184,5465,5445,632,618,781,
- 5467,654,3116,664,669,5468,5466,585,5461,5463,
- 5464,5462,5456,8,38,5307,5307,1374,2720,2654,
- 332,5442,40,40,5445,517,40,5084,5081,4831,
- 2141,4057,4140,2879,5439,4162,997,5710,5708,5717,
- 5716,5712,5713,5711,5714,5715,5718,5709,38,5307,
- 5307,4118,4087,5307,1096,5452,371,369,5436,38,
- 5307,5307,5482,4206,4184,5465,129,632,618,781,
- 5467,654,3116,664,455,5468,5466,585,5461,5463,
- 5464,5462,1,1,1,5442,104,1374,5445,3964,
- 529,49,164,5398,5423,5460,2681,5847,5452,142,
- 5084,5081,4831,2141,4057,4140,2879,5482,4162,997,
- 5710,5708,5717,5716,5712,5713,5711,5714,5715,5718,
- 5709,1,2819,5401,4118,4087,1286,1331,396,5445,
- 5093,3209,389,388,128,5292,4206,4184,5465,5445,
- 632,618,781,5467,654,3116,664,5460,5468,5466,
- 585,5461,5463,5464,5462,292,529,5445,164,49,
- 1374,2720,2654,5459,3558,40,40,1,5172,5168,
- 4831,5176,4057,4140,2879,5445,4162,5132,5159,5165,
- 5138,5141,5153,5150,5156,5147,5144,5135,5162,5120,
- 2819,5445,4118,4087,5445,663,3716,429,1895,5445,
- 321,396,1,5295,4206,4184,5465,5455,632,618,
- 781,5467,654,3116,664,5459,5468,5466,585,5461,
- 5463,5464,5462,5445,449,2103,5454,74,1374,2720,
- 2654,2796,421,40,40,40,5084,5081,4831,2141,
- 4057,4140,2879,5420,4162,997,5710,5708,5717,5716,
- 5712,5713,5711,5714,5715,5718,5709,663,36,5445,
- 4118,4087,100,2275,1934,5445,279,1,3571,5383,
- 926,5445,4206,4184,5465,5455,632,618,781,5467,
- 654,3116,664,5377,5468,5466,585,5461,5463,5464,
- 5462,1,509,5805,5454,5445,1374,2435,5445,5445,
- 507,5398,2191,5423,40,5084,5081,4831,2141,4057,
- 4140,2879,5420,4162,997,5710,5708,5717,5716,5712,
- 5713,5711,5714,5715,5718,5709,1051,3706,2449,4118,
- 4087,5401,5445,5445,5445,3106,1,1045,3496,3209,
- 5445,4206,4184,5465,192,632,618,781,5467,654,
- 3116,664,2,5468,5466,585,5461,5463,5464,5462,
- 1,5445,3862,192,4641,1374,5445,376,2153,4880,
- 3874,5445,5423,40,5084,5081,4831,2141,4057,4140,
- 2879,5449,4162,997,5710,5708,5717,5716,5712,5713,
- 5711,5714,5715,5718,5709,5445,3882,5445,4118,4087,
- 4633,5445,5445,5445,4899,3563,3245,3299,38,522,
- 4206,4184,5465,5445,632,618,781,5467,654,3116,
- 664,5445,5468,5466,585,5461,5463,5464,5462,40,
- 5084,5081,4831,2141,4057,4140,2879,5445,4162,997,
- 5710,5708,5717,5716,5712,5713,5711,5714,5715,5718,
- 5709,4112,5445,5445,4118,4087,4918,5445,5445,5445,
- 4450,4644,511,5445,5445,2449,4206,4184,5465,5445,
- 632,618,781,5467,654,3116,664,5445,5468,5466,
- 585,5461,5463,5464,5462,5445,3469,5445,224,1,
- 1374,5448,824,5445,5915,5909,1,5445,5913,5710,
- 5708,5717,5716,5712,5713,5711,5714,5715,5718,5709,
- 5706,5783,5784,5445,5907,5908,5700,5707,5703,5679,
- 5705,5704,5701,5702,5680,3353,5938,5939,3469,2022,
- 5916,5445,804,5445,5445,2998,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5918,5445,5445,5445,5445,
- 5445,5445,5445,927,5445,1396,1406,5445,5919,5917,
- 5940,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5929,5928,5941,
- 5445,5445,5910,5911,5934,5935,5932,5933,5912,5914,
- 5936,5937,5445,5445,5445,5942,5445,5922,5923,5924,
- 5920,5921,5930,5931,5926,5925,5927,40,5084,5081,
- 4831,2141,4057,4140,2879,5445,4162,997,5710,5708,
- 5717,5716,5712,5713,5711,5714,5715,5718,5709,5445,
- 5445,5445,4118,4087,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,4206,4184,5465,5445,632,618,
- 781,5467,654,3116,664,5445,5468,5466,585,5461,
- 5463,5464,5462,40,5084,5081,4831,2141,4057,4140,
- 2879,1880,4162,997,5710,5708,5717,5716,5712,5713,
- 5711,5714,5715,5718,5709,5445,5445,5445,4118,4087,
- 5445,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 4206,4184,5465,5445,632,618,781,5467,654,3116,
- 664,5445,5468,5466,585,5461,5463,5464,5462,5445,
- 5445,5445,5445,5445,1374,40,5084,5081,4843,2141,
- 4057,4140,2879,5445,4162,997,5710,5708,5717,5716,
- 5712,5713,5711,5714,5715,5718,5709,5445,5445,5445,
- 4118,4087,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,4206,4184,5465,5445,632,618,781,5467,
- 654,3116,664,5445,5468,5466,585,5461,5463,5464,
- 5462,40,5084,5081,4831,2141,4057,4140,2879,5445,
- 4162,997,5710,5708,5717,5716,5712,5713,5711,5714,
- 5715,5718,5709,5445,5445,5445,4118,4087,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,4206,4184,
- 5465,5445,632,618,781,5467,654,3116,664,5445,
- 5468,5466,585,5461,5463,5464,5462,40,5084,5081,
- 4831,2141,4057,4140,2879,5445,4162,997,5710,5708,
- 5717,5716,5712,5713,5711,5714,5715,5718,5709,5445,
- 5445,5445,4118,4087,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,4206,4184,5465,5445,632,618,
- 781,5467,654,3116,664,5445,5468,5466,585,5461,
- 5463,5464,5462,5445,5084,5081,5445,5484,5445,5445,
- 5445,5445,5445,729,5710,5708,5717,5716,5712,5713,
- 5711,5714,5715,5718,5709,5706,5783,5784,5445,5445,
- 5445,5700,5707,5703,5679,5705,5704,5701,5702,5680,
- 5445,5445,5445,5844,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,242,5258,5254,5445,5262,5445,5445,
- 2087,5845,5846,729,5245,5251,5224,5227,5239,5236,
- 5242,5233,5230,5221,5248,5200,5194,5191,5445,5445,
- 5445,5218,5197,5209,5188,5203,5206,5215,5212,5185,
- 5445,5445,5445,5844,33,389,389,5280,389,389,
- 5280,389,5280,5280,5445,5445,5445,5445,5445,5445,
- 2087,5845,5846,5445,5445,5445,389,389,389,5445,
- 5445,5280,389,389,389,389,389,389,389,389,
- 389,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5445,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5280,5445,
- 5445,5445,5445,5445,5445,5445,5445,5445,5280
+ 1,119,5444,229,1,1,8747,1,1,1,
+ 1,1,1,95,39,39,1,5482,5444,5373,
+ 4227,879,5373,5444,5385,1933,3757,2773,405,301,
+ 4634,1417,1,1,1,3485,5352,5655,1541,5744,
+ 3041,1,5171,5167,4504,5175,627,5444,2878,1,
+ 5171,5167,2556,5175,627,5355,2878,3044,5444,5336,
+ 5332,3468,5944,5444,5388,5388,229,5388,229,229,
+ 229,229,229,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1924,185,
+ 229,1,1,8747,1,1,1,1,1,1,
+ 37,39,5444,1,5444,5482,5480,4352,5444,5458,
+ 5459,5385,1933,2064,5444,4450,5456,3196,515,1,
+ 1,1,3485,1826,5655,1541,1,3041,47,2437,
+ 5444,8668,8265,1,341,331,5083,5080,4504,2140,
+ 627,5403,2878,5444,8668,8265,5444,5444,5480,5944,
+ 5444,5388,5388,229,5388,229,229,229,229,229,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,5455,1138,229,1,1,
+ 8747,1,1,1,1,1,1,1,882,1933,
+ 1,5444,5267,5264,341,5450,341,396,5385,341,
+ 5455,387,3277,5879,5880,5881,1,1,1,3485,
+ 5435,5655,1541,1,3041,1,5171,5167,5358,5175,
+ 5364,363,5361,311,75,5444,2684,3463,5444,1,
+ 1,1,1,1,1,1,5944,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 5444,5444,662,1,1,5444,4227,879,4456,5444,
+ 5449,5506,5507,126,48,1,1,1,5459,1,
+ 1,1,1,1,1,1,5444,1,1,1,
+ 1,1,1,5444,362,5444,363,2014,1,5980,
+ 1044,5444,1095,1,1,1,5171,5167,4830,5175,
+ 4056,4139,2878,363,4161,5131,5158,5164,5137,5140,
+ 5152,5149,5155,5146,5143,5134,5161,5444,2818,5459,
+ 4117,4086,5845,5444,5083,5080,5444,2140,627,580,
+ 2878,5104,4205,4183,5463,5444,631,617,780,5465,
+ 653,3115,663,668,5466,5464,584,5460,5461,5462,
+ 37,5306,5306,5956,3195,1373,331,2719,2653,318,
+ 39,39,5370,516,39,5083,5080,4830,2140,4056,
+ 4139,2878,5438,4161,996,5708,5706,5715,5714,5710,
+ 5711,5709,5712,5713,5716,5707,5444,5458,5459,4117,
+ 4086,627,5444,2878,5885,4573,1,5444,5480,2437,
+ 3626,4205,4183,5463,5270,631,617,780,5465,653,
+ 3115,663,428,5466,5464,584,5460,5461,5462,45,
+ 5349,5349,1933,5444,1373,5444,1,5444,5444,5329,
+ 5326,5422,5444,5450,528,5451,141,5083,5080,4830,
+ 2140,4056,4139,2878,5444,4161,996,5708,5706,5715,
+ 5714,5710,5711,5709,5712,5713,5716,5707,5444,1933,
+ 1,4117,4086,37,5306,5306,3495,5346,163,5273,
+ 128,29,5444,4205,4183,5463,5480,631,617,780,
+ 5465,653,3115,663,925,5466,5464,584,5460,5461,
+ 5462,3501,2853,3196,5444,3985,1373,3878,5449,528,
+ 5899,39,39,1,5171,5167,4830,5175,4056,4139,
+ 2878,5480,4161,5131,5158,5164,5137,5140,5152,5149,
+ 5155,5146,5143,5134,5161,2818,662,3331,4117,4086,
+ 395,5444,5444,163,388,320,1894,127,5291,5454,
+ 4205,4183,5463,424,631,617,780,5465,653,3115,
+ 663,5444,5466,5464,584,5460,5461,5462,5453,103,
+ 5444,5444,3963,1373,2719,2653,99,5444,39,39,
+ 39,5083,5080,4830,2140,4056,4139,2878,5419,4161,
+ 996,5708,5706,5715,5714,5710,5711,5709,5712,5713,
+ 5716,5707,2818,5444,521,4117,4086,2274,1933,5444,
+ 5444,278,3570,1,5382,5294,39,4205,4183,5463,
+ 5482,631,617,780,5465,653,3115,663,5444,5466,
+ 5464,584,5460,5461,5462,1,1,5444,2055,1050,
+ 1373,2719,2653,291,5444,5397,5397,5422,39,5083,
+ 5080,4830,2140,4056,4139,2878,5419,4161,996,5708,
+ 5706,5715,5714,5710,5711,5709,5712,5713,5716,5707,
+ 29,440,454,4117,4086,5400,5400,48,4337,387,
+ 5444,5458,5444,3208,3208,4205,4183,5463,395,631,
+ 617,780,5465,653,3115,663,73,5466,5464,584,
+ 5460,5461,5462,5803,1,5444,1,823,1373,5913,
+ 5907,1,2102,5911,5454,5422,289,448,5444,191,
+ 5444,5444,3468,3105,426,5086,5089,5092,5444,5905,
+ 5906,4640,5458,5453,5119,662,449,2795,191,420,
+ 308,5936,5937,662,5444,5914,5444,4879,5444,4632,
+ 5444,5376,5444,4898,5444,3562,1,4917,5444,5916,
+ 3705,4449,5444,5444,1,4643,5444,926,5444,1395,
+ 1405,5444,5917,5915,5938,35,3881,5444,5444,508,
+ 506,5444,5444,5444,5444,5444,789,5444,510,2434,
+ 2152,5927,5926,5939,1089,2997,5908,5909,5932,5933,
+ 5930,5931,5910,5912,5934,5935,2544,5444,2190,5940,
+ 2801,5920,5921,5922,5918,5919,5928,5929,5924,5923,
+ 5925,39,5083,5080,4830,2140,4056,4139,2878,5448,
+ 4161,996,5708,5706,5715,5714,5710,5711,5709,5712,
+ 5713,5716,5707,3244,2448,2,4117,4086,3861,3873,
+ 3298,2448,3557,3352,4111,5444,2021,803,4205,4183,
+ 5463,5444,631,617,780,5465,653,3115,663,5444,
+ 5466,5464,584,5460,5461,5462,39,5083,5080,4830,
+ 2140,4056,4139,2878,5444,4161,996,5708,5706,5715,
+ 5714,5710,5711,5709,5712,5713,5716,5707,5444,5444,
+ 37,4117,4086,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,4205,4183,5463,5444,631,617,780,
+ 5465,653,3115,663,5444,5466,5464,584,5460,5461,
+ 5462,5444,5444,5444,5444,5444,1373,5444,5447,39,
+ 5083,5080,4830,2140,4056,4139,2878,5444,4161,996,
+ 5708,5706,5715,5714,5710,5711,5709,5712,5713,5716,
+ 5707,5444,5444,5444,4117,4086,5444,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,4205,4183,5463,5444,
+ 631,617,780,5465,653,3115,663,5444,5466,5464,
+ 584,5460,5461,5462,39,5083,5080,4830,2140,4056,
+ 4139,2878,1879,4161,996,5708,5706,5715,5714,5710,
+ 5711,5709,5712,5713,5716,5707,5444,5444,5444,4117,
+ 4086,5444,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,4205,4183,5463,5444,631,617,780,5465,653,
+ 3115,663,5444,5466,5464,584,5460,5461,5462,5444,
+ 5444,5444,5444,5444,1373,39,5083,5080,4842,2140,
+ 4056,4139,2878,5444,4161,996,5708,5706,5715,5714,
+ 5710,5711,5709,5712,5713,5716,5707,5444,5444,5444,
+ 4117,4086,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,4205,4183,5463,5444,631,617,780,5465,
+ 653,3115,663,5444,5466,5464,584,5460,5461,5462,
+ 39,5083,5080,4830,2140,4056,4139,2878,5444,4161,
+ 996,5708,5706,5715,5714,5710,5711,5709,5712,5713,
+ 5716,5707,5444,5444,5444,4117,4086,5444,5444,5444,
+ 5444,5444,5444,5444,5444,5444,5444,4205,4183,5463,
+ 5444,631,617,780,5465,653,3115,663,5444,5466,
+ 5464,584,5460,5461,5462,39,5083,5080,4830,2140,
+ 4056,4139,2878,5444,4161,996,5708,5706,5715,5714,
+ 5710,5711,5709,5712,5713,5716,5707,5444,5444,5444,
+ 4117,4086,5444,5444,5444,5444,5444,5444,5444,5444,
+ 5444,5444,4205,4183,5463,5444,631,617,780,5465,
+ 653,3115,663,5444,5466,5464,584,5460,5461,5462,
+ 5444,5083,5080,5444,5482,5444,5444,5444,5444,5444,
+ 728,5708,5706,5715,5714,5710,5711,5709,5712,5713,
+ 5716,5707,5704,5781,5782,5444,5444,5444,5698,5705,
+ 5701,5677,5703,5702,5699,5700,5678,5444,5444,5444,
+ 5842,5444,5444,5444,5444,5444,5444,5444,5444,241,
+ 5257,5253,5444,5261,5444,5444,2086,5843,5844,728,
+ 5244,5250,5223,5226,5238,5235,5241,5232,5229,5220,
+ 5247,5199,5193,5190,5444,5444,5444,5217,5196,5208,
+ 5187,5202,5205,5214,5211,5184,5444,5444,5444,5842,
+ 32,388,388,5279,388,388,5279,388,5279,5279,
+ 5444,5444,5444,5444,5444,2086,5843,5844,5444,5444,
+ 5444,5444,388,388,388,5444,223,5279,388,388,
+ 388,388,388,388,388,388,388,5708,5706,5715,
+ 5714,5710,5711,5709,5712,5713,5716,5707,5704,5781,
+ 5782,5444,5444,5444,5698,5705,5701,5677,5703,5702,
+ 5699,5700,5678,5279,5444,5444,5444,5444,5444,5444,
+ 5444,5444,5444,5279
};
};
public final static char termAction[] = TermAction.termAction;
@@ -1817,60 +1809,60 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public interface Asb {
public final static char asb[] = {0,
- 728,94,45,88,770,675,675,675,675,1113,
- 770,780,780,591,780,256,29,258,46,46,
- 46,46,46,46,46,46,46,782,788,793,
- 790,797,795,802,800,804,803,805,317,806,
- 45,29,631,631,631,631,85,830,102,102,
- 777,631,501,206,780,780,102,85,206,206,
- 197,29,945,630,1028,1115,1050,29,780,782,
- 914,914,830,45,46,46,46,46,46,46,
+ 723,93,45,87,764,670,670,670,670,1105,
+ 764,774,774,586,774,253,29,255,46,46,
+ 46,46,46,46,46,46,46,776,782,787,
+ 784,791,789,796,794,798,797,799,314,800,
+ 45,29,626,626,626,626,84,824,101,101,
+ 771,626,496,204,774,774,101,84,204,204,
+ 195,29,938,625,1020,1107,1042,29,774,776,
+ 907,907,824,45,46,46,46,46,46,46,
46,46,46,46,46,46,46,46,46,46,
46,46,46,45,45,45,45,45,45,45,
- 45,45,45,45,45,46,206,206,941,941,
- 941,941,415,206,102,102,1111,1039,1050,314,
- 1050,309,1050,504,1050,1034,1113,85,501,501,
- 102,675,46,1111,460,552,542,541,419,1057,
- 1057,1113,258,501,630,45,83,1027,206,82,
- 84,82,206,501,790,790,788,788,788,795,
- 795,795,795,793,793,800,797,797,803,802,
- 804,1127,805,770,770,770,770,85,85,941,
- 940,941,777,85,367,370,311,414,312,1113,
- 85,85,415,941,197,501,821,206,554,556,
- 85,1028,46,631,786,162,206,1115,85,85,
- 84,1028,45,45,45,45,45,770,770,29,
- 368,773,370,85,530,510,528,415,314,455,
- 85,415,85,206,546,534,545,556,415,83,
- 206,786,1111,1027,1115,85,83,206,206,206,
- 206,830,830,368,773,665,85,370,1127,312,
- 675,417,155,1117,370,530,529,530,530,415,
- 455,455,85,85,718,45,543,543,515,515,
- 85,550,1111,685,206,85,786,787,786,45,
- 162,160,782,1115,206,206,773,772,1028,875,
- 314,941,675,82,921,1119,79,770,530,530,
- 530,530,85,455,665,663,664,718,45,45,
- 556,85,1028,206,554,534,718,1092,786,830,
- 46,501,160,773,83,875,875,264,386,83,
- 530,530,79,826,46,1127,523,668,85,1111,
- 530,530,209,665,46,85,935,556,718,787,
- 206,501,827,665,873,988,359,770,312,301,
- 875,875,386,83,530,314,1113,1119,46,46,
- 1027,79,677,658,210,85,935,206,935,263,
- 359,873,681,1113,665,940,675,96,96,827,
- 314,9,677,85,770,209,85,1113,1113,85,
- 770,928,935,264,875,827,522,826,206,1113,
- 85,386,264,386,939,939,943,10,1113,85,
- 830,85,85,85,557,928,875,45,218,79,
- 827,85,85,386,631,631,943,9,1127,46,
- 1127,827,8,770,770,770,10,770,85,325,
- 827,827,85,314,206,85,85,205,930,665,
- 206,665,314,85,827,940,1,770,1,10,
- 1127,10,29,29,27,926,29,827,827,526,
- 943,631,930,665,218,827,589,685,10,206,
- 79,206,27,359,770,206,943,218,96,206,
- 206,1105,10,526,10,827,359,45,10,7,
- 664,939,314,314,1107,45,8,830,827,206,
- 825,217,82,10,206,827,825,825,10
+ 45,45,45,45,45,46,204,204,934,934,
+ 934,934,411,204,101,101,1103,1031,1042,311,
+ 1042,306,1042,499,1042,1026,1105,84,496,496,
+ 101,670,46,1103,456,547,537,536,415,1049,
+ 1049,1105,255,496,625,45,82,1019,204,81,
+ 83,81,204,496,784,784,782,782,782,789,
+ 789,789,789,787,787,794,791,791,797,796,
+ 798,1119,799,764,764,764,764,84,84,934,
+ 933,934,771,84,363,366,308,410,309,1105,
+ 84,84,411,934,195,496,815,204,549,551,
+ 84,1020,46,626,780,160,204,1107,84,84,
+ 83,1020,45,45,45,45,45,764,764,29,
+ 364,767,366,84,525,505,523,411,311,451,
+ 84,411,84,204,541,529,540,551,411,82,
+ 204,780,1103,1019,1107,84,82,204,204,204,
+ 204,824,824,364,767,660,84,366,1119,309,
+ 670,413,153,1109,366,525,524,525,525,411,
+ 451,451,84,84,713,45,538,538,510,510,
+ 84,545,1103,680,204,84,780,781,780,45,
+ 160,158,776,1107,204,204,767,766,1020,868,
+ 311,934,670,81,914,1111,78,764,525,525,
+ 525,525,84,451,660,658,659,713,45,45,
+ 551,84,1020,204,549,529,713,1084,780,824,
+ 46,496,158,767,82,868,868,261,382,82,
+ 525,525,78,820,46,1119,518,663,84,1103,
+ 525,525,207,660,46,84,928,551,713,781,
+ 204,496,821,660,866,980,355,764,309,298,
+ 868,868,382,82,525,311,1105,1111,46,46,
+ 1019,78,672,653,208,84,928,204,928,260,
+ 355,866,676,1105,660,933,670,95,95,821,
+ 311,9,672,84,764,207,84,1105,1105,84,
+ 764,921,928,261,868,821,517,820,204,1105,
+ 84,382,261,382,932,932,936,10,1105,84,
+ 824,84,84,84,552,921,868,45,216,78,
+ 821,84,84,382,626,626,936,9,1119,46,
+ 1119,821,8,764,764,764,10,764,84,322,
+ 821,821,84,311,204,84,84,203,923,660,
+ 204,660,311,84,821,933,1,764,1,10,
+ 1119,10,29,29,27,919,29,821,821,521,
+ 936,626,923,660,216,821,584,680,10,204,
+ 78,204,27,355,764,204,936,216,95,204,
+ 204,1097,10,521,10,821,355,45,10,7,
+ 659,932,311,311,1099,45,8,824,821,204,
+ 819,215,81,10,204,821,819,819,10
};
};
public final static char asb[] = Asb.asb;
@@ -1878,119 +1870,118 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public interface Asr {
public final static byte asr[] = {0,
- 87,103,104,105,48,73,119,122,72,62,
- 75,63,60,65,77,79,85,83,76,81,
- 82,84,86,68,78,80,27,8,28,40,
- 23,57,29,30,31,32,33,34,35,58,
- 36,59,22,24,61,66,67,10,43,47,
+ 86,102,103,104,48,72,118,121,71,61,
+ 74,62,59,64,76,78,84,82,75,80,
+ 81,83,85,67,77,79,27,8,28,40,
+ 23,56,29,30,31,32,33,34,35,57,
+ 36,58,22,24,60,65,66,10,43,47,
45,42,51,12,21,11,17,15,16,18,
- 19,14,13,20,52,55,53,54,39,50,
- 44,49,37,38,25,26,41,46,9,6,
- 3,4,7,5,1,2,0,8,73,118,
- 74,27,71,121,0,69,70,71,1,2,
- 0,28,11,12,40,23,42,66,13,43,
- 57,29,30,44,14,31,32,15,16,33,
- 67,34,45,17,18,46,35,47,58,49,
- 61,50,36,51,59,19,22,20,24,21,
- 52,53,54,39,3,37,38,9,6,25,
- 26,41,69,55,7,1,2,4,10,5,
- 0,92,90,25,26,93,94,88,89,56,
- 95,96,97,98,99,100,101,102,107,73,
- 91,70,108,109,110,111,112,113,114,115,
- 116,117,118,72,27,121,69,1,2,9,
- 6,4,3,64,71,74,8,0,22,1,
- 2,4,103,104,105,0,72,61,37,38,
- 9,6,25,26,41,46,3,4,52,55,
- 53,54,39,50,44,49,12,21,11,17,
- 15,16,18,19,14,13,20,10,43,47,
- 45,42,51,68,8,7,5,1,2,67,
- 66,0,68,40,23,13,57,29,14,31,
- 32,15,16,33,34,17,18,35,58,36,
- 59,19,22,20,24,21,12,11,28,8,
- 3,9,6,27,63,65,87,30,62,48,
- 7,1,2,5,4,10,60,0,48,4,
- 73,1,2,68,8,0,69,73,91,71,
- 118,74,72,121,11,12,42,66,13,43,
- 44,14,15,16,67,45,17,18,46,47,
- 49,61,50,51,10,19,20,21,52,53,
- 54,39,37,38,25,26,41,55,8,27,
- 5,7,1,2,4,3,9,6,0,87,
- 60,7,103,104,105,63,8,3,9,6,
- 5,73,72,27,62,28,11,12,40,23,
- 13,57,29,30,14,31,32,15,16,33,
- 34,17,18,35,58,36,10,59,19,22,
- 20,24,21,4,1,2,48,0,28,11,
- 12,23,13,29,30,14,31,32,15,16,
- 33,7,34,17,18,35,36,19,22,20,
- 24,21,1,2,8,64,9,6,5,4,
- 74,27,3,0,1,2,8,72,0,66,
- 67,3,10,43,47,45,42,51,12,21,
- 11,17,15,16,18,19,14,13,20,52,
- 55,53,54,39,50,44,49,5,7,4,
- 37,38,9,6,25,26,41,46,1,2,
- 118,8,0,4,8,68,1,2,0,4,
- 8,73,68,0,75,69,73,91,74,68,
- 64,3,8,71,27,70,0,4,56,8,
- 73,68,0,9,6,7,5,4,1,2,
- 3,64,69,70,71,8,74,91,0,5,
- 7,3,64,6,9,91,28,11,12,23,
- 13,57,29,30,14,31,32,15,16,33,
- 34,17,18,35,58,36,10,59,19,22,
- 20,24,21,1,2,4,74,8,40,0,
- 67,66,25,26,6,93,94,99,9,100,
- 5,41,70,56,69,111,112,108,109,110,
- 116,115,117,89,88,113,114,97,98,95,
- 96,101,102,37,38,71,90,106,64,3,
- 28,11,12,40,23,13,57,29,30,14,
- 31,32,15,16,33,34,17,18,35,58,
- 36,10,59,19,20,24,21,1,2,4,
- 22,0,70,71,72,8,0,73,8,64,
- 3,70,71,27,56,0,8,68,71,0,
- 8,68,70,0,28,11,12,40,23,13,
- 57,29,30,14,31,32,15,16,33,34,
- 17,18,35,58,36,10,59,19,22,20,
- 24,21,1,2,4,91,0,23,61,24,
- 8,69,91,70,71,74,0,11,12,42,
- 66,13,43,44,14,15,16,67,7,45,
- 17,18,46,47,49,61,50,51,10,19,
- 20,21,52,53,54,39,1,2,37,38,
- 9,6,25,26,5,41,4,55,62,3,
- 0,61,23,7,24,5,1,2,4,75,
- 68,120,106,37,38,64,3,92,90,6,
- 93,94,25,26,89,88,56,95,96,97,
- 98,9,99,100,101,69,91,74,121,70,
- 108,109,110,111,112,113,114,115,116,117,
- 73,118,102,107,72,71,27,8,0,8,
- 74,11,12,42,66,13,43,44,14,15,
- 16,67,7,45,17,18,46,47,49,61,
- 50,51,10,19,20,21,52,53,54,1,
- 2,3,37,38,9,6,25,26,5,41,
- 4,55,39,0,65,28,11,12,40,23,
- 13,57,29,87,30,14,31,32,15,16,
- 33,60,34,17,18,35,58,36,10,59,
- 19,63,22,20,24,21,8,3,9,6,
- 72,27,62,7,4,48,5,1,2,0,
- 8,73,68,75,0,76,0,23,24,75,
- 3,73,27,68,61,8,91,74,70,71,
- 69,0,119,0,66,67,37,38,9,6,
- 25,26,5,41,46,3,4,7,52,55,
- 53,54,39,50,44,49,12,21,11,17,
- 15,16,18,19,14,13,20,10,43,47,
- 45,42,51,64,1,2,0,40,23,13,
- 57,29,14,31,32,15,16,33,34,17,
- 18,35,58,36,10,59,19,22,20,24,
- 21,12,11,28,8,3,9,27,63,60,
- 65,87,30,62,56,4,6,7,1,2,
- 5,48,0,10,57,40,58,59,12,21,
- 11,17,15,16,18,19,14,13,20,75,
- 73,91,118,72,68,121,120,92,106,90,
- 37,38,25,26,93,94,88,89,56,69,
- 95,96,97,98,99,100,101,102,107,70,
- 108,109,110,111,112,113,114,115,116,117,
- 71,28,23,29,30,31,32,33,34,35,
- 36,22,24,27,8,74,3,64,7,5,
- 9,6,1,2,4,0,27,8,3,7,
- 5,9,6,4,1,2,73,0
+ 19,14,13,20,52,53,54,39,50,44,
+ 49,37,38,25,26,41,46,9,6,3,
+ 4,7,5,1,2,0,8,72,117,73,
+ 27,70,120,0,68,69,70,1,2,0,
+ 28,11,12,40,23,42,65,13,43,56,
+ 29,30,44,14,31,32,15,16,33,66,
+ 34,45,17,18,46,35,47,57,49,60,
+ 50,36,51,58,19,22,20,24,21,52,
+ 53,54,39,3,37,38,9,6,25,26,
+ 41,68,7,1,2,4,10,5,0,91,
+ 89,25,26,92,93,87,88,55,94,95,
+ 96,97,98,99,100,101,106,72,90,69,
+ 107,108,109,110,111,112,113,114,115,116,
+ 117,71,27,120,68,1,2,9,6,4,
+ 3,63,70,73,8,0,22,1,2,4,
+ 102,103,104,0,71,60,37,38,9,6,
+ 25,26,41,46,3,4,52,53,54,39,
+ 50,44,49,12,21,11,17,15,16,18,
+ 19,14,13,20,10,43,47,45,42,51,
+ 67,8,7,5,1,2,66,65,0,67,
+ 40,23,13,56,29,14,31,32,15,16,
+ 33,34,17,18,35,57,36,58,19,22,
+ 20,24,21,12,11,28,8,3,9,6,
+ 27,62,64,86,30,61,48,7,1,2,
+ 5,4,10,59,0,48,4,72,1,2,
+ 67,8,0,68,72,90,70,117,73,71,
+ 120,11,12,42,65,13,43,44,14,15,
+ 16,66,45,17,18,46,47,49,60,50,
+ 51,10,19,20,21,52,53,54,39,37,
+ 38,25,26,41,8,27,5,7,1,2,
+ 4,3,9,6,0,86,59,7,102,103,
+ 104,62,8,3,9,6,5,72,71,27,
+ 61,28,11,12,40,23,13,56,29,30,
+ 14,31,32,15,16,33,34,17,18,35,
+ 57,36,10,58,19,22,20,24,21,4,
+ 1,2,48,0,28,11,12,23,13,29,
+ 30,14,31,32,15,16,33,7,34,17,
+ 18,35,36,19,22,20,24,21,1,2,
+ 8,63,9,6,5,4,73,27,3,0,
+ 1,2,8,71,0,65,66,3,10,43,
+ 47,45,42,51,12,21,11,17,15,16,
+ 18,19,14,13,20,52,53,54,39,50,
+ 44,49,5,7,4,37,38,9,6,25,
+ 26,41,46,1,2,117,8,0,4,8,
+ 67,1,2,0,4,8,72,67,0,74,
+ 68,72,90,73,67,63,3,8,70,27,
+ 69,0,4,55,8,72,67,0,9,6,
+ 7,5,4,1,2,3,63,68,69,70,
+ 8,73,90,0,5,7,3,63,6,9,
+ 90,28,11,12,23,13,56,29,30,14,
+ 31,32,15,16,33,34,17,18,35,57,
+ 36,10,58,19,22,20,24,21,1,2,
+ 4,73,8,40,0,66,65,25,26,6,
+ 92,93,98,9,99,5,41,69,55,68,
+ 110,111,107,108,109,115,114,116,88,87,
+ 112,113,96,97,94,95,100,101,37,38,
+ 70,89,105,63,3,28,11,12,40,23,
+ 13,56,29,30,14,31,32,15,16,33,
+ 34,17,18,35,57,36,10,58,19,20,
+ 24,21,1,2,4,22,0,69,70,71,
+ 8,0,72,8,63,3,69,70,27,55,
+ 0,8,67,70,0,8,67,69,0,28,
+ 11,12,40,23,13,56,29,30,14,31,
+ 32,15,16,33,34,17,18,35,57,36,
+ 10,58,19,22,20,24,21,1,2,4,
+ 90,0,23,60,24,8,68,90,69,70,
+ 73,0,11,12,42,65,13,43,44,14,
+ 15,16,66,7,45,17,18,46,47,49,
+ 60,50,51,10,19,20,21,52,53,54,
+ 39,1,2,37,38,9,6,25,26,5,
+ 41,4,61,3,0,60,23,7,24,5,
+ 1,2,4,74,67,119,105,37,38,63,
+ 3,91,89,6,92,93,25,26,88,87,
+ 55,94,95,96,97,9,98,99,100,68,
+ 90,73,120,69,107,108,109,110,111,112,
+ 113,114,115,116,72,117,101,106,71,70,
+ 27,8,0,8,73,11,12,42,65,13,
+ 43,44,14,15,16,66,7,45,17,18,
+ 46,47,49,60,50,51,10,19,20,21,
+ 52,53,54,1,2,3,37,38,9,6,
+ 25,26,5,41,4,39,0,64,28,11,
+ 12,40,23,13,56,29,86,30,14,31,
+ 32,15,16,33,59,34,17,18,35,57,
+ 36,10,58,19,62,22,20,24,21,8,
+ 3,9,6,71,27,61,7,4,48,5,
+ 1,2,0,8,72,67,74,0,75,0,
+ 23,24,74,3,72,27,67,60,8,90,
+ 73,69,70,68,0,118,0,65,66,37,
+ 38,9,6,25,26,5,41,46,3,4,
+ 7,52,53,54,39,50,44,49,12,21,
+ 11,17,15,16,18,19,14,13,20,10,
+ 43,47,45,42,51,63,1,2,0,40,
+ 23,13,56,29,14,31,32,15,16,33,
+ 34,17,18,35,57,36,10,58,19,22,
+ 20,24,21,12,11,28,8,3,9,27,
+ 62,59,64,86,30,61,55,4,6,7,
+ 1,2,5,48,0,10,56,40,57,58,
+ 12,21,11,17,15,16,18,19,14,13,
+ 20,74,72,90,117,71,67,120,119,91,
+ 105,89,37,38,25,26,92,93,87,88,
+ 55,68,94,95,96,97,98,99,100,101,
+ 106,69,107,108,109,110,111,112,113,114,
+ 115,116,70,28,23,29,30,31,32,33,
+ 34,35,36,22,24,27,8,73,3,63,
+ 7,5,9,6,1,2,4,0,27,8,
+ 3,7,5,9,6,4,1,2,72,0
};
};
public final static byte asr[] = Asr.asr;
@@ -2100,14 +2091,14 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
107,104,54,106,11,12,120,47,64,66,
70,73,76,83,89,98,7,8,112,53,
14,55,61,67,84,88,90,93,94,97,
- 99,109,110,111,123,19,63,91,101,77,
- 95,122,103,1,46,58,78,121,20,33,
- 44,119,30,118,96,108,49,50,56,57,
- 59,69,71,72,85,92,65,17,18,6,
- 32,4,15,16,21,22,23,24,25,26,
- 27,28,80,81,82,5,29,34,35,36,
- 37,38,39,40,41,42,43,117,51,3,
- 124,62,116
+ 99,109,110,111,19,63,91,101,77,95,
+ 122,103,1,46,58,78,121,20,33,44,
+ 119,30,118,96,108,49,50,56,57,59,
+ 69,71,72,85,92,65,17,18,6,32,
+ 4,15,16,21,22,23,24,25,26,27,
+ 28,80,81,82,5,29,34,35,36,37,
+ 38,39,40,41,42,43,117,51,3,123,
+ 62,116
};
};
public final static char terminalIndex[] = TerminalIndex.terminalIndex;
@@ -2115,26 +2106,26 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public interface NonterminalIndex {
public final static char nonterminalIndex[] = {0,
- 131,136,137,0,0,135,0,0,230,236,
- 134,0,144,133,0,0,143,149,0,0,
- 150,181,159,160,161,162,163,164,152,165,
- 166,127,167,142,168,169,0,129,132,130,
- 170,0,139,138,153,178,0,0,0,0,
- 0,0,0,0,146,173,0,156,0,205,
- 0,188,202,206,0,0,128,172,0,0,
- 0,0,0,0,207,176,0,0,0,0,
- 0,0,126,179,0,0,187,0,0,203,
- 213,158,209,210,211,0,0,147,0,0,
- 208,221,175,197,0,0,212,0,0,0,
- 0,241,242,0,148,180,190,191,192,193,
- 194,196,199,0,200,0,215,218,0,220,
- 0,239,0,240,0,0,140,141,145,0,
- 0,155,157,0,171,0,182,183,184,185,
- 186,189,0,0,195,0,198,204,0,216,
- 217,0,0,222,225,0,227,229,0,233,
- 234,235,238,125,0,151,154,0,174,0,
- 177,0,0,201,214,219,0,0,223,224,
- 226,228,0,231,232,237,243,244,0,0,
+ 130,135,136,0,0,134,0,0,229,235,
+ 133,0,143,132,0,0,142,148,0,0,
+ 149,180,158,159,160,161,162,163,151,164,
+ 165,126,166,141,167,168,0,128,131,129,
+ 169,0,138,137,152,177,0,0,0,0,
+ 0,0,0,0,145,172,0,155,0,204,
+ 0,187,201,205,0,0,127,171,0,0,
+ 0,0,0,0,206,175,0,0,0,0,
+ 0,0,125,178,0,0,186,0,0,202,
+ 212,157,208,209,210,0,0,146,0,0,
+ 207,220,174,196,0,0,211,0,0,0,
+ 0,240,241,0,147,179,189,190,191,192,
+ 193,195,198,0,199,0,214,217,0,219,
+ 0,238,0,239,0,0,139,140,144,0,
+ 0,154,156,0,170,0,181,182,183,184,
+ 185,188,0,0,194,0,197,203,0,215,
+ 216,0,0,221,224,0,226,228,0,232,
+ 233,234,237,124,0,150,153,0,173,0,
+ 176,0,0,200,213,218,0,0,222,223,
+ 225,227,0,230,231,236,242,243,0,0,
0,0
};
};
@@ -2200,18 +2191,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public interface ScopeLa {
public final static byte scopeLa[] = {
- 119,74,74,72,74,74,74,74,74,72,
- 27,72,72,1,69,1,74,122,68,3,
- 74,69,69,69,1,1,27,72,68,72,
- 1,1,1,72,1,1,4,69,71,27,
- 1,1,69,74,74,74,119,74,1,27,
- 1,27,27,72,118,74,74,74,74,74,
- 118,1,74,1,74,74,74,73,4,6,
- 1,1,74,69,69,69,69,74,3,1,
- 1,74,74,3,1,118,74,1,1,1,
- 27,74,118,74,5,74,1,48,70,73,
- 74,1,48,76,75,27,27,4,4,4,
- 4,3,1,68,1,1,3
+ 118,73,73,71,73,73,73,73,73,71,
+ 27,71,71,1,68,1,73,121,67,3,
+ 73,68,68,68,1,1,27,71,67,71,
+ 1,1,1,71,1,1,4,68,70,27,
+ 1,1,68,73,73,73,118,73,1,27,
+ 1,27,27,71,117,73,73,73,73,73,
+ 117,1,73,1,73,73,73,72,4,6,
+ 1,1,73,68,68,68,68,73,3,1,
+ 1,73,73,3,1,117,73,1,1,1,
+ 27,73,117,73,5,73,1,48,69,72,
+ 73,1,48,75,74,27,27,4,4,4,
+ 4,3,1,67,1,1,3
};
};
public final static byte scopeLa[] = ScopeLa.scopeLa;
@@ -2238,71 +2229,71 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 321,3,61,0,127,0,320,3,119,0,
- 127,173,0,127,179,75,0,217,0,254,
- 127,56,125,0,20,0,296,127,56,48,
- 0,20,53,0,33,133,0,20,53,0,
- 0,296,127,56,48,205,0,20,179,0,
- 254,127,56,133,0,180,128,0,142,0,
- 220,3,295,0,295,0,2,0,127,0,
- 254,127,56,132,0,180,128,225,0,180,
- 128,22,225,0,180,128,316,22,0,129,
- 188,167,128,0,129,0,188,167,128,0,
- 135,129,0,171,0,312,127,171,0,127,
- 171,0,223,129,0,167,311,244,0,137,
- 0,0,0,0,136,0,0,0,0,310,
- 127,163,253,0,128,0,253,0,130,0,
- 0,128,0,309,127,163,252,0,128,0,
- 0,44,128,0,0,152,3,0,127,283,
- 282,127,75,281,171,0,282,127,75,281,
- 171,0,216,0,217,0,281,171,0,96,
- 0,0,216,0,217,0,204,96,0,0,
- 216,0,217,0,282,127,281,171,0,216,
- 0,204,0,0,216,0,228,127,3,0,
- 127,0,0,0,0,0,228,127,3,217,
- 0,224,3,0,213,127,0,209,0,147,
- 0,177,167,128,0,10,0,0,0,215,
- 64,0,126,0,228,127,3,183,0,183,
- 0,2,0,0,127,0,0,0,0,0,
- 199,3,0,202,0,237,127,163,39,30,
- 0,180,128,60,63,0,197,129,0,129,
- 180,128,279,63,0,180,128,279,63,0,
- 180,128,70,124,60,0,237,127,163,60,
- 0,237,127,163,227,60,0,277,127,163,
- 124,306,57,0,277,127,163,306,57,0,
- 180,128,276,57,0,136,0,188,180,128,
- 276,244,0,137,0,180,128,276,244,0,
- 188,167,128,10,0,167,128,10,0,167,
- 128,0,93,137,0,269,127,145,0,269,
- 127,171,0,162,85,0,301,161,303,304,
- 3,82,0,127,172,0,303,304,3,82,
- 0,129,0,127,172,0,162,3,76,191,
- 81,0,127,129,0,191,81,0,108,2,
- 132,127,129,0,226,3,76,0,199,168,
- 0,33,170,0,168,0,176,33,170,0,
- 226,3,86,0,191,155,226,3,84,0,
- 62,172,0,226,3,84,0,127,172,62,
- 172,0,302,127,163,0,162,0,215,78,
- 0,30,172,0,162,107,159,0,30,170,
- 0,178,3,0,127,150,0,220,3,0,
- 215,64,266,0,162,64,0,178,3,298,
- 67,128,0,127,0,0,0,0,298,67,
- 128,0,2,146,127,0,0,0,0,178,
- 3,46,0,148,0,126,48,167,128,0,
- 31,148,0,93,137,31,148,0,221,180,
- 128,0,147,31,148,0,178,3,51,0,
- 162,3,51,0,162,3,69,178,56,42,
- 0,178,56,42,0,20,2,132,127,0,
- 162,3,69,178,56,45,0,178,56,45,
- 0,162,3,69,178,56,47,0,178,56,
- 47,0,162,3,69,178,56,43,0,178,
- 56,43,0,220,3,126,188,167,128,10,
- 0,126,188,167,128,10,0,137,2,0,
- 127,0,220,3,125,259,167,128,10,0,
- 259,167,128,10,0,136,2,0,127,0,
- 220,3,136,0,220,3,140,0,162,64,
- 140,0,261,0,31,0,31,140,0,166,
- 0,135,0,162,3,0
+ 320,3,60,0,126,0,319,3,118,0,
+ 126,172,0,126,178,74,0,216,0,253,
+ 126,55,124,0,20,0,295,126,55,48,
+ 0,20,53,0,33,132,0,20,53,0,
+ 0,295,126,55,48,204,0,20,178,0,
+ 253,126,55,132,0,179,127,0,141,0,
+ 219,3,294,0,294,0,2,0,126,0,
+ 253,126,55,131,0,179,127,224,0,179,
+ 127,22,224,0,179,127,315,22,0,128,
+ 187,166,127,0,128,0,187,166,127,0,
+ 134,128,0,170,0,311,126,170,0,126,
+ 170,0,222,128,0,166,310,243,0,136,
+ 0,0,0,0,135,0,0,0,0,309,
+ 126,162,252,0,127,0,252,0,129,0,
+ 0,127,0,308,126,162,251,0,127,0,
+ 0,44,127,0,0,151,3,0,126,282,
+ 281,126,74,280,170,0,281,126,74,280,
+ 170,0,215,0,216,0,280,170,0,96,
+ 0,0,215,0,216,0,203,96,0,0,
+ 215,0,216,0,281,126,280,170,0,215,
+ 0,203,0,0,215,0,227,126,3,0,
+ 126,0,0,0,0,0,227,126,3,216,
+ 0,223,3,0,212,126,0,208,0,146,
+ 0,176,166,127,0,10,0,0,0,214,
+ 63,0,125,0,227,126,3,182,0,182,
+ 0,2,0,0,126,0,0,0,0,0,
+ 198,3,0,201,0,236,126,162,39,30,
+ 0,179,127,59,62,0,196,128,0,128,
+ 179,127,278,62,0,179,127,278,62,0,
+ 179,127,69,123,59,0,236,126,162,59,
+ 0,236,126,162,226,59,0,276,126,162,
+ 123,305,56,0,276,126,162,305,56,0,
+ 179,127,275,56,0,135,0,187,179,127,
+ 275,243,0,136,0,179,127,275,243,0,
+ 187,166,127,10,0,166,127,10,0,166,
+ 127,0,93,136,0,268,126,144,0,268,
+ 126,170,0,161,84,0,300,160,302,303,
+ 3,81,0,126,171,0,302,303,3,81,
+ 0,128,0,126,171,0,161,3,75,190,
+ 80,0,126,128,0,190,80,0,108,2,
+ 131,126,128,0,225,3,75,0,198,167,
+ 0,33,169,0,167,0,175,33,169,0,
+ 225,3,85,0,190,154,225,3,83,0,
+ 62,171,0,225,3,83,0,126,171,62,
+ 171,0,301,126,162,0,161,0,214,77,
+ 0,30,171,0,161,106,158,0,30,169,
+ 0,177,3,0,126,149,0,219,3,0,
+ 214,63,265,0,161,63,0,177,3,297,
+ 66,127,0,126,0,0,0,0,297,66,
+ 127,0,2,145,126,0,0,0,0,177,
+ 3,46,0,147,0,125,48,166,127,0,
+ 31,147,0,93,136,31,147,0,220,179,
+ 127,0,146,31,147,0,177,3,51,0,
+ 161,3,51,0,161,3,68,177,55,42,
+ 0,177,55,42,0,20,2,131,126,0,
+ 161,3,68,177,55,45,0,177,55,45,
+ 0,161,3,68,177,55,47,0,177,55,
+ 47,0,161,3,68,177,55,43,0,177,
+ 55,43,0,219,3,125,187,166,127,10,
+ 0,125,187,166,127,10,0,136,2,0,
+ 126,0,219,3,124,258,166,127,10,0,
+ 258,166,127,10,0,135,2,0,126,0,
+ 219,3,135,0,219,3,139,0,161,63,
+ 139,0,260,0,31,0,31,139,0,165,
+ 0,134,0,161,3,0
};
};
public final static char scopeRhs[] = ScopeRhs.scopeRhs;
@@ -2310,38 +2301,38 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public interface ScopeState {
public final static char scopeState[] = {0,
- 4823,4918,4899,4633,0,2742,1843,560,967,0,
- 3683,3628,3569,3461,3407,3353,3299,3245,3191,2900,
- 2846,3563,0,682,0,1536,1493,741,0,2545,
- 2435,0,3683,3628,3376,3041,3569,3461,3407,3353,
- 3299,3245,3040,3191,2900,2846,3669,3651,0,3872,
- 3197,3855,0,1090,926,0,1877,1174,0,4721,
- 4701,0,2708,1220,0,4551,4721,4538,2999,4701,
- 2975,3536,4616,2802,2392,3950,4505,2634,2557,2518,
- 0,4737,4638,0,4737,4638,3970,4451,4441,3863,
- 4358,4348,4338,3853,0,4737,4638,3970,4451,4441,
- 3863,4358,4348,4338,3853,3683,3628,3569,3461,3407,
- 3353,3299,3245,3191,2900,2846,0,3378,2880,0,
- 2392,4551,3572,4538,2999,3413,2634,3864,3380,3356,
- 2852,2989,821,3268,1035,0,669,581,0,880,
- 0,2500,2233,2060,1931,2999,2989,2975,2557,2518,
- 2438,861,0,4570,538,2990,0,4769,4765,4754,
- 4743,3996,3981,3670,3521,3448,3340,4893,3232,2887,
- 4889,4790,4000,2815,3580,2552,2540,742,3550,3012,
- 0,3027,3020,4769,4765,4754,2962,2869,4743,2324,
- 3996,3981,3670,3521,3448,3222,3112,3101,3340,2699,
- 4893,2681,2625,1282,1139,3232,2887,932,2472,4889,
- 3652,4790,3214,4000,2815,3580,737,2552,2540,742,
- 4570,628,2990,3550,3012,2457,2313,2229,2141,804,
- 2975,3536,4616,2802,2392,4551,3950,4721,4538,2999,
- 4505,2634,2557,4701,2518,1269,940,669,581,3116,
- 4316,4294,1188,2279,2361,2329,2478,2405,596,3169,
- 3143,2819,2747,2720,2654,3831,3807,3783,3758,2774,
- 4272,4250,4228,4206,4184,4162,4140,4118,4087,4057,
- 632,2022,2241,2191,2153,2103,2065,1051,1331,1286,
- 1226,883,1972,1934,827,747,691,1891,1848,1805,
- 1762,1719,1676,1633,1590,1547,1504,1461,538,1418,
- 1374,1145,1006,963,1096,0
+ 4822,4917,4898,4632,0,2741,1842,559,966,0,
+ 3682,3627,3568,3460,3406,3352,3298,3244,3190,2899,
+ 2845,3562,0,681,0,1535,1492,740,0,2544,
+ 2434,0,3682,3627,3375,3040,3568,3460,3406,3352,
+ 3298,3244,3039,3190,2899,2845,3668,3650,0,3871,
+ 3196,3854,0,1089,925,0,1876,1173,0,4720,
+ 4700,0,2707,1219,0,4550,4720,4537,2998,4700,
+ 2974,3535,4615,2801,2391,3949,4504,2633,2556,2517,
+ 0,4736,4637,0,4736,4637,3969,4450,4440,3862,
+ 4357,4347,4337,3852,0,4736,4637,3969,4450,4440,
+ 3862,4357,4347,4337,3852,3682,3627,3568,3460,3406,
+ 3352,3298,3244,3190,2899,2845,0,3377,2879,0,
+ 2391,4550,3571,4537,2998,3412,2633,3863,3379,3355,
+ 2851,2988,820,3267,1034,0,668,580,0,879,
+ 0,2499,2232,2059,1930,2998,2988,2974,2556,2517,
+ 2437,860,0,4569,537,2989,0,4768,4764,4753,
+ 4742,3995,3980,3669,3520,3447,3339,4892,3231,2886,
+ 4888,4789,3999,2814,3579,2551,2539,741,3549,3011,
+ 0,3026,3019,4768,4764,4753,2961,2868,4742,2323,
+ 3995,3980,3669,3520,3447,3221,3111,3100,3339,2698,
+ 4892,2680,2624,1281,1138,3231,2886,931,2471,4888,
+ 3651,4789,3213,3999,2814,3579,736,2551,2539,741,
+ 4569,627,2989,3549,3011,2456,2312,2228,2140,803,
+ 2974,3535,4615,2801,2391,4550,3949,4720,4537,2998,
+ 4504,2633,2556,4700,2517,1268,939,668,580,3115,
+ 4315,4293,1187,2278,2360,2328,2477,2404,595,3168,
+ 3142,2818,2746,2719,2653,3830,3806,3782,3757,2773,
+ 4271,4249,4227,4205,4183,4161,4139,4117,4086,4056,
+ 631,2021,2240,2190,2152,2102,2064,1050,1330,1285,
+ 1225,882,1971,1933,826,746,690,1890,1847,1804,
+ 1761,1718,1675,1632,1589,1546,1503,1460,537,1417,
+ 1373,1144,1005,962,1095,0
};
};
public final static char scopeState[] = ScopeState.scopeState;
@@ -2349,60 +2340,60 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public interface InSymb {
public final static char inSymb[] = {0,
- 0,297,127,268,51,42,45,47,43,10,
- 136,125,132,7,133,4,3,128,46,41,
- 5,26,25,6,9,38,37,140,146,148,
- 147,150,149,153,151,156,154,158,61,159,
- 71,3,56,56,56,56,128,3,56,56,
- 168,127,64,3,66,67,56,5,178,162,
- 168,127,66,67,167,166,125,3,124,126,
- 106,120,3,64,90,92,26,25,94,93,
- 6,96,95,69,56,88,89,9,98,97,
- 100,99,101,117,116,115,114,113,112,111,
- 110,109,108,70,107,102,178,162,178,178,
- 178,178,167,220,127,127,127,270,271,253,
- 272,244,273,57,274,275,10,128,64,64,
- 127,125,155,127,64,3,218,217,136,126,
- 125,10,128,64,298,3,188,4,178,48,
- 128,48,220,162,147,147,146,146,146,149,
- 149,149,149,148,148,151,150,150,154,153,
- 156,162,158,69,69,69,69,188,259,254,
- 257,254,213,128,177,163,311,276,306,276,
- 128,180,167,254,213,215,159,224,127,3,
- 128,167,206,3,299,168,152,261,188,128,
- 180,167,73,3,3,3,3,126,125,71,
- 167,6,127,167,231,126,125,128,124,163,
- 128,167,48,228,229,145,230,127,167,48,
- 178,127,127,4,221,5,48,162,162,162,
- 162,3,3,177,127,310,128,169,225,60,
- 48,205,63,171,313,126,125,232,232,180,
- 163,127,180,188,155,70,224,199,187,183,
- 128,3,127,71,228,188,155,263,266,64,
- 181,4,124,126,220,220,6,185,167,163,
- 227,56,48,279,281,127,3,183,232,232,
- 127,127,188,127,277,124,278,127,70,70,
- 3,180,167,199,127,213,155,126,127,3,
- 64,162,4,127,188,127,163,69,56,128,
- 75,127,213,312,73,290,199,125,128,127,
- 127,127,73,277,70,71,222,127,127,263,
- 220,215,129,237,30,48,171,65,60,63,
- 239,127,127,180,127,282,73,71,73,70,
- 167,213,315,225,22,128,127,228,222,39,
- 127,3,124,60,237,296,48,10,40,129,
- 282,163,294,128,295,71,128,22,316,180,
- 61,155,127,127,163,269,248,280,39,70,
- 128,71,69,56,231,231,283,127,71,180,
- 3,180,128,128,3,127,127,3,70,71,
- 155,128,180,127,70,70,127,302,80,78,
- 1,162,8,86,84,82,81,76,83,85,
- 79,77,60,75,220,180,180,321,222,237,
- 152,163,252,180,227,296,284,119,8,73,
- 215,73,3,3,3,191,3,124,162,124,
- 179,71,127,127,163,227,69,3,73,226,
- 168,226,304,145,76,226,127,127,40,91,
- 320,168,155,199,155,303,127,3,155,284,
- 309,231,155,155,127,70,191,161,269,162,
- 190,71,70,122,301,155,190,8,155
+ 0,296,126,267,51,42,45,47,43,10,
+ 135,124,131,7,132,4,3,127,46,41,
+ 5,26,25,6,9,38,37,139,145,147,
+ 146,149,148,152,150,155,153,157,60,158,
+ 70,3,55,55,55,55,127,3,55,55,
+ 167,126,63,3,65,66,55,5,177,161,
+ 167,126,65,66,166,165,124,3,123,125,
+ 105,119,3,63,89,91,26,25,93,92,
+ 6,95,94,68,55,87,88,9,97,96,
+ 99,98,100,116,115,114,113,112,111,110,
+ 109,108,107,69,106,101,177,161,177,177,
+ 177,177,166,219,126,126,126,269,270,252,
+ 271,243,272,56,273,274,10,127,63,63,
+ 126,124,154,126,63,3,217,216,135,125,
+ 124,10,127,63,297,3,187,4,177,48,
+ 127,48,219,161,146,146,145,145,145,148,
+ 148,148,148,147,147,150,149,149,153,152,
+ 155,161,157,68,68,68,68,187,258,253,
+ 256,253,212,127,176,162,310,275,305,275,
+ 127,179,166,253,212,214,158,223,126,3,
+ 127,166,205,3,298,167,151,260,187,127,
+ 179,166,72,3,3,3,3,125,124,70,
+ 166,6,126,166,230,125,124,127,123,162,
+ 127,166,48,227,228,144,229,126,166,48,
+ 177,126,126,4,220,5,48,161,161,161,
+ 161,3,3,176,126,309,127,168,224,59,
+ 48,204,62,170,312,125,124,231,231,179,
+ 162,126,179,187,154,69,223,198,186,182,
+ 127,3,126,70,227,187,154,262,265,63,
+ 180,4,123,125,219,219,6,184,166,162,
+ 226,55,48,278,280,126,3,182,231,231,
+ 126,126,187,126,276,123,277,126,69,69,
+ 3,179,166,198,126,212,154,125,126,3,
+ 63,161,4,126,187,126,162,68,55,127,
+ 74,126,212,311,72,289,198,124,127,126,
+ 126,126,72,276,69,70,221,126,126,262,
+ 219,214,128,236,30,48,170,64,59,62,
+ 238,126,126,179,126,281,72,70,72,69,
+ 166,212,314,224,22,127,126,227,221,39,
+ 126,3,123,59,236,295,48,10,40,128,
+ 281,162,293,127,294,70,127,22,315,179,
+ 60,154,126,126,162,268,247,279,39,69,
+ 127,70,68,55,230,230,282,126,70,179,
+ 3,179,127,127,3,126,126,3,69,70,
+ 154,127,179,126,69,69,126,301,79,77,
+ 1,161,8,85,83,81,80,75,82,84,
+ 78,76,59,74,219,179,179,320,221,236,
+ 151,162,251,179,226,295,283,118,8,72,
+ 214,72,3,3,3,190,3,123,161,123,
+ 178,70,126,126,162,226,68,3,72,225,
+ 167,225,303,144,75,225,126,126,40,90,
+ 319,167,154,198,154,302,126,3,154,283,
+ 308,230,154,154,126,69,190,160,268,161,
+ 189,70,69,121,300,154,189,8,154
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -2533,7 +2524,6 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
"SemiColon",
"LeftBrace",
"ERROR_TOKEN",
- "0",
"EOF_TOKEN",
"expression_parser_start",
"]",
@@ -2667,7 +2657,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public final String name(int index) { return name[index]; }
public final static int
- ERROR_SYMBOL = 62,
+ ERROR_SYMBOL = 61,
SCOPE_UBOUND = 116,
SCOPE_SIZE = 117,
MAX_NAME_LENGTH = 37;
@@ -2679,19 +2669,19 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP
public final static int
NUM_STATES = 539,
- NT_OFFSET = 123,
- LA_STATE_OFFSET = 5982,
+ NT_OFFSET = 122,
+ LA_STATE_OFFSET = 5980,
MAX_LA = 2147483647,
- NUM_RULES = 537,
+ NUM_RULES = 536,
NUM_NONTERMINALS = 202,
- NUM_SYMBOLS = 325,
+ NUM_SYMBOLS = 324,
SEGMENT_SIZE = 8192,
- START_STATE = 3207,
+ START_STATE = 3206,
IDENTIFIER_SYMBOL = 0,
- EOFT_SYMBOL = 121,
- EOLT_SYMBOL = 121,
- ACCEPT_ACTION = 5080,
- ERROR_ACTION = 5445;
+ EOFT_SYMBOL = 120,
+ EOLT_SYMBOL = 120,
+ ACCEPT_ACTION = 5079,
+ ERROR_ACTION = 5444;
public final static boolean BACKTRACK = true;
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java
index 5566e9c2be..3b82dd6b10 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java
@@ -15,69 +15,69 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
public interface CPPExpressionParsersym {
public final static int
- TK_asm = 65,
+ TK_asm = 64,
TK_auto = 28,
TK_bool = 11,
- TK_break = 77,
- TK_case = 78,
- TK_catch = 119,
+ TK_break = 76,
+ TK_case = 77,
+ TK_catch = 118,
TK_char = 12,
TK_class = 40,
TK_const = 23,
TK_const_cast = 42,
- TK_continue = 79,
- TK_default = 80,
- TK_delete = 66,
- TK_do = 81,
+ TK_continue = 78,
+ TK_default = 79,
+ TK_delete = 65,
+ TK_do = 80,
TK_double = 13,
TK_dynamic_cast = 43,
- TK_else = 122,
- TK_enum = 57,
+ TK_else = 121,
+ TK_enum = 56,
TK_explicit = 29,
- TK_export = 87,
+ TK_export = 86,
TK_extern = 30,
TK_false = 44,
TK_float = 14,
- TK_for = 82,
+ TK_for = 81,
TK_friend = 31,
- TK_goto = 83,
- TK_if = 84,
+ TK_goto = 82,
+ TK_if = 83,
TK_inline = 32,
TK_int = 15,
TK_long = 16,
TK_mutable = 33,
- TK_namespace = 60,
- TK_new = 67,
+ TK_namespace = 59,
+ TK_new = 66,
TK_operator = 7,
- TK_private = 103,
- TK_protected = 104,
- TK_public = 105,
+ TK_private = 102,
+ TK_protected = 103,
+ TK_public = 104,
TK_register = 34,
TK_reinterpret_cast = 45,
- TK_return = 85,
+ TK_return = 84,
TK_short = 17,
TK_signed = 18,
TK_sizeof = 46,
TK_static = 35,
TK_static_cast = 47,
- TK_struct = 58,
- TK_switch = 86,
+ TK_struct = 57,
+ TK_switch = 85,
TK_template = 48,
TK_this = 49,
- TK_throw = 61,
- TK_try = 75,
+ TK_throw = 60,
+ TK_try = 74,
TK_true = 50,
TK_typedef = 36,
TK_typeid = 51,
TK_typename = 10,
- TK_union = 59,
+ TK_union = 58,
TK_unsigned = 19,
- TK_using = 63,
+ TK_using = 62,
TK_virtual = 22,
TK_void = 20,
TK_volatile = 24,
TK_wchar_t = 21,
- TK_while = 76,
+ TK_while = 75,
TK_integer = 52,
TK_floating = 53,
TK_charconst = 54,
@@ -85,13 +85,13 @@ public interface CPPExpressionParsersym {
TK_identifier = 1,
TK_Completion = 2,
TK_EndOfCompletion = 8,
- TK_Invalid = 123,
- TK_LeftBracket = 64,
+ TK_Invalid = 122,
+ TK_LeftBracket = 63,
TK_LeftParen = 3,
- TK_Dot = 120,
- TK_DotStar = 92,
- TK_Arrow = 106,
- TK_ArrowStar = 90,
+ TK_Dot = 119,
+ TK_DotStar = 91,
+ TK_Arrow = 105,
+ TK_ArrowStar = 89,
TK_PlusPlus = 37,
TK_MinusMinus = 38,
TK_And = 9,
@@ -100,44 +100,43 @@ public interface CPPExpressionParsersym {
TK_Minus = 26,
TK_Tilde = 5,
TK_Bang = 41,
- TK_Slash = 93,
- TK_Percent = 94,
- TK_RightShift = 88,
- TK_LeftShift = 89,
- TK_LT = 56,
- TK_GT = 69,
- TK_LE = 95,
- TK_GE = 96,
- TK_EQ = 97,
- TK_NE = 98,
- TK_Caret = 99,
- TK_Or = 100,
- TK_AndAnd = 101,
- TK_OrOr = 102,
- TK_Question = 107,
- TK_Colon = 73,
+ TK_Slash = 92,
+ TK_Percent = 93,
+ TK_RightShift = 87,
+ TK_LeftShift = 88,
+ TK_LT = 55,
+ TK_GT = 68,
+ TK_LE = 94,
+ TK_GE = 95,
+ TK_EQ = 96,
+ TK_NE = 97,
+ TK_Caret = 98,
+ TK_Or = 99,
+ TK_AndAnd = 100,
+ TK_OrOr = 101,
+ TK_Question = 106,
+ TK_Colon = 72,
TK_ColonColon = 4,
- TK_DotDotDot = 91,
- TK_Assign = 70,
- TK_StarAssign = 108,
- TK_SlashAssign = 109,
- TK_PercentAssign = 110,
- TK_PlusAssign = 111,
- TK_MinusAssign = 112,
- TK_RightShiftAssign = 113,
- TK_LeftShiftAssign = 114,
- TK_AndAssign = 115,
- TK_CaretAssign = 116,
- TK_OrAssign = 117,
- TK_Comma = 71,
- TK_RightBracket = 118,
- TK_RightParen = 74,
- TK_RightBrace = 72,
+ TK_DotDotDot = 90,
+ TK_Assign = 69,
+ TK_StarAssign = 107,
+ TK_SlashAssign = 108,
+ TK_PercentAssign = 109,
+ TK_PlusAssign = 110,
+ TK_MinusAssign = 111,
+ TK_RightShiftAssign = 112,
+ TK_LeftShiftAssign = 113,
+ TK_AndAssign = 114,
+ TK_CaretAssign = 115,
+ TK_OrAssign = 116,
+ TK_Comma = 70,
+ TK_RightBracket = 117,
+ TK_RightParen = 73,
+ TK_RightBrace = 71,
TK_SemiColon = 27,
- TK_LeftBrace = 68,
- TK_ERROR_TOKEN = 62,
- TK_0 = 55,
- TK_EOF_TOKEN = 121;
+ TK_LeftBrace = 67,
+ TK_ERROR_TOKEN = 61,
+ TK_EOF_TOKEN = 120;
public final static String orderedTerminalSymbols[] = {
"",
@@ -195,7 +194,6 @@ public interface CPPExpressionParsersym {
"integer",
"floating",
"charconst",
- "0",
"LT",
"enum",
"struct",
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 f097e86450..ce4b0ccfca 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
@@ -28,6 +28,7 @@ import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
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.cpp.CPPSecondaryParserFactory;
public class CPPNoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
{
@@ -173,7 +174,7 @@ public CPPNoCastExpressionParser() { // constructor
}
private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) {
- action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack);
+ action = new CPPBuildASTParserAction (this, tu, astStack, CPPNodeFactory.getDefault() , CPPSecondaryParserFactory.getDefault() );
action.setParserOptions(options);
@@ -235,8 +236,8 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, CPPNoCastExpressionParsersym.TK_EOF_TOKEN));
}
-public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
- tokenMap = new TokenMap(CPPNoCastExpressionParsersym.orderedTerminalSymbols, mapFrom);
+public CPPNoCastExpressionParser(IParserActionTokenProvider parser) { // constructor
+ tokenMap = new TokenMap(CPPNoCastExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
}
@@ -271,1707 +272,1701 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 17: literal ::= 0
+ // Rule 17: literal ::= floating
//
- case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break;
+ case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break;
}
//
- // Rule 18: literal ::= floating
+ // Rule 18: literal ::= charconst
//
- case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break;
+ case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break;
}
//
- // Rule 19: literal ::= charconst
+ // Rule 19: literal ::= stringlit
//
- case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break;
+ case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break;
}
//
- // Rule 20: literal ::= stringlit
+ // Rule 20: literal ::= true
//
- case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break;
+ case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break;
}
//
- // Rule 21: literal ::= true
+ // Rule 21: literal ::= false
//
- case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break;
+ case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break;
}
//
- // Rule 22: literal ::= false
+ // Rule 22: literal ::= this
//
- case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break;
+ case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break;
}
//
- // Rule 23: literal ::= this
+ // Rule 24: primary_expression ::= ( expression )
//
- case 23: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break;
+ case 24: { action. consumeExpressionBracketed(); break;
}
//
- // Rule 25: primary_expression ::= ( expression )
+ // Rule 26: id_expression ::= qualified_or_unqualified_name
//
- case 25: { action. consumeExpressionBracketed(); break;
+ case 26: { action. consumeExpressionName(); break;
}
//
- // Rule 27: id_expression ::= qualified_or_unqualified_name
+ // Rule 33: unqualified_id_name ::= ~ identifier_token
//
- case 27: { action. consumeExpressionName(); break;
+ case 33: { action. consumeDestructorName(); break;
}
//
- // Rule 34: unqualified_id_name ::= ~ identifier_token
+ // Rule 34: unqualified_id_name ::= ~ template_id_name
//
- case 34: { action. consumeDestructorName(); break;
+ case 34: { action. consumeDestructorNameTemplateId(); break;
}
//
- // Rule 35: unqualified_id_name ::= ~ template_id_name
+ // Rule 35: identifier_name ::= identifier_token
//
- case 35: { action. consumeDestructorNameTemplateId(); break;
+ case 35: { action. consumeIdentifierName(); break;
}
//
- // Rule 36: identifier_name ::= identifier_token
+ // Rule 36: template_opt ::= template
//
- case 36: { action. consumeIdentifierName(); break;
+ case 36: { action. consumePlaceHolder(); break;
}
//
- // Rule 37: template_opt ::= template
+ // Rule 37: template_opt ::= $Empty
//
- case 37: { action. consumePlaceHolder(); break;
+ case 37: { action. consumeEmpty(); break;
}
//
- // Rule 38: template_opt ::= $Empty
+ // Rule 38: dcolon_opt ::= ::
//
- case 38: { action. consumeEmpty(); break;
+ case 38: { action. consumeToken(); break;
}
//
- // Rule 39: dcolon_opt ::= ::
+ // Rule 39: dcolon_opt ::= $Empty
//
- case 39: { action. consumeToken(); break;
+ case 39: { action. consumeEmpty(); break;
}
//
- // Rule 40: dcolon_opt ::= $Empty
+ // Rule 40: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
//
- case 40: { action. consumeEmpty(); break;
+ case 40: { action. consumeQualifiedId(true); break;
}
//
- // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
+ // Rule 41: qualified_id_name ::= :: unqualified_id_name
//
- case 41: { action. consumeQualifiedId(true); break;
+ case 41: { action. consumeGlobalQualifiedId(); break;
}
//
- // Rule 42: qualified_id_name ::= :: unqualified_id_name
+ // Rule 42: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
//
- case 42: { action. consumeGlobalQualifiedId(); break;
+ case 42: { action. consumeNestedNameSpecifier(true); break;
}
//
- // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
+ // Rule 43: nested_name_specifier ::= class_or_namespace_name ::
//
- case 43: { action. consumeNestedNameSpecifier(true); break;
+ case 43: { action. consumeNestedNameSpecifier(false); break;
}
//
- // Rule 44: nested_name_specifier ::= class_or_namespace_name ::
+ // Rule 44: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
//
- case 44: { action. consumeNestedNameSpecifier(false); break;
+ case 44: { action. consumeNestedNameSpecifier(true); break;
}
//
- // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
+ // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
//
- case 45: { action. consumeNestedNameSpecifier(true); break;
+ case 45: { action. consumeNestedNameSpecifier(false); break;
}
//
- // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
+ // Rule 46: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
//
- case 46: { action. consumeNestedNameSpecifier(false); break;
+ case 46: { action. consumeNameWithTemplateKeyword(); break;
}
//
- // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
+ // Rule 48: nested_name_specifier_opt ::= $Empty
//
- case 47: { action. consumeNameWithTemplateKeyword(); break;
+ case 48: { action. consumeNestedNameSpecifierEmpty(); break;
}
//
- // Rule 49: nested_name_specifier_opt ::= $Empty
+ // Rule 51: postfix_expression ::= postfix_expression [ expression ]
//
- case 49: { action. consumeNestedNameSpecifierEmpty(); break;
+ case 51: { action. consumeExpressionArraySubscript(); break;
}
//
- // Rule 52: postfix_expression ::= postfix_expression [ expression ]
+ // Rule 52: postfix_expression ::= postfix_expression ( expression_list_opt )
//
- case 52: { action. consumeExpressionArraySubscript(); break;
+ case 52: { action. consumeExpressionFunctionCall(); break;
}
//
- // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt )
+ // Rule 53: postfix_expression ::= simple_type_specifier ( expression_list_opt )
//
- case 53: { action. consumeExpressionFunctionCall(); break;
+ case 53: { action. consumeExpressionSimpleTypeConstructor(); break;
}
//
- // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt )
+ // Rule 54: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
//
- case 54: { action. consumeExpressionSimpleTypeConstructor(); break;
+ case 54: { action. consumeExpressionTypeName(); break;
}
//
- // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
+ // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
//
case 55: { action. consumeExpressionTypeName(); break;
}
//
- // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
+ // Rule 56: postfix_expression ::= postfix_expression . qualified_or_unqualified_name
//
- case 56: { action. consumeExpressionTypeName(); break;
+ case 56: { action. consumeExpressionFieldReference(false, false); break;
}
//
- // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name
+ // Rule 57: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
//
- case 57: { action. consumeExpressionFieldReference(false, false); break;
+ case 57: { action. consumeExpressionFieldReference(true, false); break;
}
//
- // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
+ // Rule 58: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
//
- case 58: { action. consumeExpressionFieldReference(true, false); break;
+ case 58: { action. consumeExpressionFieldReference(false, true); break;
}
//
- // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
+ // Rule 59: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
//
- case 59: { action. consumeExpressionFieldReference(false, true); break;
+ case 59: { action. consumeExpressionFieldReference(true, true); break;
}
//
- // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
+ // Rule 60: postfix_expression ::= postfix_expression . pseudo_destructor_name
//
- case 60: { action. consumeExpressionFieldReference(true, true); break;
+ case 60: { action. consumeExpressionFieldReference(false, false); break;
}
//
- // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name
+ // Rule 61: postfix_expression ::= postfix_expression -> pseudo_destructor_name
//
- case 61: { action. consumeExpressionFieldReference(false, false); break;
+ case 61: { action. consumeExpressionFieldReference(true, false); break;
}
//
- // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name
+ // Rule 62: postfix_expression ::= postfix_expression ++
//
- case 62: { action. consumeExpressionFieldReference(true, false); break;
+ case 62: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
}
//
- // Rule 63: postfix_expression ::= postfix_expression ++
+ // Rule 63: postfix_expression ::= postfix_expression --
//
- case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
}
//
- // Rule 64: postfix_expression ::= postfix_expression --
+ // Rule 64: postfix_expression ::= dynamic_cast < type_id > ( expression )
//
- case 64: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ case 64: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break;
}
//
- // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression )
+ // Rule 65: postfix_expression ::= static_cast < type_id > ( expression )
//
- case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break;
+ case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break;
}
//
- // Rule 66: postfix_expression ::= static_cast < type_id > ( expression )
+ // Rule 66: postfix_expression ::= reinterpret_cast < type_id > ( expression )
//
- case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break;
+ case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break;
}
//
- // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression )
+ // Rule 67: postfix_expression ::= const_cast < type_id > ( expression )
//
- case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break;
+ case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break;
}
//
- // Rule 68: postfix_expression ::= const_cast < type_id > ( expression )
+ // Rule 68: postfix_expression ::= typeid ( expression )
//
- case 68: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break;
+ case 68: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break;
}
//
- // Rule 69: postfix_expression ::= typeid ( expression )
+ // Rule 69: postfix_expression ::= typeid ( type_id )
//
- case 69: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break;
+ case 69: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break;
}
//
- // Rule 70: postfix_expression ::= typeid ( type_id )
+ // Rule 70: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
//
- case 70: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break;
+ case 70: { action. consumePsudoDestructorName(true); break;
}
//
- // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
+ // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
//
case 71: { action. consumePsudoDestructorName(true); break;
}
//
- // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
+ // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
//
- case 72: { action. consumePsudoDestructorName(true); break;
+ case 72: { action. consumePsudoDestructorName(false); break;
}
//
- // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
+ // Rule 73: destructor_type_name ::= ~ identifier_token
//
- case 73: { action. consumePsudoDestructorName(false); break;
+ case 73: { action. consumeDestructorName(); break;
}
//
- // Rule 74: destructor_type_name ::= ~ identifier_token
+ // Rule 74: destructor_type_name ::= ~ template_id_name
//
- case 74: { action. consumeDestructorName(); break;
+ case 74: { action. consumeDestructorNameTemplateId(); break;
}
//
- // Rule 75: destructor_type_name ::= ~ template_id_name
+ // Rule 78: unary_expression ::= ++ cast_expression
//
- case 75: { action. consumeDestructorNameTemplateId(); break;
+ case 78: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
}
//
- // Rule 79: unary_expression ::= ++ cast_expression
+ // Rule 79: unary_expression ::= -- cast_expression
//
- case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
}
//
- // Rule 80: unary_expression ::= -- cast_expression
+ // Rule 80: unary_expression ::= & cast_expression
//
- case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
}
//
- // Rule 81: unary_expression ::= & cast_expression
+ // Rule 81: unary_expression ::= * cast_expression
//
- case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
}
//
- // Rule 82: unary_expression ::= * cast_expression
+ // Rule 82: unary_expression ::= + cast_expression
//
- case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
}
//
- // Rule 83: unary_expression ::= + cast_expression
+ // Rule 83: unary_expression ::= - cast_expression
//
- case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
}
//
- // Rule 84: unary_expression ::= - cast_expression
+ // Rule 84: unary_expression ::= ~ cast_expression
//
- case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
}
//
- // Rule 85: unary_expression ::= ~ cast_expression
+ // Rule 85: unary_expression ::= ! cast_expression
//
- case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
}
//
- // Rule 86: unary_expression ::= ! cast_expression
+ // Rule 86: unary_expression ::= sizeof unary_expression
//
- case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
}
//
- // Rule 87: unary_expression ::= sizeof unary_expression
+ // Rule 87: unary_expression ::= sizeof ( type_id )
//
- case 87: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ case 87: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 88: unary_expression ::= sizeof ( type_id )
+ // Rule 88: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
//
- case 88: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break;
+ case 88: { action. consumeExpressionNew(true); break;
}
//
- // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
+ // Rule 89: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
//
- case 89: { action. consumeExpressionNew(true); break;
+ case 89: { action. consumeExpressionNew(false); break;
}
//
- // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
+ // Rule 91: new_placement_opt ::= $Empty
//
- case 90: { action. consumeExpressionNew(false); break;
+ case 91: { action. consumeEmpty(); break;
}
//
- // Rule 92: new_placement_opt ::= $Empty
+ // Rule 92: new_type_id ::= type_specifier_seq
//
- case 92: { action. consumeEmpty(); break;
+ case 92: { action. consumeTypeId(false); break;
}
//
- // Rule 93: new_type_id ::= type_specifier_seq
+ // Rule 93: new_type_id ::= type_specifier_seq new_declarator
//
- case 93: { action. consumeTypeId(false); break;
+ case 93: { action. consumeTypeId(true); break;
}
//
- // Rule 94: new_type_id ::= type_specifier_seq new_declarator
+ // Rule 94: new_declarator ::= <openscope-ast> new_pointer_operators
//
- case 94: { action. consumeTypeId(true); break;
+ case 94: { action. consumeNewDeclarator(); break;
}
//
- // Rule 95: new_declarator ::= <openscope-ast> new_pointer_operators
+ // Rule 101: new_initializer ::= ( expression_list_opt )
//
- case 95: { action. consumeNewDeclarator(); break;
+ case 101: { action. consumeNewInitializer(); break;
}
//
- // Rule 102: new_initializer ::= ( expression_list_opt )
+ // Rule 103: new_initializer_opt ::= $Empty
//
- case 102: { action. consumeNewInitializer(); break;
+ case 103: { action. consumeEmpty(); break;
}
//
- // Rule 104: new_initializer_opt ::= $Empty
+ // Rule 104: delete_expression ::= dcolon_opt delete cast_expression
//
- case 104: { action. consumeEmpty(); break;
+ case 104: { action. consumeExpressionDelete(false); break;
}
//
- // Rule 105: delete_expression ::= dcolon_opt delete cast_expression
+ // Rule 105: delete_expression ::= dcolon_opt delete [ ] cast_expression
//
- case 105: { action. consumeExpressionDelete(false); break;
+ case 105: { action. consumeExpressionDelete(true); break;
}
//
- // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression
+ // Rule 108: pm_expression ::= pm_expression .* cast_expression
//
- case 106: { action. consumeExpressionDelete(true); break;
+ case 108: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break;
}
//
- // Rule 109: pm_expression ::= pm_expression .* cast_expression
+ // Rule 109: pm_expression ::= pm_expression ->* cast_expression
//
- case 109: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break;
+ case 109: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break;
}
//
- // Rule 110: pm_expression ::= pm_expression ->* cast_expression
+ // Rule 111: multiplicative_expression ::= multiplicative_expression * pm_expression
//
- case 110: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break;
+ case 111: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break;
}
//
- // Rule 112: multiplicative_expression ::= multiplicative_expression * pm_expression
+ // Rule 112: multiplicative_expression ::= multiplicative_expression / pm_expression
//
- case 112: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break;
+ case 112: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break;
}
//
- // Rule 113: multiplicative_expression ::= multiplicative_expression / pm_expression
+ // Rule 113: multiplicative_expression ::= multiplicative_expression % pm_expression
//
- case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break;
+ case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break;
}
//
- // Rule 114: multiplicative_expression ::= multiplicative_expression % pm_expression
+ // Rule 115: additive_expression ::= additive_expression + multiplicative_expression
//
- case 114: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break;
+ case 115: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break;
}
//
- // Rule 116: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 116: additive_expression ::= additive_expression - multiplicative_expression
//
- case 116: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break;
+ case 116: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break;
}
//
- // Rule 117: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 118: shift_expression ::= shift_expression << additive_expression
//
- case 117: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break;
+ case 118: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 119: shift_expression ::= shift_expression << additive_expression
+ // Rule 119: shift_expression ::= shift_expression >> additive_expression
//
- case 119: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break;
+ case 119: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 120: shift_expression ::= shift_expression >> additive_expression
+ // Rule 121: relational_expression ::= relational_expression < shift_expression
//
- case 120: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break;
+ case 121: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 122: relational_expression ::= relational_expression < shift_expression
+ // Rule 122: relational_expression ::= relational_expression > shift_expression
//
- case 122: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break;
+ case 122: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 123: relational_expression ::= relational_expression > shift_expression
+ // Rule 123: relational_expression ::= relational_expression <= shift_expression
//
- case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break;
+ case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 124: relational_expression ::= relational_expression <= shift_expression
+ // Rule 124: relational_expression ::= relational_expression >= shift_expression
//
- case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break;
+ case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 125: relational_expression ::= relational_expression >= shift_expression
+ // Rule 126: equality_expression ::= equality_expression == relational_expression
//
- case 125: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break;
+ case 126: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break;
}
//
- // Rule 127: equality_expression ::= equality_expression == relational_expression
+ // Rule 127: equality_expression ::= equality_expression != relational_expression
//
- case 127: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break;
+ case 127: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break;
}
//
- // Rule 128: equality_expression ::= equality_expression != relational_expression
+ // Rule 129: and_expression ::= and_expression & equality_expression
//
- case 128: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break;
+ case 129: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 130: and_expression ::= and_expression & equality_expression
+ // Rule 131: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
//
- case 130: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break;
+ case 131: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 132: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
+ // Rule 133: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
//
- case 132: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break;
+ case 133: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 134: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
+ // Rule 135: logical_and_expression ::= logical_and_expression && inclusive_or_expression
//
- case 134: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break;
+ case 135: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 136: logical_and_expression ::= logical_and_expression && inclusive_or_expression
+ // Rule 137: logical_or_expression ::= logical_or_expression || logical_and_expression
//
- case 136: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break;
+ case 137: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 138: logical_or_expression ::= logical_or_expression || logical_and_expression
+ // Rule 139: conditional_expression ::= logical_or_expression ? expression : assignment_expression
//
- case 138: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break;
+ case 139: { action. consumeExpressionConditional(); break;
}
//
- // Rule 140: conditional_expression ::= logical_or_expression ? expression : assignment_expression
+ // Rule 140: throw_expression ::= throw
//
- case 140: { action. consumeExpressionConditional(); break;
+ case 140: { action. consumeExpressionThrow(false); break;
}
//
- // Rule 141: throw_expression ::= throw
+ // Rule 141: throw_expression ::= throw assignment_expression
//
- case 141: { action. consumeExpressionThrow(false); break;
+ case 141: { action. consumeExpressionThrow(true); break;
}
//
- // Rule 142: throw_expression ::= throw assignment_expression
+ // Rule 144: assignment_expression ::= logical_or_expression = assignment_expression
//
- case 142: { action. consumeExpressionThrow(true); break;
+ case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break;
}
//
- // Rule 145: assignment_expression ::= logical_or_expression = assignment_expression
+ // Rule 145: assignment_expression ::= logical_or_expression *= assignment_expression
//
- case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break;
+ case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 146: assignment_expression ::= logical_or_expression *= assignment_expression
+ // Rule 146: assignment_expression ::= logical_or_expression /= assignment_expression
//
- case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break;
+ case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 147: assignment_expression ::= logical_or_expression /= assignment_expression
+ // Rule 147: assignment_expression ::= logical_or_expression %= assignment_expression
//
- case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break;
+ case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 148: assignment_expression ::= logical_or_expression %= assignment_expression
+ // Rule 148: assignment_expression ::= logical_or_expression += assignment_expression
//
- case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break;
+ case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 149: assignment_expression ::= logical_or_expression += assignment_expression
+ // Rule 149: assignment_expression ::= logical_or_expression -= assignment_expression
//
- case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break;
+ case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 150: assignment_expression ::= logical_or_expression -= assignment_expression
+ // Rule 150: assignment_expression ::= logical_or_expression >>= assignment_expression
//
- case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break;
+ case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 151: assignment_expression ::= logical_or_expression >>= assignment_expression
+ // Rule 151: assignment_expression ::= logical_or_expression <<= assignment_expression
//
- case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break;
+ case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 152: assignment_expression ::= logical_or_expression <<= assignment_expression
+ // Rule 152: assignment_expression ::= logical_or_expression &= assignment_expression
//
- case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break;
+ case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 153: assignment_expression ::= logical_or_expression &= assignment_expression
+ // Rule 153: assignment_expression ::= logical_or_expression ^= assignment_expression
//
- case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break;
+ case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 154: assignment_expression ::= logical_or_expression ^= assignment_expression
+ // Rule 154: assignment_expression ::= logical_or_expression |= assignment_expression
//
- case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break;
+ case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 155: assignment_expression ::= logical_or_expression |= assignment_expression
+ // Rule 156: expression_list ::= <openscope-ast> expression_list_actual
//
- case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break;
+ case 156: { action. consumeExpressionList(); break;
}
//
- // Rule 157: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 160: expression_list_opt ::= $Empty
//
- case 157: { action. consumeExpressionList(); break;
+ case 160: { action. consumeEmpty(); break;
}
//
- // Rule 161: expression_list_opt ::= $Empty
+ // Rule 162: expression_opt ::= $Empty
//
- case 161: { action. consumeEmpty(); break;
+ case 162: { action. consumeEmpty(); break;
}
//
- // Rule 163: expression_opt ::= $Empty
+ // Rule 165: constant_expression_opt ::= $Empty
//
- case 163: { action. consumeEmpty(); break;
+ case 165: { action. consumeEmpty(); break;
}
//
- // Rule 166: constant_expression_opt ::= $Empty
+ // Rule 174: statement ::= ERROR_TOKEN
//
- case 166: { action. consumeEmpty(); break;
+ case 174: { action. consumeStatementProblem(); break;
}
//
- // Rule 175: statement ::= ERROR_TOKEN
+ // Rule 175: labeled_statement ::= identifier : statement
//
- case 175: { action. consumeStatementProblem(); break;
+ case 175: { action. consumeStatementLabeled(); break;
}
//
- // Rule 176: labeled_statement ::= identifier : statement
+ // Rule 176: labeled_statement ::= case constant_expression : statement
//
- case 176: { action. consumeStatementLabeled(); break;
+ case 176: { action. consumeStatementCase(); break;
}
//
- // Rule 177: labeled_statement ::= case constant_expression : statement
+ // Rule 177: labeled_statement ::= default : statement
//
- case 177: { action. consumeStatementCase(); break;
+ case 177: { action. consumeStatementDefault(); break;
}
//
- // Rule 178: labeled_statement ::= default : statement
+ // Rule 178: expression_statement ::= expression ;
//
- case 178: { action. consumeStatementDefault(); break;
+ case 178: { action. consumeStatementExpression(); break;
}
//
- // Rule 179: expression_statement ::= expression ;
+ // Rule 179: expression_statement ::= ;
//
- case 179: { action. consumeStatementExpression(); break;
+ case 179: { action. consumeStatementNull(); break;
}
//
- // Rule 180: expression_statement ::= ;
+ // Rule 180: compound_statement ::= { <openscope-ast> statement_seq }
//
- case 180: { action. consumeStatementNull(); break;
+ case 180: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 181: compound_statement ::= { <openscope-ast> statement_seq }
+ // Rule 181: compound_statement ::= { }
//
- case 181: { action. consumeStatementCompoundStatement(true); break;
+ case 181: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 182: compound_statement ::= { }
+ // Rule 184: selection_statement ::= if ( condition ) statement
//
- case 182: { action. consumeStatementCompoundStatement(false); break;
+ case 184: { action. consumeStatementIf(false); break;
}
//
- // Rule 185: selection_statement ::= if ( condition ) statement
+ // Rule 185: selection_statement ::= if ( condition ) statement else statement
//
- case 185: { action. consumeStatementIf(false); break;
+ case 185: { action. consumeStatementIf(true); break;
}
//
- // Rule 186: selection_statement ::= if ( condition ) statement else statement
+ // Rule 186: selection_statement ::= switch ( condition ) statement
//
- case 186: { action. consumeStatementIf(true); break;
+ case 186: { action. consumeStatementSwitch(); break;
}
//
- // Rule 187: selection_statement ::= switch ( condition ) statement
+ // Rule 188: condition ::= type_specifier_seq declarator = assignment_expression
//
- case 187: { action. consumeStatementSwitch(); break;
+ case 188: { action. consumeConditionDeclaration(); break;
}
//
- // Rule 189: condition ::= type_specifier_seq declarator = assignment_expression
+ // Rule 190: condition_opt ::= $Empty
//
- case 189: { action. consumeConditionDeclaration(); break;
+ case 190: { action. consumeEmpty(); break;
}
//
- // Rule 191: condition_opt ::= $Empty
+ // Rule 191: iteration_statement ::= while ( condition ) statement
//
- case 191: { action. consumeEmpty(); break;
+ case 191: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 192: iteration_statement ::= while ( condition ) statement
+ // Rule 192: iteration_statement ::= do statement while ( expression ) ;
//
- case 192: { action. consumeStatementWhileLoop(); break;
+ case 192: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 193: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 193: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
//
- case 193: { action. consumeStatementDoLoop(); break;
+ case 193: { action. consumeStatementForLoop(); break;
}
//
- // Rule 194: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
+ // Rule 195: for_init_statement ::= simple_declaration_with_declspec
//
- case 194: { action. consumeStatementForLoop(); break;
+ case 195: { action. consumeStatementDeclaration(); break;
}
//
- // Rule 196: for_init_statement ::= simple_declaration_with_declspec
+ // Rule 196: jump_statement ::= break ;
//
- case 196: { action. consumeStatementDeclaration(); break;
+ case 196: { action. consumeStatementBreak(); break;
}
//
- // Rule 197: jump_statement ::= break ;
+ // Rule 197: jump_statement ::= continue ;
//
- case 197: { action. consumeStatementBreak(); break;
+ case 197: { action. consumeStatementContinue(); break;
}
//
- // Rule 198: jump_statement ::= continue ;
+ // Rule 198: jump_statement ::= return expression ;
//
- case 198: { action. consumeStatementContinue(); break;
+ case 198: { action. consumeStatementReturn(true); break;
}
//
- // Rule 199: jump_statement ::= return expression ;
+ // Rule 199: jump_statement ::= return ;
//
- case 199: { action. consumeStatementReturn(true); break;
+ case 199: { action. consumeStatementReturn(false); break;
}
//
- // Rule 200: jump_statement ::= return ;
+ // Rule 200: jump_statement ::= goto identifier_token ;
//
- case 200: { action. consumeStatementReturn(false); break;
+ case 200: { action. consumeStatementGoto(); break;
}
//
- // Rule 201: jump_statement ::= goto identifier_token ;
+ // Rule 201: declaration_statement ::= block_declaration
//
- case 201: { action. consumeStatementGoto(); break;
+ case 201: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 202: declaration_statement ::= block_declaration
+ // Rule 202: declaration_statement ::= function_definition
//
- case 202: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 202: { action. consumeStatementDeclaration(); break;
}
//
- // Rule 203: declaration_statement ::= function_definition
+ // Rule 210: declaration ::= ERROR_TOKEN
//
- case 203: { action. consumeStatementDeclaration(); break;
+ case 210: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 211: declaration ::= ERROR_TOKEN
+ // Rule 220: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
//
- case 211: { action. consumeDeclarationProblem(); break;
+ case 220: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 221: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
+ // Rule 221: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
//
case 221: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
+ // Rule 222: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 222: { action. consumeDeclarationSimple(true); break;
+ case 222: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 223: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 223: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
//
- case 223: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 223: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 224: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
+ // Rule 224: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 224: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 225: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 225: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
case 225: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 226: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 226: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
//
- case 226: { action. consumeDeclarationSpecifiersComposite(); break;
+ case 226: { action. consumeDeclarationSpecifiersTypeName(); break;
}
//
- // Rule 227: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
+ // Rule 228: declaration_specifiers_opt ::= $Empty
//
- case 227: { action. consumeDeclarationSpecifiersTypeName(); break;
+ case 228: { action. consumeEmpty(); break;
}
//
- // Rule 229: declaration_specifiers_opt ::= $Empty
+ // Rule 232: no_type_declaration_specifier ::= friend
//
- case 229: { action. consumeEmpty(); break;
+ case 232: { action. consumeToken(); break;
}
//
- // Rule 233: no_type_declaration_specifier ::= friend
+ // Rule 233: no_type_declaration_specifier ::= typedef
//
case 233: { action. consumeToken(); break;
}
//
- // Rule 234: no_type_declaration_specifier ::= typedef
+ // Rule 253: storage_class_specifier ::= auto
//
- case 234: { action. consumeToken(); break;
+ case 253: { action. consumeToken(); break;
}
//
- // Rule 254: storage_class_specifier ::= auto
+ // Rule 254: storage_class_specifier ::= register
//
case 254: { action. consumeToken(); break;
}
//
- // Rule 255: storage_class_specifier ::= register
+ // Rule 255: storage_class_specifier ::= static
//
case 255: { action. consumeToken(); break;
}
//
- // Rule 256: storage_class_specifier ::= static
+ // Rule 256: storage_class_specifier ::= extern
//
case 256: { action. consumeToken(); break;
}
//
- // Rule 257: storage_class_specifier ::= extern
+ // Rule 257: storage_class_specifier ::= mutable
//
case 257: { action. consumeToken(); break;
}
//
- // Rule 258: storage_class_specifier ::= mutable
+ // Rule 258: function_specifier ::= inline
//
case 258: { action. consumeToken(); break;
}
//
- // Rule 259: function_specifier ::= inline
+ // Rule 259: function_specifier ::= virtual
//
case 259: { action. consumeToken(); break;
}
//
- // Rule 260: function_specifier ::= virtual
+ // Rule 260: function_specifier ::= explicit
//
case 260: { action. consumeToken(); break;
}
//
- // Rule 261: function_specifier ::= explicit
+ // Rule 261: simple_type_specifier ::= char
//
case 261: { action. consumeToken(); break;
}
//
- // Rule 262: simple_type_specifier ::= char
+ // Rule 262: simple_type_specifier ::= wchar_t
//
case 262: { action. consumeToken(); break;
}
//
- // Rule 263: simple_type_specifier ::= wchar_t
+ // Rule 263: simple_type_specifier ::= bool
//
case 263: { action. consumeToken(); break;
}
//
- // Rule 264: simple_type_specifier ::= bool
+ // Rule 264: simple_type_specifier ::= short
//
case 264: { action. consumeToken(); break;
}
//
- // Rule 265: simple_type_specifier ::= short
+ // Rule 265: simple_type_specifier ::= int
//
case 265: { action. consumeToken(); break;
}
//
- // Rule 266: simple_type_specifier ::= int
+ // Rule 266: simple_type_specifier ::= long
//
case 266: { action. consumeToken(); break;
}
//
- // Rule 267: simple_type_specifier ::= long
+ // Rule 267: simple_type_specifier ::= signed
//
case 267: { action. consumeToken(); break;
}
//
- // Rule 268: simple_type_specifier ::= signed
+ // Rule 268: simple_type_specifier ::= unsigned
//
case 268: { action. consumeToken(); break;
}
//
- // Rule 269: simple_type_specifier ::= unsigned
+ // Rule 269: simple_type_specifier ::= float
//
case 269: { action. consumeToken(); break;
}
//
- // Rule 270: simple_type_specifier ::= float
+ // Rule 270: simple_type_specifier ::= double
//
case 270: { action. consumeToken(); break;
}
//
- // Rule 271: simple_type_specifier ::= double
+ // Rule 271: simple_type_specifier ::= void
//
case 271: { action. consumeToken(); break;
}
//
- // Rule 272: simple_type_specifier ::= void
+ // Rule 274: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 272: { action. consumeToken(); break;
+ case 274: { action. consumeQualifiedId(false); break;
}
//
- // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
//
case 275: { action. consumeQualifiedId(false); break;
}
//
- // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
+ // Rule 276: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
//
case 276: { action. consumeQualifiedId(false); break;
}
//
- // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
+ // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
//
- case 277: { action. consumeQualifiedId(false); break;
+ case 277: { action. consumeQualifiedId(true); break;
}
//
- // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
+ // Rule 279: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
//
- case 278: { action. consumeQualifiedId(true); break;
+ case 279: { action. consumeTypeSpecifierElaborated(false); break;
}
//
- // Rule 280: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
+ // Rule 280: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
//
- case 280: { action. consumeTypeSpecifierElaborated(false); break;
+ case 280: { action. consumeTypeSpecifierElaborated(true); break;
}
//
- // Rule 281: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
+ // Rule 281: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
//
- case 281: { action. consumeTypeSpecifierElaborated(true); break;
+ case 281: { action. consumeTypeSpecifierElaborated(false); break;
}
//
- // Rule 282: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
+ // Rule 283: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt }
//
- case 282: { action. consumeTypeSpecifierElaborated(false); break;
+ case 283: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 284: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt }
+ // Rule 284: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt }
//
- case 284: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 284: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 285: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt }
+ // Rule 290: enumerator_definition ::= identifier_token
//
- case 285: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 290: { action. consumeEnumerator(false); break;
}
//
- // Rule 291: enumerator_definition ::= identifier_token
+ // Rule 291: enumerator_definition ::= identifier_token = constant_expression
//
- case 291: { action. consumeEnumerator(false); break;
+ case 291: { action. consumeEnumerator(true); break;
}
//
- // Rule 292: enumerator_definition ::= identifier_token = constant_expression
+ // Rule 295: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt }
//
- case 292: { action. consumeEnumerator(true); break;
+ case 295: { action. consumeNamespaceDefinition(true); break;
}
//
- // Rule 296: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt }
+ // Rule 296: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt }
//
- case 296: { action. consumeNamespaceDefinition(true); break;
+ case 296: { action. consumeNamespaceDefinition(false); break;
}
//
- // Rule 297: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt }
+ // Rule 297: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
//
- case 297: { action. consumeNamespaceDefinition(false); break;
+ case 297: { action. consumeNamespaceAliasDefinition(); break;
}
//
- // Rule 298: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
+ // Rule 298: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
//
- case 298: { action. consumeNamespaceAliasDefinition(); break;
+ case 298: { action. consumeUsingDeclaration(); break;
}
//
- // Rule 299: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
+ // Rule 299: typename_opt ::= typename
//
- case 299: { action. consumeUsingDeclaration(); break;
+ case 299: { action. consumePlaceHolder(); break;
}
//
- // Rule 300: typename_opt ::= typename
+ // Rule 300: typename_opt ::= $Empty
//
- case 300: { action. consumePlaceHolder(); break;
+ case 300: { action. consumeEmpty(); break;
}
//
- // Rule 301: typename_opt ::= $Empty
+ // Rule 301: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
//
- case 301: { action. consumeEmpty(); break;
+ case 301: { action. consumeUsingDirective(); break;
}
//
- // Rule 302: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
+ // Rule 302: asm_definition ::= asm ( stringlit ) ;
//
- case 302: { action. consumeUsingDirective(); break;
+ case 302: { action. consumeDeclarationASM(); break;
}
//
- // Rule 303: asm_definition ::= asm ( stringlit ) ;
+ // Rule 303: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
//
- case 303: { action. consumeDeclarationASM(); break;
+ case 303: { action. consumeLinkageSpecification(); break;
}
//
- // Rule 304: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
+ // Rule 304: linkage_specification ::= extern stringlit <openscope-ast> declaration
//
case 304: { action. consumeLinkageSpecification(); break;
}
//
- // Rule 305: linkage_specification ::= extern stringlit <openscope-ast> declaration
+ // Rule 309: init_declarator_complete ::= init_declarator
//
- case 305: { action. consumeLinkageSpecification(); break;
+ case 309: { action. consumeInitDeclaratorComplete(); break;
}
//
- // Rule 310: init_declarator_complete ::= init_declarator
+ // Rule 311: init_declarator ::= complete_declarator initializer
//
- case 310: { action. consumeInitDeclaratorComplete(); break;
+ case 311: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 312: init_declarator ::= complete_declarator initializer
+ // Rule 314: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 312: { action. consumeDeclaratorWithInitializer(true); break;
+ case 314: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 315: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 316: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 315: { action. consumeDeclaratorWithPointer(true); break;
+ case 316: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 317: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 320: basic_direct_declarator ::= declarator_id_name
//
- case 317: { action. consumeDeclaratorWithPointer(true); break;
+ case 320: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 321: basic_direct_declarator ::= declarator_id_name
+ // Rule 321: basic_direct_declarator ::= ( declarator )
//
- case 321: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 321: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 322: basic_direct_declarator ::= ( declarator )
+ // Rule 322: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 322: { action. consumeDirectDeclaratorBracketed(); break;
+ case 322: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 323: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 323: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
+ case 323: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier
//
case 324: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 325: array_modifier ::= [ constant_expression ]
//
- case 325: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 325: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 326: array_modifier ::= [ constant_expression ]
+ // Rule 326: array_modifier ::= [ ]
//
- case 326: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 326: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 327: array_modifier ::= [ ]
+ // Rule 327: ptr_operator ::= pointer_hook * <openscope-ast> cv_qualifier_seq_opt
//
- case 327: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 327: { action. consumePointer(); break;
}
//
- // Rule 328: ptr_operator ::= pointer_hook * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 328: ptr_operator ::= pointer_hook &
//
- case 328: { action. consumePointer(); break;
+ case 328: { action. consumeReferenceOperator(); break;
}
//
- // Rule 329: ptr_operator ::= pointer_hook &
+ // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * <openscope-ast> cv_qualifier_seq_opt
//
- case 329: { action. consumeReferenceOperator(); break;
+ case 329: { action. consumePointerToMember(); break;
}
//
- // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 336: cv_qualifier ::= const
//
- case 330: { action. consumePointerToMember(); break;
+ case 336: { action. consumeToken(); break;
}
//
- // Rule 337: cv_qualifier ::= const
+ // Rule 337: cv_qualifier ::= volatile
//
case 337: { action. consumeToken(); break;
}
//
- // Rule 338: cv_qualifier ::= volatile
+ // Rule 339: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 338: { action. consumeToken(); break;
+ case 339: { action. consumeQualifiedId(false); break;
}
//
- // Rule 340: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 340: type_id ::= type_specifier_seq
//
- case 340: { action. consumeQualifiedId(false); break;
+ case 340: { action. consumeTypeId(false); break;
}
//
- // Rule 341: type_id ::= type_specifier_seq
+ // Rule 341: type_id ::= type_specifier_seq abstract_declarator
//
- case 341: { action. consumeTypeId(false); break;
+ case 341: { action. consumeTypeId(true); break;
}
//
- // Rule 342: type_id ::= type_specifier_seq abstract_declarator
+ // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 342: { action. consumeTypeId(true); break;
+ case 344: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 345: abstract_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 345: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
//
- case 345: { action. consumeDeclaratorWithPointer(false); break;
+ case 345: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 346: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
+ // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 346: { action. consumeDeclaratorWithPointer(true); break;
+ case 349: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 350: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 350: basic_direct_abstract_declarator ::= ( )
//
- case 350: { action. consumeDirectDeclaratorBracketed(); break;
+ case 350: { action. consumeAbstractDeclaratorEmpty(); break;
}
//
- // Rule 351: basic_direct_abstract_declarator ::= ( )
+ // Rule 351: array_direct_abstract_declarator ::= array_modifier
//
- case 351: { action. consumeAbstractDeclaratorEmpty(); break;
+ case 351: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 352: array_direct_abstract_declarator ::= array_modifier
+ // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 352: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 352: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 353: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 353: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
case 353: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 354: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 354: 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 354: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 354: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // 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
+ // Rule 355: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 355: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
+ case 355: { action. consumeDirectDeclaratorFunctionDeclarator(false); break;
}
//
- // Rule 356: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ...
//
- case 356: { action. consumeDirectDeclaratorFunctionDeclarator(false); break;
+ case 356: { action. consumePlaceHolder(); break;
}
//
- // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt
//
- case 357: { action. consumePlaceHolder(); break;
+ case 357: { action. consumeEmpty(); break;
}
//
- // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt
+ // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ...
//
- case 358: { action. consumeEmpty(); break;
+ case 358: { action. consumePlaceHolder(); break;
}
//
- // Rule 359: parameter_declaration_clause ::= parameter_declaration_list , ...
+ // Rule 364: abstract_declarator_opt ::= $Empty
//
- case 359: { action. consumePlaceHolder(); break;
+ case 364: { action. consumeEmpty(); break;
}
//
- // Rule 365: abstract_declarator_opt ::= $Empty
+ // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator
//
- case 365: { action. consumeEmpty(); break;
+ case 365: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 366: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ // Rule 366: parameter_declaration ::= declaration_specifiers
//
- case 366: { action. consumeParameterDeclaration(); break;
+ case 366: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 367: parameter_declaration ::= declaration_specifiers
+ // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer
//
- case 367: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 368: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 369: parameter_init_declarator ::= declarator = parameter_initializer
+ // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer
//
- case 369: { action. consumeDeclaratorWithInitializer(true); break;
+ case 370: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 371: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ // Rule 371: parameter_init_declarator ::= = parameter_initializer
//
- case 371: { action. consumeDeclaratorWithInitializer(true); break;
+ case 371: { action. consumeDeclaratorWithInitializer(false); break;
}
//
- // Rule 372: parameter_init_declarator ::= = parameter_initializer
+ // Rule 372: parameter_initializer ::= assignment_expression
//
- case 372: { action. consumeDeclaratorWithInitializer(false); break;
+ case 372: { action. consumeInitializer(); break;
}
//
- // Rule 373: parameter_initializer ::= assignment_expression
+ // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
//
- case 373: { action. consumeInitializer(); break;
+ case 373: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
//
- case 374: { action. consumeFunctionDefinition(false); break;
+ case 374: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ // Rule 377: initializer ::= ( expression_list )
//
- case 375: { action. consumeFunctionDefinition(true); break;
+ case 377: { action. consumeInitializerConstructor(); break;
}
//
- // Rule 378: initializer ::= ( expression_list )
+ // Rule 378: initializer_clause ::= assignment_expression
//
- case 378: { action. consumeInitializerConstructor(); break;
+ case 378: { action. consumeInitializer(); break;
}
//
- // Rule 379: initializer_clause ::= assignment_expression
+ // Rule 379: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list
//
- case 379: { action. consumeInitializer(); break;
+ case 379: { action. consumeInitializerList(); break;
}
//
- // Rule 380: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list
+ // Rule 380: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list
//
case 380: { action. consumeInitializerList(); break;
}
//
- // Rule 381: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list
+ // Rule 381: initializer_clause ::= { <openscope-ast> }
//
case 381: { action. consumeInitializerList(); break;
}
//
- // Rule 382: initializer_clause ::= { <openscope-ast> }
+ // Rule 382: start_initializer_list ::= $Empty
//
- case 382: { action. consumeInitializerList(); break;
+ case 382: { action. initializerListStart(); break;
}
//
- // Rule 383: start_initializer_list ::= $Empty
+ // Rule 383: end_initializer_list ::= $Empty
//
- case 383: { action. initializerListStart(); break;
+ case 383: { action. initializerListEnd(); break;
}
//
- // Rule 384: end_initializer_list ::= $Empty
+ // Rule 388: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
//
- case 384: { action. initializerListEnd(); break;
+ case 388: { action. consumeClassSpecifier(); break;
}
//
- // Rule 389: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ // Rule 389: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
//
- case 389: { action. consumeClassSpecifier(); break;
+ case 389: { action. consumeClassHead(false); break;
}
//
- // Rule 390: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 390: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
//
case 390: { action. consumeClassHead(false); break;
}
//
- // Rule 391: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 391: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
//
- case 391: { action. consumeClassHead(false); break;
+ case 391: { action. consumeClassHead(true); break;
}
//
- // Rule 392: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 392: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
//
case 392: { action. consumeClassHead(true); break;
}
//
- // Rule 393: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 396: identifier_name_opt ::= $Empty
//
- case 393: { action. consumeClassHead(true); break;
- }
+ case 396: { action. consumeEmpty(); break;
+ }
//
- // Rule 397: identifier_name_opt ::= $Empty
+ // Rule 400: visibility_label ::= access_specifier_keyword :
//
- case 397: { action. consumeEmpty(); break;
- }
+ case 400: { action. consumeVisibilityLabel(); break;
+ }
//
- // Rule 401: visibility_label ::= access_specifier_keyword :
+ // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
//
- case 401: { action. consumeVisibilityLabel(); break;
+ case 401: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 402: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ // Rule 402: member_declaration ::= declaration_specifiers_opt ;
//
- case 402: { action. consumeDeclarationSimple(true); break;
+ case 402: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 403: member_declaration ::= declaration_specifiers_opt ;
+ // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
//
- case 403: { action. consumeDeclarationSimple(false); break;
+ case 405: { action. consumeMemberDeclarationQualifiedId(); break;
}
//
- // Rule 406: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ // Rule 411: member_declaration ::= ERROR_TOKEN
//
- case 406: { action. consumeMemberDeclarationQualifiedId(); break;
+ case 411: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 412: member_declaration ::= ERROR_TOKEN
+ // Rule 420: member_declarator ::= declarator constant_initializer
//
- case 412: { action. consumeDeclarationProblem(); break;
+ case 420: { action. consumeMemberDeclaratorWithInitializer(); break;
}
//
- // Rule 421: member_declarator ::= declarator constant_initializer
+ // Rule 421: member_declarator ::= bit_field_declarator : constant_expression
//
- case 421: { action. consumeMemberDeclaratorWithInitializer(); break;
+ case 421: { action. consumeBitField(true); break;
}
//
- // Rule 422: member_declarator ::= bit_field_declarator : constant_expression
+ // Rule 422: member_declarator ::= : constant_expression
//
- case 422: { action. consumeBitField(true); break;
+ case 422: { action. consumeBitField(false); break;
}
//
- // Rule 423: member_declarator ::= : constant_expression
+ // Rule 423: bit_field_declarator ::= identifier_name
//
- case 423: { action. consumeBitField(false); break;
+ case 423: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 424: bit_field_declarator ::= identifier_name
+ // Rule 424: constant_initializer ::= = constant_expression
//
- case 424: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 424: { action. consumeInitializer(); break;
}
//
- // Rule 425: constant_initializer ::= = constant_expression
+ // Rule 430: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 425: { action. consumeInitializer(); break;
+ case 430: { action. consumeBaseSpecifier(false, false); break;
}
//
- // Rule 431: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 431: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
//
- case 431: { action. consumeBaseSpecifier(false, false); break;
+ case 431: { action. consumeBaseSpecifier(true, true); break;
}
//
- // Rule 432: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ // Rule 432: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
//
case 432: { action. consumeBaseSpecifier(true, true); break;
}
//
- // Rule 433: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ // Rule 433: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
//
- case 433: { action. consumeBaseSpecifier(true, true); break;
+ case 433: { action. consumeBaseSpecifier(true, false); break;
}
//
- // Rule 434: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ // Rule 434: access_specifier_keyword ::= private
//
- case 434: { action. consumeBaseSpecifier(true, false); break;
+ case 434: { action. consumeToken(); break;
}
//
- // Rule 435: access_specifier_keyword ::= private
+ // Rule 435: access_specifier_keyword ::= protected
//
case 435: { action. consumeToken(); break;
}
//
- // Rule 436: access_specifier_keyword ::= protected
+ // Rule 436: access_specifier_keyword ::= public
//
case 436: { action. consumeToken(); break;
}
//
- // Rule 437: access_specifier_keyword ::= public
+ // Rule 438: access_specifier_keyword_opt ::= $Empty
//
- case 437: { action. consumeToken(); break;
+ case 438: { action. consumeEmpty(); break;
}
//
- // Rule 439: access_specifier_keyword_opt ::= $Empty
+ // Rule 440: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
//
- case 439: { action. consumeEmpty(); break;
+ case 440: { action. consumeTemplateId(); break;
}
//
- // Rule 441: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
+ // Rule 441: conversion_function_id ::= operator conversion_type_id
//
- case 441: { action. consumeTemplateId(); break;
+ case 441: { action. consumeConversionName(); break;
}
//
- // Rule 442: conversion_function_id ::= operator conversion_type_id
+ // Rule 442: conversion_type_id ::= type_specifier_seq conversion_declarator
//
- case 442: { action. consumeConversionName(); break;
+ case 442: { action. consumeTypeId(true); break;
}
//
- // Rule 443: conversion_type_id ::= type_specifier_seq conversion_declarator
+ // Rule 443: conversion_type_id ::= type_specifier_seq
//
- case 443: { action. consumeTypeId(true); break;
+ case 443: { action. consumeTypeId(false); break;
}
//
- // Rule 444: conversion_type_id ::= type_specifier_seq
+ // Rule 444: conversion_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 444: { action. consumeTypeId(false); break;
+ case 444: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 445: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 450: mem_initializer ::= mem_initializer_name ( expression_list_opt )
//
- case 445: { action. consumeDeclaratorWithPointer(false); break;
+ case 450: { action. consumeConstructorChainInitializer(); break;
}
//
- // Rule 451: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ // Rule 451: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 451: { action. consumeConstructorChainInitializer(); break;
+ case 451: { action. consumeQualifiedId(false); break;
}
//
- // Rule 452: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 454: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
//
- case 452: { action. consumeQualifiedId(false); break;
+ case 454: { action. consumeTemplateId(); break;
}
//
- // Rule 455: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ // Rule 455: operator_id_name ::= operator overloadable_operator
//
- case 455: { action. consumeTemplateId(); break;
+ case 455: { action. consumeOperatorName(); break;
}
//
- // Rule 456: operator_id_name ::= operator overloadable_operator
+ // Rule 498: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
//
- case 456: { action. consumeOperatorName(); break;
+ case 498: { action. consumeTemplateDeclaration(); break;
}
//
- // Rule 499: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ // Rule 499: export_opt ::= export
//
- case 499: { action. consumeTemplateDeclaration(); break;
+ case 499: { action. consumePlaceHolder(); break;
}
//
- // Rule 500: export_opt ::= export
+ // Rule 500: export_opt ::= $Empty
//
- case 500: { action. consumePlaceHolder(); break;
+ case 500: { action. consumeEmpty(); break;
}
//
- // Rule 501: export_opt ::= $Empty
+ // Rule 504: template_parameter ::= parameter_declaration
//
- case 501: { action. consumeEmpty(); break;
+ case 504: { action. consumeTemplateParamterDeclaration(); break;
}
//
- // Rule 505: template_parameter ::= parameter_declaration
+ // Rule 505: type_parameter ::= class identifier_name_opt
//
- case 505: { action. consumeTemplateParamterDeclaration(); break;
+ case 505: { action. consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 506: type_parameter ::= class identifier_name_opt
+ // Rule 506: type_parameter ::= class identifier_name_opt = type_id
//
- case 506: { action. consumeSimpleTypeTemplateParameter(false); break;
+ case 506: { action. consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 507: type_parameter ::= class identifier_name_opt = type_id
+ // Rule 507: type_parameter ::= typename identifier_name_opt
//
- case 507: { action. consumeSimpleTypeTemplateParameter(true); break;
+ case 507: { action. consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 508: type_parameter ::= typename identifier_name_opt
+ // Rule 508: type_parameter ::= typename identifier_name_opt = type_id
//
- case 508: { action. consumeSimpleTypeTemplateParameter(false); break;
+ case 508: { action. consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 509: type_parameter ::= typename identifier_name_opt = type_id
+ // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
//
- case 509: { action. consumeSimpleTypeTemplateParameter(true); break;
+ case 509: { action. consumeTemplatedTypeTemplateParameter(false); break;
}
//
- // Rule 510: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ // Rule 510: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
//
- case 510: { action. consumeTemplatedTypeTemplateParameter(false); break;
+ case 510: { action. consumeTemplatedTypeTemplateParameter(true); break;
}
//
- // Rule 511: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ // Rule 511: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
//
- case 511: { action. consumeTemplatedTypeTemplateParameter(true); break;
+ case 511: { action. consumeTemplateId(); break;
}
//
- // Rule 512: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
+ // Rule 516: template_argument ::= assignment_expression
//
- case 512: { action. consumeTemplateId(); break;
+ case 516: { action. consumeTemplateArgumentExpression(); break;
}
//
- // Rule 517: template_argument ::= assignment_expression
+ // Rule 517: template_argument ::= type_id
//
- case 517: { action. consumeTemplateArgumentExpression(); break;
+ case 517: { action. consumeTemplateArgumentTypeId(); break;
}
//
- // Rule 518: template_argument ::= type_id
+ // Rule 518: explicit_instantiation ::= template declaration
//
- case 518: { action. consumeTemplateArgumentTypeId(); break;
+ case 518: { action. consumeTemplateExplicitInstantiation(); break;
}
//
- // Rule 519: explicit_instantiation ::= template declaration
+ // Rule 519: explicit_specialization ::= template < > declaration
//
- case 519: { action. consumeTemplateExplicitInstantiation(); break;
+ case 519: { action. consumeTemplateExplicitSpecialization(); break;
}
//
- // Rule 520: explicit_specialization ::= template < > declaration
+ // Rule 520: try_block ::= try compound_statement <openscope-ast> handler_seq
//
- case 520: { action. consumeTemplateExplicitSpecialization(); break;
+ case 520: { action. consumeStatementTryBlock(); break;
}
//
- // Rule 521: try_block ::= try compound_statement <openscope-ast> handler_seq
+ // Rule 523: handler ::= catch ( exception_declaration ) compound_statement
//
- case 521: { action. consumeStatementTryBlock(); break;
+ case 523: { action. consumeStatementCatchHandler(false); break;
}
//
- // Rule 524: handler ::= catch ( exception_declaration ) compound_statement
+ // Rule 524: handler ::= catch ( ... ) compound_statement
//
- case 524: { action. consumeStatementCatchHandler(false); break;
+ case 524: { action. consumeStatementCatchHandler(true); break;
}
//
- // Rule 525: handler ::= catch ( ... ) compound_statement
+ // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
//
- case 525: { action. consumeStatementCatchHandler(true); break;
+ case 525: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
+ // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
//
case 526: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 527: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
- //
- case 527: { action. consumeDeclarationSimple(true); break;
- }
-
- //
- // Rule 528: exception_declaration ::= type_specifier_seq
+ // Rule 527: exception_declaration ::= type_specifier_seq
//
- case 528: { action. consumeDeclarationSimple(false); break;
+ case 527: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 530: exception_specification ::= throw ( )
+ // Rule 529: exception_specification ::= throw ( )
//
- case 530: { action. consumePlaceHolder(); break;
+ case 529: { action. consumePlaceHolder(); break;
}
//
- // Rule 536: no_cast_start ::= ERROR_TOKEN
+ // Rule 535: no_cast_start ::= ERROR_TOKEN
//
- case 536: { action. consumeExpressionProblem(); break;
+ case 535: { action. consumeExpressionProblem(); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java
index efca17a6f3..bacdda50cc 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java
@@ -29,7 +29,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0
+ 0,0
};
};
public final static byte isKeyword[] = IsKeyword.isKeyword;
@@ -39,437 +39,437 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public final static short baseCheck[] = {0,
0,0,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,3,1,1,1,1,1,
- 1,1,1,2,2,1,1,0,1,0,
- 4,2,3,2,3,2,2,1,0,1,
- 1,4,4,4,8,8,3,3,4,4,
- 3,3,2,2,7,7,7,7,4,4,
- 5,6,3,2,2,1,1,1,2,2,
- 2,2,2,2,2,2,2,4,7,9,
- 3,0,1,2,2,1,2,3,4,1,
- 0,3,1,0,3,5,1,1,3,3,
- 1,3,3,3,1,3,3,1,3,3,
- 1,3,3,3,3,1,3,3,1,3,
- 1,3,1,3,1,3,1,3,1,5,
- 1,2,1,1,3,3,3,3,3,3,
- 3,3,3,3,3,1,2,1,3,1,
- 0,1,0,1,1,0,1,1,1,1,
- 1,1,1,1,1,3,4,3,2,1,
- 4,2,1,2,5,7,5,1,4,1,
- 0,5,7,8,1,1,2,2,3,2,
- 3,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,2,1,0,
- 4,4,2,2,2,2,2,1,0,1,
- 1,1,1,1,1,2,1,2,2,2,
- 1,1,2,2,1,2,2,1,2,2,
- 1,2,2,1,1,1,1,1,1,1,
+ 1,1,1,3,1,1,1,1,1,1,
+ 1,1,2,2,1,1,0,1,0,4,
+ 2,3,2,3,2,2,1,0,1,1,
+ 4,4,4,8,8,3,3,4,4,3,
+ 3,2,2,7,7,7,7,4,4,5,
+ 6,3,2,2,1,1,1,2,2,2,
+ 2,2,2,2,2,2,4,7,9,3,
+ 0,1,2,2,1,2,3,4,1,0,
+ 3,1,0,3,5,1,1,3,3,1,
+ 3,3,3,1,3,3,1,3,3,1,
+ 3,3,3,3,1,3,3,1,3,1,
+ 3,1,3,1,3,1,3,1,5,1,
+ 2,1,1,3,3,3,3,3,3,3,
+ 3,3,3,3,1,2,1,3,1,0,
+ 1,0,1,1,0,1,1,1,1,1,
+ 1,1,1,1,3,4,3,2,1,4,
+ 2,1,2,5,7,5,1,4,1,0,
+ 5,7,8,1,1,2,2,3,2,3,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,2,1,0,4,
+ 4,2,2,2,2,2,1,0,1,1,
+ 1,1,1,1,2,1,2,2,2,1,
+ 1,2,2,1,2,2,1,2,2,1,
+ 2,2,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,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,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,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,-107,0,0,0,
- -2,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-54,
- 0,0,0,0,0,-49,0,0,0,0,
- 0,0,0,0,-396,0,0,0,0,-68,
- 0,0,0,-4,0,0,0,0,0,0,
- 0,0,0,-5,-85,0,0,0,0,0,
+ 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,-107,0,0,0,-2,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-54,0,
+ 0,0,0,0,-49,0,0,0,0,0,
+ 0,0,0,-396,0,0,0,0,-68,0,
+ 0,0,-4,0,0,0,0,0,0,0,
+ 0,0,-5,-85,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-6,0,0,0,
+ 0,0,0,0,0,-58,0,0,0,-76,
+ 0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-6,0,0,
- 0,0,0,0,0,0,-58,0,0,0,
- -76,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-244,0,0,
+ -176,0,0,0,-7,0,-69,0,0,0,
+ -123,0,0,0,0,0,0,0,0,-8,
+ 0,0,0,0,0,0,0,0,-114,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-244,0,
- 0,-176,0,0,0,-7,0,-69,0,0,
- 0,-123,0,0,0,0,0,0,0,0,
- -8,0,0,0,0,0,0,0,0,-114,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-234,0,0,0,0,0,-50,-9,0,
+ 0,0,-112,0,-16,0,0,0,-53,-62,
+ 0,0,0,0,0,0,-115,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-234,0,0,0,0,0,-50,-9,
- 0,0,0,-112,0,-16,0,0,0,-53,
- -62,0,0,0,0,0,0,-115,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -11,0,0,0,-126,0,0,0,0,0,
+ -12,0,-136,0,-170,0,0,0,-51,0,
+ 0,-121,0,0,0,0,-531,0,0,0,
+ -379,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-130,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-11,0,0,0,-126,0,0,0,0,
- 0,-12,0,-136,0,-170,0,0,0,-51,
- 0,0,-121,0,0,0,0,-531,0,0,
- 0,-379,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-130,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-10,0,0,0,0,0,0,0,
+ -222,0,0,0,-116,0,-462,0,-165,0,
+ 0,0,-218,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-10,0,0,0,0,0,0,
- 0,-222,0,0,0,-116,0,-462,0,-165,
- 0,0,0,-218,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-133,0,0,0,0,0,0,0,0,
+ -375,0,0,0,0,0,-59,0,0,0,
+ 0,0,0,-186,0,-13,0,-253,0,0,
+ -138,0,0,0,-383,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-340,0,0,
+ -506,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-133,0,0,0,0,0,0,0,
- 0,-375,0,0,0,0,0,-59,0,0,
- 0,0,0,0,-186,0,-13,0,-253,0,
- 0,-138,0,0,0,-383,0,0,0,0,
- 0,0,0,0,0,0,0,0,-340,0,
- 0,-506,0,0,0,0,0,0,0,0,
+ 0,0,0,-15,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-233,0,
+ 0,0,0,-530,0,0,0,-61,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-15,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-233,
- 0,0,0,0,-530,0,0,0,-61,0,
+ 0,0,0,0,0,0,-28,0,0,0,
+ 0,0,-202,0,0,0,0,0,0,0,
+ 0,-187,0,0,0,0,0,-318,0,0,
+ 0,-29,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-28,0,0,
- 0,0,0,-202,0,0,0,0,0,0,
- 0,0,-187,0,0,0,0,0,-318,0,
- 0,0,-29,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-57,0,0,0,
+ 0,0,0,0,0,-457,0,0,0,0,
+ 0,0,0,-437,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-57,0,0,
- 0,0,0,0,0,0,-457,0,0,0,
- 0,0,0,0,-437,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-277,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-17,0,0,0,
+ 0,0,-3,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,0,0,-17,0,0,
- 0,0,0,-3,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-119,0,0,0,0,0,0,0,0,
+ 0,-219,0,0,0,-441,0,0,-282,0,
+ 0,0,-345,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-119,0,0,0,0,0,0,0,
- 0,0,-219,0,0,0,-441,0,0,-282,
- 0,0,0,-345,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-223,0,0,
+ 0,0,0,0,0,0,-230,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,0,0,0,0,0,-223,0,
- 0,0,0,0,0,0,0,-230,0,0,
- 0,0,-322,0,0,0,0,0,0,0,
+ 0,0,0,0,-30,0,0,0,0,0,
+ -188,0,0,0,0,0,0,0,0,-296,
+ -261,-31,0,0,-140,0,0,0,-32,0,
+ 0,0,0,0,0,0,0,0,-33,0,
+ -34,0,-323,0,0,0,-35,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-30,0,0,0,0,
- 0,-188,0,0,0,0,0,0,0,0,
- -296,-261,-31,0,0,-140,0,0,0,-32,
- 0,0,0,0,0,0,0,0,0,-33,
- 0,-34,0,-323,0,0,0,-35,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-196,0,0,0,0,0,0,0,0,
+ -128,0,-529,0,0,-39,0,0,0,-36,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-196,0,0,0,0,0,0,0,
- 0,-128,0,-529,0,0,-39,0,0,0,
- -36,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-415,0,0,0,0,
- 0,0,0,0,-177,0,0,0,0,-373,
- -41,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-415,0,0,0,0,0,
+ 0,0,0,-177,0,0,0,0,-373,-41,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-254,0,0,0,0,0,-37,
- 0,0,0,-104,0,0,0,0,-38,-105,
- 0,0,0,-91,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-254,0,0,0,0,0,-37,0,
+ 0,0,-104,0,0,0,0,-38,-105,0,
+ 0,0,-91,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-113,-166,0,0,
- 0,-271,0,0,0,0,-92,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-113,-166,0,0,0,
+ -271,0,0,0,0,-92,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -184,0,0,0,0,-40,-285,0,0,-93,
- 0,0,0,-55,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-184,
+ 0,0,0,0,-40,-285,0,0,-93,0,
+ 0,0,-55,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-137,-195,0,0,0,0,0,0,
- 0,0,-94,0,0,0,-56,0,0,0,
+ 0,-137,-195,0,0,0,0,0,0,0,
+ 0,-94,0,0,0,-56,0,0,0,0,
0,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,-209,0,0,0,
- 0,-197,-63,0,0,-95,0,0,0,-64,
+ 0,0,0,0,-141,-209,0,0,0,0,
+ -197,-63,0,0,-95,0,0,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,-207,-220,
- 0,0,0,0,-256,-66,0,0,-96,0,
- 0,0,-67,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-207,-220,0,
+ 0,0,0,-256,-66,0,0,-96,0,0,
+ 0,-67,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-228,0,0,
- 0,0,0,0,0,0,-108,-232,-109,0,
- 0,-97,0,0,0,-278,0,0,0,0,
+ 0,0,0,0,0,0,-228,0,0,0,
+ 0,0,0,0,0,-108,-232,-109,0,0,
+ -97,0,0,0,-278,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-313,0,0,0,0,0,
- 0,0,0,0,-239,-266,0,0,0,0,
- -246,-110,0,0,-98,0,0,0,-111,0,
+ 0,0,0,-313,0,0,0,0,0,0,
+ 0,0,0,-239,-266,0,0,0,0,-246,
+ -110,0,0,-98,0,0,0,-111,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-247,-267,0,
- 0,0,0,-248,-131,0,0,-99,0,0,
+ 0,0,0,0,0,0,-247,-267,0,0,
+ 0,0,-248,-131,0,0,-99,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-269,0,0,0,0,-461,0,0,0,
- -100,0,0,0,-320,0,0,0,0,0,
+ -269,0,0,0,0,-461,0,0,0,-100,
+ 0,0,0,-320,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,-355,
- 0,0,0,-249,-273,0,0,0,0,-342,
- -286,0,0,-101,0,0,0,-309,0,0,
+ 0,0,-274,0,0,0,0,0,-355,0,
+ 0,0,-249,-273,0,0,0,0,-342,-286,
+ 0,0,-101,0,0,0,-309,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-281,0,0,0,0,0,0,0,
- 0,-354,0,-143,0,0,-163,0,0,0,
- -361,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-144,
+ 0,-281,0,0,0,0,0,0,0,0,
+ -354,0,-143,0,0,-163,0,0,0,-361,
0,0,0,0,0,0,0,0,0,0,
- -291,0,0,0,-203,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-144,0,
+ 0,0,0,0,0,0,0,0,0,-291,
+ 0,0,0,-203,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-211,0,0,
+ 0,0,0,0,0,0,-211,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-385,-411,0,0,0,0,-71,0,
- 0,-475,0,0,-524,0,0,0,0,0,
+ 0,-385,-411,0,0,0,0,-71,0,0,
+ -475,0,0,-524,0,0,0,0,0,0,
0,0,0,0,0,0,0,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,-293,-146,0,0,-343,0,0,
- 0,-129,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-145,0,0,
+ 0,0,-293,-146,0,0,-343,0,0,0,
+ -129,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-398,
+ 0,0,0,0,0,0,0,0,0,-491,
+ -132,0,0,0,-353,0,0,0,-518,0,
0,0,0,0,0,0,0,0,0,0,
- -398,0,0,0,0,0,0,0,0,0,
- -491,-132,0,0,0,-353,0,0,0,-518,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-135,0,0,0,0,0,0,0,
+ 0,0,0,0,-377,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-135,0,0,0,0,0,0,
- 0,0,0,0,0,-377,0,0,0,0,
+ 0,0,0,0,0,0,0,-414,0,0,
+ 0,0,0,0,0,0,0,-147,-142,0,
+ 0,0,-378,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-414,0,
- 0,0,0,0,0,0,0,0,-147,-142,
- 0,0,0,-378,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-205,0,0,0,
+ -333,0,0,0,0,-227,0,0,0,0,
+ 0,-148,-448,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-205,0,0,
- 0,-333,0,0,0,0,-227,0,0,0,
- 0,0,-148,-448,0,0,0,0,0,0,
+ 0,0,0,0,0,-439,0,0,0,0,
+ 0,0,0,0,0,0,-450,0,0,0,
+ -103,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-439,0,0,0,
- 0,0,0,0,0,0,0,-450,0,0,
- 0,-103,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-149,0,0,-372,0,0,0,
+ -150,-297,0,0,0,0,0,-268,0,0,
+ -90,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-149,0,0,-372,0,0,
- 0,-150,-297,0,0,0,0,0,-268,0,
- 0,-90,0,0,0,0,0,0,0,0,
+ 0,0,0,-224,0,0,0,0,0,-299,
+ 0,0,0,-88,0,0,0,-151,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-224,0,0,0,0,0,
- -299,0,0,0,-88,0,0,0,-151,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-89,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-89,0,0,0,
+ 0,0,0,0,0,0,0,0,-152,0,
+ 0,0,0,0,-153,0,-389,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-86,
+ 0,0,0,-535,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-152,
- 0,0,0,0,0,-153,0,-389,0,0,
+ 0,0,0,0,0,0,0,-18,0,0,
+ 0,-294,-164,-264,-154,-265,0,-397,0,0,
+ 0,-321,-117,-316,0,0,0,0,-155,0,
+ 0,-427,0,0,-156,0,0,-231,0,0,
+ 0,0,0,-157,0,0,-201,0,0,0,
+ 0,0,-87,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -86,0,0,0,-535,0,0,0,0,0,
+ 0,0,0,0,0,-158,0,0,0,0,
+ 0,-326,-106,0,0,-118,0,0,-159,0,
+ 0,0,-241,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-18,0,
- 0,0,-294,-164,-264,-154,-265,0,-397,0,
- 0,0,-321,-117,-316,0,0,0,0,-155,
- 0,0,-427,0,0,-156,0,0,-231,0,
- 0,0,0,0,-157,0,0,-201,0,0,
- 0,0,0,-87,0,0,0,0,0,0,
+ 0,0,0,0,-319,-127,0,0,0,-235,
+ 0,0,0,0,0,0,-139,0,0,0,
+ -160,-288,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-310,0,
+ -102,0,0,0,0,0,0,0,0,0,
+ 0,0,-161,0,0,-349,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-158,0,0,0,
- 0,0,-326,-106,0,0,-118,0,0,-159,
- 0,0,0,-241,0,0,0,0,0,0,
+ -167,-350,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-295,0,-120,-302,
+ 0,0,0,0,0,-357,0,0,-304,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-319,-127,0,0,0,
- -235,0,0,0,0,0,0,-139,0,0,
- 0,-160,-288,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-310,
- 0,-102,0,0,0,0,0,0,0,0,
- 0,0,0,-161,0,0,-349,0,0,0,
+ 0,-258,0,0,0,0,0,0,-79,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-167,-350,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-295,0,-120,
- -302,0,0,0,0,0,-357,0,0,-304,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-258,0,0,0,0,0,0,-79,
+ 0,-483,0,0,0,0,0,0,0,0,
+ 0,0,0,-507,0,0,0,0,0,0,
+ -168,0,0,-368,0,0,0,0,-298,-303,
+ 0,-169,0,0,0,0,0,0,0,0,
+ 0,0,0,-172,-80,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-483,0,0,0,0,0,0,0,
- 0,0,0,0,-507,0,0,0,0,0,
- 0,-168,0,0,-368,0,0,0,0,-298,
- -303,0,-169,0,0,0,0,0,0,0,
- 0,0,0,0,-172,-80,0,0,0,0,
+ 0,-81,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-173,0,0,0,-74,0,
+ 0,0,-174,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-81,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-352,-438,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-173,0,0,0,-74,
- 0,0,0,-174,0,0,0,0,0,0,
+ -367,0,0,-82,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-352,-438,0,
+ 0,0,0,0,0,0,-426,0,0,0,
+ 0,-208,-351,-459,-243,0,0,0,0,0,
+ 0,-400,0,0,-175,0,0,0,0,0,
+ 0,0,-307,0,0,0,0,0,-327,-199,
+ 0,0,0,0,0,0,0,-408,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-367,0,0,-82,0,0,0,0,0,
+ -446,0,-308,-324,0,0,0,0,-178,0,
+ -179,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-180,-270,0,0,0,
+ 0,0,0,-237,0,0,0,-183,0,0,
+ 0,0,0,-312,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-426,0,0,
- 0,0,-208,-351,-459,-243,0,0,0,0,
- 0,0,-400,0,0,-175,0,0,0,0,
- 0,0,0,-307,0,0,0,0,0,-327,
- -199,0,0,0,0,0,0,0,-408,0,
+ 0,0,-428,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-523,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-356,-204,
+ -52,0,0,0,0,0,0,-191,-386,-329,
0,0,0,0,0,0,0,0,0,0,
- 0,-446,0,-308,-324,0,0,0,0,-178,
- 0,-179,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-180,-270,0,0,
- 0,0,0,0,-237,0,0,0,-183,0,
- 0,0,0,0,-312,0,0,0,0,0,
+ 0,0,-47,0,0,0,-238,0,0,0,
+ 0,0,-14,-192,0,0,0,-430,0,0,
+ 0,0,-181,-417,0,0,0,0,0,0,
+ -463,-198,-466,0,0,0,0,0,0,-382,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-428,0,0,0,0,0,0,
- 0,0,0,0,0,0,-523,0,0,0,
- 0,0,0,0,0,0,0,0,0,-356,
- -204,-52,0,0,0,0,0,0,-191,-386,
- -329,0,0,0,0,0,0,0,0,0,
- 0,0,0,-47,0,0,0,-238,0,0,
- 0,0,0,-14,-192,0,0,0,-430,0,
- 0,0,0,-181,-417,0,0,0,0,0,
- 0,-463,-198,-466,0,0,0,0,0,0,
- -382,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-206,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-330,0,
- -216,0,0,0,0,0,0,-217,0,0,
- -245,0,0,0,-272,0,0,0,0,0,
- 0,0,0,-292,0,0,0,-19,0,0,
+ 0,0,-206,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-330,0,-216,
+ 0,0,0,0,0,0,-217,0,0,-245,
+ 0,0,0,-272,0,0,0,0,0,0,
+ 0,0,-292,0,0,0,-19,0,0,0,
0,0,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,0,-225,0,
+ 0,0,0,-83,0,0,0,-225,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-122,0,0,
- -84,0,0,0,-236,0,0,0,0,0,
+ 0,0,0,0,0,0,-122,0,0,-84,
+ 0,0,0,-236,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-455,0,0,-240,0,-134,-526,
- -420,-359,0,0,0,0,-311,0,0,0,
- -332,-335,-360,-242,-337,0,0,0,0,0,
- -460,-212,0,0,0,0,-43,0,0,0,
- 0,0,0,0,-171,0,0,0,0,0,
- 0,0,0,0,0,0,0,-478,0,0,
- 0,0,-252,-436,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-362,
- 0,0,0,-124,0,-213,0,0,0,0,
- -44,-257,0,0,0,0,0,0,-471,-259,
+ 0,0,-455,0,0,-240,0,-134,-526,-420,
+ -359,0,0,0,0,-311,0,0,0,-332,
+ -335,-360,-242,-337,0,0,0,0,0,-460,
+ -212,0,0,0,0,-43,0,0,0,0,
+ 0,0,0,-171,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-478,0,0,0,
+ 0,-252,-436,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-362,0,
+ 0,0,-124,0,-213,0,0,0,0,-44,
+ -257,0,0,0,0,0,0,-471,-259,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-480,0,0,0,0,0,0,0,0,
+ -480,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-393,-45,0,0,-521,0,0,-260,
- 0,-469,0,0,-46,0,0,0,0,0,
- 0,0,-185,0,0,0,0,0,0,0,
- 0,0,0,0,0,-497,0,0,-392,0,
- 0,0,0,0,0,-275,0,0,0,0,
+ 0,-393,-45,0,0,-521,0,0,-260,0,
+ -469,0,0,-46,0,0,0,0,0,0,
+ 0,-185,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-497,0,0,-392,0,0,
+ 0,0,0,0,-275,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-279,-1,0,0,0,0,-194,0,
- -280,0,0,0,0,0,-226,0,0,0,
- -283,0,0,0,0,0,0,0,0,-511,
- 0,0,0,0,-328,-473,-339,-468,0,0,
+ 0,-279,-1,0,0,0,0,-194,0,-280,
+ 0,0,0,0,0,-226,0,0,0,-283,
+ 0,0,0,0,0,0,0,0,-511,0,
+ 0,0,0,-328,-473,-339,-468,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-443,0,0,-284,0,-406,0,0,0,
- 0,0,-444,-300,-301,0,0,0,0,0,
- 0,-445,0,0,0,0,0,0,0,0,
- 0,0,0,-513,0,0,-388,0,0,-458,
- 0,-306,0,0,-314,0,0,0,0,0,
- 0,0,0,0,0,-404,0,0,0,-434,
- 0,-315,0,-190,0,0,0,-331,0,0,
- -344,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-492,0,0,
- 0,0,-229,0,0,0,-358,0,-374,0,
- 0,0,0,0,0,0,0,0,-515,0,
+ -443,0,0,-284,0,-406,0,0,0,0,
+ 0,-444,-300,-301,0,0,0,0,0,0,
+ -445,0,0,0,0,0,0,0,0,0,
+ 0,0,-513,0,0,-388,0,0,-458,0,
+ -306,0,0,-314,0,0,0,0,0,0,
+ 0,0,0,0,-404,0,0,0,-434,0,
+ -315,0,-190,0,0,0,-331,0,0,-344,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-287,0,0,0,0,0,-325,0,
- 0,0,-346,-387,0,0,0,0,0,-410,
- -490,-517,-407,0,0,0,-399,0,0,-464,
- 0,0,0,0,0,-418,0,0,0,0,
+ 0,0,0,0,0,0,-492,0,0,0,
+ 0,-229,0,0,0,-358,0,-374,0,0,
+ 0,0,0,0,0,0,0,-515,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-498,-338,0,0,0,0,0,
+ 0,-287,0,0,0,0,0,-325,0,0,
+ 0,-346,-387,0,0,0,0,0,-410,-490,
+ -517,-407,0,0,0,-399,0,0,-464,0,
+ 0,0,0,0,-418,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-363,0,0,-532,-48,
- -70,0,0,0,0,-486,0,0,0,0,
- 0,0,0,0,0,0,-366,0,0,-487,
- -162,0,-500,0,-381,0,0,0,0,0,
- 0,0,0,0,-390,-391,0,0,0,-347,
+ 0,0,-498,-338,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-537,0,0,0,0,0,0,-465,
- 0,0,0,-394,0,0,0,0,0,0,
- 0,0,0,0,0,0,-395,-401,0,-494,
- -214,0,0,0,0,-413,-403,-409,-416,0,
- 0,0,0,0,-423,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-371,0,
- 0,-505,0,-472,0,0,-424,0,0,0,
- 0,0,0,0,0,0,0,-75,0,0,
+ 0,0,0,0,-363,0,0,-532,-48,-70,
+ 0,0,0,0,-486,0,0,0,0,0,
+ 0,0,0,0,0,-366,0,0,-487,-162,
+ 0,-500,0,-381,0,0,0,0,0,0,
+ 0,0,0,-390,-391,0,0,0,-347,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-537,0,0,0,0,0,0,-465,0,
+ 0,0,-394,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-395,-401,0,-494,-214,
+ 0,0,0,0,-413,-403,-409,-416,0,0,
+ 0,0,0,-423,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-371,0,0,
+ -505,0,-472,0,0,-424,0,0,0,0,
+ 0,0,0,0,0,0,-75,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -447,0,-77,0,0,0,-449,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-447,
+ 0,-77,0,0,0,-449,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-78,0,0,0,-522,
+ 0,0,0,0,-78,0,0,0,-522,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-334,0,
- -290,-422,0,-215,0,0,-425,0,-370,-467,
- 0,-470,0,0,-276,0,-489,0,0,0,
- 0,0,-493,0,0,-451,0,-514,-452,-496,
- -453,0,0,0,0,-502,-504,-508,-509,0,
+ 0,0,0,0,0,0,0,-334,0,-290,
+ -422,0,-215,0,0,-425,0,-370,-467,0,
+ -470,0,0,-276,0,-489,0,0,0,0,
+ 0,-493,0,0,-451,0,-514,-452,-496,-453,
+ 0,0,0,0,-502,-504,-508,-509,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-510,-289,-454,0,0,-456,0,0,
- 0,0,0,-519,0,0,0,0,0,0,
+ 0,-510,-289,-454,0,0,-456,0,0,0,
+ 0,0,-519,0,0,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,0,0,0,0,-182,0,
- 0,0,0,-528,0,-435,-474,0,-476,0,
- -477,0,0,-479,0,-341,0,0,0,-484,
- 0,0,0,0,0,0,0,0,0,-527,
- 0,-516,0,-533,-534,0,0,-189,0,0,
- 0,0,0,0,0,0,0,-488,0,0,
- -495,0,0,0,0,0,0,0,0,-503,
- 0,0,-512,-520,-525,-536,0,0,0,0,
+ 0,0,0,0,-376,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-182,0,0,
+ 0,0,-528,0,-435,-474,0,-476,0,-477,
+ 0,0,-479,0,-341,0,0,0,-484,0,
+ 0,0,0,0,0,0,0,0,-527,0,
+ -516,0,-533,-534,0,0,-189,0,0,0,
+ 0,0,0,0,0,0,-488,0,0,-495,
+ 0,0,0,0,0,0,0,0,-503,0,
+ 0,-512,-520,-525,-536,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-20,0,0,0,0,0,0,0,
+ 0,-20,0,0,0,0,0,0,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,0,0,0,0,0,0,
+ 0,-21,0,0,0,0,0,0,0,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,0,0,0,0,0,0,
+ 0,0,-22,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-23,0,0,0,0,
+ 0,0,0,0,-23,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-24,0,0,
+ 0,0,0,0,0,0,-24,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,0,-25,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,
+ -26,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-27,0,0,0,0,0,0,
+ 0,0,-27,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,-60,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-72,0,0,
+ 0,0,0,0,0,0,-72,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-73,
+ 0,0,0,0,0,0,0,0,-73,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-193,0,0,0,0,0,0,0,0,
+ -193,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-336,0,0,0,0,0,0,
- 0,0,0,-364,-250,-251,-317,0,0,0,
- 0,0,0,-369,0,0,0,0,-429,0,
+ 0,0,-336,0,0,0,0,0,0,0,
+ 0,0,-364,-250,-251,-317,0,0,0,0,
+ 0,0,-369,0,0,0,0,-429,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
@@ -477,52 +477,51 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-412,0,0,0,
- 0,0,0,0,0,0,-421,0,0,0,
+ 0,0,0,0,0,-412,0,0,0,0,
+ 0,0,0,0,0,-421,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-305,
0,0,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,0,0,0,
- 0,0,0,-380,0,0,0,0,0,0,
- 0,0,0,0,0,0,-499,0,0,0,
+ 0,0,-380,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-499,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,-125,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-221,0,
+ 0,0,0,0,0,0,0,-221,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-348,-384,0,0,0,0,0,
- -481,0,0,0,0,0,0,0,-262,0,
+ 0,0,-348,-384,0,0,0,0,0,-481,
+ 0,0,0,0,0,0,0,-262,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-263,0,0,0,0,0,0,0,0,
+ -263,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-402,0,0,0,0,0,0,0,0,
- 0,0,0,0,-365,0,0,0,0,0,
+ -402,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,-405,0,0,0,
- -419,0,0,0,0,0,0,0,-501,0,
- 0,0,0,0,0,-431,0,0,0,0,
- 0,0,0,0,0,0,-432,0,0,0,
- 0,0,-442,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-405,0,0,0,-419,
+ 0,0,0,0,0,0,0,-501,0,0,
+ 0,0,0,0,-431,0,0,0,0,0,
+ 0,0,0,0,0,-432,0,0,0,0,
+ 0,-442,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-440,0,0,0,0,0,0,-42,0,
- 0,0,0,-65,0,0,0,0,0,0,
- 0,0,0,0,0,-200,0,0,0,0,
- 0,0,0,0,0,0,0,0,-210,0,
+ -440,0,0,0,0,0,0,-42,0,0,
+ 0,0,-65,0,0,0,0,0,0,0,
+ 0,0,0,0,-200,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-210,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-433,0,0,0,
- 0,0,0,0,0,0,0,-482,0,0,
- 0,0,0,-255,0,0,0,0,0,0,
- -485,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-433,0,0,0,0,
+ 0,0,0,0,0,0,-482,0,0,0,
+ 0,0,-255,0,0,0,0,0,0,-485,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
@@ -539,7 +538,8 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,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;
@@ -551,544 +551,544 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public final static char baseAction[] = {
174,4,136,83,83,33,33,67,67,38,
38,40,40,200,1,1,15,15,15,15,
- 15,15,15,15,16,16,16,14,11,11,
- 6,6,6,6,6,6,2,65,65,5,
- 5,12,12,44,44,137,137,138,56,56,
- 43,17,17,17,17,17,17,17,17,17,
+ 15,15,15,16,16,16,14,11,11,6,
+ 6,6,6,6,6,2,65,65,5,5,
+ 12,12,44,44,137,137,138,56,56,43,
+ 17,17,17,17,17,17,17,17,17,17,
17,17,17,17,17,17,17,17,17,17,
- 17,139,139,139,115,115,18,18,18,18,
- 18,18,18,18,18,18,18,18,18,19,
- 19,175,175,176,176,177,142,142,143,143,
- 140,140,144,141,141,20,20,21,22,22,
- 22,24,24,24,24,25,25,25,26,26,
- 26,27,27,27,27,27,28,28,28,30,
- 30,31,31,32,32,35,35,36,36,37,
- 37,42,42,41,41,41,41,41,41,41,
- 41,41,41,41,41,41,39,29,145,145,
- 97,97,178,178,92,201,201,68,68,68,
- 68,68,68,68,68,68,69,69,69,66,
- 66,55,55,179,179,70,70,70,103,103,
- 180,180,71,71,71,181,181,72,72,72,
- 72,72,73,73,84,84,84,84,84,84,
- 84,84,49,49,49,49,49,116,116,114,
- 114,50,182,23,23,23,23,23,48,48,
- 87,87,87,87,87,152,152,147,147,147,
- 147,147,148,148,148,149,149,149,150,150,
- 150,151,151,151,88,88,88,88,88,89,
- 89,89,13,13,13,13,13,13,13,13,
- 13,13,13,98,120,120,120,120,120,120,
- 118,118,118,153,119,119,183,155,155,154,
- 154,122,122,104,79,79,80,81,52,47,
- 156,156,53,51,86,86,157,157,146,146,
- 123,124,124,125,76,76,158,158,63,63,
- 63,60,60,59,64,64,75,75,58,58,
- 58,54,90,90,100,99,99,62,62,61,
- 61,57,57,45,101,101,101,93,93,93,
- 94,94,95,95,95,96,96,105,105,105,
- 107,107,106,106,202,202,91,91,185,185,
- 185,185,185,127,46,46,160,184,184,128,
- 128,128,128,129,162,186,186,34,34,117,
- 130,130,130,130,188,109,108,108,121,121,
- 121,163,164,164,164,164,164,164,16