diff options
Diffstat (limited to 'lrparser')
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 98ca77680a5..f1a71b9c8de 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 07e488b50fc..b76e4234546 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 3d63ced995f..a09c257f449 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 a4f28e80ca3..764953a5ad2 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 0fdc046318d..69a2b608f54 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 a98badc4ff3..ac3994d60c3 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 00000000000..a4e8a03f248 --- /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 422301e7999..b93fb6a77cb 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 00000000000..36eac42269d --- /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 9690df45e44..b7acd7c967a 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 00000000000..ad1d14a61ef --- /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 0939288b92a..22c2ad79dc1 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 00000000000..285a2391385 --- /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 bc5892463c1..42935081266 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 61ffd482daa..3ccb1b18c2a 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 401388ec4da..d66e66389c3 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 00000000000..cf028512340 --- /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 825794313e3..400e84ad133 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 00000000000..6f9127c7a13 --- /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 a80fead2b3e..946ef393964 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 00000000000..f5e109bda23 --- /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 00000000000..84f31f9ccfc --- /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 ae6c01b5099..497068be605 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 00000000000..62c3cfc4b39 --- /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 e68ec83abf2..40d1ed867ed 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 00000000000..50368557b65 --- /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 22f5f9a4896..5b63944e071 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 57c08b832f4..e0c4a215cd4 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 044093e8dd5..10de8cb725e 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 b21ab65784e..75b026f1349 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 b75d93191ed..fbf44378196 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 f877cc39a8e..ec677be0c14 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 7bc098faf11..35e436f3503 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 27f3a067803..c1904a80c43 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 ffcd02efe9d..16c72ffc98e 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 dd430004489..317285d79db 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 3d95f7c52f9..c18c485cd7a 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 5566e9c2bec..3b82dd6b104 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 f097e86450f..ce4b0ccfcaf 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 efca17a6f39..bacdda50ccb 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,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, + 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,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,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,2703, - 2692,1116,3225,28,31,32,937,985,27,29, - 2602,26,24,51,1028,107,77,78,108,1053, - 1356,1273,1256,1290,1280,1298,70,1292,1410,1341, - 690,273,1419,1506,143,1292,36,396,158,144, - 1621,36,792,33,152,2548,28,31,32,937, - 985,58,29,497,1376,3172,36,792,33,232, - 2429,28,31,32,937,985,27,29,782,26, - 24,51,1028,107,77,78,108,1053,1239,1273, - 1256,1290,1280,2436,235,230,231,595,1636,1765, - 35,3172,36,792,33,274,2429,28,31,32, - 937,985,27,29,782,26,24,51,1028,107, - 77,78,108,2019,242,245,248,251,803,2195, - 36,277,595,36,1765,3081,1511,1173,1738,36, - 792,33,244,2548,28,31,32,937,985,57, - 29,1525,584,3715,2444,2507,2620,3158,3264,4536, - 2347,36,792,33,2982,2429,28,31,32,937, - 985,27,29,782,26,24,51,1028,107,77, - 78,108,1053,343,1273,1256,1290,1280,1298,62, - 1292,1410,1341,1983,3104,1419,1506,143,3929,70, - 1670,517,144,748,1446,2504,1522,36,792,33, - 1022,1650,42,31,32,937,985,518,2347,36, - 792,33,2982,2429,28,31,32,937,985,27, - 29,782,26,24,51,1028,107,77,78,108, - 1053,343,1273,1256,1290,1280,1298,2929,1292,1410, - 1341,1124,1627,1419,1506,143,331,36,279,517, - 144,3968,2315,2504,1932,1375,331,36,279,662, - 1885,4809,513,1914,876,518,2104,61,1337,36, - 792,33,2405,4796,28,31,32,937,985,27, - 29,2900,511,498,2902,1262,2347,36,792,33, - 2982,2429,28,31,32,937,985,27,29,782, - 26,24,51,1028,107,77,78,108,1053,343, - 1273,1256,1290,1280,1298,1043,1292,1410,1341,2871, - 513,1419,1506,143,505,95,3243,517,144,3004, - 1375,2504,595,36,2437,2435,1983,2104,1893,2917, - 1757,3929,2902,518,2558,36,792,33,2982,2429, - 28,31,32,937,985,27,29,782,26,24, - 51,1028,107,77,78,108,1053,343,1273,1256, - 1290,1280,1298,1724,1292,1410,1341,2982,2853,1419, - 1506,143,331,36,453,517,144,4662,1356,2504, - 2929,43,3033,3837,332,505,343,2465,513,2165, - 3387,518,1231,36,792,33,318,4796,28,31, - 32,937,985,60,29,353,935,3015,1323,2655, - 2902,25,2695,36,792,33,3024,2429,28,31, - 32,937,985,27,29,782,26,24,51,1028, - 107,77,78,108,1053,2566,1273,1256,1290,1280, - 1298,3333,1292,1410,1341,443,514,1419,1506,143, - 2415,1271,3832,379,144,2417,36,792,33,1645, - 2429,28,31,32,937,985,27,29,782,26, - 24,51,1028,107,77,78,108,1053,2275,1273, - 1256,1290,1280,1298,2439,1292,1410,1341,328,335, - 1419,1506,143,2269,2197,3832,379,144,438,3172, - 36,792,33,418,2429,28,31,32,937,985, - 27,29,782,26,24,51,1028,107,77,78, - 108,1053,2405,1273,1256,1290,1280,1298,70,1292, - 1410,1341,826,1668,1419,3064,164,595,3626,1544, - 385,3279,446,3698,3707,2626,36,792,33,2104, - 2429,28,31,32,937,985,27,29,782,26, - 24,51,1028,107,77,78,108,1053,3519,1273, - 1256,1290,1280,1298,2178,1292,1410,1341,447,3929, - 1419,1506,143,386,3279,3832,379,144,70,3563, - 1834,2627,1144,3356,2820,36,792,33,3894,2429, - 28,31,32,937,985,27,29,782,26,24, - 51,1028,107,77,78,108,1053,156,1273,1256, - 1290,1280,1298,1893,1292,1410,1341,928,2929,1419, - 1506,143,1124,72,913,158,144,595,36,293, - 2820,36,792,33,2683,2429,28,31,32,937, - 985,27,29,782,26,24,51,1028,107,77, - 78,108,1053,1501,1273,1256,1290,1280,1298,144, - 1292,1410,1341,377,3279,1419,1506,143,2090,36, - 277,373,144,2820,36,792,33,3243,2429,28, - 31,32,937,985,27,29,782,26,24,51, - 1028,107,77,78,108,1053,49,1273,1256,1290, - 1280,1298,505,1292,1410,1341,97,3513,1419,1506, - 143,2165,848,65,373,144,1231,36,792,33, - 2314,4796,28,31,32,937,985,59,29,584, - 594,3406,761,3095,2820,36,792,33,1280,2429, - 28,31,32,937,985,27,29,782,26,24, - 51,1028,107,77,78,108,1053,372,1273,1256, - 1290,1280,1298,2149,1292,1410,1341,723,1716,1419, - 1506,143,1022,1271,231,373,144,2490,36,792, - 33,57,2429,28,31,32,937,985,27,29, - 782,26,24,51,1028,107,77,78,108,1053, - 371,1273,1256,1290,1280,1298,2191,1292,1410,1341, - 334,335,1419,1506,143,595,36,3088,142,144, - 2655,2820,36,792,33,421,2429,28,31,32, - 937,985,27,29,782,26,24,51,1028,107, - 77,78,108,1053,2013,1273,1256,1290,1280,1298, - 1093,1292,1410,1341,1356,460,1419,1506,143,927, - 1356,369,159,144,2820,36,792,33,2621,2429, - 28,31,32,937,985,27,29,782,26,24, - 51,1028,107,77,78,108,1053,70,1273,1256, - 1290,1280,1298,69,1292,1410,1341,1356,2100,1419, - 1506,143,595,36,282,155,144,2820,36,792, - 33,389,2429,28,31,32,937,985,27,29, - 782,26,24,51,1028,107,77,78,108,1053, - 54,1273,1256,1290,1280,1298,381,1292,1410,1341, - 94,70,1419,1506,143,4569,1639,2524,154,144, - 2820,36,792,33,420,2429,28,31,32,937, - 985,27,29,782,26,24,51,1028,107,77, - 78,108,1053,354,1273,1256,1290,1280,1298,3567, - 1292,1410,1341,1356,70,1419,1506,143,1000,447, - 312,153,144,2820,36,792,33,1473,2429,28, - 31,32,937,985,27,29,782,26,24,51, - 1028,107,77,78,108,1053,88,1273,1256,1290, - 1280,1298,324,1292,1410,1341,1356,70,1419,1506, - 143,2846,1356,1350,152,144,2820,36,792,33, - 2592,2429,28,31,32,937,985,27,29,782, - 26,24,51,1028,107,77,78,108,1053,53, - 1273,1256,1290,1280,1298,91,1292,1410,1341,1356, - 70,1419,1506,143,939,2311,1343,151,144,2820, - 36,792,33,1462,2429,28,31,32,937,985, - 27,29,782,26,24,51,1028,107,77,78, - 108,1053,350,1273,1256,1290,1280,1298,70,1292, - 1410,1341,2918,404,1419,1506,143,336,1356,684, - 150,144,2820,36,792,33,674,2429,28,31, - 32,937,985,27,29,782,26,24,51,1028, - 107,77,78,108,1053,2013,1273,1256,1290,1280, - 1298,1845,1292,1410,1341,1356,70,1419,1506,143, - 1858,1356,1180,149,144,2820,36,792,33,1912, - 2429,28,31,32,937,985,27,29,782,26, - 24,51,1028,107,77,78,108,1053,1883,1273, - 1256,1290,1280,1298,68,1292,1410,1341,1356,70, - 1419,1506,143,2570,1356,2593,148,144,2820,36, - 792,33,284,2429,28,31,32,937,985,27, - 29,782,26,24,51,1028,107,77,78,108, - 1053,67,1273,1256,1290,1280,1298,66,1292,1410, - 1341,71,70,1419,1506,143,2935,595,3978,147, - 144,2820,36,792,33,674,2429,28,31,32, - 937,985,27,29,782,26,24,51,1028,107, - 77,78,108,1053,2477,1273,1256,1290,1280,1298, - 2477,1292,1410,1341,1356,70,1419,1506,143,2445, - 1347,2102,146,144,2820,36,792,33,2615,2429, - 28,31,32,937,985,27,29,782,26,24, - 51,1028,107,77,78,108,1053,65,1273,1256, - 1290,1280,1298,70,1292,1410,1341,2443,402,1419, - 1506,143,595,3465,413,145,144,2764,36,792, - 33,2590,2429,28,31,32,937,985,27,29, - 782,26,24,51,1028,107,77,78,108,1053, - 587,1273,1256,1290,1280,1298,325,1292,1410,1341, - 72,1356,1419,3064,164,2820,36,792,33,406, - 2429,28,31,32,937,985,27,29,782,26, - 24,51,1028,107,77,78,108,1053,2061,1273, - 1256,1290,1280,1298,3079,1292,1410,1341,390,427, - 1419,1506,143,1736,1736,89,140,144,103,70, - 327,90,2369,1144,103,3054,36,792,33,2188, - 2429,28,31,32,937,985,27,29,782,26, - 24,51,1028,107,77,78,108,1053,156,1273, - 1256,1290,1280,1298,288,1292,1410,1341,2150,1027, - 1419,1506,143,2104,1356,1296,189,144,3172,36, - 792,33,1022,2429,28,31,32,937,985,27, - 29,782,26,24,51,1028,107,77,78,108, - 1053,2590,1273,1256,1290,1280,1298,56,1292,1410, - 1341,1736,1022,1419,3064,164,3172,36,792,33, - 2693,2429,28,31,32,937,985,27,29,782, - 26,24,51,1028,107,77,78,108,1053,299, - 1273,1256,1290,1280,1298,523,1292,1410,1341,356, - 355,1419,3064,164,1897,36,792,33,531,531, - 41,31,32,937,985,459,3172,36,792,33, - 423,2429,28,31,32,937,985,27,29,782, - 26,24,51,1028,107,77,78,108,1053,2590, - 1273,1256,1290,1280,1298,4282,1292,1410,1341,1722, - 1022,1419,3064,164,3172,36,792,33,292,2429, - 28,31,32,937,985,27,29,782,26,24, - 51,1028,107,77,78,108,1053,221,1273,1256, - 1290,1280,1298,523,1292,1410,1341,323,1022,1419, - 3064,164,1897,36,792,33,531,1893,1901,31, - 32,937,985,1521,3228,36,792,33,422,2429, - 28,31,32,937,985,27,29,782,26,24, - 51,1028,107,77,78,108,1053,2590,1273,1256, - 1290,1280,1298,52,1292,1410,1341,1802,2590,1419, - 3064,164,3172,36,792,33,425,2429,28,31, - 32,937,985,27,29,782,26,24,51,1028, - 107,77,78,108,1053,303,1273,1256,1290,1280, - 1298,326,1292,1410,1341,1566,179,2584,1897,36, - 792,33,1785,1650,2051,31,32,937,985,2307, - 36,280,3172,36,792,33,3944,2429,28,31, - 32,937,985,27,29,782,26,24,51,1028, - 107,77,78,108,1053,2272,1273,1256,1290,1280, - 1298,1893,1292,1410,2510,3172,36,792,33,1990, - 2429,28,31,32,937,985,27,29,782,26, - 24,51,1028,107,77,78,108,1053,2192,1273, - 1256,1290,1280,1298,3197,1292,2465,3172,36,792, - 33,3202,2429,28,31,32,937,985,27,29, - 782,26,24,51,1028,107,77,78,108,1053, - 136,1273,1256,1290,1280,1298,1006,2497,1540,36, - 792,33,4584,3660,28,31,32,937,985,339, - 29,3172,36,792,33,231,2429,28,31,32, - 937,985,27,29,782,26,24,51,1028,107, - 77,78,108,1053,1759,1273,1256,1290,2450,1259, - 36,1600,388,1356,2190,144,1713,2661,2843,1292, - 36,396,2929,2165,2879,2415,332,319,1851,321, - 2457,314,1507,853,36,453,2525,239,4662,595, - 36,1765,276,50,313,1159,55,351,766,36, - 1600,388,1593,741,3172,36,792,33,3946,2429, - 28,31,32,937,985,27,29,782,26,24, - 51,1028,107,77,78,108,1053,1486,1273,1256, - 1290,2456,273,2450,2173,1271,232,1240,3641,352, - 492,306,310,1366,1420,36,792,33,3884,3543, - 28,31,32,937,985,339,29,344,1458,880, - 349,240,230,231,2139,1629,1022,940,36,1600, - 388,2106,3517,335,2864,3709,2894,3737,943,36, - 1600,388,1844,1826,36,792,33,3405,3543,28, - 31,32,937,985,339,29,3165,380,2104,232, - 2615,50,70,319,1851,321,1144,314,1507,352, - 1593,2989,50,73,1723,1840,351,2615,3356,352, - 3425,1593,1034,3484,244,230,231,344,1458,880, - 349,156,1798,2615,2468,342,2871,344,1458,880, - 349,2552,319,1851,321,3391,314,1507,70,98, - 1255,505,3201,450,3698,3707,3595,1022,352,2870, - 1836,36,3553,33,4584,3660,28,31,32,937, - 985,339,29,2269,36,293,344,1458,880,349, - 3172,36,792,33,1629,2429,28,31,32,937, - 985,27,29,782,26,24,51,1028,107,77, - 78,108,1053,2658,1273,1256,2203,537,45,3033, - 391,427,232,2700,2929,1292,36,396,332,319, - 1851,321,3375,314,1507,2520,3856,393,427,366, - 70,2548,156,1474,3819,959,1194,247,230,231, - 99,180,2238,392,427,1988,3172,36,792,33, - 3946,2429,28,31,32,937,985,27,29,782, - 26,24,51,1028,107,77,78,108,1053,195, - 1273,1256,2275,3172,36,792,33,2321,2429,28, - 31,32,937,985,27,29,782,26,24,51, - 1028,107,77,78,108,1053,2250,1273,1256,2282, - 3172,36,792,33,2375,2429,28,31,32,937, - 985,27,29,782,26,24,51,1028,107,77, - 78,108,1053,3994,1894,417,419,3491,2013,1243, - 36,792,33,4584,3543,28,31,32,937,985, - 339,29,2269,3656,293,3172,36,792,33,1850, - 2429,28,31,32,937,985,27,29,782,26, - 24,51,1028,107,77,78,108,1053,262,1273, - 1256,2329,537,2003,2163,2590,1725,2982,3929,4585, - 2982,2621,2700,2302,4719,196,2377,2838,319,1851, - 321,228,314,1507,70,285,2514,156,2587,2514, - 1356,595,36,1600,388,313,180,2238,2853,595, - 36,1600,388,198,203,215,4675,202,212,213, - 214,216,1,169,70,70,537,2929,2603,3192, - 1931,332,239,322,168,50,183,167,170,171, - 172,173,174,431,47,228,2321,2156,1408,3465, - 182,156,307,310,1366,595,3373,1765,75,1109, - 180,2238,2853,2981,360,1408,3465,360,203,215, - 4675,202,212,213,214,216,3041,169,1715,3187, - 3204,1931,3187,3204,595,36,1600,388,168,181, - 184,167,170,171,172,173,174,1633,36,792, - 33,3884,3543,28,31,32,937,985,339,29, - 1356,2095,3284,36,1600,388,3929,2537,452,1710, - 1356,1921,36,792,33,237,3660,28,31,32, - 937,985,339,29,595,36,1600,388,1365,36, - 1765,3381,429,102,2880,2157,273,2892,2982,595, - 36,1600,388,3560,1973,1356,319,1851,321,3929, - 314,1507,1356,1371,1398,2929,3645,343,50,333, - 287,2251,352,526,232,2929,4707,1593,734,333, - 319,1851,321,434,315,1507,352,287,2227,800, - 344,1458,880,349,1895,451,352,529,527,235, - 230,231,1705,3482,346,1458,880,349,2929,70, - 274,2379,333,3203,346,1458,880,349,2446,2798, - 3482,1365,36,1765,276,595,36,1765,278,242, - 245,248,251,803,595,36,1765,3488,3116,36, - 792,33,1173,2429,28,31,32,937,985,27, - 29,782,26,24,51,1028,87,77,78,2444, - 2507,2620,3158,3264,4536,3172,36,792,33,2245, - 2429,28,31,32,937,985,27,29,782,26, - 24,51,1028,107,77,78,108,1053,1361,1273, - 2380,3172,36,792,33,2519,2429,28,31,32, - 937,985,27,29,782,26,24,51,1028,107, - 77,78,108,1053,349,1273,2386,1919,537,70, - 2475,2474,1725,1144,1144,2982,2982,595,36,1765, - 281,2165,70,2165,326,70,3829,228,442,3729, - 456,2590,70,156,2514,2514,1144,70,1592,156, - 232,2982,180,2238,2853,1400,36,1600,388,162, - 203,215,4675,202,212,213,214,216,436,169, - 343,156,537,2162,70,250,230,231,1144,197, - 168,1721,3950,167,170,171,172,173,174,50, - 2013,228,2504,1271,1629,1271,70,156,1593,1958, - 1144,70,2512,3322,1677,2982,180,2238,2853,1893, - 2618,3484,505,360,203,215,4675,202,212,213, - 214,216,523,169,343,156,537,2990,3187,3204, - 330,335,3554,335,168,1758,178,167,170,171, - 172,173,174,2013,70,228,2504,1893,2982,3843, - 2614,156,1356,503,504,70,232,297,1679,2982, - 180,2238,2853,1292,36,3139,2315,343,203,215, - 4675,202,212,213,214,216,610,169,343,505, - 537,253,230,231,4711,378,2518,2853,168,2504, - 176,167,170,171,172,173,174,50,3964,228, - 2504,1722,525,2731,2279,156,1593,872,1144,70, - 296,2587,1729,2982,180,2238,2853,943,36,1600, - 388,2274,203,215,4675,202,212,213,214,216, - 697,169,343,156,537,2003,2590,70,2013,2982, - 3929,1380,168,535,177,167,170,171,172,173, - 174,50,70,228,2504,2546,2982,505,2514,156, - 1593,48,4726,70,2448,2743,1678,2982,180,2238, - 2853,1219,1101,2289,302,343,203,215,4675,202, - 212,213,214,216,784,169,343,2238,537,2929, - 2658,4407,2586,332,1144,2653,168,2504,187,167, - 170,171,172,173,174,304,2163,228,2504,509, - 2165,4585,500,156,595,36,1600,388,2654,156, - 507,2656,180,2238,2853,2991,360,3706,200,3640, - 203,215,4675,202,212,213,214,216,2013,169, - 1715,3187,3204,940,36,1600,388,70,273,1893, - 168,1973,3995,167,170,171,172,173,174,2066, - 36,792,33,4584,3543,28,31,32,937,985, - 339,29,1271,940,36,1600,388,50,541,595, - 36,1600,388,2183,70,522,1593,48,1974,2853, - 70,70,871,505,3480,2982,537,1893,4737,1462, - 595,36,1600,388,376,382,505,50,3041,3830, - 335,4772,275,273,343,228,1593,2503,319,1851, - 321,156,314,1507,1356,943,36,1600,388,3549, - 180,2238,2853,1982,433,313,2504,2853,203,215, - 4675,202,212,213,214,216,2303,169,534,958, - 1345,1345,376,537,1144,1144,2590,3400,168,50, - 192,167,170,171,172,173,174,2686,1593,48, - 2590,1983,228,1356,430,769,3929,340,156,160, - 160,2278,306,310,1366,2718,2690,180,2238,2853, - 940,36,1600,388,201,203,215,4675,202,212, - 213,214,216,1045,169,3960,3454,537,199,374, - 595,36,1600,388,1744,168,3709,186,167,170, - 171,172,173,174,50,2929,228,2786,2684,332, - 2590,70,156,1593,812,1144,70,2758,2759,2724, - 3936,180,2238,2853,432,2726,3549,1457,1586,203, - 215,4675,202,212,213,214,216,3827,169,2474, - 156,2981,1101,2982,595,36,293,2798,298,168, - 1764,194,167,170,171,172,173,174,3172,36, - 792,33,2514,2429,28,31,32,937,985,27, - 29,782,26,24,51,1028,107,77,78,108, - 1053,2719,1920,3172,36,792,33,2804,2429,28, - 31,32,937,985,27,29,782,26,24,51, - 1028,107,77,78,108,2025,3172,36,792,33, - 1893,2429,28,31,32,937,985,27,29,782, - 26,24,51,1028,107,77,78,108,2149,1584, - 505,2161,70,2982,70,2982,4743,70,1144,1848, - 70,3442,70,2982,2061,70,3508,70,3700,1144, - 2853,3732,228,70,2514,522,88,962,2590,2788, - 2660,2794,228,156,2982,524,70,1356,1356,1356, - 3529,502,504,1844,156,205,215,4675,204,212, - 213,214,216,343,2536,205,215,4675,204,212, - 213,214,216,2473,1983,2844,3190,2967,2848,3929, - 3562,3317,3800,2070,1978,3883,206,208,210,294, - 295,3320,3684,217,207,209,206,208,210,294, - 295,3320,361,217,207,209,2015,36,3553,33, - 4584,3543,28,31,32,937,985,339,29,595, - 36,1600,388,3260,1356,4324,1936,2376,2929,2849, - 2982,175,332,3313,2843,4324,1714,36,792,33, - 2110,3660,28,31,32,937,985,339,29,228, - 2590,1334,70,50,1356,2590,1144,3965,595,36, - 1600,388,1593,1183,2991,319,1851,321,2850,314, - 1507,2884,205,215,4675,204,212,213,214,216, - 2853,156,1194,2855,2860,2800,2404,3673,222,5392, - 2929,3934,50,193,333,319,1851,321,5392,317, - 1507,1593,1228,206,208,210,294,295,3320,5392, - 217,207,209,3172,36,792,33,5392,2429,28, - 31,32,937,985,27,29,782,26,24,51, - 1028,107,77,78,86,5392,5392,3859,5392,5392, - 3408,5392,4324,3172,1636,792,1643,5392,2429,28, - 31,32,937,985,27,29,782,26,24,51, - 1028,107,77,78,85,5392,5392,5392,5392,5392, - 5392,418,419,3491,3172,36,792,33,5392,2429, - 28,31,32,937,985,27,29,782,26,24, - 51,1028,107,77,78,84,3172,36,792,33, - 5392,2429,28,31,32,937,985,27,29,782, - 26,24,51,1028,107,77,78,83,3172,36, - 792,33,5392,2429,28,31,32,937,985,27, - 29,782,26,24,51,1028,107,77,78,82, - 3172,36,792,33,5392,2429,28,31,32,937, - 985,27,29,782,26,24,51,1028,107,77, - 78,81,3172,36,792,33,5392,2429,28,31, - 32,937,985,27,29,782,26,24,51,1028, - 107,77,78,80,3172,36,792,33,5392,2429, - 28,31,32,937,985,27,29,782,26,24, - 51,1028,107,77,78,79,2998,36,792,33, - 5392,2429,28,31,32,937,985,27,29,782, - 26,24,51,1028,107,77,78,105,3172,36, - 792,33,5392,2429,28,31,32,937,985,27, - 29,782,26,24,51,1028,107,77,78,110, - 3172,36,792,33,5392,2429,28,31,32,937, - 985,27,29,782,26,24,51,1028,107,77, - 78,109,3172,36,792,33,5392,2429,28,31, - 32,937,985,27,29,782,26,24,51,1028, - 107,77,78,106,2024,5392,5392,5392,2982,5392, - 5392,5392,5392,5392,1672,1345,1345,1345,2982,1144, - 1144,1144,5392,5392,1760,5392,5392,228,2982,1345, - 5392,5392,5392,1144,5392,5392,5392,228,5392,5392, - 5392,5392,5392,5392,160,160,160,228,5392,5392, - 205,215,4675,204,212,213,214,216,160,5392, - 205,215,4675,204,212,213,214,216,5392,5392, - 205,215,4675,204,212,213,214,216,5392,5392, - 5392,206,208,210,294,295,3320,5392,520,207, - 209,206,208,210,294,295,3320,5392,519,207, - 209,206,208,210,294,295,3320,2112,218,207, - 209,2982,2024,2433,2980,5392,5392,2200,5392,5392, - 5392,2982,5392,5392,5392,5392,3032,5392,5392,5392, - 228,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 228,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,205,215,4675,204,212,213,214, - 216,5392,5392,205,215,4675,204,212,213,214, - 216,1243,36,792,33,4584,3543,28,31,32, - 937,985,339,29,206,208,210,294,295,3320, - 5392,305,207,209,206,208,210,294,295,3320, - 5392,499,207,209,1714,36,792,33,5392,3660, - 28,31,32,937,985,339,29,1243,36,792, - 33,4584,3543,28,31,32,937,985,339,29, - 319,1851,321,5392,314,1507,3334,36,1600,388, - 5392,2537,5392,5392,5392,5392,5392,2870,5392,238, - 5392,5392,5392,5392,5392,5392,5392,5392,2929,5392, - 5392,5392,333,319,1851,321,5392,315,1507,1194, - 273,5392,5392,2982,4844,5392,319,1851,321,5392, - 314,1507,5392,5392,1983,940,36,1600,388,3929, - 5392,70,228,3993,5392,537,5392,5392,232,1512, - 36,792,33,2630,3543,28,31,32,937,985, - 339,29,5392,5392,343,1635,407,4599,5392,50, - 156,5392,1300,236,230,231,2982,4844,1593,48, - 188,5392,5392,5392,274,5392,4517,403,2929,5392, - 5392,2879,332,5392,5392,228,408,409,410,294, - 295,3320,5392,243,246,249,252,803,316,3462, - 321,5392,940,36,1600,388,1173,5392,1635,407, - 4599,3272,5392,5392,4504,1802,36,792,33,2388, - 3543,28,31,32,937,985,339,29,5392,5392, - 5392,5392,5392,5392,3594,5392,50,5392,5392,408, - 409,410,294,295,3320,1593,48,940,36,1600, - 388,1491,36,1600,388,5392,5392,5392,2954,2727, - 5392,5392,5392,537,3272,5392,940,36,1600,388, - 5392,5392,411,413,316,3462,321,940,36,1600, - 388,50,343,2682,5392,50,5392,2982,156,5392, - 1593,48,5392,5392,1593,48,1404,2701,188,4622, - 50,5392,5392,3019,4517,5392,2514,1187,5392,1593, - 48,50,1666,36,1600,388,5392,5392,5392,70, - 1593,48,3570,537,70,411,414,5392,537,5392, - 5392,5392,5392,3680,5392,5392,595,36,1600,388, - 5392,5392,343,5392,5392,5392,50,343,156,595, - 36,1600,388,156,5392,1593,48,5392,1420,5392, - 5392,5392,190,928,2504,5392,5392,2006,3734,2504, - 50,2982,5392,2701,505,5392,1414,5392,70,1593, - 741,1543,537,50,595,36,1600,388,5392,5392, - 343,70,1593,659,5392,537,5392,5392,5392,5392, - 530,343,5392,5392,5392,5392,5392,156,5392,5392, - 5392,5392,2504,5392,343,502,504,188,50,5392, - 156,5392,5392,4517,533,5392,5392,1593,2283,5392, - 188,5392,5392,5392,5392,5392,4517,5392,5392,3848, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,3937,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,3643,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,3857,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,3034,5392,0,40,5407, - 0,40,5406,0,566,30,0,440,729,0, - 454,1078,0,39,627,0,39,5407,0,39, - 5406,0,2743,126,0,1,444,0,458,1332, - 0,457,2032,0,3189,92,0,566,387,0, - 36,34,0,33,35,0,40,627,0,1, - 864,0,1,5664,0,1,5663,0,1,5662, - 0,1,5661,0,1,5660,0,1,5659,0, - 1,5658,0,1,5657,0,1,5656,0,1, - 5655,0,1,5654,0,40,1,5407,0,40, - 1,5406,0,736,1,0,283,394,0,283, - 286,0,5626,241,0,5625,241,0,5730,241, - 0,5729,241,0,5653,241,0,5652,241,0, - 5651,241,0,5650,241,0,5649,241,0,5648, - 241,0,5647,241,0,5646,241,0,5664,241, - 0,5663,241,0,5662,241,0,5661,241,0, - 5660,241,0,5659,241,0,5658,241,0,5657, - 241,0,5656,241,0,5655,241,0,5654,241, - 0,40,5407,241,0,40,5406,241,0,5431, - 241,0,5407,49,0,5406,49,0,44,5429, - 0,44,38,0,2743,128,0,2743,127,0, - 5398,1,0,5397,1,0,3620,237,0,33, - 388,0,30,387,0,331,445,0,1,93, - 0,48,38,0,5431,1,0,40,1,0, - 501,3280,0,5431,1,229,0,40,1,229, - 0,229,416,0,5407,38,0,5406,38,0, - 5429,46,0,38,46,0,5407,37,0,5406, - 37,0,5407,2,38,0,5406,2,38,0, - 5402,405,0,5401,405,0,1,4471,0,1, - 3014,0,1,627,0,229,415,0,331,96, - 0,36,74,0,2895,318,0,1,331,0, - 4315,278,0,501,4314,0,1,229,0,229, - 220,0,229,219,0,1,575,0,1,2439, - 0,5404,1,0,5400,1,0,1,229,3777, - 0,5401,229,0,3846,229,0,5404,383,0, - 5403,383,0,3941,229,0,10,12,0,8, - 10,12,0,185,3619,0,3996,383,0,8, - 12,0 + 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,2702,2691, + 1278,3224,27,30,31,936,984,26,28,2601, + 25,23,50,1027,106,76,77,107,1052,1614, + 1272,1255,1289,1279,1297,56,1291,1409,1340,689, + 272,1418,1505,142,1243,35,395,157,143,1217, + 35,791,32,1982,2547,27,30,31,936,984, + 57,28,496,71,3121,35,791,32,231,2428, + 27,30,31,936,984,26,28,781,25,23, + 50,1027,106,76,77,107,1052,1267,1272,1255, + 1289,1279,2435,234,229,230,588,1635,1764,34, + 3121,35,791,32,273,2428,27,30,31,936, + 984,26,28,781,25,23,50,1027,106,76, + 77,107,2018,241,244,247,250,802,2164,35, + 276,588,35,1764,3080,1762,1172,1860,35,791, + 32,241,2547,27,30,31,936,984,56,28, + 2023,583,3714,2443,2506,2619,3157,3263,4535,2316, + 35,791,32,2981,2428,27,30,31,936,984, + 26,28,781,25,23,50,1027,106,76,77, + 107,1052,342,1272,1255,1289,1279,1297,61,1291, + 1409,1340,1607,3103,1418,1505,142,3928,56,2222, + 516,143,747,1279,2503,1500,35,791,32,1010, + 2417,41,30,31,936,984,517,2316,35,791, + 32,2981,2428,27,30,31,936,984,26,28, + 781,25,23,50,1027,106,76,77,107,1052, + 342,1272,1255,1289,1279,1297,2928,1291,1409,1340, + 1123,1016,1418,1505,142,327,35,278,516,143, + 3967,2532,2503,1351,1374,327,35,278,661,1599, + 4808,512,1229,875,517,2103,60,2344,35,791, + 32,2371,4795,27,30,31,936,984,26,28, + 2899,510,497,2901,1261,2316,35,791,32,2981, + 2428,27,30,31,936,984,26,28,781,25, + 23,50,1027,106,76,77,107,1052,342,1272, + 1255,1289,1279,1297,1042,1291,1409,1340,2870,512, + 1418,1505,142,69,94,3242,516,143,3003,1374, + 2503,588,35,2436,2434,1607,2103,1330,2916,1988, + 3928,2901,517,2524,35,791,32,2981,2428,27, + 30,31,936,984,26,28,781,25,23,50, + 1027,106,76,77,107,1052,342,1272,1255,1289, + 1279,1297,1503,1291,1409,1340,2981,2852,1418,1505, + 142,327,35,452,516,143,4661,1614,2503,2928, + 42,3032,3836,331,69,342,2558,512,737,3386, + 517,1715,35,791,32,314,4795,27,30,31, + 936,984,59,28,352,934,3014,1322,2716,2901, + 24,2659,35,791,32,3023,2428,27,30,31, + 936,984,26,28,781,25,23,50,1027,106, + 76,77,107,1052,2626,1272,1255,1289,1279,1297, + 3332,1291,1409,1340,442,513,1418,1505,142,2280, + 1270,3831,378,143,2385,35,791,32,1017,2428, + 27,30,31,936,984,26,28,781,25,23, + 50,1027,106,76,77,107,1052,2245,1272,1255, + 1289,1279,1297,1334,1291,1409,1340,327,334,1418, + 1505,142,2129,2196,3831,378,143,437,3121,35, + 791,32,413,2428,27,30,31,936,984,26, + 28,781,25,23,50,1027,106,76,77,107, + 1052,2404,1272,1255,1289,1279,1297,56,1291,1409, + 1340,825,1667,1418,3063,163,588,3625,1543,384, + 3278,445,3697,3706,2591,35,791,32,2103,2428, + 27,30,31,936,984,26,28,781,25,23, + 50,1027,106,76,77,107,1052,3518,1272,1255, + 1289,1279,1297,2034,1291,1409,1340,446,3928,1418, + 1505,142,385,3278,3831,378,143,56,3562,1833, + 2626,1143,3355,2887,35,791,32,3893,2428,27, + 30,31,936,984,26,28,781,25,23,50, + 1027,106,76,77,107,1052,155,1272,1255,1289, + 1279,1297,1330,1291,1409,1340,927,2928,1418,1505, + 142,1123,135,912,157,143,588,35,292,2887, + 35,791,32,2729,2428,27,30,31,936,984, + 26,28,781,25,23,50,1027,106,76,77, + 107,1052,1500,1272,1255,1289,1279,1297,142,1291, + 1409,1340,376,3278,1418,1505,142,1947,35,276, + 372,143,2887,35,791,32,3242,2428,27,30, + 31,936,984,26,28,781,25,23,50,1027, + 106,76,77,107,1052,1445,1272,1255,1289,1279, + 1297,69,1291,1409,1340,96,3512,1418,1505,142, + 737,236,64,372,143,1715,35,791,32,2284, + 4795,27,30,31,936,984,58,28,583,587, + 3405,494,3094,2887,35,791,32,1355,2428,27, + 30,31,936,984,26,28,781,25,23,50, + 1027,106,76,77,107,1052,371,1272,1255,1289, + 1279,1297,1868,1291,1409,1340,722,1715,1418,1505, + 142,1010,1270,159,372,143,2457,35,791,32, + 400,2428,27,30,31,936,984,26,28,781, + 25,23,50,1027,106,76,77,107,1052,370, + 1272,1255,1289,1279,1297,2149,1291,1409,1340,333, + 334,1418,1505,142,588,35,3087,141,143,2716, + 2887,35,791,32,420,2428,27,30,31,936, + 984,26,28,781,25,23,50,1027,106,76, + 77,107,1052,322,1272,1255,1289,1279,1297,1226, + 1291,1409,1340,1614,459,1418,1505,142,1146,1614, + 368,158,143,2887,35,791,32,2620,2428,27, + 30,31,936,984,26,28,781,25,23,50, + 1027,106,76,77,107,1052,69,1272,1255,1289, + 1279,1297,68,1291,1409,1340,1614,1873,1418,1505, + 142,588,35,281,154,143,2887,35,791,32, + 388,2428,27,30,31,936,984,26,28,781, + 25,23,50,1027,106,76,77,107,1052,53, + 1272,1255,1289,1279,1297,380,1291,1409,1340,93, + 56,1418,1505,142,4568,1617,2490,153,143,2887, + 35,791,32,1625,2428,27,30,31,936,984, + 26,28,781,25,23,50,1027,106,76,77, + 107,1052,353,1272,1255,1289,1279,1297,3566,1291, + 1409,1340,1614,56,1418,1505,142,999,446,311, + 152,143,2887,35,791,32,1627,2428,27,30, + 31,936,984,26,28,781,25,23,50,1027, + 106,76,77,107,1052,87,1272,1255,1289,1279, + 1297,323,1291,1409,1340,1614,56,1418,1505,142, + 2845,1614,1174,151,143,2887,35,791,32,2652, + 2428,27,30,31,936,984,26,28,781,25, + 23,50,1027,106,76,77,107,1052,52,1272, + 1255,1289,1279,1297,90,1291,1409,1340,1614,56, + 1418,1505,142,938,2049,1323,150,143,2887,35, + 791,32,1441,2428,27,30,31,936,984,26, + 28,781,25,23,50,1027,106,76,77,107, + 1052,349,1272,1255,1289,1279,1297,56,1291,1409, + 1340,2917,403,1418,1505,142,160,1614,676,149, + 143,2887,35,791,32,666,2428,27,30,31, + 936,984,26,28,781,25,23,50,1027,106, + 76,77,107,1052,322,1272,1255,1289,1279,1297, + 1844,1291,1409,1340,1614,56,1418,1505,142,1857, + 1614,848,148,143,2887,35,791,32,1167,2428, + 27,30,31,936,984,26,28,781,25,23, + 50,1027,106,76,77,107,1052,1882,1272,1255, + 1289,1279,1297,67,1291,1409,1340,1614,56,1418, + 1505,142,2569,1614,2683,147,143,2887,35,791, + 32,283,2428,27,30,31,936,984,26,28, + 781,25,23,50,1027,106,76,77,107,1052, + 66,1272,1255,1289,1279,1297,65,1291,1409,1340, + 70,56,1418,1505,142,2934,588,3977,146,143, + 2887,35,791,32,666,2428,27,30,31,936, + 984,26,28,781,25,23,50,1027,106,76, + 77,107,1052,2619,1272,1255,1289,1279,1297,2619, + 1291,1409,1340,1614,56,1418,1505,142,2444,1604, + 2151,145,143,2887,35,791,32,2582,2428,27, + 30,31,936,984,26,28,781,25,23,50, + 1027,106,76,77,107,1052,64,1272,1255,1289, + 1279,1297,56,1291,1409,1340,2442,401,1418,1505, + 142,588,3464,408,144,143,2832,35,791,32, + 2552,2428,27,30,31,936,984,26,28,781, + 25,23,50,1027,106,76,77,107,1052,580, + 1272,1255,1289,1279,1297,324,1291,1409,1340,71, + 1614,1418,3063,163,2887,35,791,32,405,2428, + 27,30,31,936,984,26,28,781,25,23, + 50,1027,106,76,77,107,1052,1818,1272,1255, + 1289,1279,1297,3078,1291,1409,1340,389,426,1418, + 1505,142,1761,1761,88,139,143,102,56,326, + 89,2044,1143,102,3005,35,791,32,2187,2428, + 27,30,31,936,984,26,28,781,25,23, + 50,1027,106,76,77,107,1052,155,1272,1255, + 1289,1279,1297,287,1291,1409,1340,2149,1015,1418, + 1505,142,2103,1614,1699,188,143,3121,35,791, + 32,1010,2428,27,30,31,936,984,26,28, + 781,25,23,50,1027,106,76,77,107,1052, + 2552,1272,1255,1289,1279,1297,55,1291,1409,1340, + 1761,1010,1418,3063,163,3121,35,791,32,2742, + 2428,27,30,31,936,984,26,28,781,25, + 23,50,1027,106,76,77,107,1052,298,1272, + 1255,1289,1279,1297,522,1291,1409,1340,355,354, + 1418,3063,163,2271,35,791,32,530,530,40, + 30,31,936,984,458,3121,35,791,32,422, + 2428,27,30,31,936,984,26,28,781,25, + 23,50,1027,106,76,77,107,1052,2552,1272, + 1255,1289,1279,1297,4281,1291,1409,1340,1700,1010, + 1418,3063,163,3121,35,791,32,291,2428,27, + 30,31,936,984,26,28,781,25,23,50, + 1027,106,76,77,107,1052,220,1272,1255,1289, + 1279,1297,522,1291,1409,1340,322,1010,1418,3063, + 163,2271,35,791,32,530,1330,1900,30,31, + 936,984,1223,3176,35,791,32,421,2428,27, + 30,31,936,984,26,28,781,25,23,50, + 1027,106,76,77,107,1052,2552,1272,1255,1289, + 1279,1297,51,1291,1409,1340,1801,2552,1418,3063, + 163,3121,35,791,32,424,2428,27,30,31, + 936,984,26,28,781,25,23,50,1027,106, + 76,77,107,1052,302,1272,1255,1289,1279,1297, + 325,1291,1409,1340,1385,178,2583,2271,35,791, + 32,1559,2417,2050,30,31,936,984,2407,35, + 279,3121,35,791,32,3943,2428,27,30,31, + 936,984,26,28,781,25,23,50,1027,106, + 76,77,107,1052,2135,1272,1255,1289,1279,1297, + 1330,1291,1409,2509,3121,35,791,32,1615,2428, + 27,30,31,936,984,26,28,781,25,23, + 50,1027,106,76,77,107,1052,2191,1272,1255, + 1289,1279,1297,3196,1291,2464,3121,35,791,32, + 3201,2428,27,30,31,936,984,26,28,781, + 25,23,50,1027,106,76,77,107,1052,1965, + 1272,1255,1289,1279,1297,2022,2496,1518,35,791, + 32,4583,3659,27,30,31,936,984,338,28, + 3121,35,791,32,159,2428,27,30,31,936, + 984,26,28,781,25,23,50,1027,106,76, + 77,107,1052,1758,1272,1255,1289,2449,1976,35, + 1599,387,1614,2484,142,1709,2690,2842,1243,35, + 395,2928,737,3347,2280,331,318,1850,320,2425, + 313,1506,843,35,452,2491,238,4661,588,35, + 1764,275,49,312,1701,54,350,757,35,1599, + 387,1592,740,3121,35,791,32,3945,2428,27, + 30,31,936,984,26,28,781,25,23,50, + 1027,106,76,77,107,1052,1712,1272,1255,1289, + 2455,272,2440,2147,1270,231,1225,3640,351,486, + 305,309,1365,1400,35,791,32,3883,3542,27, + 30,31,936,984,338,28,343,1457,879,348, + 239,229,230,2138,1628,1010,929,35,1599,387, + 2079,3516,334,2863,3708,2893,3736,932,35,1599, + 387,1374,1888,35,791,32,3404,3542,27,30, + 31,936,984,338,28,3164,379,2103,231,2582, + 49,56,318,1850,320,1143,313,1506,351,1592, + 2988,49,72,1783,1839,350,2582,3355,351,3424, + 1592,1033,3483,243,229,230,343,1457,879,348, + 155,1875,2582,2467,341,2870,343,1457,879,348, + 2551,318,1850,320,3390,313,1506,56,97,1240, + 69,3200,449,3697,3706,3594,1010,351,2869,1898, + 35,3552,32,4583,3659,27,30,31,936,984, + 338,28,2129,35,292,343,1457,879,348,3121, + 35,791,32,1628,2428,27,30,31,936,984, + 26,28,781,25,23,50,1027,106,76,77, + 107,1052,2556,1272,1255,2202,536,44,3032,390, + 426,231,2699,2928,1243,35,395,331,318,1850, + 320,3321,313,1506,2050,3855,392,426,365,56, + 1390,155,1453,3818,958,1193,246,229,230,98, + 179,2237,391,426,2125,3121,35,791,32,3945, + 2428,27,30,31,936,984,26,28,781,25, + 23,50,1027,106,76,77,107,1052,194,1272, + 1255,2274,3121,35,791,32,2320,2428,27,30, + 31,936,984,26,28,781,25,23,50,1027, + 106,76,77,107,1052,2244,1272,1255,2281,3121, + 35,791,32,2380,2428,27,30,31,936,984, + 26,28,781,25,23,50,1027,106,76,77, + 107,1052,3993,1893,416,418,3490,322,1691,35, + 791,32,4583,3542,27,30,31,936,984,338, + 28,2129,3655,292,3121,35,791,32,1849,2428, + 27,30,31,936,984,26,28,781,25,23, + 50,1027,106,76,77,107,1052,259,1272,1255, + 2328,536,1375,2122,2552,2234,2981,3928,4584,2981, + 2620,2699,838,4718,195,2415,2837,318,1850,320, + 227,313,1506,56,284,2513,155,2586,2513,1614, + 588,35,1599,387,312,179,2237,2852,588,35, + 1599,387,197,202,214,4674,201,211,212,213, + 215,1,168,56,56,536,2928,2602,3191,2279, + 331,2304,321,167,49,182,166,169,170,171, + 172,173,430,46,227,2320,2446,1643,3464,181, + 155,306,309,1365,588,3372,1764,74,1096,179, + 2237,2852,2980,359,1643,3464,359,202,214,4674, + 201,211,212,213,215,3040,168,1714,3186,3203, + 1930,3186,3203,588,35,1599,387,167,180,183, + 166,169,170,171,172,173,2070,35,791,32, + 3883,3542,27,30,31,936,984,338,28,1614, + 1983,3231,35,1599,387,3928,2536,451,2572,1614, + 1363,35,791,32,236,3659,27,30,31,936, + 984,338,28,588,35,1599,387,1543,35,1764, + 3380,428,101,2715,2453,272,2891,2981,588,35, + 1599,387,3559,1773,1614,318,1850,320,3928,313, + 1506,1614,1781,2481,2928,3644,342,49,332,286, + 2209,351,525,231,2928,4706,1592,733,332,318, + 1850,320,433,314,1506,351,286,2226,799,343, + 1457,879,348,49,450,351,528,526,234,229, + 230,1704,3481,345,1457,879,348,2928,56,273, + 2515,332,3202,345,1457,879,348,2615,2797,3481, + 1543,35,1764,275,588,35,1764,277,241,244, + 247,250,802,588,35,1764,3487,3066,35,791, + 32,1172,2428,27,30,31,936,984,26,28, + 781,25,23,50,1027,86,76,77,2443,2506, + 2619,3157,3263,4535,3121,35,791,32,2285,2428, + 27,30,31,936,984,26,28,781,25,23, + 50,1027,106,76,77,107,1052,1606,1272,2379, + 3121,35,791,32,2621,2428,27,30,31,936, + 984,26,28,781,25,23,50,1027,106,76, + 77,107,1052,345,1272,2385,1250,536,56,2443, + 2646,2234,1143,1143,2981,2981,588,35,1764,280, + 737,56,737,2305,56,3828,227,441,3728,455, + 2552,56,155,2513,2513,1143,56,1591,155,231, + 2981,179,2237,2852,2447,35,1599,387,161,202, + 214,4674,201,211,212,213,215,431,168,342, + 155,536,2306,56,249,229,230,1143,196,167, + 1720,3949,166,169,170,171,172,173,49,322, + 227,2503,1270,1780,1270,56,155,1592,1957,1143, + 56,1515,3321,1676,2981,179,2237,2852,1330,2689, + 3483,504,359,202,214,4674,201,211,212,213, + 215,517,168,342,155,536,2989,3186,3203,329, + 334,3553,334,167,1757,177,166,169,170,171, + 172,173,322,56,227,2503,1330,2981,3842,2691, + 155,1614,502,503,56,231,296,1678,2981,179, + 2237,2852,1243,35,3138,2314,342,202,214,4674, + 201,211,212,213,215,603,168,342,69,536, + 252,229,230,4710,377,2485,2852,167,2503,175, + 166,169,170,171,172,173,49,3963,227,2503, + 1721,524,2693,2249,155,1592,871,1143,56,295, + 2649,1728,2981,179,2237,2852,932,35,1599,387, + 1906,202,214,4674,201,211,212,213,215,689, + 168,342,155,536,1375,2552,56,322,2981,3928, + 1379,167,534,176,166,169,170,171,172,173, + 49,56,227,2503,2555,2981,69,2513,155,1592, + 47,4725,56,2580,2714,1677,2981,179,2237,2852, + 1218,1088,2288,301,342,202,214,4674,201,211, + 212,213,215,775,168,342,2412,536,2928,2556, + 4406,2722,331,1143,2717,167,2503,186,166,169, + 170,171,172,173,303,2122,227,2503,508,737, + 4584,2723,155,588,35,1599,387,2727,155,506, + 2728,179,2237,2852,2990,359,3705,199,3639,202, + 214,4674,201,211,212,213,215,322,168,1714, + 3186,3203,929,35,1599,387,56,272,1330,167, + 1972,3994,166,169,170,171,172,173,1952,35, + 791,32,4583,3542,27,30,31,936,984,338, + 28,1270,929,35,1599,387,49,540,588,35, + 1599,387,2627,56,521,1592,47,1973,2852,56, + 56,861,69,3479,2981,536,1330,4736,1461,588, + 35,1599,387,375,381,69,49,3040,3829,334, + 4771,274,272,342,227,1592,2502,318,1850,320, + 155,313,1506,1614,932,35,1599,387,3548,179, + 2237,2852,1981,432,312,2503,2852,202,214,4674, + 201,211,212,213,215,1675,168,533,947,1354, + 1354,375,536,1143,1143,2552,3399,167,49,191, + 166,169,170,171,172,173,2731,1592,47,2552, + 1607,227,1614,429,2735,3928,339,155,159,159, + 2277,305,309,1365,2082,2732,179,2237,2852,929, + 35,1599,387,200,202,214,4674,201,211,212, + 213,215,1033,168,3959,3453,536,198,373,588, + 35,1599,387,2068,167,3708,185,166,169,170, + 171,172,173,49,2928,227,2736,2747,331,2552, + 56,155,1592,811,1143,56,2746,2751,2789,3935, + 179,2237,2852,431,2737,3548,1456,1585,202,214, + 4674,201,211,212,213,215,3826,168,2646,155, + 2980,1088,2981,588,35,292,2750,297,167,1763, + 193,166,169,170,171,172,173,3121,35,791, + 32,2513,2428,27,30,31,936,984,26,28, + 781,25,23,50,1027,106,76,77,107,1052, + 2782,1919,3121,35,791,32,2790,2428,27,30, + 31,936,984,26,28,781,25,23,50,1027, + 106,76,77,107,2024,3121,35,791,32,1330, + 2428,27,30,31,936,984,26,28,781,25, + 23,50,1027,106,76,77,107,2148,1562,504, + 1796,56,2981,56,2981,4742,56,1143,1823,56, + 3441,56,2981,2060,56,3507,56,3699,1143,2852, + 3731,227,56,2513,521,87,961,2552,2755,2765, + 2757,227,155,2981,523,56,1614,1614,1614,3528, + 501,503,1843,155,204,214,4674,203,211,212, + 213,215,342,2535,204,214,4674,203,211,212, + 213,215,2413,1607,2759,3189,2966,2761,3928,3561, + 3316,3799,2069,1778,3882,205,207,209,293,294, + 3319,3683,216,206,208,205,207,209,293,294, + 3319,360,216,206,208,2062,35,3552,32,4583, + 3542,27,30,31,936,984,338,28,588,35, + 1599,387,3259,1614,4323,1910,2153,2928,2763,2981, + 173,331,3312,2792,4323,2156,35,791,32,2797, + 3659,27,30,31,936,984,338,28,227,2552, + 1333,56,49,1614,2552,1143,3964,588,35,1599, + 387,1592,1182,2990,318,1850,320,2787,313,1506, + 2733,204,214,4674,203,211,212,213,215,2768, + 155,1193,2794,2796,2655,1337,3672,221,5391,2928, + 3933,49,192,332,318,1850,320,5391,316,1506, + 1592,1227,205,207,209,293,294,3319,5391,216, + 206,208,3121,35,791,32,5391,2428,27,30, + 31,936,984,26,28,781,25,23,50,1027, + 106,76,77,85,5391,5391,3858,5391,5391,3407, + 5391,4323,3121,1635,791,1642,5391,2428,27,30, + 31,936,984,26,28,781,25,23,50,1027, + 106,76,77,84,5391,5391,5391,5391,5391,5391, + 417,418,3490,3121,35,791,32,5391,2428,27, + 30,31,936,984,26,28,781,25,23,50, + 1027,106,76,77,83,3121,35,791,32,5391, + 2428,27,30,31,936,984,26,28,781,25, + 23,50,1027,106,76,77,82,3121,35,791, + 32,5391,2428,27,30,31,936,984,26,28, + 781,25,23,50,1027,106,76,77,81,3121, + 35,791,32,5391,2428,27,30,31,936,984, + 26,28,781,25,23,50,1027,106,76,77, + 80,3121,35,791,32,5391,2428,27,30,31, + 936,984,26,28,781,25,23,50,1027,106, + 76,77,79,3121,35,791,32,5391,2428,27, + 30,31,936,984,26,28,781,25,23,50, + 1027,106,76,77,78,2950,35,791,32,5391, + 2428,27,30,31,936,984,26,28,781,25, + 23,50,1027,106,76,77,104,3121,35,791, + 32,5391,2428,27,30,31,936,984,26,28, + 781,25,23,50,1027,106,76,77,109,3121, + 35,791,32,5391,2428,27,30,31,936,984, + 26,28,781,25,23,50,1027,106,76,77, + 108,3121,35,791,32,5391,2428,27,30,31, + 936,984,26,28,781,25,23,50,1027,106, + 76,77,105,1997,5391,5391,5391,2981,5391,5391, + 5391,5391,5391,1649,1354,1354,1354,2981,1143,1143, + 1143,5391,5391,1736,5391,5391,227,2981,1354,5391, + 5391,5391,1143,5391,5391,5391,227,5391,5391,5391, + 5391,5391,5391,159,159,159,227,5391,5391,204, + 214,4674,203,211,212,213,215,159,5391,204, + 214,4674,203,211,212,213,215,5391,5391,204, + 214,4674,203,211,212,213,215,5391,5391,5391, + 205,207,209,293,294,3319,5391,519,206,208, + 205,207,209,293,294,3319,5391,518,206,208, + 205,207,209,293,294,3319,2084,217,206,208, + 2981,2023,2432,2979,5391,5391,2171,5391,5391,5391, + 2981,5391,5391,5391,5391,3031,5391,5391,5391,227, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,227, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,204,214,4674,203,211,212,213,215, + 5391,5391,204,214,4674,203,211,212,213,215, + 1691,35,791,32,4583,3542,27,30,31,936, + 984,338,28,205,207,209,293,294,3319,5391, + 304,206,208,205,207,209,293,294,3319,5391, + 498,206,208,2156,35,791,32,5391,3659,27, + 30,31,936,984,338,28,1691,35,791,32, + 4583,3542,27,30,31,936,984,338,28,318, + 1850,320,5391,313,1506,3280,35,1599,387,5391, + 2536,5391,5391,5391,5391,5391,2869,5391,237,5391, + 5391,5391,5391,5391,5391,5391,5391,2928,5391,5391, + 5391,332,318,1850,320,5391,314,1506,1180,272, + 5391,5391,2981,4843,5391,318,1850,320,5391,313, + 1506,5391,5391,1607,929,35,1599,387,3928,5391, + 56,227,3992,5391,536,5391,5391,231,1490,35, + 791,32,2629,3542,27,30,31,936,984,338, + 28,5391,5391,342,1634,406,4598,5391,49,155, + 5391,1285,235,229,230,2981,4843,1592,47,187, + 5391,5391,5391,273,5391,4516,402,2928,5391,5391, + 2878,331,5391,5391,227,407,408,409,293,294, + 3319,5391,242,245,248,251,802,315,3461,320, + 5391,929,35,1599,387,1172,5391,1634,406,4598, + 3271,5391,5391,4503,2236,35,791,32,2387,3542, + 27,30,31,936,984,338,28,5391,5391,5391, + 5391,5391,5391,3593,5391,49,5391,5391,407,408, + 409,293,294,3319,1592,47,929,35,1599,387, + 1962,35,1599,387,5391,5391,5391,2953,2623,5391, + 5391,5391,536,3271,5391,929,35,1599,387,5391, + 5391,410,412,315,3461,320,929,35,1599,387, + 49,342,2647,5391,49,5391,2981,155,5391,1592, + 47,5391,5391,1592,47,1403,2700,187,4621,49, + 5391,5391,3018,4516,5391,2513,1186,5391,1592,47, + 49,2167,35,1599,387,5391,5391,5391,56,1592, + 47,3569,536,56,410,413,5391,536,5391,5391, + 5391,5391,3679,5391,5391,588,35,1599,387,5391, + 5391,342,5391,5391,5391,49,342,155,588,35, + 1599,387,155,5391,1592,47,5391,1419,5391,5391, + 5391,189,927,2503,5391,5391,2208,3733,2503,49, + 2981,5391,2700,504,5391,1413,5391,56,1592,740, + 1542,536,49,588,35,1599,387,5391,5391,342, + 56,1592,658,5391,536,5391,5391,5391,5391,529, + 342,5391,5391,5391,5391,5391,155,5391,5391,5391, + 5391,2503,5391,342,501,503,187,49,5391,155, + 5391,5391,4516,532,5391,5391,1592,2282,5391,187, + 5391,5391,5391,5391,5391,4516,5391,5391,3847,5391, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,5391,5391,3936,5391,5391,5391,5391, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 3642,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,3856,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,5391,3033,5391,0,39,5406,0, + 39,5405,0,565,29,0,439,728,0,453, + 1077,0,38,626,0,38,5406,0,38,5405, + 0,2742,125,0,1,443,0,457,1331,0, + 456,2031,0,3188,91,0,565,386,0,35, + 33,0,32,34,0,39,626,0,1,863, + 0,1,5662,0,1,5661,0,1,5660,0, + 1,5659,0,1,5658,0,1,5657,0,1, + 5656,0,1,5655,0,1,5654,0,1,5653, + 0,1,5652,0,39,1,5406,0,39,1, + 5405,0,735,1,0,282,393,0,282,285, + 0,5624,240,0,5623,240,0,5728,240,0, + 5727,240,0,5651,240,0,5650,240,0,5649, + 240,0,5648,240,0,5647,240,0,5646,240, + 0,5645,240,0,5644,240,0,5662,240,0, + 5661,240,0,5660,240,0,5659,240,0,5658, + 240,0,5657,240,0,5656,240,0,5655,240, + 0,5654,240,0,5653,240,0,5652,240,0, + 39,5406,240,0,39,5405,240,0,5429,240, + 0,5406,48,0,5405,48,0,43,5427,0, + 43,37,0,2742,127,0,2742,126,0,5397, + 1,0,5396,1,0,3619,236,0,32,387, + 0,29,386,0,330,444,0,1,92,0, + 47,37,0,5429,1,0,39,1,0,500, + 3279,0,5429,1,228,0,39,1,228,0, + 228,415,0,5406,37,0,5405,37,0,5427, + 45,0,37,45,0,5406,36,0,5405,36, + 0,5406,2,37,0,5405,2,37,0,5401, + 404,0,5400,404,0,1,4470,0,1,3013, + 0,1,626,0,228,414,0,330,95,0, + 35,73,0,2894,317,0,1,330,0,4314, + 277,0,500,4313,0,1,228,0,228,219, + 0,228,218,0,1,574,0,1,2438,0, + 5403,1,0,5399,1,0,1,228,3776,0, + 5400,228,0,3845,228,0,5403,382,0,5402, + 382,0,3940,228,0,10,12,0,8,10, + 12,0,184,3618,0,3995,382,0,8,12, + 0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1103,351 +1103,348 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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, - 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, - 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, + 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,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,10,75,76, - 77,78,79,80,81,82,83,84,85,86, + 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,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, 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,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,0,49,50,51,52, - 53,54,55,0,57,58,59,60,61,62, - 63,0,65,66,67,68,0,101,0,8, - 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,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,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,0,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,99,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,4,8,0,57,58,59,60, - 0,62,63,8,0,1,2,25,26,27, - 0,72,73,27,4,0,97,98,3,37, - 38,0,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, - 0,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,61,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,0,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,72,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,0,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,87,88,55,56,57,58,59,0,61, + 62,0,64,39,0,1,2,101,4,5, + 9,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,0,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,64,0,64,4,6,57,58, - 59,60,0,62,63,3,65,0,1,2, - 8,4,0,6,22,76,9,23,24,0, - 0,0,3,3,0,1,2,8,87,0, + 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,0,89,89,91, + 91,56,57,58,59,0,61,62,98,64, + 0,22,23,24,96,97,71,28,29,30, + 31,32,33,34,35,36,55,0,1,2, + 60,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,3,9,3,56,57, + 58,59,100,61,62,90,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,69,69,27,28,29,30, - 31,32,33,34,35,36,64,0,56,40, - 0,69,48,71,0,8,74,48,4,0, - 0,91,3,64,4,73,57,58,59,60, - 70,62,63,74,65,103,104,105,0,1, - 2,0,22,0,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,0,1,2,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,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,59,0, + 27,28,29,30,31,32,33,34,35,36, + 39,0,0,40,0,4,48,3,0,1, + 2,48,63,72,0,68,8,70,4,56, + 57,58,59,22,61,62,0,64,0,3, + 0,3,0,3,8,0,1,2,3,4, + 5,118,7,0,1,2,0,1,2,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,0,27,28,29, + 30,31,32,33,34,35,36,0,0,63, + 40,48,4,63,68,8,70,69,48,73, + 68,0,70,102,103,104,56,57,58,59, + 22,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,0,0,25,26,68,0,1,2,8, - 0,37,38,0,0,37,38,39,8,41, + 0,1,2,25,26,5,55,7,0,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,27,64,61, - 62,39,0,70,66,67,0,1,2,3, + 52,53,54,0,0,0,73,63,60,61, + 0,6,0,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,63,0,1,2,68,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,70,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,0,1,2,25, + 26,0,0,0,0,0,0,3,48,8, + 8,37,38,39,0,41,42,43,44,45, + 46,47,0,49,50,51,52,53,54,0, + 1,2,0,0,60,0,0,1,2,0, + 8,67,0,4,48,71,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,72,0,0,0,3,0,3, - 106,3,69,37,38,39,0,41,42,43, - 44,45,46,47,120,49,50,51,52,53, - 54,55,0,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,69,0,71,0,3,0, - 1,2,48,37,38,39,0,41,42,43, + 14,15,16,17,18,19,20,21,67,55, + 0,25,26,0,0,73,3,48,8,0, + 0,8,68,37,38,39,0,41,42,43, + 44,45,46,47,55,49,50,51,52,53, + 54,65,66,68,0,73,60,3,94,95, + 68,65,66,0,1,2,3,4,5,6, + 7,0,9,10,11,12,13,14,15,16, + 17,18,19,20,21,55,63,63,25,26, + 70,0,63,73,0,0,73,0,68,8, + 37,38,39,8,41,42,43,44,45,46, + 47,0,49,50,51,52,53,54,27,0, + 0,0,27,60,94,95,55,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,3,0,48, + 0,3,0,69,4,0,0,37,38,39, + 8,41,42,43,44,45,46,47,0,49, + 50,51,52,53,54,0,0,68,0,27, + 60,0,4,72,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, + 55,55,0,25,26,40,40,0,0,0, + 0,4,0,48,48,37,38,39,72,41, + 42,43,44,45,46,47,55,49,50,51, + 52,53,54,0,0,0,0,3,60,5, + 6,0,0,9,3,67,0,0,0,3, + 0,0,0,3,0,0,0,55,48,25, + 26,0,55,55,55,0,0,55,3,0, + 0,37,38,3,0,41,0,3,0,3, + 0,3,0,3,0,3,0,0,55,55, + 3,0,40,0,0,121,0,63,0,65, + 66,0,68,69,70,69,0,72,0,0, + 55,0,70,0,0,0,0,69,0,72, + 69,87,88,89,70,69,92,93,94,95, + 96,97,98,99,100,101,70,39,69,105, + 0,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,90,69,25,26,70,118, + 0,72,69,72,69,0,0,0,37,38, + 39,75,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,55,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,72,0,61,64,3, - 8,0,8,10,68,4,48,119,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,69,0,0,0, - 56,48,4,0,0,69,37,38,39,10, - 41,42,43,44,45,46,47,56,49,50, - 51,52,53,54,55,0,74,0,74,0, - 61,95,96,4,0,66,67,0,1,2, - 3,4,5,6,7,0,9,10,11,12, - 13,14,15,16,17,18,19,20,21,60, - 56,64,25,26,73,0,0,64,3,0, - 4,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,75,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,56,0, - 25,26,0,0,0,0,3,0,0,0, - 0,48,37,38,39,8,41,42,43,44, - 45,46,47,56,49,50,51,52,53,54, - 55,0,0,0,27,0,61,73,3,0, - 0,10,0,68,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,40,70,0,0,0,0,73,73,48, - 0,37,38,39,8,41,42,43,44,45, - 46,47,0,49,50,51,52,53,54,55, - 91,0,70,27,71,61,39,0,0,70, - 3,3,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,73,0,0,71,70,3,0,56,0, - 37,38,39,0,41,42,43,44,45,46, - 47,119,49,50,51,52,53,54,55,0, + 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,56,0,0,25,26,3,0,0,0, - 3,3,0,0,0,3,37,38,39,0, - 41,42,43,44,45,46,47,70,49,50, - 51,52,53,54,55,0,73,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,0,70, - 41,122,0,40,70,39,0,0,0,70, - 0,56,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, + 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,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,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,1,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 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1455,351 +1452,346 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5392,5357,5336,5336,5336,5336,5336,5336,5373,5336, + 5391,5356,5335,5335,5335,5335,5335,5335,5372,5335, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5360,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5361,1,1, + 1,1,1,1,1,1,1,1,138,1, + 1,1,1,1,1,1,1,1,1,1806, + 1,5565,2694,114,3636,1,1,5402,39,3795, + 5391,5398,5429,4778,877,3887,3210,2203,2844,3770, + 3183,3884,1086,3850,3459,3848,10,5375,5375,5375, + 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, + 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, + 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, + 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, + 5375,5375,5375,5375,330,5375,5375,5375,5375,5375, + 5375,394,5375,5375,5375,5375,5375,5375,5375,2241, + 5375,5375,5375,5375,2571,3772,630,5375,383,5391, + 5375,5375,5375,5375,5375,5375,5375,5375,5375,5375, + 5375,5375,8,5378,5378,5378,5378,5378,5378,5378, + 5378,5378,5378,5378,5378,5378,5378,5378,5378,5378, + 5378,5378,5378,5378,5378,5378,5378,5378,5378,5378, + 5378,5378,5378,5378,5378,5378,5378,5378,5378,5378, + 5378,5378,5378,5378,5378,5378,5378,5378,5378,5378, + 5391,5378,5378,5378,5378,5378,5378,2714,5378,5378, + 5378,5378,5378,5378,5378,300,5378,5378,5378,5378, + 285,5128,5128,5378,282,5690,5378,5378,5378,5378, + 5378,5378,5378,5378,5378,5378,5378,5378,5391,5356, + 5335,5335,5335,5335,5335,5335,5363,5335,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,118,1, - 1,1,1,1,1,1,135,1,1,1, - 1807,1,5567,2695,115,3637,1,1,5403,1, - 3796,331,5399,3748,2770,878,3888,3211,2204,2845, - 3771,3184,3885,1087,3851,3460,3849,10,5376,5376, - 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, - 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, - 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, - 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, - 5376,5376,5376,5376,5376,120,5376,5376,5376,5376, - 5376,5376,5376,395,5376,5376,5376,5376,5376,5376, - 5376,157,5376,5376,5376,5376,2325,3773,631,5376, - 3748,2770,5376,5376,5376,5376,5376,5376,5376,5376, - 5376,5376,5376,5376,8,5379,5379,5379,5379,5379, - 5379,5379,5379,5379,5379,5379,5379,5379,5379,5379, - 5379,5379,5379,5379,5379,5379,5379,5379,5379,5379, - 5379,5379,5379,5379,5379,5379,5379,5379,5379,5379, - 5379,5379,5379,5379,5379,5379,5379,5379,5379,5379, - 5379,5379,1381,5379,5379,5379,5379,5379,5379,5379, - 384,5379,5379,5379,5379,5379,5379,5379,515,5379, - 5379,5379,5379,286,5129,5129,5379,283,5392,5379, - 5379,5379,5379,5379,5379,5379,5379,5379,5379,5379, - 5379,5392,5357,5336,5336,5336,5336,5336,5336,5364, - 5336,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5361,1, + 1,1,1,1,1,5360,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,884, - 1,1,1,1,1,1,1,439,1,1, - 1,1807,1,5567,2695,362,3637,1,1,5403, - 5392,5031,5028,5392,5431,5392,878,3888,3211,2204, - 2845,3771,3184,3885,1087,3851,3460,3849,5392,5357, - 5336,5336,5336,5336,5336,5336,5364,5336,1,1, + 1,1,1,1,1,1,5391,1,1,1, + 1,1,1,438,1,1,1,1806,1,5565, + 2694,5391,3636,1,1,5402,5391,5030,5027,5399, + 5429,5391,877,3887,3210,2203,2844,3770,3183,3884, + 1086,3850,3459,3848,5391,5356,5335,5335,5335,5335, + 5335,5335,5363,5335,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5361,1,1,1,1, + 1,5360,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3821,1,1,1, - 1,1,1,1,2715,1,1,1,1807,1, - 5567,2695,117,3637,1,1,5403,111,3796,458, - 5827,5828,5829,878,3888,3211,2204,2845,3771,3184, - 3885,1087,3851,3460,3849,5392,5357,5336,5336,5336, - 5336,5336,5336,5364,5336,1,1,1,1,1, + 1,1,5398,1,1,1,1,1,1,134, + 1,1,1,1806,1,5565,2694,116,3636,1, + 1,5402,110,3795,5391,5825,5826,5827,877,3887, + 3210,2203,2844,3770,3183,3884,1086,3850,3459,3848, + 5391,5356,5335,5335,5335,5335,5335,5335,5363,5335, 1,1,1,1,1,1,1,1,1,1, - 1,1,5361,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5360,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5058,1,1,1,1,1,1, - 1,136,1,1,1,1807,1,5567,2695,289, - 3637,1,1,5403,40,3773,631,4238,5431,4260, - 878,3888,3211,2204,2845,3771,3184,3885,1087,3851, - 3460,3849,5392,5357,5336,5336,5336,5336,5336,5336, - 5364,5336,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5361, + 1,1,1,1,1,1,1,1,5391,1, + 1,1,1,1,1,135,1,1,1,1806, + 1,5565,2694,130,3636,1,1,5402,2324,3772, + 630,4237,594,4259,877,3887,3210,2203,2844,3770, + 3183,3884,1086,3850,3459,3848,5391,5356,5335,5335, + 5335,5335,5335,5335,5363,5335,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5360,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1892,1,1,1,1,1,1,1,5392,1, - 1,1,1807,1,5567,2695,116,3637,1,1, - 5403,2325,3796,121,5392,5406,5407,878,3888,3211, - 2204,2845,3771,3184,3885,1087,3851,3460,3849,5392, - 5357,5336,5336,5336,5336,5336,5336,5364,5336,1, + 1,1,1,1,5391,1,1,1,1,1, + 1,5391,1,1,1,1806,1,5565,2694,115, + 3636,1,1,5402,2324,3795,120,5391,5405,5406, + 877,3887,3210,2203,2844,3770,3183,3884,1086,3850, + 3459,3848,5391,5356,5335,5335,5335,5335,5335,5335, + 5363,5335,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5360, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5361,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5392,1,1, - 1,1,1,1,1,5392,1,1,1,1807, - 1,5567,2695,5392,3637,1,1,5403,2925,3773, - 631,3135,3161,5392,878,3888,3211,2204,2845,3771, - 3184,3885,1087,3851,3460,3849,5392,5357,5336,5336, - 5336,5336,5336,5336,5364,5336,1,1,1,1, + 5391,1,1,1,1,1,1,5391,1,1, + 1,1806,1,5565,2694,5391,3636,1,1,5402, + 2924,3772,630,3134,3160,5391,877,3887,3210,2203, + 2844,3770,3183,3884,1086,3850,3459,3848,5391,5356, + 5335,5335,5335,5335,5335,5335,5363,5335,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5361,1,1,1,1,1,1, + 1,1,1,1,1,5360,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5392,1,1,1,1,1, - 1,1,2766,1,1,1,1807,1,5567,2695, - 131,3637,1,1,5403,5392,5406,5407,426,595, - 2925,878,3888,3211,2204,2845,3771,3184,3885,1087, - 3851,3460,3849,5392,5357,5336,5336,5336,5336,5336, - 5336,5364,5336,1,1,1,1,1,1,1, + 1,1,1,1,1,1,335,1,1,1, + 1,1,1,2765,1,1,1,1806,1,5565, + 2694,5391,3636,1,1,5402,5391,5405,5406,5727, + 5728,2924,877,3887,3210,2203,2844,3770,3183,3884, + 1086,3850,3459,3848,5391,5356,5335,5335,5335,5335, + 5335,5335,5363,5335,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5361,1,1,1,1,1,1,1,1,1, + 1,5360,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5392,1,1,1,1,1,1,1,3476, - 1,1,1,1807,1,5567,2695,301,3637,1, - 1,5403,5392,5031,5028,5392,5431,5692,878,3888, - 3211,2204,2845,3771,3184,3885,1087,3851,3460,3849, - 5392,5357,5336,5336,5336,5336,5336,5336,5364,5336, + 1,1,5391,1,1,1,1,1,1,5391, + 1,1,1,1806,1,5565,2694,1,3636,1, + 1,5402,5391,5030,5027,5353,5429,5391,877,3887, + 3210,2203,2844,3770,3183,3884,1086,3850,3459,3848, + 5391,5356,5335,5335,5335,5335,5335,5335,5363,5335, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5361,1,1, + 1,1,1,1,1,1,1,5360,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5392,1, - 1,1,1,1,1,1,137,1,1,1, - 1807,1,5567,2695,5392,3637,1,1,5403,5392, - 5215,5212,49,5215,5212,878,3888,3211,2204,2845, - 3771,3184,3885,1087,3851,3460,3849,5392,5357,5336, - 5336,5336,5336,5336,5336,5364,5336,1,1,1, + 1,1,1,1,1,1,1,1,5398,1, + 1,1,1,1,1,2773,1,1,1,1806, + 1,5565,2694,5391,3636,1,1,5402,5391,5214, + 5211,48,5214,5211,877,3887,3210,2203,2844,3770, + 3183,3884,1086,3850,3459,3848,5391,5356,5335,5335, + 5335,5335,5335,5335,5363,5335,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5361,1,1,1,1,1, + 1,1,1,5360,1,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,5392,1,1,1,1807,1,5567, - 2695,5392,3637,1,1,5403,114,2292,5392,5396, - 3748,2770,878,3888,3211,2204,2845,3771,3184,3885, - 1087,3851,3460,3849,5392,3777,1,1,1,1, - 1,1,3846,1,1,1,1,1,1,1, + 1,1,1,1,5391,1,1,1,1,1, + 1,5391,1,1,1,1806,1,5565,2694,5391, + 3636,1,1,5402,113,5391,91,5395,3619,5063, + 877,3887,3210,2203,2844,3770,3183,3884,1086,3850, + 3459,3848,5391,3776,1,1,1,1,1,1, + 3845,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5400, 1,1,1,1,1,1,1,1,1,1, - 1,5401,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,133,1,1,1,1,1,1,1, - 5392,1,1,1,1807,1,5567,2695,5392,3637, - 1,1,5403,5392,1630,5392,4238,5721,4260,878, - 3888,3211,2204,2845,3771,3184,3885,1087,3851,3460, - 3849,40,5031,5028,1138,736,4053,4128,3014,5395, - 4150,796,5656,5654,5663,5662,5658,5659,5657,5660, - 5661,5664,5655,5652,5729,5730,4106,4084,134,5646, - 5653,5649,5625,5651,5650,5647,5648,5626,4194,4172, - 5412,5790,4023,618,730,5414,666,3108,681,5392, - 5415,5413,594,5408,5410,5411,5409,5392,672,5791, - 5792,2357,1337,5392,5267,5267,229,5263,229,229, - 229,5271,229,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5392,3939, - 229,1,1,1,1,1,1,1,1,1, - 5392,5031,5028,1,736,627,5027,3014,5392,224, - 5392,5260,1,5119,5115,4471,5123,627,2774,3014, - 1,1,1,2643,225,5804,1272,2357,5392,5406, - 5407,5652,5729,5730,5392,416,229,5646,5653,5649, - 5625,5651,5650,5647,5648,5626,5652,5729,5730,129, - 5892,5392,5646,5653,5649,5625,5651,5650,5647,5648, - 5626,397,5406,5407,3217,113,5827,5828,5829,5392, - 5267,5267,229,5263,229,229,229,5315,229,1, + 5391,1,1,1,1,1,1,5391,1,1, + 1,1806,1,5565,2694,5391,3636,1,1,5402, + 5391,1629,5391,4237,5719,4259,877,3887,3210,2203, + 2844,3770,3183,3884,1086,3850,3459,3848,39,5030, + 5027,1137,735,4052,4127,3013,5394,4149,795,5654, + 5652,5661,5660,5656,5657,5655,5658,5659,5662,5653, + 5650,5727,5728,4105,4083,136,5644,5651,5647,5623, + 5649,5648,5645,5646,5624,4193,4171,5410,5788,4022, + 617,729,5412,665,3107,680,5391,5413,5411,593, + 5407,5408,5409,5391,671,5789,5790,793,1336,5391, + 5266,5266,228,5262,228,228,228,5270,228,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,4216,1009,229,1,1,1, - 1,1,1,1,1,1,5392,5031,5028,1, - 736,627,34,3014,1,5070,5392,5260,5070,5392, - 5070,5070,161,794,5402,5392,1,1,1,2643, - 226,5804,1272,5398,37,5289,5286,5070,5070,5070, - 5392,415,229,5401,2541,5392,2474,2401,4779,5070, - 5070,5392,5652,5729,5730,4238,5892,4260,5646,5653, - 5649,5625,5651,5650,5647,5648,5626,5392,5070,5392, - 5215,5212,5827,5828,5829,5398,5070,290,5406,5407, - 5392,5070,5070,5070,5070,5070,5070,3916,161,367, - 5119,5115,2553,5123,627,1,3014,5392,1,5397, - 5070,5070,5070,5070,5070,5070,5070,5070,5070,5070, - 5070,5070,5070,5070,5070,5392,8804,8804,5070,5070, - 5070,5070,5070,5070,5070,5070,5070,5070,5070,5070, - 5070,5392,5070,5070,5073,4216,1009,5073,3561,5073, - 5073,5397,457,30,387,387,5242,387,387,5242, - 387,5242,5242,1897,5392,132,5073,5073,5073,1190, - 5392,8478,8410,5429,595,387,387,387,5073,5073, - 5242,387,387,387,387,387,387,387,387,387, - 5392,1,5119,5115,5306,5123,5312,5073,5309,5402, - 125,39,5049,5046,5392,5073,5043,5392,3014,5034, - 5073,5073,5073,5073,5073,5073,5061,5242,5401,309, - 5119,5115,4471,5123,627,5327,3014,5242,5327,5073, - 5073,5073,5073,5073,5073,5073,5073,5073,5073,5073, - 5073,5073,5073,5073,5392,124,3271,5073,5073,5073, - 5073,5073,5073,5073,5073,5073,5073,5073,5073,5073, - 3314,5073,5073,5392,5336,5336,229,5336,229,229, - 229,5339,229,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3135,3161, - 229,1,1,8815,1,1,1,1,1,1, - 5392,5031,5028,1,736,5076,5392,3014,227,3620, - 5392,5333,1,5119,5115,2553,5123,627,139,3014, - 1,1,1,2812,92,5603,2695,5064,3637,38, - 5652,5729,5730,3135,3161,220,5646,5653,5649,5625, - 5651,5650,5647,5648,5626,5392,8478,8410,942,5392, - 5892,5392,5336,5336,229,5336,229,229,229,229, - 229,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1897,5429,229,1, - 1,8815,1,1,1,1,1,1,1854,48, - 5392,1,130,331,5031,5028,4471,736,627,5333, - 3014,112,138,1,1,3325,3379,3434,1,1, - 1,2812,363,5603,2695,532,3637,5392,5031,5028, - 2242,736,5076,5392,3014,2572,1811,1768,1725,1682, - 1639,1596,1553,1510,1467,1424,348,2459,5892,5392, - 5336,5336,229,5336,229,229,229,5342,229,1, + 1,1,1,1,5391,3938,228,1,1,1, + 1,1,1,1,1,1,5391,5030,5027,1, + 735,5075,124,3013,223,132,5391,5259,393,5125, + 5125,5391,282,5391,2855,1,1,1,2642,224, + 5802,1271,396,5405,5406,2291,5650,5727,5728,357, + 415,228,5644,5651,5647,5623,5649,5648,5645,5646, + 5624,5650,5727,5728,941,5890,5391,5644,5651,5647, + 5623,5649,5648,5645,5646,5624,282,5391,5391,8787, + 8787,5825,5826,5827,5391,5266,5266,228,5262,228, + 228,228,5314,228,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3134, + 3160,228,1,1,1,1,1,1,1,1, + 1,3216,33,2356,1,5069,5427,5391,5069,5391, + 5069,5069,5259,37,5250,5250,8,5403,5250,5747, + 1,1,1,2642,5388,5802,1271,5069,5069,5069, + 43,5220,5220,1,128,414,228,5391,5391,5069, + 5069,160,344,5030,5027,2552,735,626,330,3013, + 5890,330,5391,5391,1,5256,5256,5069,5253,5391, + 330,3007,362,330,123,5069,5825,5826,5827,1, + 5069,5069,5069,5069,5069,5069,5402,5026,5217,366, + 5118,5114,2552,5122,626,1,3013,5388,1,5069, + 5069,5069,5069,5069,5069,5069,5069,5069,5069,5069, + 5069,5069,5069,5069,5391,1896,160,5069,5069,5069, + 5069,5069,5069,5069,5069,5069,5069,5069,5069,5069, + 5391,5069,5069,5072,117,1934,5072,362,5072,5072, + 2473,2400,29,386,386,5241,386,386,5241,386, + 5241,5241,1896,3406,362,5072,5072,5072,1189,3747, + 2769,3134,3160,5391,386,386,386,5072,5072,5241, + 386,386,386,386,386,386,386,386,386,1, + 5118,5114,5305,5122,5311,5072,5308,5401,5391,38, + 5048,5045,1,5072,5042,3378,3013,5033,5072,5072, + 5072,5072,5072,5072,5391,5241,5400,308,5118,5114, + 4470,5122,626,5326,3013,5241,5326,5072,5072,5072, + 5072,5072,5072,5072,5072,5072,5072,5072,5072,5072, + 5072,5072,36,5288,5285,5072,5072,5072,5072,5072, + 5072,5072,5072,5072,5072,5072,5072,5072,122,5072, + 5072,5391,5335,5335,228,5335,228,228,228,5338, + 228,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5791,5391,228,1, + 1,8705,1,1,1,1,1,1,443,1, + 1,1,1,5391,5054,225,39,5054,5391,5332, + 5429,5401,330,5391,121,330,138,1,1,1, + 2811,5397,5601,2694,457,3636,456,5650,5727,5728, + 5400,5391,219,5644,5651,5647,5623,5649,5648,5645, + 5646,5624,289,5405,5406,3134,3160,5890,5391,5335, + 5335,228,5335,228,228,228,228,228,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,123,1276,229,1,1,8815, - 1,1,1,1,1,1,3708,237,363,1, - 5236,1,5119,5115,5306,5123,5312,5333,5309,2474, - 2401,4238,4417,4260,3191,363,1,1,1,2812, - 1897,5603,2695,2292,3637,1,5119,5115,2553,5123, - 627,219,3014,5230,5392,5392,5119,5115,4471,5123, - 627,5327,3014,5392,5327,5392,5892,5392,5336,5336, - 229,5336,229,229,229,5339,229,1,1,1, + 1,1,1,3915,5391,228,1,1,8705,1, + 1,1,1,1,1,1853,5396,5057,1,5060, + 1,5118,5114,4470,5122,626,5332,3013,112,111, + 133,3134,3160,3433,1,1,1,2811,129,5601, + 2694,131,3636,3456,5391,5030,5027,2241,735,626, + 594,3013,2571,1810,1767,1724,1681,1638,1595,1552, + 1509,1466,1423,5391,5890,5391,5335,5335,228,5335, + 228,228,228,5341,228,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3135,3161,229,1,1,8815,1,1, - 1,1,1,1,444,1,1,1,1,1897, - 5055,5392,5392,5055,139,5333,5392,5406,5407,5233, - 5404,627,5392,3014,1,1,1,2812,2028,5603, - 2695,5392,3637,394,5126,5126,1935,283,358,220, - 345,5031,5028,2553,736,627,331,3014,5392,331, - 5392,44,5221,5221,5892,5392,5336,5336,229,5336, - 229,229,229,5339,229,1,1,1,1,1, + 531,5391,228,1,1,8705,1,1,1,1, + 1,1,444,39,39,1,5429,5391,5244,226, + 5391,5244,137,5332,2540,5399,5391,4237,4237,4259, + 4259,1,1,1,2811,1,5601,2694,2356,3636, + 5391,5650,5727,5728,2473,2400,218,5644,5651,5647, + 5623,5649,5648,5645,5646,5624,3270,37,5250,5250, + 3707,5890,5391,5335,5335,228,5335,228,228,228, + 5338,228,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1004,5398,228, + 1,1,8705,1,1,1,1,1,1,5391, + 5030,5027,1,735,5075,3090,3013,92,1,1, + 5332,1,346,5247,236,1586,5247,5235,1,1, + 1,2811,2291,5601,2694,5749,3636,1,5118,5114, + 2552,5122,626,219,3013,5229,5391,5391,5118,5114, + 4470,5122,626,5326,3013,369,5326,1275,5890,5391, + 5335,5335,228,5335,228,228,228,5338,228,1, 1,1,1,1,1,1,1,1,1,1, - 5403,283,229,1,1,8815,1,1,1,1, - 1,1,445,40,40,1,5431,5392,5245,5218, - 2856,5245,40,5333,1897,5400,5431,5392,331,122, - 3212,331,1,1,1,2812,2242,5603,2695,5904, - 3637,2572,1,5257,5257,1,5254,220,331,5749, - 363,331,5392,5398,1,5119,5115,4471,5123,627, - 5400,3014,5892,5392,5336,5336,229,5336,229,229, - 229,229,229,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1005,5399, - 229,1,1,8815,1,1,1,1,1,1, - 38,5251,5251,1,5392,1,5119,5115,4471,5123, - 627,5333,3014,309,5392,5392,363,3135,3161,5397, - 1,1,1,2812,5399,5603,2695,2028,3637,5392, - 5277,5274,309,363,345,40,40,2434,5431,347, - 331,318,1587,331,5324,46,5283,5283,3091,5392, - 5892,5392,5336,5336,229,5336,229,229,229,229, - 229,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5392,5429,229,1, - 1,8815,1,1,1,1,1,1,93,1, - 1,1,1,5280,5248,5392,5392,5248,1897,5333, - 1,5392,40,1897,336,1897,5431,2618,1,1, - 1,2812,1,5603,2695,2434,3637,96,40,40, - 341,5431,30,5318,946,3990,5318,5729,5730,1, - 311,5392,2434,3244,5392,5296,5292,5230,5892,5392, - 5336,5336,229,5336,229,229,229,229,229,1, + 1,1,1,1,5391,1896,228,1,1,8705, + 1,1,1,1,1,1,5391,5276,5273,1, + 1896,1,5118,5114,4470,5122,626,5332,3013,308, + 5232,5391,8614,8376,119,1,1,1,2811,2027, + 5601,2694,5391,3636,1232,5391,5405,5406,308,5391, + 219,156,344,39,39,2433,5429,347,330,3747, + 2769,330,5391,5391,5427,5890,5391,5335,5335,228, + 5335,228,228,228,228,228,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5833,5847,229,1,1,8815, - 1,1,1,1,1,1,1897,1,566,1, - 5392,341,5429,341,396,5351,341,5333,387,5392, - 40,5751,3266,1897,5431,424,1,1,1,2812, - 1095,5603,2695,5233,3637,5827,5828,5829,5392,5406, - 5407,395,3427,370,76,388,5404,3621,5392,1, - 1,1,1,1,1,1,5892,1,1,1, + 1,118,5391,228,1,1,8705,1,1,1, + 1,1,1,95,39,39,1,5429,5391,5317, + 4215,1008,5317,374,5332,1896,3747,2769,404,300, + 1896,1380,1,1,1,2811,5299,5601,2694,5690, + 3636,1,5118,5114,4470,5122,626,5391,3013,1, + 5118,5114,2552,5122,626,5302,3013,3313,45,5282, + 5282,5391,5890,5391,5335,5335,228,5335,228,228, + 228,228,228,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3348,5391, + 228,1,1,8705,1,1,1,1,1,1, + 3024,39,5391,1,5391,5429,5279,3211,5391,5405, + 5406,5332,1896,2027,394,4416,5403,3190,387,1, + 1,1,2811,945,5601,2694,1,3636,310,2433, + 317,3243,5391,5323,340,330,5030,5027,4470,735, + 626,3938,3013,5391,5295,5291,5391,8614,8376,5890, + 5391,5335,5335,228,5335,228,228,228,228,228, 1,1,1,1,1,1,1,1,1,1, - 566,1,5392,1,1,5403,5392,5277,5274,5354, - 405,5455,5456,126,30,1,1,1,5300,1, - 1,1,1,1,1,1,5392,1,1,1, - 1,1,1,1,5392,5392,5403,5303,1979,1, - 5928,3457,5392,1233,1,1,1,5119,5115,1138, - 5123,4053,4128,3014,5429,4150,5079,5106,5112,5085, - 5088,5100,5097,5103,5094,5091,5082,5109,375,2815, - 5034,4106,4084,5399,5392,5392,5392,3701,5392,3824, - 580,4315,5052,4194,4172,5412,5392,4023,618,730, - 5414,666,3108,681,668,5415,5413,594,5408,5410, - 5411,5409,5392,8,38,5251,5251,1337,2716,2650, - 331,5389,40,40,101,516,40,5031,5028,1138, - 736,4053,4128,3014,5386,4150,864,5656,5654,5663, - 5662,5658,5659,5657,5660,5661,5664,5655,38,5251, - 5251,4106,4084,5251,3981,5392,3191,5392,4316,38, - 5251,5251,5429,4194,4172,5412,128,4023,618,730, - 5414,666,3108,681,440,5415,5413,594,5408,5410, - 5411,5409,1,1,1,5389,104,1337,3835,4317, - 528,49,163,5345,5370,5407,3008,3939,5399,141, - 5031,5028,1138,736,4053,4128,3014,5429,4150,864, - 5656,5654,5663,5662,5658,5659,5657,5660,5661,5664, - 5655,5392,2815,5348,4106,4084,4304,100,5392,301, - 5037,3697,1686,320,127,5224,4194,4172,5412,5692, - 4023,618,730,5414,666,3108,681,5407,5415,5413, - 594,5408,5410,5411,5409,368,528,1,163,49, - 1337,2716,2650,5406,5392,40,40,1,5119,5115, - 1138,5123,4053,4128,3014,454,4150,5079,5106,5112, - 5085,5088,5100,5097,5103,5094,5091,5082,5109,3349, - 2815,1049,4106,4084,5793,5392,5392,1897,2895,5392, - 1815,387,5392,5227,4194,4172,5412,5402,4023,618, - 730,5414,666,3108,681,5406,5415,5413,594,5408, - 5410,5411,5409,5392,428,1294,5401,5392,1337,2716, - 2650,5040,3407,40,40,40,5031,5028,1138,736, - 4053,4128,3014,5367,4150,864,5656,5654,5663,5662, - 5658,5659,5657,5660,5661,5664,5655,5067,566,5392, - 4106,4084,291,278,448,5392,5330,1,5392,1, - 395,3435,4194,4172,5412,5402,4023,618,730,5414, - 666,3108,681,3434,5415,5413,594,5408,5410,5411, - 5409,1,420,449,5401,5392,1337,2844,3655,36, - 5392,5345,521,5370,40,5031,5028,1138,736,4053, - 4128,3014,5367,4150,864,5656,5654,5663,5662,5658, - 5659,5657,5660,5661,5664,5655,566,5392,5392,4106, - 4084,5348,2066,308,5392,508,1,922,2116,3697, - 74,4194,4172,5412,191,4023,618,730,5414,666, - 3108,681,5392,5415,5413,594,5408,5410,5411,5409, - 3858,5392,2154,191,2453,1337,3025,5392,5392,3576, - 4329,4827,5370,40,5031,5028,1138,736,4053,4128, - 3014,5396,4150,864,5656,5654,5663,5662,5658,5659, - 5657,5660,5661,5664,5655,5392,5321,5392,4106,4084, - 4591,3238,5392,5392,2799,3422,4838,506,3205,185, - 4194,4172,5412,5392,4023,618,730,5414,666,3108, - 681,3939,5415,5413,594,5408,5410,5411,5409,40, - 5031,5028,1138,736,4053,4128,3014,5392,4150,864, - 5656,5654,5663,5662,5658,5659,5657,5660,5661,5664, - 5655,3822,5392,5392,4106,4084,2673,5392,5392,5392, - 4851,3850,5392,5392,5392,3962,4194,4172,5412,510, - 4023,618,730,5414,666,3108,681,3433,5415,5413, - 594,5408,5410,5411,5409,2,3292,5392,223,1, - 1337,5395,560,5392,5861,5855,1,5392,5859,5656, - 5654,5663,5662,5658,5659,5657,5660,5661,5664,5655, - 5652,5729,5730,5392,5853,5854,5646,5653,5649,5625, - 5651,5650,5647,5648,5626,3346,5884,5885,5392,3576, - 5862,5383,5392,2685,1985,3616,5392,5392,5392,808, - 5392,38,5392,5392,5392,5864,5392,5392,5392,5392, - 5392,5392,5392,740,5392,1514,1557,5392,5865,5863, - 5886,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5875,5874,5887, - 5392,5392,5856,5857,5880,5881,5878,5879,5858,5860, - 5882,5883,5392,5392,5392,5888,5392,5868,5869,5870, - 5866,5867,5876,5877,5872,5871,5873,40,5031,5028, - 1138,736,4053,4128,3014,5392,4150,864,5656,5654, - 5663,5662,5658,5659,5657,5660,5661,5664,5655,5392, - 5392,5392,4106,4084,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,4194,4172,5412,5392,4023,618, - 730,5414,666,3108,681,5392,5415,5413,594,5408, - 5410,5411,5409,40,5031,5028,1138,736,4053,4128, - 3014,2062,4150,864,5656,5654,5663,5662,5658,5659, - 5657,5660,5661,5664,5655,5392,5392,5392,4106,4084, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 4194,4172,5412,5392,4023,618,730,5414,666,3108, - 681,5392,5415,5413,594,5408,5410,5411,5409,5392, - 5392,5392,5392,5392,1337,40,5031,5028,4784,736, - 4053,4128,3014,5392,4150,864,5656,5654,5663,5662, - 5658,5659,5657,5660,5661,5664,5655,5392,5392,5392, - 4106,4084,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,4194,4172,5412,5392,4023,618,730,5414, - 666,3108,681,5392,5415,5413,594,5408,5410,5411, - 5409,40,5031,5028,1138,736,4053,4128,3014,5392, - 4150,864,5656,5654,5663,5662,5658,5659,5657,5660, - 5661,5664,5655,5392,5392,5392,4106,4084,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,4194,4172, - 5412,5392,4023,618,730,5414,666,3108,681,5392, - 5415,5413,594,5408,5410,5411,5409,40,5031,5028, - 1138,736,4053,4128,3014,5392,4150,864,5656,5654, - 5663,5662,5658,5659,5657,5660,5661,5664,5655,5392, - 5392,5392,4106,4084,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,4194,4172,5412,5392,4023,618, - 730,5414,666,3108,681,5392,5415,5413,594,5408, - 5410,5411,5409,5392,5031,5028,5392,5431,5392,5392, - 5392,5392,5392,786,5656,5654,5663,5662,5658,5659, - 5657,5660,5661,5664,5655,5652,5729,5730,5392,5392, - 5392,5646,5653,5649,5625,5651,5650,5647,5648,5626, - 5392,5392,5392,5790,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,241,5205,5201,5392,5209,5392,5392, - 672,5791,5792,786,5192,5198,5171,5174,5186,5183, - 5189,5180,5177,5168,5195,5147,5141,5138,5392,5392, - 5392,5165,5144,5156,5135,5150,5153,5162,5159,5132, - 5392,5392,5392,5790,33,388,388,5239,388,388, - 5239,388,5239,5239,5392,5392,5392,5392,5392,5392, - 672,5791,5792,5392,5392,5392,388,388,388,5392, - 5392,5239,388,388,388,388,388,388,388,388, - 388,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5392,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5239,5392, - 5392,5392,5392,5392,5392,5392,5392,5392,5239 + 1,1,1,1,1,5402,5391,228,1,1, + 8705,1,1,1,1,1,1,1,39,1896, + 1,5427,5429,1896,340,5397,340,1094,5332,340, + 3980,5391,3190,5825,5826,5827,1,1,1,2811, + 3426,5601,2694,1,3636,1,5118,5114,5305,5122, + 5311,362,5308,5391,75,5391,3265,3620,5391,1, + 1,1,1,1,1,1,5890,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5391,5405,5406,1,1,626,3324,3013,5391,100, + 5396,5453,5454,125,395,1,1,1,386,1, + 1,1,1,1,1,1,5391,1,1,1, + 1,1,1,514,361,5391,362,1978,1,5926, + 5391,2617,5391,1,1,1,5118,5114,1137,5122, + 4052,4127,3013,362,4149,5078,5105,5111,5084,5087, + 5099,5096,5102,5093,5090,5081,5108,5391,2814,565, + 4105,4083,3834,5391,5030,5027,5902,735,626,579, + 3013,5051,4193,4171,5410,5391,4022,617,729,5412, + 665,3107,680,667,5413,5411,593,5407,5408,5409, + 37,5250,5250,883,3820,1336,330,2715,2649,5391, + 39,39,3700,515,39,5030,5027,1137,735,4052, + 4127,3013,5385,4149,863,5654,5652,5661,5660,5656, + 5657,5655,5658,5659,5662,5653,5391,5276,5273,4105, + 4083,1,1,5391,5391,5391,37,3823,5427,5350, + 527,4193,4171,5410,127,4022,617,729,5412,665, + 3107,680,5391,5413,5411,593,5407,5408,5409,37, + 5250,5250,1,5391,1336,5391,5391,5214,5211,48, + 162,5369,5391,5406,5427,5398,140,5030,5027,1137, + 735,4052,4127,3013,5427,4149,863,5654,5652,5661, + 5660,5656,5657,5655,5658,5659,5662,5653,5402,2814, + 5391,4105,4083,1,99,527,2433,5427,5397,319, + 126,5229,5223,4193,4171,5410,5391,4022,617,729, + 5412,665,3107,680,5406,5413,5411,593,5407,5408, + 5409,4215,1008,5831,5391,162,1336,4314,2715,2649, + 5845,39,39,1,5118,5114,1137,5122,4052,4127, + 3013,29,4149,5078,5105,5111,5084,5087,5099,5096, + 5102,5093,5090,5081,5108,2814,1896,1048,4105,4083, + 3560,5391,1896,5396,367,1,5232,439,5226,5401, + 4193,4171,5410,5401,4022,617,729,5412,665,3107, + 680,47,5413,5411,593,5407,5408,5409,5400,5391, + 5391,427,5400,1336,2715,2649,5033,5391,39,39, + 39,5030,5027,1137,735,4052,4127,3013,5366,4149, + 863,5654,5652,5661,5660,5656,5657,5655,5658,5659, + 5662,5653,5036,5391,5391,4105,4083,4315,103,2458, + 5391,4316,1,1293,1685,453,29,4193,4171,5410, + 190,4022,617,729,5412,665,3107,680,5391,5413, + 5411,593,5407,5408,5409,1,1,4303,5391,190, + 1336,386,1814,2843,184,5344,5344,5369,39,5030, + 5027,1137,735,4052,4127,3013,5366,4149,863,5654, + 5652,5661,5660,5656,5657,5655,5658,5659,5662,5653, + 5039,565,5391,4105,4083,5347,5347,48,5391,394, + 5391,5405,73,3696,3696,4193,4171,5410,423,4022, + 617,729,5412,665,3107,680,5066,5413,5411,593, + 5407,5408,5409,5391,1,447,290,559,1336,5859, + 5853,5391,288,5857,2894,5369,277,5391,419,5329, + 5391,35,5391,3654,425,5391,507,565,3434,5851, + 5852,520,5405,3433,565,5391,448,5320,4328,505, + 5391,5882,5883,4826,5391,5860,5391,4590,5391,4837, + 5391,2672,5391,4850,1,3849,5391,5391,3204,5862, + 3961,5391,2684,5391,5391,5382,5391,739,1,1513, + 1556,5391,5863,5861,5884,2065,5391,921,307,5391, + 3821,5391,1891,5391,5391,509,5391,2153,5391,2115, + 3575,5873,5872,5885,3475,3421,5854,5855,5878,5879, + 5876,5877,5856,5858,5880,5881,2452,3615,3432,5886, + 5391,5866,5867,5868,5864,5865,5874,5875,5870,5869, + 5871,39,5030,5027,1137,735,4052,4127,3013,5395, + 4149,863,5654,5652,5661,5660,5656,5657,5655,5658, + 5659,5662,5653,3237,3857,3575,4105,4083,2798,3938, + 2,3291,1984,3345,807,5391,5391,5391,4193,4171, + 5410,3989,4022,617,729,5412,665,3107,680,5391, + 5413,5411,593,5407,5408,5409,39,5030,5027,1137, + 735,4052,4127,3013,5391,4149,863,5654,5652,5661, + 5660,5656,5657,5655,5658,5659,5662,5653,5391,5391, + 5391,4105,4083,5391,5391,37,5391,5391,5391,5391, + 5391,5391,5391,4193,4171,5410,5391,4022,617,729, + 5412,665,3107,680,5391,5413,5411,593,5407,5408, + 5409,5391,5391,5391,5391,5391,1336,5391,5394,39, + 5030,5027,1137,735,4052,4127,3013,5391,4149,863, + 5654,5652,5661,5660,5656,5657,5655,5658,5659,5662, + 5653,5391,5391,5391,4105,4083,5391,5391,5391,5391, + 5391,5391,5391,5391,5391,5391,4193,4171,5410,5391, + 4022,617,729,5412,665,3107,680,5391,5413,5411, + 593,5407,5408,5409,39,5030,5027,1137,735,4052, + 4127,3013,2061,4149,863,5654,5652,5661,5660,5656, + 5657,5655,5658,5659,5662,5653,5391,5391,5391,4105, + 4083,5391,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,4193,4171,5410,5391,4022,617,729,5412,665, + 3107,680,5391,5413,5411,593,5407,5408,5409,5391, + 5391,5391,5391,5391,1336,39,5030,5027,4783,735, + 4052,4127,3013,5391,4149,863,5654,5652,5661,5660, + 5656,5657,5655,5658,5659,5662,5653,5391,5391,5391, + 4105,4083,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,4193,4171,5410,5391,4022,617,729,5412, + 665,3107,680,5391,5413,5411,593,5407,5408,5409, + 39,5030,5027,1137,735,4052,4127,3013,5391,4149, + 863,5654,5652,5661,5660,5656,5657,5655,5658,5659, + 5662,5653,5391,5391,5391,4105,4083,5391,5391,5391, + 5391,5391,5391,5391,5391,5391,5391,4193,4171,5410, + 5391,4022,617,729,5412,665,3107,680,5391,5413, + 5411,593,5407,5408,5409,39,5030,5027,1137,735, + 4052,4127,3013,5391,4149,863,5654,5652,5661,5660, + 5656,5657,5655,5658,5659,5662,5653,5391,5391,5391, + 4105,4083,5391,5391,5391,5391,5391,5391,5391,5391, + 5391,5391,4193,4171,5410,5391,4022,617,729,5412, + 665,3107,680,5391,5413,5411,593,5407,5408,5409, + 5391,5030,5027,5391,5429,5391,5391,5391,5391,5391, + 785,5654,5652,5661,5660,5656,5657,5655,5658,5659, + 5662,5653,5650,5727,5728,5391,5391,5391,5644,5651, + 5647,5623,5649,5648,5645,5646,5624,5391,5391,5391, + 5788,5391,5391,5391,5391,5391,5391,5391,5391,240, + 5204,5200,5391,5208,5391,5391,671,5789,5790,785, + 5191,5197,5170,5173,5185,5182,5188,5179,5176,5167, + 5194,5146,5140,5137,5391,5391,5391,5164,5143,5155, + 5134,5149,5152,5161,5158,5131,5391,5391,5391,5788, + 32,387,387,5238,387,387,5238,387,5238,5238, + 5391,5391,5391,5391,5391,671,5789,5790,5391,5391, + 5391,5391,387,387,387,5391,222,5238,387,387, + 387,387,387,387,387,387,387,5654,5652,5661, + 5660,5656,5657,5655,5658,5659,5662,5653,5650,5727, + 5728,5391,5391,5391,5644,5651,5647,5623,5649,5648, + 5645,5646,5624,5238,5391,5391,5391,5391,5391,5391, + 5391,5391,5391,5238 }; }; public final static char termAction[] = TermAction.termAction; @@ -1807,60 +1799,60 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 736,73,458,67,778,838,838,838,838,1113, - 778,143,143,658,143,128,458,130,459,459, - 459,459,459,459,459,459,459,145,151,156, - 153,160,158,165,163,167,166,168,240,169, - 458,442,698,698,698,698,498,855,1,1, - 140,698,411,237,143,143,1,498,237,945, - 697,1028,1115,1050,442,143,145,638,638,855, - 458,459,459,459,459,459,459,459,459,459, - 459,459,459,459,459,459,459,459,459,459, - 458,458,458,458,458,458,458,458,458,458, - 458,458,459,237,237,228,442,853,853,853, - 853,338,237,1,1,1111,1039,1050,86,1050, - 81,1050,75,1050,1034,1113,498,411,411,1, - 838,411,697,458,496,1027,237,495,497,495, - 237,411,153,153,151,151,151,158,158,158, - 158,156,156,163,160,160,166,165,167,1127, - 168,1111,370,524,514,513,563,1057,1057,1113, - 130,778,778,778,778,498,498,853,852,853, - 140,498,290,293,83,337,84,1113,498,498, - 338,853,459,698,149,193,237,1115,498,498, - 497,1028,458,228,411,184,237,526,528,498, - 1028,458,458,458,458,778,778,442,291,136, - 293,498,732,501,730,338,86,355,498,338, - 498,237,149,1111,1027,1115,498,496,237,518, - 506,517,528,338,496,237,237,237,237,855, - 855,291,136,828,498,293,1127,84,838,340, - 54,1117,293,732,731,732,732,338,355,355, - 498,498,149,150,149,458,193,59,145,1115, - 360,458,515,515,342,342,498,522,1111,908, - 237,498,237,237,136,135,1028,599,86,853, - 838,495,645,1119,492,778,732,732,732,732, - 498,355,828,826,827,149,855,459,411,59, - 360,458,458,528,498,1028,237,526,506,360, - 1092,136,496,599,599,781,309,496,732,732, - 492,189,459,1127,350,831,498,1111,732,732, - 650,828,459,498,150,237,411,847,528,360, - 190,828,898,988,282,778,84,818,599,599, - 309,496,732,86,1113,1119,459,459,1027,492, - 900,725,651,498,847,237,847,780,282,898, - 904,1113,828,852,838,61,61,190,86,422, - 900,498,778,650,498,1113,1113,498,778,840, - 847,781,599,190,349,189,237,1113,498,309, - 781,309,851,851,941,423,1113,498,855,498, - 498,498,529,840,599,458,90,492,190,498, - 498,309,698,698,941,422,1127,459,1127,190, - 421,778,778,778,423,778,498,248,190,190, - 498,86,237,498,498,236,842,828,237,828, - 86,498,190,852,414,778,414,423,1127,423, - 442,442,440,943,442,190,190,353,941,698, - 842,828,90,190,561,908,423,237,492,237, - 440,282,778,237,941,90,61,237,237,1105, - 423,353,423,190,282,458,423,420,827,851, - 86,86,1107,458,421,855,190,237,188,89, - 495,423,237,190,188,188,423 + 731,72,454,66,772,832,832,832,832,1105, + 772,141,141,653,141,126,454,128,455,455, + 455,455,455,455,455,455,455,143,149,154, + 151,158,156,163,161,165,164,166,238,167, + 454,438,693,693,693,693,493,849,1,1, + 138,693,407,235,141,141,1,493,235,938, + 692,1020,1107,1042,438,141,143,633,633,849, + 454,455,455,455,455,455,455,455,455,455, + 455,455,455,455,455,455,455,455,455,455, + 454,454,454,454,454,454,454,454,454,454, + 454,454,455,235,235,226,438,847,847,847, + 847,335,235,1,1,1103,1031,1042,85,1042, + 80,1042,74,1042,1026,1105,493,407,407,1, + 832,407,692,454,491,1019,235,490,492,490, + 235,407,151,151,149,149,149,156,156,156, + 156,154,154,161,158,158,164,163,165,1119, + 166,1103,367,519,509,508,558,1049,1049,1105, + 128,772,772,772,772,493,493,847,846,847, + 138,493,287,290,82,334,83,1105,493,493, + 335,847,455,693,147,191,235,1107,493,493, + 492,1020,454,226,407,182,235,521,523,493, + 1020,454,454,454,454,772,772,438,288,134, + 290,493,727,496,725,335,85,352,493,335, + 493,235,147,1103,1019,1107,493,491,235,513, + 501,512,523,335,491,235,235,235,235,849, + 849,288,134,822,493,290,1119,83,832,337, + 53,1109,290,727,726,727,727,335,352,352, + 493,493,147,148,147,454,191,58,143,1107, + 357,454,510,510,339,339,493,517,1103,901, + 235,493,235,235,134,133,1020,594,85,847, + 832,490,640,1111,487,772,727,727,727,727, + 493,352,822,820,821,147,849,455,407,58, + 357,454,454,523,493,1020,235,521,501,357, + 1084,134,491,594,594,775,306,491,727,727, + 487,187,455,1119,347,825,493,1103,727,727, + 645,822,455,493,148,235,407,841,523,357, + 188,822,891,980,279,772,83,812,594,594, + 306,491,727,85,1105,1111,455,455,1019,487, + 893,720,646,493,841,235,841,774,279,891, + 897,1105,822,846,832,60,60,188,85,418, + 893,493,772,645,493,1105,1105,493,772,834, + 841,775,594,188,346,187,235,1105,493,306, + 775,306,845,845,934,419,1105,493,849,493, + 493,493,524,834,594,454,89,487,188,493, + 493,306,693,693,934,418,1119,455,1119,188, + 417,772,772,772,419,772,493,246,188,188, + 493,85,235,493,493,234,836,822,235,822, + 85,493,188,846,410,772,410,419,1119,419, + 438,438,436,936,438,188,188,350,934,693, + 836,822,89,188,556,901,419,235,487,235, + 436,279,772,235,934,89,60,235,235,1097, + 419,350,419,188,279,454,419,416,821,845, + 85,85,1099,454,417,849,188,235,186,88, + 490,419,235,188,186,186,419 }; }; public final static char asb[] = Asb.asb; @@ -1868,119 +1860,118 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {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, + 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,69,55,7,1,2,4,10,5,0, - 69,70,71,1,2,0,8,73,118,74, - 27,71,121,0,4,8,68,1,2,0, - 48,4,73,1,2,68,8,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,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,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,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,75,69,73,91,74,68,64,3,8, - 71,27,70,0,1,2,8,72,0,23, - 61,24,8,69,91,70,71,74,0,66, - 67,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,3, - 37,38,9,6,25,26,41,46,1,2, - 118,8,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,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, - 4,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,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,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,22, - 1,2,4,103,104,105,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,4, - 56,8,73,68,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,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,70,71,72,8,0, - 73,8,64,3,70,71,27,56,0,23, - 24,75,3,73,27,68,61,8,91,74, - 70,71,69,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,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, - 119,0,76,0,66,67,37,38,9,6, - 25,26,5,41,46,3,4,7,52,55, + 41,68,7,1,2,4,10,5,0,68, + 69,70,1,2,0,8,72,117,73,27, + 70,120,0,4,8,67,1,2,0,48, + 4,72,1,2,67,8,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,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 + 45,42,51,67,8,7,5,1,2,66, + 65,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, + 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,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,74,68, + 72,90,73,67,63,3,8,70,27,69, + 0,1,2,8,71,0,23,60,24,8, + 68,90,69,70,73,0,65,66,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,3,37,38,9,6, + 25,26,41,46,1,2,117,8,0,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,53,54,39,50,44,49, + 37,38,25,26,41,46,9,6,3,4, + 7,5,1,2,0,4,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,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,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,22,1,2,4,102,103, + 104,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,4,55,8,72,67,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,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,69, + 70,71,8,0,72,8,63,3,69,70, + 27,55,0,23,24,74,3,72,27,67, + 60,8,90,73,69,70,68,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,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,118,0,75,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; @@ -2090,14 +2081,14 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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; @@ -2105,26 +2096,26 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,159,181,160,161,162,163,164,152,165, - 166,167,127,142,168,169,0,129,132,130, - 170,0,139,138,153,178,0,0,0,0, - 0,0,0,0,173,0,146,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,158,180,159,160,161,162,163,151,164, + 165,166,126,141,167,168,0,128,131,129, + 169,0,138,137,152,177,0,0,0,0, + 0,0,0,0,172,0,145,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 }; }; @@ -2190,18 +2181,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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, - 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, + 1,48,75,74,27,27,4,4,4,4, + 3,1,67,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2228,70 +2219,70 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 321,3,61,0,127,0,320,3,119,0, - 127,173,0,127,178,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,179,128,0,142,0, - 220,3,295,0,295,0,2,0,127,0, - 254,127,56,132,0,179,128,225,0,179, - 128,22,225,0,179,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,179,128,60,63,0,197,129,0,129, - 179,128,279,63,0,179,128,279,63,0, - 179,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, - 179,128,276,57,0,136,0,188,179,128, - 276,244,0,137,0,179,128,276,244,0, - 188,167,128,10,0,167,128,10,0,167, - 128,0,93,137,0,269,127,146,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,156,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,220,3,0,215,64,266,0,162,64, - 0,180,3,298,67,128,0,127,0,0, - 0,0,298,67,128,0,2,146,127,0, - 0,0,0,180,3,46,0,148,0,126, - 48,167,128,0,31,148,0,93,137,31, - 148,0,221,179,128,0,147,31,148,0, - 180,3,51,0,162,3,51,0,162,3, - 69,180,56,42,0,180,56,42,0,20, - 2,132,127,0,162,3,69,180,56,45, - 0,180,56,45,0,162,3,69,180,56, - 47,0,180,56,47,0,162,3,69,180, - 56,43,0,180,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,177,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,178,127,0,141,0, + 219,3,294,0,294,0,2,0,126,0, + 253,126,55,131,0,178,127,224,0,178, + 127,22,224,0,178,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,178,127,59,62,0,196,128,0,128, + 178,127,278,62,0,178,127,278,62,0, + 178,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, + 178,127,275,56,0,135,0,187,178,127, + 275,243,0,136,0,178,127,275,243,0, + 187,166,127,10,0,166,127,10,0,166, + 127,0,93,136,0,268,126,145,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,155,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,219,3,0,214,63,265,0,161,63, + 0,179,3,297,66,127,0,126,0,0, + 0,0,297,66,127,0,2,145,126,0, + 0,0,0,179,3,46,0,147,0,125, + 48,166,127,0,31,147,0,93,136,31, + 147,0,220,178,127,0,146,31,147,0, + 179,3,51,0,161,3,51,0,161,3, + 68,179,55,42,0,179,55,42,0,20, + 2,131,126,0,161,3,68,179,55,45, + 0,179,55,45,0,161,3,68,179,55, + 47,0,179,55,47,0,161,3,68,179, + 55,43,0,179,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; @@ -2299,38 +2290,38 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4719,4851,4838,4591,0,2070,3732,1982,3442,0, - 3673,3619,3562,3454,3400,3346,3292,3238,3184,2892, - 2838,2673,0,1366,0,2061,1974,1973,0,2453, - 922,0,3673,3619,3800,3317,3562,3454,3400,3346, - 3292,3238,878,3184,2892,2838,3567,3519,0,4743, - 3191,3729,0,3476,2844,0,1840,1834,0,4675, - 4599,0,4504,4675,3946,2991,4599,2967,3529,4517, - 2799,2388,3916,4471,2630,2553,2514,0,2445,1000, - 0,4622,4569,0,4622,4569,3936,4417,4407,3829, - 4324,4314,4304,3819,0,4622,4569,3936,4417,4407, - 3829,4324,4314,4304,3819,3673,3619,3562,3454,3400, - 3346,3292,3238,3184,2892,2838,0,2541,794,0, - 2388,4504,4584,3946,2991,3405,2630,3884,1124,723, - 2843,2981,3024,3641,876,0,1851,1507,1458,880, - 2991,2981,2967,2553,2514,2434,2504,0,668,580, - 0,1009,0,4536,537,2982,0,4772,4737,4726, - 4711,4707,4662,4585,3660,3595,3543,4844,3513,3387, - 4809,4796,3968,3333,3929,3225,2548,2537,3004,2429, - 0,3680,3570,4772,4737,4726,3019,2954,4711,2879, - 4707,4662,4585,3660,3595,3549,3197,3104,3543,3095, - 4844,3091,3008,2925,2459,3513,3387,872,4809,2468, - 4796,2871,3484,3968,3333,3929,662,3225,2548,2537, - 4536,627,2982,3004,2429,2278,2192,2104,736,808, - 2967,3529,4517,2799,2388,4504,3916,4675,3946,2991, - 4471,2630,2553,4599,2514,1276,942,668,580,4282, - 2242,2292,2357,2325,2474,2401,595,3161,3135,2815, - 2743,2716,2650,3796,3773,631,3748,2770,4260,4238, - 4216,4194,4172,4150,4128,4106,4084,4053,4023,3108, - 1985,2204,2154,2116,2066,2028,1294,1233,1049,1190, - 884,1935,1897,826,748,690,537,1854,1811,1768, - 1725,1682,1639,1596,1553,1510,1467,1424,1381,1337, - 1144,1005,962,1095,0 + 4718,4850,4837,4590,0,2069,3731,1981,3441,0, + 3672,3618,3561,3453,3399,3345,3291,3237,3183,2891, + 2837,2672,0,1365,0,2060,1973,1972,0,2452, + 921,0,3672,3618,3799,3316,3561,3453,3399,3345, + 3291,3237,877,3183,2891,2837,3566,3518,0,4742, + 3190,3728,0,3475,2843,0,1839,1833,0,4674, + 4598,0,4503,4674,3945,2990,4598,2966,3528,4516, + 2798,2387,3915,4470,2629,2552,2513,0,2444,999, + 0,4621,4568,0,4621,4568,3935,4416,4406,3828, + 4323,4313,4303,3818,0,4621,4568,3935,4416,4406, + 3828,4323,4313,4303,3818,3672,3618,3561,3453,3399, + 3345,3291,3237,3183,2891,2837,0,2540,793,0, + 2387,4503,4583,3945,2990,3404,2629,3883,1123,722, + 2842,2980,3023,3640,875,0,1850,1506,1457,879, + 2990,2980,2966,2552,2513,2433,2503,0,667,579, + 0,1008,0,4535,536,2981,0,4771,4736,4725, + 4710,4706,4661,4584,3659,3594,3542,4843,3512,3386, + 4808,4795,3967,3332,3928,3224,2547,2536,3003,2428, + 0,3679,3569,4771,4736,4725,3018,2953,4710,2878, + 4706,4661,4584,3659,3594,3548,3196,3103,3542,3094, + 4843,3090,3007,2924,2458,3512,3386,871,4808,2467, + 4795,2870,3483,3967,3332,3928,661,3224,2547,2536, + 4535,626,2981,3003,2428,2277,2191,2103,735,807, + 2966,3528,4516,2798,2387,4503,3915,4674,3945,2990, + 4470,2629,2552,4598,2513,1275,941,667,579,4281, + 2241,2291,2356,2324,2473,2400,594,3160,3134,2814, + 2742,2715,2649,3795,3772,630,3747,2769,4259,4237, + 4215,4193,4171,4149,4127,4105,4083,4052,4022,3107, + 1984,2203,2153,2115,2065,2027,1293,1232,1048,1189, + 883,1934,1896,825,747,689,536,1853,1810,1767, + 1724,1681,1638,1595,1552,1509,1466,1423,1380,1336, + 1143,1004,961,1094,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2338,60 +2329,60 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,145,148, - 147,150,149,153,151,155,154,158,61,159, - 71,3,56,56,56,56,128,3,56,56, - 168,127,64,3,66,67,56,5,162,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,180,162,168,127,180,180,180, - 180,167,220,127,127,127,270,271,253,272, - 244,273,57,274,275,10,128,64,64,127, - 125,64,298,3,188,4,180,48,128,48, - 220,162,147,147,145,145,145,149,149,149, - 149,148,148,151,150,150,154,153,155,162, - 158,127,64,3,218,217,136,126,125,10, - 128,69,69,69,69,188,259,254,257,254, - 213,128,177,163,311,276,306,276,128,179, - 167,254,206,3,299,168,152,261,188,128, - 179,167,73,213,215,159,224,127,3,128, - 167,3,3,3,3,126,125,71,167,6, - 127,167,231,126,125,128,124,163,128,167, - 48,180,127,127,4,221,5,48,228,229, - 146,230,127,167,48,162,162,162,162,3, - 3,177,127,310,128,169,225,60,48,205, - 63,171,313,126,125,232,232,179,163,127, - 179,188,156,263,266,64,181,4,124,126, - 156,70,224,199,187,183,128,3,127,71, - 228,188,220,220,6,185,167,163,227,56, - 48,279,281,127,3,183,232,232,127,127, - 188,127,277,124,278,127,3,64,162,4, - 127,70,70,3,179,167,199,127,213,156, - 126,127,188,127,163,69,56,128,75,127, - 213,312,73,290,199,125,128,127,127,127, - 73,277,70,71,263,220,215,222,127,127, - 129,237,30,48,171,65,60,63,239,127, - 127,179,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,179,61,156, - 127,127,163,269,248,280,39,70,128,71, - 69,56,231,231,283,127,71,179,3,179, - 128,128,3,127,127,3,70,71,156,128, - 179,127,70,70,127,302,80,78,1,162, - 8,86,84,82,81,76,83,85,79,77, - 60,75,220,179,179,321,222,237,152,163, - 252,179,227,296,284,119,8,73,215,73, - 3,3,3,191,3,124,162,124,178,71, - 127,127,163,227,69,3,73,226,168,226, - 304,146,76,226,127,127,40,91,320,168, - 156,199,156,303,127,3,156,284,309,231, - 156,156,127,70,191,161,269,162,190,71, - 70,122,301,156,190,8,156 + 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,144,147, + 146,149,148,152,150,154,153,157,60,158, + 70,3,55,55,55,55,127,3,55,55, + 167,126,63,3,65,66,55,5,161,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,179,161,167,126,179,179,179, + 179,166,219,126,126,126,269,270,252,271, + 243,272,56,273,274,10,127,63,63,126, + 124,63,297,3,187,4,179,48,127,48, + 219,161,146,146,144,144,144,148,148,148, + 148,147,147,150,149,149,153,152,154,161, + 157,126,63,3,217,216,135,125,124,10, + 127,68,68,68,68,187,258,253,256,253, + 212,127,176,162,310,275,305,275,127,178, + 166,253,205,3,298,167,151,260,187,127, + 178,166,72,212,214,158,223,126,3,127, + 166,3,3,3,3,125,124,70,166,6, + 126,166,230,125,124,127,123,162,127,166, + 48,179,126,126,4,220,5,48,227,228, + 145,229,126,166,48,161,161,161,161,3, + 3,176,126,309,127,168,224,59,48,204, + 62,170,312,125,124,231,231,178,162,126, + 178,187,155,262,265,63,180,4,123,125, + 155,69,223,198,186,182,127,3,126,70, + 227,187,219,219,6,184,166,162,226,55, + 48,278,280,126,3,182,231,231,126,126, + 187,126,276,123,277,126,3,63,161,4, + 126,69,69,3,178,166,198,126,212,155, + 125,126,187,126,162,68,55,127,74,126, + 212,311,72,289,198,124,127,126,126,126, + 72,276,69,70,262,219,214,221,126,126, + 128,236,30,48,170,64,59,62,238,126, + 126,178,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,178,60,155, + 126,126,162,268,247,279,39,69,127,70, + 68,55,230,230,282,126,70,178,3,178, + 127,127,3,126,126,3,69,70,155,127, + 178,126,69,69,126,301,79,77,1,161, + 8,85,83,81,80,75,82,84,78,76, + 59,74,219,178,178,320,221,236,151,162, + 251,178,226,295,283,118,8,72,214,72, + 3,3,3,190,3,123,161,123,177,70, + 126,126,162,226,68,3,72,225,167,225, + 303,145,75,225,126,126,40,90,319,167, + 155,198,155,302,126,3,155,283,308,230, + 155,155,126,69,190,160,268,161,189,70, + 69,121,300,155,189,8,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2522,7 +2513,6 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "SemiColon", "LeftBrace", "ERROR_TOKEN", - "0", "EOF_TOKEN", "no_cast_start", "]", @@ -2656,7 +2646,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 62, + ERROR_SYMBOL = 61, SCOPE_UBOUND = 115, SCOPE_SIZE = 116, MAX_NAME_LENGTH = 37; @@ -2668,19 +2658,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static int NUM_STATES = 537, - NT_OFFSET = 123, - LA_STATE_OFFSET = 5928, + NT_OFFSET = 122, + LA_STATE_OFFSET = 5926, MAX_LA = 2147483647, - NUM_RULES = 536, + NUM_RULES = 535, NUM_NONTERMINALS = 202, - NUM_SYMBOLS = 325, + NUM_SYMBOLS = 324, SEGMENT_SIZE = 8192, - START_STATE = 3374, + START_STATE = 3373, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 121, - EOLT_SYMBOL = 121, - ACCEPT_ACTION = 5027, - ERROR_ACTION = 5392; + EOFT_SYMBOL = 120, + EOLT_SYMBOL = 120, + ACCEPT_ACTION = 5026, + ERROR_ACTION = 5391; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java index 3e02ac804da..7b5b52d8c09 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java @@ -15,69 +15,69 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoCastExpressionParsersym { 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 CPPNoCastExpressionParsersym { 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 CPPNoCastExpressionParsersym { 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 CPPNoCastExpressionParsersym { "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/CPPNoFunctionDeclaratorParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java index 8bbfe08c2e2..e3ae530ddc1 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java @@ -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 CPPNoFunctionDeclaratorParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { @@ -173,7 +174,7 @@ public CPPNoFunctionDeclaratorParser() { // 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, CPPNoFunctionDeclaratorParsersym.TK_EOF_TOKEN)); } -public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor - tokenMap = new TokenMap(CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols, mapFrom); +public CPPNoFunctionDeclaratorParser(IParserActionTokenProvider parser) { // constructor + tokenMap = new TokenMap(CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } @@ -271,1707 +272,1701 @@ public CPPNoFunctionDeclaratorParser(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 311: init_declarator ::= complete_declarator initializer // - case 306: { action. consumeLinkageSpecification(); 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 319: basic_direct_declarator ::= declarator_id_name // - case 317: { action. consumeDeclaratorWithPointer(true); break; + case 319: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 320: basic_direct_declarator ::= declarator_id_name + // Rule 320: basic_direct_declarator ::= ( declarator ) // - case 320: { action. consumeDirectDeclaratorIdentifier(); break; + case 320: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 321: basic_direct_declarator ::= ( declarator ) + // Rule 321: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 321: { action. consumeDirectDeclaratorBracketed(); break; + case 321: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 322: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier // - case 322: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 322: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier // case 323: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 324: array_modifier ::= [ constant_expression ] // - case 324: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 324: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 325: array_modifier ::= [ constant_expression ] + // Rule 325: array_modifier ::= [ ] // - case 325: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 325: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 326: array_modifier ::= [ ] + // Rule 326: ptr_operator ::= pointer_hook * <openscope-ast> cv_qualifier_seq_opt // - case 326: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 326: { action. consumePointer(); break; } // - // Rule 327: ptr_operator ::= pointer_hook * <openscope-ast> cv_qualifier_seq_opt + // Rule 327: ptr_operator ::= pointer_hook & // - case 327: { action. consumePointer(); break; + case 327: { action. consumeReferenceOperator(); break; } // - // Rule 328: ptr_operator ::= pointer_hook & + // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * <openscope-ast> cv_qualifier_seq_opt // - case 328: { action. consumeReferenceOperator(); break; + case 328: { action. consumePointerToMember(); break; } // - // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * <openscope-ast> cv_qualifier_seq_opt + // Rule 335: cv_qualifier ::= const // - case 329: { action. consumePointerToMember(); break; + case 335: { action. consumeToken(); break; } // - // Rule 336: cv_qualifier ::= const + // Rule 336: cv_qualifier ::= volatile // case 336: { action. consumeToken(); break; } // - // Rule 337: cv_qualifier ::= volatile + // Rule 338: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 337: { action. consumeToken(); break; + case 338: { action. consumeQualifiedId(false); break; } // - // Rule 339: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 339: type_id ::= type_specifier_seq // - case 339: { action. consumeQualifiedId(false); break; + case 339: { action. consumeTypeId(false); break; } // - // Rule 340: type_id ::= type_specifier_seq + // Rule 340: type_id ::= type_specifier_seq abstract_declarator // - case 340: { action. consumeTypeId(false); break; + case 340: { action. consumeTypeId(true); break; } // - // Rule 341: type_id ::= type_specifier_seq abstract_declarator + // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq // - case 341: { action. consumeTypeId(true); break; + case 343: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator // - case 344: { action. consumeDeclaratorWithPointer(false); break; + case 344: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 345: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator + // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 345: { action. consumeDeclaratorWithPointer(true); break; + case 348: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 349: basic_direct_abstract_declarator ::= ( ) // - case 349: { action. consumeDirectDeclaratorBracketed(); break; + case 349: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 350: basic_direct_abstract_declarator ::= ( ) + // Rule 350: array_direct_abstract_declarator ::= array_modifier // - case 350: { action. consumeAbstractDeclaratorEmpty(); break; + case 350: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 351: array_direct_abstract_declarator ::= array_modifier + // Rule 351: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 351: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 351: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 352: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 352: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 353: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 353: 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 353: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 353: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // 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 + // Rule 354: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 354: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 354: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 355: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 355: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 355: { action. consumePlaceHolder(); break; } // - // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 356: { action. consumePlaceHolder(); break; + case 356: { action. consumeEmpty(); break; } // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 357: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 357: { action. consumeEmpty(); break; + case 357: { action. consumePlaceHolder(); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 363: abstract_declarator_opt ::= $Empty // - case 358: { action. consumePlaceHolder(); break; + case 363: { action. consumeEmpty(); break; } // - // Rule 364: abstract_declarator_opt ::= $Empty + // Rule 364: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 364: { action. consumeEmpty(); break; + case 364: { action. consumeParameterDeclaration(); break; } // - // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 365: parameter_declaration ::= declaration_specifiers // - case 365: { action. consumeParameterDeclaration(); break; + case 365: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 366: parameter_declaration ::= declaration_specifiers + // Rule 367: parameter_init_declarator ::= declarator = parameter_initializer // - case 366: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 367: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 369: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 368: { action. consumeDeclaratorWithInitializer(true); break; + case 369: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 370: parameter_init_declarator ::= = parameter_initializer // - case 370: { action. consumeDeclaratorWithInitializer(true); break; + case 370: { action. consumeDeclaratorWithInitializer(false); break; } // - // Rule 371: parameter_init_declarator ::= = parameter_initializer + // Rule 371: parameter_initializer ::= assignment_expression // - case 371: { action. consumeDeclaratorWithInitializer(false); break; + case 371: { action. consumeInitializer(); break; } // - // Rule 372: parameter_initializer ::= assignment_expression + // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body // - case 372: { action. consumeInitializer(); break; + case 372: { action. consumeFunctionDefinition(false); break; } // - // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body + // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq // - case 373: { action. consumeFunctionDefinition(false); break; + case 373: { action. consumeFunctionDefinition(true); break; } // - // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq + // Rule 376: initializer ::= ( expression_list ) // - case 374: { action. consumeFunctionDefinition(true); break; + case 376: { action. consumeInitializerConstructor(); break; } // - // Rule 377: initializer ::= ( expression_list ) + // Rule 377: initializer_clause ::= assignment_expression // - case 377: { action. consumeInitializerConstructor(); break; + case 377: { action. consumeInitializer(); break; } // - // Rule 378: initializer_clause ::= assignment_expression + // Rule 378: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // - case 378: { action. consumeInitializer(); break; + case 378: { action. consumeInitializerList(); break; } // - // Rule 379: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list + // Rule 379: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // case 379: { action. consumeInitializerList(); break; } // - // Rule 380: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list + // Rule 380: initializer_clause ::= { <openscope-ast> } // case 380: { action. consumeInitializerList(); break; } // - // Rule 381: initializer_clause ::= { <openscope-ast> } + // Rule 381: start_initializer_list ::= $Empty // - case 381: { action. consumeInitializerList(); break; + case 381: { action. initializerListStart(); break; } // - // Rule 382: start_initializer_list ::= $Empty + // Rule 382: end_initializer_list ::= $Empty // - case 382: { action. initializerListStart(); break; + case 382: { action. initializerListEnd(); break; } // - // Rule 383: end_initializer_list ::= $Empty + // Rule 387: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 383: { action. initializerListEnd(); break; + case 387: { action. consumeClassSpecifier(); break; } // - // Rule 388: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 388: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt // - case 388: { action. consumeClassSpecifier(); break; + case 388: { action. consumeClassHead(false); break; } // - // Rule 389: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 389: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt // case 389: { action. consumeClassHead(false); break; } // - // Rule 390: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 390: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt // - case 390: { action. consumeClassHead(false); break; + case 390: { action. consumeClassHead(true); break; } // - // Rule 391: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 391: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt // case 391: { action. consumeClassHead(true); break; } // - // Rule 392: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 395: identifier_name_opt ::= $Empty // - case 392: { action. consumeClassHead(true); break; - } + case 395: { action. consumeEmpty(); break; + } // - // Rule 396: identifier_name_opt ::= $Empty + // Rule 399: visibility_label ::= access_specifier_keyword : // - case 396: { action. consumeEmpty(); break; - } + case 399: { action. consumeVisibilityLabel(); break; + } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 400: { action. consumeVisibilityLabel(); break; + case 400: { action. consumeDeclarationSimple(true); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 401: member_declaration ::= declaration_specifiers_opt ; // - case 401: { action. consumeDeclarationSimple(true); break; + case 401: { action. consumeDeclarationSimple(false); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 402: { action. consumeDeclarationSimple(false); break; + case 404: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 410: member_declaration ::= ERROR_TOKEN // - case 405: { action. consumeMemberDeclarationQualifiedId(); break; + case 410: { action. consumeDeclarationProblem(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 419: member_declarator ::= declarator constant_initializer // - case 411: { action. consumeDeclarationProblem(); break; + case 419: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= declarator constant_initializer + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action. consumeMemberDeclaratorWithInitializer(); break; + case 420: { action. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= bit_field_declarator : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 421: { action. consumeBitField(true); break; + case 421: { action. consumeBitField(false); break; } // - // Rule 422: member_declarator ::= : constant_expression + // Rule 422: bit_field_declarator ::= identifier_name // - case 422: { action. consumeBitField(false); break; + case 422: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: bit_field_declarator ::= identifier_name + // Rule 423: constant_initializer ::= = constant_expression // - case 423: { action. consumeDirectDeclaratorIdentifier(); break; + case 423: { action. consumeInitializer(); break; } // - // Rule 424: constant_initializer ::= = constant_expression + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 424: { action. consumeInitializer(); break; + case 429: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 430: { action. consumeBaseSpecifier(false, false); break; + case 430: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 431: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 432: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 432: { action. consumeBaseSpecifier(true, true); break; + case 432: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 433: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 433: access_specifier_keyword ::= private // - case 433: { action. consumeBaseSpecifier(true, false); break; + case 433: { action. consumeToken(); break; } // - // Rule 434: access_specifier_keyword ::= private + // Rule 434: access_specifier_keyword ::= protected // case 434: { action. consumeToken(); break; } // - // Rule 435: access_specifier_keyword ::= protected + // Rule 435: access_specifier_keyword ::= public // case 435: { action. consumeToken(); break; } // - // Rule 436: access_specifier_keyword ::= public + // Rule 437: access_specifier_keyword_opt ::= $Empty // - case 436: { action. consumeToken(); break; + case 437: { action. consumeEmpty(); break; } // - // Rule 438: access_specifier_keyword_opt ::= $Empty + // Rule 439: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 438: { action. consumeEmpty(); break; + case 439: { action. consumeTemplateId(); break; } // - // Rule 440: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > + // Rule 440: conversion_function_id ::= operator conversion_type_id // - case 440: { action. consumeTemplateId(); break; + case 440: { action. consumeConversionName(); break; } // - // Rule 441: conversion_function_id ::= operator conversion_type_id + // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 441: { action. consumeConversionName(); break; + case 441: { action. consumeTypeId(true); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 442: conversion_type_id ::= type_specifier_seq // - case 442: { action. consumeTypeId(true); break; + case 442: { action. consumeTypeId(false); break; } // - // Rule 443: conversion_type_id ::= type_specifier_seq + // Rule 443: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 443: { action. consumeTypeId(false); break; + case 443: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 444: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 444: { action. consumeDeclaratorWithPointer(false); break; + case 449: { action. consumeConstructorChainInitializer(); break; } // - // Rule 450: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 450: { action. consumeConstructorChainInitializer(); break; + case 450: { action. consumeQualifiedId(false); break; } // - // Rule 451: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 453: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 451: { action. consumeQualifiedId(false); break; + case 453: { action. consumeTemplateId(); break; } // - // Rule 454: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 454: operator_id_name ::= operator overloadable_operator // - case 454: { action. consumeTemplateId(); break; + case 454: { action. consumeOperatorName(); break; } // - // Rule 455: operator_id_name ::= operator overloadable_operator + // Rule 497: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 455: { action. consumeOperatorName(); break; + case 497: { action. consumeTemplateDeclaration(); break; } // - // Rule 498: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 498: export_opt ::= export // - case 498: { action. consumeTemplateDeclaration(); break; + case 498: { action. consumePlaceHolder(); break; } // - // Rule 499: export_opt ::= export + // Rule 499: export_opt ::= $Empty // - case 499: { action. consumePlaceHolder(); break; + case 499: { action. consumeEmpty(); break; } // - // Rule 500: export_opt ::= $Empty + // Rule 503: template_parameter ::= parameter_declaration // - case 500: { action. consumeEmpty(); break; + case 503: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 504: template_parameter ::= parameter_declaration + // Rule 504: type_parameter ::= class identifier_name_opt // - case 504: { action. consumeTemplateParamterDeclaration(); break; + case 504: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= class identifier_name_opt + // Rule 505: type_parameter ::= class identifier_name_opt = type_id // - case 505: { action. consumeSimpleTypeTemplateParameter(false); break; + case 505: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= class identifier_name_opt = type_id + // Rule 506: type_parameter ::= typename identifier_name_opt // - case 506: { action. consumeSimpleTypeTemplateParameter(true); break; + case 506: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= typename identifier_name_opt + // Rule 507: type_parameter ::= typename identifier_name_opt = type_id // - case 507: { action. consumeSimpleTypeTemplateParameter(false); break; + case 507: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 508: type_parameter ::= typename identifier_name_opt = type_id + // Rule 508: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 508: { action. consumeSimpleTypeTemplateParameter(true); break; + case 508: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt + // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 509: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 509: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 510: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 510: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 510: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 510: { action. consumeTemplateId(); break; } // - // Rule 511: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > + // Rule 515: template_argument ::= assignment_expression // - case 511: { action. consumeTemplateId(); break; + case 515: { action. consumeTemplateArgumentExpression(); break; } // - // Rule 516: template_argument ::= assignment_expression + // Rule 516: template_argument ::= type_id // - case 516: { action. consumeTemplateArgumentExpression(); break; + case 516: { action. consumeTemplateArgumentTypeId(); break; } // - // Rule 517: template_argument ::= type_id + // Rule 517: explicit_instantiation ::= template declaration // - case 517: { action. consumeTemplateArgumentTypeId(); break; + case 517: { action. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_instantiation ::= template declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 518: { action. consumeTemplateExplicitInstantiation(); break; + case 518: { action. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: explicit_specialization ::= template < > declaration + // Rule 519: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 519: { action. consumeTemplateExplicitSpecialization(); break; + case 519: { action. consumeStatementTryBlock(); break; } // - // Rule 520: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action. consumeStatementTryBlock(); break; + case 522: { action. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( exception_declaration ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 523: { action. consumeStatementCatchHandler(false); break; + case 523: { action. consumeStatementCatchHandler(true); break; } // - // Rule 524: handler ::= catch ( ... ) compound_statement + // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 524: { action. consumeStatementCatchHandler(true); break; + case 524: { action. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // case 525: { action. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator - // - case 526: { action. consumeDeclarationSimple(true); break; - } - - // - // Rule 527: exception_declaration ::= type_specifier_seq + // Rule 526: exception_declaration ::= type_specifier_seq // - case 527: { action. consumeDeclarationSimple(false); break; + case 526: { action. consumeDeclarationSimple(false); break; } // - // Rule 529: exception_specification ::= throw ( ) + // Rule 528: exception_specification ::= throw ( ) // - case 529: { action. consumePlaceHolder(); break; + case 528: { action. consumePlaceHolder(); break; } // - // Rule 535: no_function_declarator_start ::= ERROR_TOKEN + // Rule 534: no_function_declarator_start ::= ERROR_TOKEN // - case 535: { action. consumeDeclarationProblem(); break; + case 534: { action. consumeDeclarationProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java index a40c73c82ba..e43bad0f389 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java @@ -29,7 +29,7 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,0,0,0,0,0,0,0,0,0, 0,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,498 +39,496 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 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,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,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,2,1,1,3,1,3,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,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, + 2,1,1,3,1,3,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,1,-109,0,0,0, - -13,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-2,0, - 0,0,0,0,0,0,-7,0,-222,0, - 0,0,0,0,-87,0,0,0,0,0, - -115,0,0,0,-8,0,0,0,0,0, - 0,0,0,-132,0,0,0,0,0,0, + 1,1,1,1,2,2,7,1,0,1, + 3,1,1,2,4,2,4,7,9,5, + 1,3,1,0,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,1,1,1,-109,0,0,0,-13, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-2,0,0, + 0,0,0,0,0,-7,0,-222,0,0, + 0,0,0,-87,0,0,0,0,0,-115, + 0,0,0,-8,0,0,0,0,0,0, + 0,0,-132,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-10,0,0,0,-130,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-10,0,0,0,-130, 0,0,0,0,0,0,0,0,0,0, + -11,0,0,0,0,0,0,0,0,-14, + -19,-287,0,0,0,-116,0,0,0,-3, 0,0,0,0,0,0,0,0,0,0, - 0,-11,0,0,0,0,0,0,0,0, - -14,-19,-287,0,0,0,-116,0,0,0, - -3,0,0,0,0,0,0,0,0,0, - 0,-111,0,0,0,0,0,0,-75,0, + -111,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, + 0,0,0,0,0,0,0,0,0,-151, + 0,-291,0,0,0,0,0,-23,0,0, + -92,0,0,-4,0,-157,-35,-401,0,-25, + 0,0,0,-76,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -151,0,-291,0,0,0,0,0,-23,0, - 0,-92,0,0,-4,0,-157,-35,-401,0, - -25,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,-21,0,0,0,0,0,0,0, + -238,0,0,0,0,0,0,-177,0,-231, + 0,0,-182,0,-535,0,0,0,-423,0, + 0,0,0,0,0,0,0,0,0,-223, + 0,0,0,-91,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,-238,0,0,0,0,0,0,-177,0, - -231,0,0,-182,0,-535,0,0,0,-423, 0,0,0,0,0,0,0,0,0,0, - -223,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,0,-77, + -187,0,0,0,0,0,0,0,0,-219, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-190, + 0,-27,0,0,0,0,0,-229,0,0, + 0,0,0,0,0,-221,0,0,0,0, + 0,0,0,0,0,0,0,0,-193,0, 0,0,0,0,0,0,0,0,0,0, - -77,-187,0,0,0,0,0,0,0,0, - -219,0,0,0,0,0,0,0,0,0, + 0,-161,0,0,0,-28,0,-20,0,-170, + 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,0, - -190,0,-27,0,0,0,0,0,-229,0, - 0,0,0,0,0,0,-221,0,0,0, - 0,0,0,0,0,0,0,0,0,-193, + 0,0,0,0,0,0,0,-290,-483,0, + 0,0,-275,0,0,0,-525,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-161,0,0,0,-28,0,-20,0, - -170,0,0,0,-29,0,0,0,0,0, + 0,0,0,0,-73,0,0,0,0,0, + 0,0,-30,0,-33,0,-82,0,0,0, + -34,-22,0,0,0,0,-348,0,0,0, + -41,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-31,0,0,0, + 0,0,0,0,-42,0,0,0,-272,0, + 0,-16,0,0,0,-265,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-290,-483, - 0,0,0,-275,0,0,0,-525,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,-30,0,-33,0,-82,0,0, - 0,-34,-22,0,0,0,0,-348,0,0, - 0,-41,0,0,0,0,0,0,0,0, + 0,0,0,-473,0,-447,0,0,0,0, + 0,0,0,0,-358,0,0,0,-43,0, + -40,-38,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-31,0,0, - 0,0,0,0,0,-42,0,0,0,-272, - 0,0,-16,0,0,0,-265,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-39,0,-262,0,0,0,0,0,0, + 0,-380,0,0,-137,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-473,0,-447,0,0,0, - 0,0,0,0,0,-358,0,0,0,-43, - 0,-40,-38,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-257,0,-44,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,-39,0,-262,0,0,0,0,0, - 0,0,-380,0,0,-137,0,0,0,0, + 0,0,-266,0,0,0,0,0,0,0, + 0,0,0,0,-512,0,0,0,0,0, + -45,0,0,-362,0,0,0,-47,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-257,0,-44,0,0, - 0,-322,0,0,0,0,0,0,0,0, + 0,0,0,-248,0,-59,0,0,0,0, + 0,-468,0,-60,0,0,-363,0,0,0, + -350,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-266,0,0,0,0,0,0, - 0,0,0,0,0,-512,0,0,0,0, - 0,-45,0,0,-362,0,0,0,-47,0, + 0,0,0,0,0,0,0,0,-61,0, + -46,0,0,0,-62,0,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,-248,0,-59,0,0,0, - 0,0,-468,0,-60,0,0,-363,0,0, - 0,-350,0,0,0,0,0,0,0,0, + 0,-63,0,0,0,0,0,0,0,0, + 0,-64,0,-74,0,0,0,0,0,0, + -26,-160,-70,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-61, - 0,-46,0,0,0,-62,0,0,0,0, - -36,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-65,0,0,0,0,0, + 0,0,0,0,-66,0,-37,0,0,0, + -67,0,0,0,0,-80,-138,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,-64,0,-74,0,0,0,0,0, - 0,-26,-160,-70,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-65,0,0,0,0, - 0,0,0,0,0,-66,0,-37,0,0, - 0,-67,0,0,0,0,-80,-138,0,0, + 0,0,0,0,0,0,-68,0,-274,0, + 0,0,0,0,-89,0,-69,0,0,-139, + 0,0,0,-71,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-95, + 0,-313,0,-90,0,0,0,-94,-472,0, + 0,0,-140,0,0,0,-96,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-68,0,-274, - 0,0,0,0,0,-89,0,-69,0,0, - -139,0,0,0,-71,0,0,0,0,0, + 0,0,0,0,-114,0,0,0,0,0, + 0,0,-152,0,-154,0,0,0,0,0, + -155,-156,-165,0,0,-141,0,0,0,-166, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-167,0,0, + 0,0,0,0,0,0,0,-173,0,0, + 0,0,0,-174,-175,-176,0,0,-142,0, + 0,0,-184,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -95,0,-313,0,-90,0,0,0,-94,-472, - 0,0,0,-140,0,0,0,-96,0,0, + 0,0,0,0,0,0,0,0,-98,0, + -185,0,0,0,0,0,-186,-198,-199,0, + 0,-143,0,0,0,-200,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-114,0,0,0,0, - 0,0,0,-152,0,-154,0,0,0,0, - 0,-155,-156,-165,0,0,-141,0,0,0, - -166,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-167,0, - 0,0,0,0,0,0,0,0,-173,0, - 0,0,0,0,-174,-175,-176,0,0,-142, - 0,0,0,-184,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-98, - 0,-185,0,0,0,0,0,-186,-198,-199, - 0,0,-143,0,0,0,-200,0,0,0, + 0,-158,0,-201,0,0,0,0,0,-189, + -202,-203,0,0,-144,0,0,0,-204,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-205,0,0,0, + 0,0,0,0,-206,0,-207,0,-162,0, + 0,0,-197,0,-208,0,0,-145,0,0, + 0,-209,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-210, + 0,0,0,0,0,0,0,-211,0,-212, + 0,0,0,0,0,-213,-214,-215,0,0, + -146,0,0,0,-216,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-158,0,-201,0,0,0,0,0, - -189,-202,-203,0,0,-144,0,0,0,-204, + 0,0,-224,0,0,0,0,0,0,0, + -233,0,-234,0,0,0,0,0,-235,-236, + -258,0,0,-147,0,0,0,-260,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-205,0,0, - 0,0,0,0,0,-206,0,-207,0,-162, - 0,0,0,-197,0,-208,0,0,-145,0, - 0,0,-209,0,0,0,0,0,0,0, + 0,0,0,0,0,-261,0,0,0,0, + 0,0,0,-217,0,-280,0,0,0,0, + 0,-281,-283,-285,0,0,-148,0,0,0, + -292,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-298,0, + 0,0,0,0,0,0,-227,0,-299,0, + 0,0,0,0,-303,-311,-312,0,0,-169, + 0,0,0,-314,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -210,0,0,0,0,0,0,0,-211,0, - -212,0,0,0,0,0,-213,-214,-215,0, - 0,-146,0,0,0,-216,0,0,0,0, + 0,-323,0,0,0,0,0,0,0,-242, + 0,-324,0,0,0,0,0,-332,-336,-345, + 0,0,-253,0,0,0,-337,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-224,0,0,0,0,0,0, - 0,-233,0,-234,0,0,0,0,0,-235, - -236,-258,0,0,-147,0,0,0,-260,0, + 0,0,0,0,-349,0,0,0,0,0, + 0,0,-247,0,-351,0,0,0,0,0, + -367,-375,-378,0,0,-530,0,0,0,-392, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-261,0,0,0, - 0,0,0,0,-217,0,-280,0,0,0, - 0,0,-281,-283,-285,0,0,-148,0,0, - 0,-292,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-298, - 0,0,0,0,0,0,0,-227,0,-299, - 0,0,0,0,0,-303,-311,-312,0,0, - -169,0,0,0,-314,0,0,0,0,0, + 0,0,0,0,0,0,0,-403,0,0, + 0,0,0,0,0,-267,0,-404,0,0, + 0,0,0,-407,-408,-183,0,0,-357,0, + 0,0,-112,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-323,0,0,0,0,0,0,0, - -242,0,-324,0,0,0,0,0,-332,-336, - -345,0,0,-253,0,0,0,-337,0,0, + -414,0,0,0,0,0,0,0,-15,0, + -416,0,0,0,0,0,-370,0,0,0, + -428,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-349,0,0,0,0, - 0,0,0,-247,0,-351,0,0,0,0, - 0,-367,-375,-378,0,0,-530,0,0,0, - -392,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-403,0, - 0,0,0,0,0,0,-267,0,-404,0, - 0,0,0,0,-407,-408,-183,0,0,-357, - 0,0,0,-112,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,-15, - 0,-416,0,0,0,0,0,-370,0,0, - 0,-428,0,0,0,0,0,0,0,0, + 0,0,0,0,-6,0,0,0,0,-456, + 0,0,0,0,0,-389,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,-191,0,-226,0,0, + 0,0,0,-390,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, - -456,0,0,0,0,0,-389,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,-191,0,-226,0, - 0,0,0,0,-390,0,0,0,0,0, + 0,0,0,-436,0,-446,0,0,0,0, + 0,-93,0,0,0,-458,-97,0,0,0, + 0,0,-459,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-436,0,-446,0,0,0, - 0,0,-93,0,0,0,-458,-97,0,0, - 0,0,0,-459,0,0,0,0,0,0, + 0,0,-268,0,-297,0,0,0,0,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,0,0,0,0,0,0, - 0,0,0,-268,0,-297,0,0,0,0, - 0,-150,0,0,0,0,0,0,0,0, + 0,0,-460,0,0,0,-195,0,0,0, + -462,0,0,0,0,0,0,0,0,-135, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-460,0,0,0,-195,0,0, - 0,-462,0,0,0,0,0,0,0,0, - -135,0,0,0,0,0,0,0,0,0, + 0,-84,0,0,0,0,0,0,0,-244, + 0,-136,0,0,0,-463,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-84,0,0,0,0,0,0,0, - -244,0,-136,0,0,0,-463,0,0,0, + 0,0,0,-335,0,0,0,0,0,0, + 0,-133,0,0,0,-464,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-335,0,0,0,0,0, - 0,0,-133,0,0,0,-464,0,0,0, + 0,0,0,-465,0,0,0,0,0,-134, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-465,0,0,0,0,0, - -134,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-79,0,0,0,0,0,-402,0, + 0,-79,0,0,0,0,0,-402,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-126,0,0,0,-467,0,0,0,0, + -126,0,0,0,-467,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-232,0,0,0,0,-17,0, - 0,0,-482,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-484,0,-106, - 0,0,-107,-422,0,0,0,-338,0,0, - 0,-255,0,0,0,0,0,0,0,0, - 0,-230,0,0,0,0,-485,0,-387,0, + 0,0,-232,0,0,0,0,-17,0,0, + 0,-482,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-484,0,-106,0, + 0,-107,-422,0,0,0,-338,0,0,0, + -255,0,0,0,0,0,0,0,0,0, + -230,0,0,0,0,-485,0,-387,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-127,0,0,0,-487, + 0,0,0,0,-127,0,0,0,-487,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-492,0,0, - 0,0,-384,0,0,0,-496,0,0,0, - 0,0,0,0,-237,0,0,0,-368,-501, - -128,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-492,0,0,0, + 0,-384,0,0,0,-496,0,0,0,0, + 0,0,0,-237,0,0,0,-368,-501,-128, 0,0,0,0,0,0,0,0,0,0, - 0,0,-385,0,0,0,0,-129,0,0, - 0,-331,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-509, - 0,0,0,0,-284,0,0,0,0,0, - 0,0,0,0,0,0,0,-259,0,0, - -300,-269,0,0,-398,0,-302,0,0,0, - 0,0,0,0,0,0,0,0,0,-440, - 0,0,0,-347,-325,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-439,0,0,0,0,0,-12, - 0,0,0,0,-519,-511,0,-171,0,0, - 0,0,-78,0,0,0,0,0,0,0, - 0,-159,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-371,0,0,-526,0, - -438,-239,0,0,0,0,0,-400,0,0, - 0,0,-270,-286,0,0,0,0,0,-9, - -531,0,0,0,0,0,0,0,0,0, - 0,0,-296,0,0,0,0,-394,0,0, - 0,0,-273,0,0,0,0,0,0,0, + 0,-385,0,0,0,0,-129,0,0,0, + -331,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-509,0, + 0,0,0,-284,0,0,0,0,0,0, + 0,0,0,0,0,0,-259,0,0,-300, + -269,0,0,-398,0,-302,0,0,0,0, + 0,0,0,0,0,0,0,0,-440,0, + 0,0,-347,-325,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-457,0,0,0,0,0,0,0, - 0,0,0,0,-105,-172,0,0,0,0, - 0,0,0,0,0,-24,0,0,0,0, + 0,0,-439,0,0,0,0,0,-12,0, + 0,0,0,-519,-511,0,-171,0,0,0, + 0,-78,0,0,0,0,0,0,0,0, + -159,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-371,0,0,-526,0,-438, + -239,0,0,0,0,0,-400,0,0,0, + 0,-270,-286,0,0,0,0,0,-9,-531, 0,0,0,0,0,0,0,0,0,0, + 0,-296,0,0,0,0,-394,0,0,0, + 0,-273,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-252,-310,0,0, + 0,-457,0,0,0,0,0,0,0,0, + 0,0,0,-105,-172,0,0,0,0,0, + 0,0,0,0,-24,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-178,-81,0,0, - -83,-527,-131,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-373,0,0,0,0,-393, - 0,0,0,0,0,-18,0,0,0,0, - 0,0,0,0,-263,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-466, + 0,0,0,0,0,-252,-310,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -452,0,0,0,0,0,-301,0,0,0, + 0,0,0,0,0,-178,-81,0,0,-83, + -527,-131,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-373,0,0,0,0,-393,0, + 0,0,0,0,-18,0,0,0,0,0, + 0,0,0,-263,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-466,0, + 0,0,0,0,0,0,0,0,0,-452, + 0,0,0,0,0,-301,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -108,0,0,0,0,0,0,0,0,0, - 0,0,0,-486,-372,0,-304,0,-432,-391, - 0,-413,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-251,0,0,0, - 0,0,-306,0,-334,-168,0,0,0,0, - -307,0,0,0,-327,0,-271,0,0,0, - 0,0,0,0,0,0,0,-488,-383,0, - 0,0,0,0,0,0,0,-295,0,0, + 0,0,0,0,0,0,0,0,0,-108, 0,0,0,0,0,0,0,0,0,0, - 0,-353,0,0,0,0,-85,0,0,-117, + 0,0,-486,-372,0,-304,0,-432,-391,0, + -413,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-251,0,0,0,0, + 0,-306,0,-334,-168,0,0,0,0,-307, + 0,0,0,-327,0,-271,0,0,0,0, + 0,0,0,0,0,0,-488,-383,0,0, + 0,0,0,0,0,0,-295,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -309,0,-356,0,0,0,0,0,0,0, - 0,-503,0,0,0,0,0,0,0,0, + -353,0,0,0,0,-85,0,0,-117,0, + 0,0,0,0,0,0,0,0,0,-309, + 0,-356,0,0,0,0,0,0,0,0, + -503,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-453,0,0,0,0,-180,0,0, - 0,0,0,0,0,0,-386,0,0,0, - 0,0,0,0,0,0,-192,0,0,0, - 0,0,0,0,0,-518,-354,0,0,0, + 0,-453,0,0,0,0,-180,0,0,0, + 0,0,0,0,0,-386,0,0,0,0, + 0,0,0,0,0,-192,0,0,0,0, + 0,0,0,0,-518,-354,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-326,0,0,0, - 0,0,0,0,0,0,-100,-379,0,0, - 0,0,0,0,0,0,0,0,0,-520, - -196,0,0,0,0,-305,0,-374,0,0, + 0,0,0,0,0,-326,0,0,0,0, + 0,0,0,0,0,-100,-379,0,0,0, + 0,0,0,0,0,0,0,0,-520,-196, + 0,0,0,0,-305,0,-374,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-32,0,0,0,0,0,0,0, - 0,0,0,0,0,-405,0,0,0,0, - 0,0,-240,0,0,0,0,0,0,0, - 0,0,0,-524,0,0,0,0,0,0, - -443,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-164,0,0,0, - 0,-249,-355,0,-319,0,0,0,0,0, - 0,0,0,0,0,-288,0,0,0,0, - 0,0,0,0,0,0,0,-321,-406,0, - 0,0,-181,0,0,-479,0,0,0,0, - 0,0,0,0,0,0,0,-529,0,0, + 0,-32,0,0,0,0,0,0,0,0, + 0,0,0,0,-405,0,0,0,0,0, + 0,-240,0,0,0,0,0,0,0,0, + 0,0,-524,0,0,0,0,0,0,-443, 0,0,0,0,0,0,0,0,0,0, - -121,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-164,0,0,0,0, + -249,-355,0,-319,0,0,0,0,0,0, + 0,0,0,0,-288,0,0,0,0,0, + 0,0,0,0,0,0,-321,-406,0,0, + 0,-181,0,0,-479,0,0,0,0,0, + 0,0,0,0,0,0,-529,0,0,0, + 0,0,0,0,0,0,0,0,0,-121, 0,0,0,0,0,0,0,0,0,0, - 0,0,-282,0,0,-72,0,0,0,-476, - 0,0,0,0,0,0,-477,0,0,0, - 0,0,-330,0,0,0,0,0,-320,0, - 0,-502,0,-536,0,0,-289,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-420,0,0,-528,0,0,0,0,0, - 0,0,0,0,0,-340,-101,0,0,0, - 0,0,0,0,-102,-315,0,-411,0,0, - 0,0,0,0,0,0,0,-539,0,0, - 0,0,-427,-469,0,-342,0,0,0,0, - 0,0,0,0,0,0,0,0,-421,0, - 0,0,-118,0,0,0,0,0,-344,0, + 0,-282,0,0,-72,0,0,0,-476,0, + 0,0,0,0,0,-477,0,0,0,0, + 0,-330,0,0,0,0,0,-320,0,0, + -502,0,-536,0,0,-289,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -420,0,0,-528,0,0,0,0,0,0, + 0,0,0,0,-340,-101,0,0,0,0, + 0,0,0,-102,-315,0,-411,0,0,0, + 0,0,0,0,0,0,-539,0,0,0, + 0,-427,-469,0,-342,0,0,0,0,0, + 0,0,0,0,0,0,0,-421,0,0, + 0,-118,0,0,0,0,0,-344,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-293,0,0,0,-480,0, 0,0,0,0,0,0,0,0,0,0, - 0,-122,0,0,0,0,0,0,0,0, + 0,0,0,-293,0,0,0,-480,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-365,0,0,0, - 0,0,0,0,0,0,0,0,0,-316, - -522,0,0,0,0,0,0,0,0,0, - 0,0,0,-1,0,0,0,0,0,0, - 0,0,0,0,0,0,-149,0,0,-532, - 0,0,-352,0,-276,-317,0,-318,0,0, - 0,0,-430,0,0,-328,0,0,0,0, - -153,0,-218,0,0,0,0,0,0,0, + -122,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-365,0,0,0,0, + 0,0,0,0,0,0,0,0,-316,-522, 0,0,0,0,0,0,0,0,0,0, - 0,0,-359,-50,0,0,0,0,0,0, + 0,0,-1,0,0,0,0,0,0,0, + 0,0,0,0,0,-149,0,0,-532,0, + 0,-352,0,-276,-317,0,-318,0,0,0, + 0,-430,0,0,-328,0,0,0,0,-153, + 0,-218,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-294,0,0, - 0,0,-369,0,0,-254,0,0,0,0, - -123,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-450,0,0,0,0,0, - 0,0,-124,0,0,0,0,0,0,0, + 0,-359,-50,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-461,0,0,-88,0,0, - 0,0,0,-125,0,0,0,0,0,0, + 0,0,0,0,0,0,-294,0,0,0, + 0,-369,0,0,-254,0,0,0,0,-123, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-339,0,0,0,0, - -360,0,0,0,0,-382,-409,0,0,0, - 0,0,-470,0,-103,-448,-361,0,0,0, - -308,0,0,0,0,0,0,0,-329,0, - 0,0,0,0,-366,-396,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-450,0,0,0,0,0,0, + 0,-124,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-461,0,0,-88,0,0,0, + 0,0,-125,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -399,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-417,0,0, - 0,0,0,0,0,0,0,-424,0,0, - 0,0,0,-426,0,-434,-437,0,-441,0, - 0,0,0,0,0,0,0,0,-442,0, - -497,0,0,0,0,-498,-508,0,-429,0, - 0,0,0,0,-51,0,0,0,0,0, + 0,0,0,0,-339,0,0,0,0,-360, + 0,0,0,0,-382,-409,0,0,0,0, + 0,-470,0,-103,-448,-361,0,0,0,-308, + 0,0,0,0,0,0,0,-329,0,0, + 0,0,0,-366,-396,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-52,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-53,0, + 0,0,0,0,0,0,0,0,0,-399, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-417,0,0,0, + 0,0,0,0,0,0,-424,0,0,0, + 0,0,-426,0,-434,-437,0,-441,0,0, + 0,0,0,0,0,0,0,-442,0,-497, + 0,0,0,0,-498,-508,0,-429,0,0, + 0,0,0,-51,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -54,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-52,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-55,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-53,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-56,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-54, 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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-58,0, + 0,-55,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-56,0,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, + 0,0,0,0,0,-57,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,0,0,0,0,0,-58,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,0,0,0,0,0,-110, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-179,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-245,0, + 0,-119,0,0,0,0,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,0,0,0,0,0,0,0, - -388,0,0,0,0,0,0,0,0,0, - 0,0,0,-449,0,0,0,0,0,0, - 0,0,0,0,0,0,-471,0,0,-277, - -278,-341,-418,0,0,0,0,0,-517,-397, - -474,-499,0,-246,-376,-241,0,0,0,0, - 0,-481,0,0,-410,0,0,0,0,0, + 0,0,0,0,0,-179,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-245,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-388, 0,0,0,0,0,0,0,0,0,0, + 0,0,-449,0,0,0,0,0,0,0, + 0,0,0,0,0,-471,0,0,-277,-278, + -341,-418,0,0,0,0,0,-517,-397,-474, + -499,0,-246,-376,-241,0,0,0,0,0, + -481,0,0,-410,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-494,-279,-412,-495,0,0,0,0,0, - 0,0,0,-504,0,0,0,0,0,0, - 0,0,0,0,0,0,-381,0,0,0, - 0,-500,0,0,0,0,-425,0,0,0, - 0,0,0,0,0,0,-433,0,0,0, - 0,-333,0,0,0,0,0,0,0,0, - 0,-514,0,0,0,0,0,0,0,0, - -521,0,0,0,0,0,0,0,0,0, - -533,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-538,0, - 0,0,-5,0,0,0,0,0,0,0, - 0,0,0,0,0,-506,-86,0,0,0, - -220,0,-510,-515,0,0,-478,-454,0,0, - 0,0,0,0,0,0,0,-516,0,0, - -491,0,0,-534,0,-475,0,0,0,0, + -494,-279,-412,-495,0,0,0,0,0,0, + 0,0,-504,0,0,0,0,0,0,0, + 0,0,0,0,0,-381,0,0,0,0, + -500,0,0,0,0,-425,0,0,0,0, + 0,0,0,0,0,-433,0,0,0,0, + -333,0,0,0,0,0,0,0,0,0, + -514,0,0,0,0,0,0,0,0,-521, + 0,0,0,0,0,0,0,0,0,-533, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -537,0,0,-377,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-538,0,0, + 0,-5,0,0,0,0,0,0,0,0, + 0,0,0,0,-506,-86,0,0,0,-220, + 0,-510,-515,0,0,-478,-454,0,0,0, + 0,0,0,0,0,0,-516,0,0,-491, + 0,0,-534,0,-475,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -364,0,0,0,0,0,0,-346,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,0,0,0,-505,0,0,0, + 0,0,0,0,0,0,0,0,0,-537, + 0,0,-377,0,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,-364, + 0,0,0,0,0,0,-346,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,0,0,0,-505,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-188,0,0,0,-194,0,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,0,0,0,0, + -188,0,0,0,-194,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -225,0,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, - -343,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-395,0,0, - 0,0,-415,0,0,0,0,0,-507,0, - 0,0,0,0,0,-419,0,0,0,0, - 0,0,0,0,0,0,-431,0,0,0, + 0,0,0,0,0,0,0,0,0,-225, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-455,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-444,0,0,0,0,0,0,0, - 0,0,0,0,0,-445,0,0,0,-451, - 0,0,0,0,0,0,-48,0,0,0, - 0,0,-49,0,0,0,0,0,-99,0, + 0,0,0,0,0,-228,0,0,0,-343, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-395,0,0,0, + 0,-415,0,0,0,0,0,-507,0,0, + 0,0,0,0,-419,0,0,0,0,0, + 0,0,0,0,0,-431,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-113, + 0,0,0,-455,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-104,0,0,0, + 0,-444,0,0,0,0,0,0,0,0, + 0,0,0,0,-445,0,0,0,-451,0, + 0,0,0,0,0,-48,0,0,0,0, + 0,-49,0,0,0,0,0,-99,0,0, 0,0,0,0,0,0,0,0,0,0, - -163,0,0,0,-243,0,0,0,0,-513, - 0,0,0,0,0,-250,0,0,0,0, - 0,0,0,-489,0,0,0,0,0,0, - 0,0,0,-490,0,0,0,0,0,-256, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-493,0,0, + 0,0,0,0,0,0,0,0,-113,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-104,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-163, + 0,0,0,-243,0,0,0,0,-513,0, + 0,0,0,0,-250,0,0,0,0,0, + 0,0,-489,0,0,0,0,0,0,0, + 0,0,-490,0,0,0,0,0,-256,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-493,0,0,0, 0,0,0,0,0,0,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 +537,8 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,543 +550,543 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final static char baseAction[] = { 174,4,135,82,82,32,32,66,66,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,64,64,5, - 5,12,12,44,44,136,136,137,59,59, - 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,64,64,5,5, + 12,12,44,44,136,136,137,59,59,43, 17,17,17,17,17,17,17,17,17,17, - 17,138,138,138,117,117,18,18,18,18, - 18,18,18,18,18,18,18,18,18,19, - 19,175,175,176,176,177,141,141,142,142, - 139,139,143,140,140,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, - 29,29,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,30,144, - 144,96,96,178,178,91,201,201,67,67, - 67,67,67,67,67,67,67,68,68,68, - 65,65,56,56,179,179,69,69,69,102, - 102,180,180,70,70,70,181,181,71,71, - 71,71,71,72,72,83,83,83,83,83, - 83,83,83,49,49,49,49,49,118,118, - 116,116,50,182,22,22,22,22,22,48, - 48,86,86,86,86,86,151,151,146,146, - 146,146,146,147,147,147,148,148,148,149, - 149,149,150,150,150,87,87,87,87,87, - 88,88,88,13,13,13,13,13,13,13, - 13,13,13,13,97,122,122,122,122,122, - 122,120,120,120,152,121,121,183,154,154, - 153,153,124,124,103,78,78,79,80,52, - 47,155,155,53,51,85,85,156,156,145, - 145,105,105,106,74,74,157,157,62,62, - 57,57,158,63,63,75,75,60,60,60, - 54,89,89,99,98,98,61,61,58,58, - 55,55,45,100,100,100,92,92,92,93, - 93,94,94,94,95,95,107,107,107,109, - 109,108,108,202,202,90,90,185,185,185, - 185,185,126,46,46,160,184,184,127,127, - 127,127,128,162,186,186,34,34,119,129, - 129,129,129,188,111,110,110,123,123,123, - 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,113,112,112,192,192, - 168,168,168,168,101,101,101,193,193,8, - 8,9,194,194,195,169,159,159,170,170, - 171,172,172,7,7,10,196,196,196,196, + 17,17,17,17,17,17,17,17,17,17, + 138,138,138,117,117,18,18,18,18,18, + 18,18,18,18,18,18,18,18,19,19, + 175,175,176,176,177,141,141,142,142,139, + 139,143,140,140,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,29, + 29,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,30,144,144, + 96,96,178,178,91,201,201,67,67,67, + 67,67,67,67,67,67,68,68,68,65, + 65,56,56,179,179,69,69,69,102,102, + 180,180,70,70,70,181,181,71,71,71, + 71,71,72,72,83,83,83,83,83,83, + 83,83,49,49,49,49,49,118,118,116, + 116,50,182,22,22,22,22,22,48,48, + 86,86,86,86,86,151,151,146,146,146, + 146,146,147,147,147,148,148,148,149,149, + 149,150,150,150,87,87,87,87,87,88, + 88,88,13,13,13,13,13,13,13,13, + 13,13,13,97,122,122,122,122,122,122, + 120,120,120,152,121,121,183,154,154,153, + 153,124,124,103,78,78,79,80,52,47, + 155,155,53,51,85,85,156,156,145,145, + 105,105,106,74,74,157,157,62,62,57, + 57,158,63,63,75,75,60,60,60,54, + 89,89,99,98,98,61,61,58,58,55, + 55,45,100,100,100,92,92,92,93,93, + 94,94,94,95,95,107,107,107,109,109, + 108,108,202,202,90,90,185,185,185,185, + 185,126,46,46,160,184,184,127,127,127, + 127,128,162,186,186,34,34,119,129,129, + 129,129,188,111,110,110,123,123,123,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,113,112,112,192,192,168, + 168,168,168,101,101,101,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,196,196, - 196,196,196,196,196,196,196,196,76,81, - 81,173,173,131,131,132,132,132,132,132, - 132,3,133,133,130,130,114,114,84,77, - 73,161,161,115,115,197,197,197,134,134, - 125,125,198,198,174,174,104,1132,36,1648, - 1642,1187,4612,28,31,32,585,567,27,29, - 1614,26,24,51,1297,107,77,78,109,1409, - 1305,1346,1340,1383,1373,1426,1416,1429,1468,162, - 1432,274,1478,1485,144,331,36,280,159,145, - 4861,1622,36,652,33,1832,4616,28,31,32, - 585,567,58,29,3118,36,652,33,233,4793, - 28,31,32,585,567,27,29,1269,26,24, - 51,1297,107,77,78,109,323,1305,1346,1340, - 1383,1373,1743,236,231,232,508,1034,965,35, - 3118,36,652,33,275,4793,28,31,32,585, - 567,27,29,1269,26,24,51,1297,107,77, - 78,109,1844,1305,1346,1728,243,246,249,252, - 1038,1346,935,2407,36,278,1437,1710,36,652, - 33,1726,4616,28,31,32,585,567,57,29, - 2027,1528,1503,2703,2413,2868,2871,3067,4437,2280, - 36,652,33,2816,4793,28,31,32,585,567, - 27,29,1269,26,24,51,1297,107,77,78, - 109,342,1305,1346,1340,1383,1373,1426,1416,62, - 1468,1401,1432,2156,1478,1485,144,3799,2906,1336, - 516,145,2149,871,2971,2156,324,1366,2109,1747, - 2906,1022,2906,4327,517,2280,36,652,33,2816, - 4793,28,31,32,585,567,27,29,1269,26, - 24,51,1297,107,77,78,109,342,1305,1346, - 1340,1383,1373,1426,1416,1554,1468,662,1432,3874, - 1478,1485,144,3015,49,2203,516,145,689,662, - 2971,662,508,36,1863,331,3016,332,792,2188, - 517,2272,2203,512,2384,61,1982,36,652,33, - 2556,4876,28,31,32,585,567,27,29,1556, - 510,1975,1562,497,2459,2280,36,652,33,2816, - 4793,28,31,32,585,567,27,29,1269,26, - 24,51,1297,107,77,78,109,342,1305,1346, - 1340,1383,1373,1426,1416,312,1468,911,1432,512, - 1478,1485,144,2565,95,3016,516,145,43,1589, - 2971,2156,331,36,280,1563,2906,4865,1562,352, - 517,2629,36,652,33,2816,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,109,342,1305,1346,1340,1383,1373,1426, - 1416,2078,1468,1652,1432,2816,1478,1485,144,2254, - 36,278,516,145,442,662,2971,508,36,1244, - 1097,331,2244,342,792,355,517,45,1589,512, - 1718,36,652,33,530,4876,28,31,32,585, - 567,60,29,2183,2159,1571,1295,1671,1562,1357, - 737,2560,36,652,33,2021,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,109,2773,1305,1346,1340,1383,1373,1426, - 1416,321,1468,1898,1432,513,1478,1485,144,2452, - 2652,1173,378,145,2350,36,652,33,2677,4793, - 28,31,32,585,567,27,29,1269,26,24, - 51,1297,107,77,78,109,56,1305,1346,1340, - 1383,1373,1426,1416,1344,1468,70,1432,2100,1478, - 1485,144,2463,49,1173,378,145,745,3118,36, - 652,33,1233,4793,28,31,32,585,567,27, - 29,1269,26,24,51,1297,107,77,78,109, - 1513,1305,1346,1340,1383,1373,1426,1416,49,1468, - 1554,1432,825,1478,1511,165,2582,1984,384,1142, - 508,36,283,2423,36,652,33,162,4793,28, - 31,32,585,567,27,29,1269,26,24,51, - 1297,107,77,78,109,522,1305,1346,1340,1383, - 1373,1426,1416,522,1468,1343,1432,2556,1478,1485, - 144,385,1142,1173,378,145,508,1907,2602,422, - 2600,1949,1343,2870,36,652,33,2454,4793,28, - 31,32,585,567,27,29,1269,26,24,51, - 1297,107,77,78,109,2992,1305,1346,1340,1383, - 1373,1426,1416,49,1468,848,1432,2208,1478,1485, - 144,3891,1640,2247,159,145,3118,36,652,33, - 1393,4793,28,31,32,585,567,27,29,1269, - 26,24,51,1297,107,77,78,109,2987,1305, - 1346,1340,1383,1373,1426,1416,2390,1468,2669,1778, - 376,1142,2870,36,652,33,2712,4793,28,31, - 32,585,567,27,29,1269,26,24,51,1297, - 107,77,78,109,2723,1305,1346,1340,1383,1373, - 1426,1416,354,1468,403,1432,2556,1478,1485,144, - 289,530,2719,372,145,2870,36,652,33,1427, - 4793,28,31,32,585,567,27,29,1269,26, - 24,51,1297,107,77,78,109,1528,1305,1346, - 1340,1383,1373,1426,1416,1884,1468,2656,1432,723, - 1478,1485,144,508,4292,592,372,145,2870,36, - 652,33,2550,4793,28,31,32,585,567,27, - 29,1269,26,24,51,1297,107,77,78,109, - 2641,1305,1346,1340,1383,1373,1426,1416,2641,1468, - 1157,1432,157,1478,1485,144,65,4847,371,372, - 145,2697,36,652,33,3206,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,109,2097,1305,1346,1340,1383,1373,1426, - 1416,322,1468,940,1432,49,1478,1511,165,3611, - 530,370,1357,157,2492,36,652,33,4651,4793, - 28,31,32,585,567,27,29,1269,26,24, - 51,1297,107,77,78,109,143,1305,1346,1340, - 1383,1373,1426,1416,496,1468,1257,1432,1357,1478, - 1485,144,1727,326,368,143,145,1343,2870,36, - 652,33,1519,4793,28,31,32,585,567,27, - 29,1269,26,24,51,1297,107,77,78,109, - 377,1305,1346,1340,1383,1373,1426,1416,1272,1468, - 223,1432,94,1478,1485,144,1022,1683,404,156, - 145,2870,36,652,33,1400,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,109,420,1305,1346,1340,1383,1373,1426, - 1416,1915,1468,223,1432,1022,1478,1485,144,1022, - 508,2557,155,145,2870,36,652,33,239,4793, - 28,31,32,585,567,27,29,1269,26,24, - 51,1297,107,77,78,109,1463,1305,1346,1340, - 1383,1373,1426,1416,1260,1468,683,1432,459,1478, - 1485,144,326,770,1582,154,145,2870,36,652, - 33,1031,4793,28,31,32,585,567,27,29, - 1269,26,24,51,1297,107,77,78,109,1649, - 1305,1346,1340,1383,1373,1426,1416,458,1468,1668, - 1432,325,1478,1485,144,1911,1919,2108,153,145, - 2870,36,652,33,1628,4793,28,31,32,585, - 567,27,29,1269,26,24,51,1297,107,77, - 78,109,380,1305,1346,1340,1383,1373,1426,1416, - 49,1468,3398,1432,961,1478,1485,144,3323,413, - 587,152,145,2870,36,652,33,1724,4793,28, - 31,32,585,567,27,29,1269,26,24,51, - 1297,107,77,78,109,379,1305,1346,1340,1383, - 1373,1426,1416,49,1468,1812,1432,4441,1478,1485, - 144,1022,1842,1398,151,145,2870,36,652,33, - 1620,4793,28,31,32,585,567,27,29,1269, - 26,24,51,1297,107,77,78,109,1903,1305, - 1346,1340,1383,1373,1426,1416,2180,1468,1531,1432, - 157,1478,1485,144,1022,4677,2163,150,145,2870, - 36,652,33,2008,4793,28,31,32,585,567, - 27,29,1269,26,24,51,1297,107,77,78, - 109,2099,1305,1346,1340,1383,1373,1426,1416,2690, - 1468,2060,1432,4169,1478,1485,144,491,2069,2303, - 149,145,2870,36,652,33,578,4793,28,31, - 32,585,567,27,29,1269,26,24,51,1297, - 107,77,78,109,2103,1305,1346,1340,1383,1373, - 1426,1416,2410,1468,2416,1432,52,1478,1485,144, - 2447,2453,2338,148,145,2870,36,652,33,2722, - 4793,28,31,32,585,567,27,29,1269,26, - 24,51,1297,107,77,78,109,1846,1305,1346, - 1340,1383,1373,1426,1416,49,1468,2478,1432,3676, - 1478,1485,144,2480,1286,674,147,145,2870,36, - 652,33,2240,4793,28,31,32,585,567,27, - 29,1269,26,24,51,1297,107,77,78,109, - 2382,1305,1346,1340,1383,1373,1426,1416,49,1468, - 2725,1432,3027,1478,1485,144,2484,856,761,146, - 145,2870,36,652,33,2167,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,109,2267,1305,1346,1340,1383,1373,1426, - 1416,49,1468,2482,1432,2744,1478,1485,144,2457, - 2726,2517,160,145,2870,36,652,33,2547,4793, - 28,31,32,585,567,27,29,1269,26,24, - 51,1297,107,77,78,109,2519,1305,1346,1340, - 1383,1373,1426,1416,49,1468,1412,1432,999,1478, - 1485,144,2522,1339,2583,141,145,2998,36,652, - 33,1109,4793,28,31,32,585,567,27,29, - 1269,26,24,51,1297,107,77,78,109,1505, - 1305,1346,1340,1383,1373,1426,1416,49,1468,2555, - 1432,3013,1478,1485,144,2270,2727,72,190,145, - 3118,36,652,33,1481,4793,28,31,32,585, - 567,27,29,1269,26,24,51,1297,107,77, - 78,109,1550,1305,1346,1340,1383,1373,1426,1416, - 49,1468,2584,1432,1143,1478,1511,165,3118,36, - 652,33,2181,4793,28,31,32,585,567,27, - 29,1269,26,24,51,1297,107,77,78,109, - 1428,1305,1346,1340,1383,1373,1426,1416,2203,1468, - 3127,1432,353,1478,1511,165,2061,36,652,33, - 446,1640,42,31,32,585,567,3118,36,652, - 33,293,4793,28,31,32,585,567,27,29, - 1269,26,24,51,1297,107,77,78,109,2588, - 1305,1346,1340,1383,1373,1426,1416,49,1468,1343, - 1432,1143,1478,1511,165,3118,36,652,33,2738, - 4793,28,31,32,585,567,27,29,1269,26, - 24,51,1297,107,77,78,109,3282,1305,1346, - 1340,1383,1373,1426,1416,2591,1468,2621,1432,2743, - 1478,1511,165,2070,36,652,33,2520,1496,41, - 31,32,585,567,3175,36,652,33,421,4793, - 28,31,32,585,567,27,29,1269,26,24, - 51,1297,107,77,78,109,521,1305,1346,1340, - 1383,1373,1426,1416,49,1468,1343,1432,3021,1478, - 1511,165,3118,36,652,33,424,4793,28,31, - 32,585,567,27,29,1269,26,24,51,1297, - 107,77,78,109,381,1305,1346,1340,1383,1373, - 1426,1416,1000,1468,2615,1432,3426,1786,1718,36, - 652,33,88,4876,28,31,32,585,567,59, - 29,3118,36,652,33,2530,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,109,244,1305,1346,1340,1383,1373,1426, - 1416,2372,1771,3118,36,652,33,2623,4793,28, - 31,32,585,567,27,29,1269,26,24,51, - 1297,107,77,78,109,418,1305,1346,1340,1383, - 1373,1426,1777,3118,36,652,33,2651,4793,28, - 31,32,585,567,27,29,1269,26,24,51, - 1297,107,77,78,109,2657,1305,1346,1340,1383, - 1761,3118,36,652,33,2203,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,109,1247,1305,1346,1340,1383,1769,1519, - 36,652,33,735,3366,28,31,32,585,567, - 338,29,3118,36,652,33,2684,4793,28,31, - 32,585,567,27,29,1269,26,24,51,1297, - 107,77,78,109,1376,1305,1346,1340,1693,1538, - 36,652,33,2308,3366,28,31,32,585,567, - 338,29,71,662,233,1730,661,320,2686,331, - 1357,314,541,1357,508,36,1042,387,2070,36, - 652,33,1496,313,2895,31,32,585,567,245, - 231,232,508,36,965,277,953,175,4538,331, - 36,452,4147,662,4703,25,661,320,430,332, - 1470,315,541,307,536,671,3118,36,652,33, - 2619,4793,28,31,32,585,567,27,29,1269, - 26,24,51,1297,107,77,78,109,2653,1305, - 1346,1340,1700,2070,36,652,33,2721,388,3438, - 31,32,585,567,3453,508,36,965,1857,2452, - 2381,3118,36,652,33,2082,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,109,2517,1305,1346,1340,1718,3118,36, - 652,33,2486,4793,28,31,32,585,567,27, - 29,1269,26,24,51,1297,107,77,78,109, - 2728,1305,1346,1340,1726,1419,36,652,33,3177, - 2690,28,31,32,585,567,338,29,2183,36, - 294,157,2254,36,281,2486,4681,1473,36,1986, - 33,735,3366,28,31,32,585,567,338,29, - 508,36,1042,387,2238,1749,36,652,33,4531, - 2690,28,31,32,585,567,338,29,2763,445, - 2062,2072,661,320,853,36,452,314,541,4703, - 594,36,1042,387,451,2730,1640,350,1357,1943, - 351,662,401,3437,661,320,3791,331,2645,314, - 541,1949,1114,36,1804,821,240,343,2037,804, - 348,1312,661,320,50,1933,1022,314,541,2756, - 70,262,2010,1036,738,537,4538,2906,1022,959, - 351,2246,89,49,2237,103,50,3081,2816,3223, - 2752,1234,4294,229,2816,1036,927,343,2037,804, - 348,157,446,49,233,3243,2625,3766,317,181, - 3735,2992,342,508,36,965,279,204,216,4504, - 203,213,214,215,217,90,662,170,103,241, - 231,232,332,1,5384,729,169,537,184,168, - 171,172,173,174,175,1817,1357,351,98,1143, - 365,521,416,418,1976,229,3232,36,1042,387, - 99,3738,569,157,345,2037,804,348,5384,238, - 5384,181,3735,2992,359,161,2664,5384,69,204, - 216,4504,203,213,214,215,217,1797,1496,170, - 274,3606,1864,1865,449,2062,2072,1008,169,182, - 185,168,171,172,173,174,175,1357,1261,437, - 5384,1363,1343,3118,36,652,33,233,4793,28, - 31,32,585,567,27,29,1269,26,24,51, - 1297,107,77,78,109,2446,1305,1346,1736,54, - 1647,2867,236,231,232,4716,508,36,1042,387, - 2793,2203,2992,275,285,1237,36,652,33,2647, - 2690,28,31,32,585,567,338,29,524,233, - 349,5384,233,405,537,243,246,249,252,1038, - 50,508,36,294,441,1437,455,2514,5384,1036, - 1026,1951,229,402,248,231,232,251,231,232, - 157,3469,2703,2413,2868,2871,3067,4437,181,3735, - 2992,2179,1906,320,5384,3118,204,216,4504,203, - 213,214,215,217,436,418,170,49,537,2265, - 2237,3062,2271,2816,2816,169,2731,2548,168,171, - 172,173,174,175,5384,5384,229,766,36,1042, - 387,2625,2625,2344,157,1972,508,36,1042,387, - 2906,2344,181,3735,2992,2526,5384,1248,1907,2816, - 204,216,4504,203,213,214,215,217,523,2265, - 170,274,537,2816,4242,5384,351,2625,1481,169, - 50,179,168,171,172,173,174,175,183,47, - 229,2625,2344,343,2037,804,348,1632,157,662, - 1817,341,2947,316,1143,3015,181,3735,2992,504, - 359,1248,1907,1496,204,216,4504,203,213,214, - 215,217,610,5384,170,5384,537,3858,1864,1865, - 161,5384,72,169,1872,177,168,171,172,173, - 174,175,2488,2335,229,360,5384,2816,2156,5384, - 502,503,157,2906,73,389,426,1343,233,504, - 181,3735,2992,390,426,2625,5384,1357,204,216, - 4504,203,213,214,215,217,697,2344,170,286, - 537,288,5384,254,231,232,97,169,5384,178, - 168,171,172,173,174,175,3201,2992,229,88, - 501,503,662,5384,392,426,157,2156,331,5384, - 2848,1908,2906,375,181,3735,2992,49,2183,2029, - 294,2816,204,216,4504,203,213,214,215,217, - 784,1357,170,504,537,288,49,2732,1496,342, - 3147,169,2035,188,168,171,172,173,174,175, - 5384,5384,229,508,36,1042,387,5384,2763,5384, - 157,662,2971,53,3083,1908,157,331,181,3735, - 2992,4727,1599,1357,501,503,204,216,4504,203, - 213,214,215,217,871,5384,170,274,537,391, - 426,508,36,1042,387,169,3547,2751,168,171, - 172,173,174,175,298,349,229,508,36,1042, - 387,5384,1357,1901,157,1817,2463,373,4698,1143, - 5384,2246,181,3735,2992,433,1263,36,965,277, - 204,216,4504,203,213,214,215,217,49,1496, - 170,274,3787,2015,91,161,1496,4236,5384,169, - 339,193,168,171,172,173,174,175,2091,36, - 652,33,3177,2690,28,31,32,585,567,338, - 29,3118,36,652,33,350,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,109,1357,1305,1649,594,36,1042,387, - 508,36,1042,387,276,297,5384,508,36,1042, - 387,3643,305,49,2900,661,320,2569,351,1817, - 314,541,2663,1143,958,3308,2816,1357,537,5384, - 50,5384,525,351,432,343,2037,804,348,1036, - 721,431,157,3243,342,1343,229,4763,5384,161, - 343,2037,804,348,157,3223,49,49,526,3383, - 3776,2816,181,3735,2992,49,1357,4229,2446,2816, - 204,216,4504,203,213,214,215,217,1045,342, - 170,428,537,2446,2515,2992,49,342,1143,169, - 3039,187,168,171,172,173,174,175,68,157, - 229,523,2971,49,4776,2001,300,1143,157,49, - 2971,5384,1605,2593,157,3771,181,3735,2992,5384, - 1606,222,201,4295,204,216,4504,203,213,214, - 215,217,5384,157,170,508,1950,965,75,508, - 36,294,1734,169,5384,195,168,171,172,173, - 174,175,3118,36,652,33,5384,4793,28,31, - 32,585,567,27,29,1269,26,24,51,1297, - 107,77,78,109,5384,1305,1650,1834,36,652, - 33,5384,3366,28,31,32,585,567,338,29, - 1357,1803,36,652,33,735,2690,28,31,32, - 585,567,338,29,1739,36,652,33,735,2690, - 28,31,32,585,567,338,29,49,5384,4458, - 2340,1143,67,49,1143,49,1357,2990,1357,1143, - 5384,662,5384,157,661,320,1357,332,4780,315, - 541,919,4322,919,5384,5384,5384,157,661,320, - 157,5384,351,314,541,157,1779,5384,66,163, - 65,661,320,5384,3436,313,314,541,3805,345, - 2037,804,348,1357,3061,36,652,33,313,4793, - 28,31,32,585,567,27,29,1269,26,24, - 51,1297,87,77,78,307,536,671,1263,36, - 965,1958,3613,1817,3613,56,919,1143,534,536, - 671,3118,36,652,33,5384,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,109,161,1657,2446,4371,5384,5384,327, - 334,333,334,3118,36,652,33,2082,4793,28, - 31,32,585,567,27,29,1269,26,24,51, - 1297,107,77,78,109,2446,1685,3613,594,36, - 1042,387,5384,304,3118,36,652,33,559,4793, - 28,31,32,585,567,27,29,1269,26,24, - 51,1297,107,77,78,109,1585,1692,4501,3841, - 2816,1357,50,180,329,334,1849,1114,36,395, - 2816,1036,1564,2446,5384,49,1937,919,229,2816, - 2816,508,36,965,282,5384,5384,3277,229,508, - 36,965,1992,55,5384,49,49,342,229,4230, - 810,5384,206,216,4504,205,213,214,215,217, - 5384,199,206,216,4504,205,213,214,215,217, - 2971,5384,206,216,4504,205,213,214,215,217, - 1607,1357,207,209,211,295,296,1847,3613,218, - 208,210,207,209,211,295,296,1847,1357,218, - 208,210,207,209,211,295,296,1847,49,218, - 208,210,1127,102,49,5384,49,49,3786,1817, - 3113,2121,3208,1143,4317,3806,334,2149,5384,49, - 3889,49,3309,4466,4317,2696,49,49,5384,1357, - 1256,3561,3316,5384,4317,3118,36,652,33,161, - 4793,28,31,32,585,567,27,29,1269,26, - 24,51,1297,107,77,78,86,3118,1034,652, - 1546,3705,4793,28,31,32,585,567,27,29, - 1269,26,24,51,1297,107,77,78,85,3118, - 36,652,33,5384,4793,28,31,32,585,567, - 27,29,1269,26,24,51,1297,107,77,78, - 84,3118,36,652,33,4231,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,83,3118,36,652,33,5384,4793,28, - 31,32,585,567,27,29,1269,26,24,51, - 1297,107,77,78,82,3118,36,652,33,5384, - 4793,28,31,32,585,567,27,29,1269,26, - 24,51,1297,107,77,78,81,3118,36,652, - 33,5384,4793,28,31,32,585,567,27,29, - 1269,26,24,51,1297,107,77,78,80,3118, - 36,652,33,5384,4793,28,31,32,585,567, - 27,29,1269,26,24,51,1297,107,77,78, - 79,2933,36,652,33,5384,4793,28,31,32, - 585,567,27,29,1269,26,24,51,1297,107, - 77,78,105,3118,36,652,33,5384,4793,28, - 31,32,585,567,27,29,1269,26,24,51, - 1297,107,77,78,111,3118,36,652,33,5384, - 4793,28,31,32,585,567,27,29,1269,26, - 24,51,1297,107,77,78,110,3118,36,652, - 33,5384,4793,28,31,32,585,567,27,29, - 1269,26,24,51,1297,107,77,78,108,3118, - 36,652,33,5384,4793,28,31,32,585,567, - 27,29,1269,26,24,51,1297,107,77,78, - 106,1926,36,1986,33,735,2690,28,31,32, - 585,567,338,29,1490,36,652,33,735,2690, - 28,31,32,585,567,338,29,2446,5384,5384, - 49,49,2025,1901,1143,1143,2816,5384,4698,2306, - 919,1357,1993,3328,49,1673,1916,5384,2816,2816, - 2816,2906,2446,5384,229,1114,36,395,661,320, - 157,157,5384,314,541,198,342,229,2625,3560, - 3596,661,320,450,528,1312,314,541,206,216, - 4504,205,213,214,215,217,5384,5384,313,2971, - 303,206,216,4504,205,213,214,215,217,3397, - 662,3613,2446,49,1343,2446,331,1143,207,209, - 211,295,296,1847,1357,519,208,210,308,536, - 671,207,209,211,295,296,1847,1761,518,208, - 210,2816,2446,157,2900,2732,359,2113,3868,334, - 202,2816,3598,200,2992,5384,3146,2201,5384,229, - 5384,2816,49,3363,1864,1865,1143,5384,5384,229, - 375,5384,1114,36,395,2195,417,418,1976,229, - 299,2446,5384,206,216,4504,205,213,214,215, - 217,2446,157,206,216,4504,205,213,214,215, - 217,2726,5384,206,216,4504,205,213,214,215, - 217,429,5384,207,209,211,295,296,1847,3590, - 219,208,210,207,209,211,295,296,1847,223, - 306,208,210,207,209,211,295,296,1847,2446, - 498,208,210,1490,36,652,33,735,2690,28, - 31,32,585,567,338,29,1357,3282,36,1042, - 387,1195,3738,1357,1357,2816,4900,2304,49,5384, - 239,2816,2816,5384,3877,5384,5384,194,1357,5384, - 5384,2515,2729,229,1357,537,919,5384,3200,342, - 342,274,5384,5384,5384,3254,2872,5384,5384,529, - 661,320,5384,3897,5384,314,541,1216,406,2915, - 3415,157,2971,2971,5384,5384,4419,959,233,181, - 3735,1357,532,508,1634,36,652,33,2419,2690, - 28,31,32,585,567,338,29,407,408,409, - 295,296,1847,237,231,232,196,3613,5384,5384, - 5384,1916,5384,3448,275,2816,2906,5384,1538,36, - 652,33,1822,3366,28,31,32,585,567,338, - 29,49,5384,2625,5384,1143,244,247,250,253, - 1038,1906,320,5384,3896,334,1437,1490,36,652, - 33,735,2690,28,31,32,585,567,338,29, - 5384,157,5384,5384,5384,662,5384,5384,5384,1301, - 4464,331,662,2816,4900,661,320,5384,332,5384, - 317,541,5384,5384,410,412,5384,5384,5384,5384, - 5384,229,1829,36,1042,387,1117,36,1042,387, - 3547,359,5384,5384,661,320,5384,5384,2492,314, - 541,4589,5384,5384,5384,1216,406,2915,3363,1864, - 1865,2695,4709,197,5384,4232,50,5384,5384,5384, - 50,1117,36,1042,387,1036,2331,5384,5384,1036, - 2847,2947,316,5384,5384,407,408,409,295,296, - 1847,3277,5384,5384,5384,3007,5384,594,36,1042, - 387,1117,36,1042,387,50,5384,5384,5384,5384, - 1822,5384,5384,5384,1036,48,5384,5384,594,36, - 1042,387,5384,594,36,1042,387,5384,5384,2524, - 2642,50,5384,537,5384,50,594,36,1042,387, - 1036,48,5384,5384,1036,48,5384,1547,36,1042, - 387,342,50,5384,5384,5384,1090,50,5384,157, - 2553,1036,48,5384,5384,49,1036,48,189,2816, - 50,5384,410,413,4567,5384,5384,2484,5384,1036, - 48,50,2660,594,36,1042,387,342,5384,5384, - 1036,48,5384,5384,5384,3261,594,36,1042,387, - 2276,36,1042,387,5384,5384,2941,49,5384,5384, - 2971,537,5384,1230,36,1042,387,50,5384,49, - 506,5384,5384,537,5384,5384,1036,48,5384,342, - 50,191,5384,5384,50,5384,5384,157,5384,1036, - 48,342,3370,1036,48,5384,2483,50,5384,157, - 49,5384,2971,5384,537,3377,1036,2044,2806,3509, - 5384,5384,2480,5384,2971,5384,5384,508,36,1042, - 387,5384,342,5384,2698,5384,5384,5384,5384,5384, - 157,508,36,1042,387,508,36,1042,387,2483, - 49,5384,5384,5384,2816,2971,508,36,1042,387, - 5384,50,5384,5384,49,3137,5384,5384,537,4361, - 1036,799,342,5384,49,50,5384,5384,537,50, - 508,36,1042,387,1036,919,342,5384,1036,663, - 50,5384,5384,5384,157,2971,342,5384,49,1036, - 2044,5384,537,189,157,533,5384,5384,5384,4567, - 5384,5384,5384,189,50,5384,5384,5384,5384,4567, - 342,5384,5384,1036,3048,5384,5384,5384,157,5384, - 5384,5384,5384,5384,5384,5384,5384,189,5384,5384, - 5384,5384,5384,4567,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,4304,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,4436,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 4443,5384,0,2116,1,0,40,5399,1,0, - 40,5398,1,0,39,626,0,39,5399,0, - 39,5398,0,453,784,0,439,1043,0,1078, - 30,0,5399,49,0,5398,49,0,5396,382, - 0,5395,382,0,40,5399,0,40,5398,0, - 1,443,0,457,1476,0,456,1515,0,36, - 34,0,1078,386,0,48,38,0,2571,127, - 0,1,1342,0,1,5657,0,1,5656,0, - 1,5655,0,1,5654,0,1,5653,0,1, - 5652,0,1,5651,0,1,5650,0,1,5649, - 0,1,5648,0,1,5647,0,284,393,0, - 284,287,0,5619,242,0,5618,242,0,5721, - 242,0,5720,242,0,5646,242,0,5645,242, - 0,5644,242,0,5643,242,0,5642,242,0, - 5641,242,0,5640,242,0,5639,242,0,5657, - 242,0,5656,242,0,5655,242,0,5654,242, - 0,5653,242,0,5652,242,0,5651,242,0, - 5650,242,0,5649,242,0,5648,242,0,5647, - 242,0,40,5399,242,0,40,5398,242,0, - 5423,242,0,44,5421,0,44,38,0,2157, - 92,0,33,35,0,40,626,0,330,444, - 0,5390,1,0,5389,1,0,238,2805,0, - 33,387,0,30,386,0,2571,129,0,2571, - 128,0,500,1829,0,5423,1,230,0,40, - 1,230,0,230,415,0,5399,38,0,5398, - 38,0,5421,46,0,38,46,0,5423,1, - 0,40,1,0,1,93,0,5394,404,0, - 5393,404,0,4423,1,0,2750,1,0,626, - 1,0,230,414,0,1915,382,0,5399,2, - 38,0,5398,2,38,0,5399,37,0,5398, - 37,0,1,330,0,8,12,0,330,96, - 0,36,74,0,500,4235,0,1,230,0, - 230,221,0,279,3285,0,230,220,0,1, - 3777,0,1,4245,0,5396,1,0,5392,1, - 0,1,230,2284,0,5393,230,0,2292,230, - 0,2507,230,0,10,12,0,8,10,12, - 0,186,3394,0 + 196,196,196,196,196,196,196,76,81,81, + 173,173,131,131,132,132,132,132,132,132, + 3,133,133,130,130,114,114,84,77,73, + 161,161,115,115,197,197,197,134,134,125, + 125,198,198,174,174,104,1119,35,1647,1641, + 1179,4611,27,30,31,584,566,26,28,1613, + 25,23,50,1296,106,76,77,108,1234,1304, + 1345,1339,1382,1372,1425,1415,1167,1467,142,1431, + 273,1477,1484,143,327,35,279,158,144,4860, + 1600,35,651,32,2077,4615,27,30,31,584, + 566,57,28,3023,35,651,32,232,4792,27, + 30,31,584,566,26,28,1268,25,23,50, + 1296,106,76,77,108,322,1304,1345,1339,1382, + 1372,1742,235,230,231,502,1033,964,34,3023, + 35,651,32,274,4792,27,30,31,584,566, + 26,28,1268,25,23,50,1296,106,76,77, + 108,2164,1304,1345,1727,242,245,248,251,1037, + 1446,924,2377,35,277,1436,2035,35,651,32, + 1322,4615,27,30,31,584,566,56,28,2026, + 1527,1525,2702,2412,2867,2870,3066,4436,2250,35, + 651,32,2815,4792,27,30,31,584,566,26, + 28,1268,25,23,50,1296,106,76,77,108, + 341,1304,1345,1339,1382,1372,1425,1415,61,1467, + 2242,1431,1347,1477,1484,143,3798,2905,1517,515, + 144,1993,870,2970,1347,323,1867,1859,2053,2905, + 1010,2905,4326,516,2250,35,651,32,2815,4792, + 27,30,31,584,566,26,28,1268,25,23, + 50,1296,106,76,77,108,341,1304,1345,1339, + 1382,1372,1425,1415,1553,1467,661,1431,3873,1477, + 1484,143,3014,56,2202,515,144,688,661,2970, + 661,502,35,1862,330,3015,331,791,2080,516, + 2305,2202,511,2217,60,2122,35,651,32,2237, + 4875,27,30,31,584,566,26,28,1555,509, + 2223,1561,496,2458,2250,35,651,32,2815,4792, + 27,30,31,584,566,26,28,1268,25,23, + 50,1296,106,76,77,108,341,1304,1345,1339, + 1382,1372,1425,1415,311,1467,910,1431,511,1477, + 1484,143,2564,94,3015,515,144,42,1588,2970, + 1347,327,35,279,1562,2905,4864,1561,351,516, + 2594,35,651,32,2815,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,108,341,1304,1345,1339,1382,1372,1425,1415, + 2344,1467,1725,1431,2815,1477,1484,143,2224,35, + 277,515,144,441,661,2970,502,35,1243,1096, + 330,2243,341,791,354,516,44,1588,511,1956, + 35,651,32,529,4875,27,30,31,584,566, + 59,28,2207,2158,1570,1294,1903,1561,1355,736, + 2526,35,651,32,2467,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,108,2772,1304,1345,1339,1382,1372,1425,1415, + 320,1467,1897,1431,512,1477,1484,143,2383,2583, + 1172,377,144,2319,35,651,32,2700,4792,27, + 30,31,584,566,26,28,1268,25,23,50, + 1296,106,76,77,108,135,1304,1345,1339,1382, + 1372,1425,1415,1324,1467,69,1431,1335,1477,1484, + 143,2493,56,1172,377,144,744,3023,35,651, + 32,71,4792,27,30,31,584,566,26,28, + 1268,25,23,50,1296,106,76,77,108,1512, + 1304,1345,1339,1382,1372,1425,1415,56,1467,1553, + 1431,824,1477,1510,164,2499,1983,383,1141,502, + 35,282,2391,35,651,32,142,4792,27,30, + 31,584,566,26,28,1268,25,23,50,1296, + 106,76,77,108,521,1304,1345,1339,1382,1372, + 1425,1415,521,1467,1618,1431,2237,1477,1484,143, + 384,1141,1172,377,144,502,1906,2601,421,2617, + 1948,1618,2788,35,651,32,2453,4792,27,30, + 31,584,566,26,28,1268,25,23,50,1296, + 106,76,77,108,2991,1304,1345,1339,1382,1372, + 1425,1415,56,1467,236,1431,2207,1477,1484,143, + 3890,1639,1713,158,144,3023,35,651,32,1392, + 4792,27,30,31,584,566,26,28,1268,25, + 23,50,1296,106,76,77,108,2986,1304,1345, + 1339,1382,1372,1425,1415,2130,1467,2623,1777,375, + 1141,2788,35,651,32,2711,4792,27,30,31, + 584,566,26,28,1268,25,23,50,1296,106, + 76,77,108,2663,1304,1345,1339,1382,1372,1425, + 1415,353,1467,402,1431,2237,1477,1484,143,288, + 529,2634,371,144,2788,35,651,32,931,4792, + 27,30,31,584,566,26,28,1268,25,23, + 50,1296,106,76,77,108,1527,1304,1345,1339, + 1382,1372,1425,1415,1946,1467,3270,1431,722,1477, + 1484,143,502,4291,585,371,144,2788,35,651, + 32,2515,4792,27,30,31,584,566,26,28, + 1268,25,23,50,1296,106,76,77,108,2640, + 1304,1345,1339,1382,1372,1425,1415,2640,1467,1350, + 1431,671,1477,1484,143,64,4846,370,371,144, + 2733,35,651,32,3205,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,108,1811,1304,1345,1339,1382,1372,1425,1415, + 321,1467,929,1431,56,1477,1510,164,3610,529, + 369,1355,671,2459,35,651,32,4650,4792,27, + 30,31,584,566,26,28,1268,25,23,50, + 1296,106,76,77,108,1236,1304,1345,1339,1382, + 1372,1425,1415,495,1467,1244,1431,1355,1477,1484, + 143,400,325,367,142,144,1618,2788,35,651, + 32,1518,4792,27,30,31,584,566,26,28, + 1268,25,23,50,1296,106,76,77,108,376, + 1304,1345,1339,1382,1372,1425,1415,1328,1467,159, + 1431,93,1477,1484,143,1010,1682,1352,155,144, + 2788,35,651,32,1380,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,108,419,1304,1345,1339,1382,1372,1425,1415, + 49,1467,159,1431,1010,1477,1484,143,1010,502, + 2556,154,144,2788,35,651,32,1476,4792,27, + 30,31,584,566,26,28,1268,25,23,50, + 1296,106,76,77,108,1442,1304,1345,1339,1382, + 1372,1425,1415,1375,1467,160,1431,458,1477,1484, + 143,2163,590,1774,153,144,2788,35,651,32, + 848,4792,27,30,31,584,566,26,28,1268, + 25,23,50,1296,106,76,77,108,1174,1304, + 1345,1339,1382,1372,1425,1415,457,1467,1560,1431, + 324,1477,1484,143,1965,1991,2146,152,144,2788, + 35,651,32,2310,4792,27,30,31,584,566, + 26,28,1268,25,23,50,1296,106,76,77, + 108,379,1304,1345,1339,1382,1372,1425,1415,56, + 1467,3297,1431,960,1477,1484,143,3223,408,580, + 151,144,2788,35,651,32,1144,4792,27,30, + 31,584,566,26,28,1268,25,23,50,1296, + 106,76,77,108,378,1304,1345,1339,1382,1372, + 1425,1415,56,1467,1613,1431,4440,1477,1484,143, + 1010,1700,932,150,144,2788,35,651,32,1378, + 4792,27,30,31,584,566,26,28,1268,25, + 23,50,1296,106,76,77,108,1527,1304,1345, + 1339,1382,1372,1425,1415,1790,1467,1610,1431,671, + 1477,1484,143,1010,4676,2246,149,144,2788,35, + 651,32,1954,4792,27,30,31,584,566,26, + 28,1268,25,23,50,1296,106,76,77,108, + 3217,1304,1345,1339,1382,1372,1425,1415,3219,1467, + 1508,1431,4168,1477,1484,143,1778,1949,1629,148, + 144,2788,35,651,32,1498,4792,27,30,31, + 584,566,26,28,1268,25,23,50,1296,106, + 76,77,108,1815,1304,1345,1339,1382,1372,1425, + 1415,2345,1467,2346,1431,51,1477,1484,143,2385, + 2414,1900,147,144,2788,35,651,32,2642,4792, + 27,30,31,584,566,26,28,1268,25,23, + 50,1296,106,76,77,108,2439,1304,1345,1339, + 1382,1372,1425,1415,56,1467,2415,1431,3675,1477, + 1484,143,2421,1887,2350,146,144,2788,35,651, + 32,2447,4792,27,30,31,584,566,26,28, + 1268,25,23,50,1296,106,76,77,108,2284, + 1304,1345,1339,1382,1372,1425,1415,56,1467,2664, + 1431,3026,1477,1484,143,2450,2387,2413,145,144, + 2788,35,651,32,838,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,108,2419,1304,1345,1339,1382,1372,1425,1415, + 56,1467,2449,1431,2743,1477,1484,143,2486,2665, + 2514,159,144,2788,35,651,32,2481,4792,27, + 30,31,584,566,26,28,1268,25,23,50, + 1296,106,76,77,108,2516,1304,1345,1339,1382, + 1372,1425,1415,56,1467,1329,1431,998,1477,1484, + 143,2550,1338,2552,140,144,2906,35,651,32, + 2521,4792,27,30,31,584,566,26,28,1268, + 25,23,50,1296,106,76,77,108,2517,1304, + 1345,1339,1382,1372,1425,1415,56,1467,2557,1431, + 3012,1477,1484,143,1908,2667,2210,189,144,3023, + 35,651,32,1599,4792,27,30,31,584,566, + 26,28,1268,25,23,50,1296,106,76,77, + 108,2592,1304,1345,1339,1382,1372,1425,1415,56, + 1467,2582,1431,1142,1477,1510,164,3023,35,651, + 32,2687,4792,27,30,31,584,566,26,28, + 1268,25,23,50,1296,106,76,77,108,1427, + 1304,1345,1339,1382,1372,1425,1415,2202,1467,3126, + 1431,352,1477,1510,164,2152,35,651,32,445, + 2551,41,30,31,584,566,3023,35,651,32, + 292,4792,27,30,31,584,566,26,28,1268, + 25,23,50,1296,106,76,77,108,2558,1304, + 1345,1339,1382,1372,1425,1415,56,1467,1618,1431, + 1142,1477,1510,164,3023,35,651,32,2737,4792, + 27,30,31,584,566,26,28,1268,25,23, + 50,1296,106,76,77,108,3281,1304,1345,1339, + 1382,1372,1425,1415,2690,1467,2670,1431,2742,1477, + 1510,164,2160,35,651,32,2589,322,40,30, + 31,584,566,3078,35,651,32,420,4792,27, + 30,31,584,566,26,28,1268,25,23,50, + 1296,106,76,77,108,520,1304,1345,1339,1382, + 1372,1425,1415,56,1467,1618,1431,3020,1477,1510, + 164,3023,35,651,32,423,4792,27,30,31, + 584,566,26,28,1268,25,23,50,1296,106, + 76,77,108,380,1304,1345,1339,1382,1372,1425, + 1415,999,1467,2602,1431,3425,1785,1956,35,651, + 32,87,4875,27,30,31,584,566,58,28, + 3023,35,651,32,2529,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,108,241,1304,1345,1339,1382,1372,1425,1415, + 2374,1770,3023,35,651,32,2677,4792,27,30, + 31,584,566,26,28,1268,25,23,50,1296, + 106,76,77,108,2484,1304,1345,1339,1382,1372, + 1425,1776,3023,35,651,32,2688,4792,27,30, + 31,584,566,26,28,1268,25,23,50,1296, + 106,76,77,108,2692,1304,1345,1339,1382,1760, + 3023,35,651,32,2202,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,108,1232,1304,1345,1339,1382,1768,1983,35, + 651,32,734,3365,27,30,31,584,566,337, + 28,3023,35,651,32,2693,4792,27,30,31, + 584,566,26,28,1268,25,23,50,1296,106, + 76,77,108,1474,1304,1345,1339,1692,1692,35, + 651,32,2069,3365,27,30,31,584,566,337, + 28,70,661,232,1729,660,319,2699,330,1355, + 313,540,1355,502,35,1041,386,2160,35,651, + 32,322,312,2894,30,31,584,566,244,230, + 231,502,35,964,276,952,173,4537,327,35, + 451,4146,661,4702,24,660,319,429,331,1469, + 314,540,306,535,670,3023,35,651,32,2683, + 4792,27,30,31,584,566,26,28,1268,25, + 23,50,1296,106,76,77,108,2314,1304,1345, + 1339,1699,2160,35,651,32,2694,387,3437,30, + 31,584,566,3452,502,35,964,1856,2383,2756, + 3023,35,651,32,2081,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,108,2514,1304,1345,1339,1717,3023,35,651, + 32,2454,4792,27,30,31,584,566,26,28, + 1268,25,23,50,1296,106,76,77,108,2758, + 1304,1345,1339,1725,1453,35,651,32,3176,2689, + 27,30,31,584,566,337,28,2207,35,293, + 671,2224,35,280,2454,4680,1726,35,1985,32, + 734,3365,27,30,31,584,566,337,28,502, + 35,1041,386,1792,1802,35,651,32,4530,2689, + 27,30,31,584,566,337,28,2762,444,2061, + 2071,660,319,843,35,451,313,540,4702,587, + 35,1041,386,450,2698,2551,349,1355,1942,350, + 661,400,3335,660,319,3790,330,2644,313,540, + 1948,1101,35,1803,820,239,342,2036,803,347, + 1311,660,319,49,1932,1010,313,540,2810,69, + 259,1890,1035,737,536,4537,2905,1010,958,350, + 2245,88,56,1374,102,49,3080,2815,3222,2616, + 2707,4293,228,2815,1035,926,342,2036,803,347, + 156,445,56,232,3242,2624,3765,314,180,3734, + 2991,341,502,35,964,278,203,215,4503,202, + 212,213,214,216,89,661,169,102,240,230, + 231,331,1,5383,728,168,536,183,167,170, + 171,172,173,174,1616,1355,350,97,1142,364, + 520,415,417,1975,228,3133,35,1041,386,98, + 3737,568,156,344,2036,803,347,5383,237,5383, + 180,3734,2991,358,160,2663,5383,68,203,215, + 4503,202,212,213,214,216,1686,322,169,273, + 3605,1863,1864,448,2061,2071,1007,168,181,184, + 167,170,171,172,173,174,1355,1246,436,5383, + 1376,1618,3023,35,651,32,232,4792,27,30, + 31,584,566,26,28,1268,25,23,50,1296, + 106,76,77,108,2359,1304,1345,1735,53,1608, + 2866,235,230,231,4715,502,35,1041,386,2792, + 2202,2991,274,284,1223,35,651,32,2646,2689, + 27,30,31,584,566,337,28,523,232,345, + 5383,232,404,536,242,245,248,251,1037,49, + 502,35,293,440,1436,454,1247,5383,1035,1025, + 1950,228,401,247,230,231,250,230,231,156, + 3468,2702,2412,2867,2870,3066,4436,180,3734,2991, + 2148,1905,319,5383,3117,203,215,4503,202,212, + 213,214,216,431,2484,169,56,536,2235,1374, + 3061,2241,2815,2815,168,2730,2547,167,170,171, + 172,173,174,5383,5383,228,757,35,1041,386, + 2624,2624,2150,156,2043,502,35,1041,386,2905, + 2150,180,3734,2991,2491,5383,1249,1906,2815,203, + 215,4503,202,212,213,214,216,517,2235,169, + 273,536,2815,4241,5383,350,2624,1599,168,49, + 178,167,170,171,172,173,174,182,46,228, + 2624,2150,342,2036,803,347,1609,156,661,1616, + 340,2946,315,1142,3014,180,3734,2991,503,358, + 1249,1906,322,203,215,4503,202,212,213,214, + 216,603,5383,169,5383,536,3857,1863,1864,160, + 5383,71,168,1871,176,167,170,171,172,173, + 174,2487,2618,228,359,5383,2815,1347,5383,501, + 502,156,2905,72,388,425,1618,232,503,180, + 3734,2991,389,425,2624,5383,1355,203,215,4503, + 202,212,213,214,216,689,2150,169,285,536, + 287,5383,253,230,231,96,168,5383,177,167, + 170,171,172,173,174,3200,2991,228,87,500, + 502,661,5383,391,425,156,1347,330,5383,2847, + 1907,2905,374,180,3734,2991,56,2207,2028,293, + 2815,203,215,4503,202,212,213,214,216,775, + 1355,169,503,536,287,56,2731,322,341,3146, + 168,2034,187,167,170,171,172,173,174,5383, + 5383,228,502,35,1041,386,5383,2762,5383,156, + 661,2970,52,3082,1907,671,330,180,3734,2991, + 4726,1598,1355,500,502,203,215,4503,202,212, + 213,214,216,861,5383,169,273,536,390,425, + 502,35,1041,386,168,3546,2750,167,170,171, + 172,173,174,297,348,228,502,35,1041,386, + 5383,1355,2136,156,1616,2462,372,4697,1142,5383, + 2245,180,3734,2991,432,1483,35,964,276,203, + 215,4503,202,212,213,214,216,56,322,169, + 273,3786,1901,90,160,322,4235,5383,168,338, + 192,167,170,171,172,173,174,2071,35,651, + 32,3176,2689,27,30,31,584,566,337,28, + 3023,35,651,32,349,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,108,1355,1304,1648,587,35,1041,386,502, + 35,1041,386,275,296,5383,502,35,1041,386, + 3642,304,56,2899,660,319,2568,350,1616,313, + 540,2559,1142,947,3307,2815,1355,536,5383,49, + 5383,524,350,431,342,2036,803,347,1035,720, + 430,671,3242,341,1618,228,4762,5383,160,342, + 2036,803,347,156,3222,56,56,525,3382,3775, + 2815,180,3734,2991,56,1355,4228,2359,2815,203, + 215,4503,202,212,213,214,216,1033,341,169, + 427,536,2359,2423,2991,56,341,1142,168,3038, + 186,167,170,171,172,173,174,67,671,228, + 522,2970,56,4775,2000,299,1142,156,56,2970, + 5383,1604,2592,156,3770,180,3734,2991,5383,1605, + 221,200,4294,203,215,4503,202,212,213,214, + 216,5383,156,169,502,1949,964,74,502,35, + 293,1733,168,5383,194,167,170,171,172,173, + 174,3023,35,651,32,5383,4792,27,30,31, + 584,566,26,28,1268,25,23,50,1296,106, + 76,77,108,5383,1304,1649,1364,35,651,32, + 5383,3365,27,30,31,584,566,337,28,1355, + 1499,35,651,32,734,2689,27,30,31,584, + 566,337,28,1715,35,651,32,734,2689,27, + 30,31,584,566,337,28,56,5383,4457,2343, + 1142,66,56,1142,56,1355,2989,1355,1142,5383, + 661,5383,671,660,319,1355,331,4779,314,540, + 737,4321,737,5383,5383,5383,156,660,319,156, + 5383,350,313,540,156,1778,5383,65,162,64, + 660,319,5383,3435,312,313,540,3804,344,2036, + 803,347,1355,2968,35,651,32,312,4792,27, + 30,31,584,566,26,28,1268,25,23,50, + 1296,86,76,77,306,535,670,1483,35,964, + 1957,3612,1616,3612,55,737,1142,533,535,670, + 3023,35,651,32,5383,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,108,160,1656,2359,4370,5383,5383,326,333, + 332,333,3023,35,651,32,2081,4792,27,30, + 31,584,566,26,28,1268,25,23,50,1296, + 106,76,77,108,2359,1684,3612,587,35,1041, + 386,5383,303,3023,35,651,32,558,4792,27, + 30,31,584,566,26,28,1268,25,23,50, + 1296,106,76,77,108,1563,1691,4500,3840,2815, + 1355,49,179,328,333,1824,1101,35,394,2815, + 1035,1563,2359,5383,56,1911,737,228,2815,2815, + 502,35,964,281,5383,5383,3276,228,502,35, + 964,1991,54,5383,56,56,341,228,4229,809, + 5383,205,215,4503,204,212,213,214,216,5383, + 198,205,215,4503,204,212,213,214,216,2970, + 5383,205,215,4503,204,212,213,214,216,1606, + 1355,206,208,210,294,295,1846,3612,217,207, + 209,206,208,210,294,295,1846,1355,217,207, + 209,206,208,210,294,295,1846,56,217,207, + 209,1126,101,56,5383,56,56,3785,1616,3112, + 2120,3207,1142,4316,3805,333,2148,5383,56,3888, + 56,3308,4465,4316,2695,56,56,5383,1355,1255, + 3560,3315,5383,4316,3023,35,651,32,160,4792, + 27,30,31,584,566,26,28,1268,25,23, + 50,1296,106,76,77,85,3023,1033,651,1545, + 3704,4792,27,30,31,584,566,26,28,1268, + 25,23,50,1296,106,76,77,84,3023,35, + 651,32,5383,4792,27,30,31,584,566,26, + 28,1268,25,23,50,1296,106,76,77,83, + 3023,35,651,32,4230,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,82,3023,35,651,32,5383,4792,27,30, + 31,584,566,26,28,1268,25,23,50,1296, + 106,76,77,81,3023,35,651,32,5383,4792, + 27,30,31,584,566,26,28,1268,25,23, + 50,1296,106,76,77,80,3023,35,651,32, + 5383,4792,27,30,31,584,566,26,28,1268, + 25,23,50,1296,106,76,77,79,3023,35, + 651,32,5383,4792,27,30,31,584,566,26, + 28,1268,25,23,50,1296,106,76,77,78, + 2851,35,651,32,5383,4792,27,30,31,584, + 566,26,28,1268,25,23,50,1296,106,76, + 77,104,3023,35,651,32,5383,4792,27,30, + 31,584,566,26,28,1268,25,23,50,1296, + 106,76,77,110,3023,35,651,32,5383,4792, + 27,30,31,584,566,26,28,1268,25,23, + 50,1296,106,76,77,109,3023,35,651,32, + 5383,4792,27,30,31,584,566,26,28,1268, + 25,23,50,1296,106,76,77,107,3023,35, + 651,32,5383,4792,27,30,31,584,566,26, + 28,1268,25,23,50,1296,106,76,77,105, + 2063,35,1985,32,734,2689,27,30,31,584, + 566,337,28,1468,35,651,32,734,2689,27, + 30,31,584,566,337,28,2359,5383,5383,56, + 56,1998,2136,1142,1142,2815,5383,4697,2309,737, + 1355,1703,3327,56,1650,1812,5383,2815,2815,2815, + 2905,2359,5383,228,1101,35,394,660,319,156, + 156,5383,313,540,197,341,228,2624,3559,3595, + 660,319,449,527,1311,313,540,205,215,4503, + 204,212,213,214,216,5383,5383,312,2970,302, + 205,215,4503,204,212,213,214,216,3396,661, + 3612,2359,56,1618,2359,330,1142,206,208,210, + 294,295,1846,1355,518,207,209,307,535,670, + 206,208,210,294,295,1846,1737,517,207,209, + 2815,2359,156,2899,2731,358,2085,3867,333,201, + 2815,3597,199,2991,5383,3145,2172,5383,228,5383, + 2815,56,3362,1863,1864,1142,5383,5383,228,374, + 5383,1101,35,394,2194,416,417,1975,228,298, + 2359,5383,205,215,4503,204,212,213,214,216, + 2359,156,205,215,4503,204,212,213,214,216, + 2725,5383,205,215,4503,204,212,213,214,216, + 428,5383,206,208,210,294,295,1846,3589,218, + 207,209,206,208,210,294,295,1846,222,305, + 207,209,206,208,210,294,295,1846,2359,497, + 207,209,1468,35,651,32,734,2689,27,30, + 31,584,566,337,28,1355,3182,35,1041,386, + 1181,3737,1355,1355,2815,4899,1889,56,5383,238, + 2815,2815,5383,3876,5383,5383,193,1355,5383,5383, + 2423,2728,228,1355,536,737,5383,3199,341,341, + 273,5383,5383,5383,3253,2871,5383,5383,528,660, + 319,5383,3896,5383,313,540,1215,405,2914,3414, + 156,2970,2970,5383,5383,4418,958,232,180,3734, + 1355,531,507,1779,35,651,32,2418,2689,27, + 30,31,584,566,337,28,406,407,408,294, + 295,1846,236,230,231,195,3612,5383,5383,5383, + 1812,5383,3447,274,2815,2905,5383,1692,35,651, + 32,1821,3365,27,30,31,584,566,337,28, + 56,5383,2624,5383,1142,243,246,249,252,1037, + 1905,319,5383,3895,333,1436,1468,35,651,32, + 734,2689,27,30,31,584,566,337,28,5383, + 156,5383,5383,5383,661,5383,5383,5383,1286,4463, + 330,661,2815,4899,660,319,5383,331,5383,316, + 540,5383,5383,409,411,5383,5383,5383,5383,5383, + 228,2276,35,1041,386,1104,35,1041,386,3546, + 358,5383,5383,660,319,5383,5383,2491,313,540, + 4588,5383,5383,5383,1215,405,2914,3362,1863,1864, + 2694,4708,196,5383,4231,49,5383,5383,5383,49, + 1104,35,1041,386,1035,2330,5383,5383,1035,2846, + 2946,315,5383,5383,406,407,408,294,295,1846, + 3276,5383,5383,5383,3006,5383,587,35,1041,386, + 1104,35,1041,386,49,5383,5383,5383,5383,1821, + 5383,5383,5383,1035,47,5383,5383,587,35,1041, + 386,5383,587,35,1041,386,5383,5383,2482,2641, + 49,5383,536,5383,49,587,35,1041,386,1035, + 47,5383,5383,1035,47,5383,1979,35,1041,386, + 341,49,5383,5383,5383,1089,49,5383,156,2552, + 1035,47,5383,5383,56,1035,47,188,2815,49, + 5383,409,412,4566,5383,5383,2483,5383,1035,47, + 49,2659,587,35,1041,386,341,5383,5383,1035, + 47,5383,5383,5383,3260,587,35,1041,386,2168, + 35,1041,386,5383,5383,2940,56,5383,5383,2970, + 536,5383,1216,35,1041,386,49,5383,56,505, + 5383,5383,536,5383,5383,1035,47,5383,341,49, + 190,5383,5383,49,5383,5383,156,5383,1035,47, + 341,3369,1035,47,5383,2482,49,5383,156,56, + 5383,2970,5383,536,3376,1035,2043,2805,3508,5383, + 5383,2479,5383,2970,5383,5383,502,35,1041,386, + 5383,341,5383,2697,5383,5383,5383,5383,5383,156, + 502,35,1041,386,502,35,1041,386,2482,56, + 5383,5383,5383,2815,2970,502,35,1041,386,5383, + 49,5383,5383,56,3136,5383,5383,536,4360,1035, + 798,341,5383,56,49,5383,5383,536,49,502, + 35,1041,386,1035,918,341,5383,1035,662,49, + 5383,5383,5383,156,2970,341,5383,56,1035,2043, + 5383,536,188,156,532,5383,5383,5383,4566,5383, + 5383,5383,188,49,5383,5383,5383,5383,4566,341, + 5383,5383,1035,3047,5383,5383,5383,156,5383,5383, + 5383,5383,5383,5383,5383,5383,188,5383,5383,5383, + 5383,5383,4566,5383,5383,5383,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,4303,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,4435,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,4442, + 5383,0,2115,1,0,39,5398,1,0,39, + 5397,1,0,38,625,0,38,5398,0,38, + 5397,0,452,783,0,438,1042,0,1077,29, + 0,5398,48,0,5397,48,0,5395,381,0, + 5394,381,0,39,5398,0,39,5397,0,1, + 442,0,456,1475,0,455,1514,0,35,33, + 0,1077,385,0,47,37,0,2570,126,0, + 1,1341,0,1,5655,0,1,5654,0,1, + 5653,0,1,5652,0,1,5651,0,1,5650, + 0,1,5649,0,1,5648,0,1,5647,0, + 1,5646,0,1,5645,0,283,392,0,283, + 286,0,5617,241,0,5616,241,0,5719,241, + 0,5718,241,0,5644,241,0,5643,241,0, + 5642,241,0,5641,241,0,5640,241,0,5639, + 241,0,5638,241,0,5637,241,0,5655,241, + 0,5654,241,0,5653,241,0,5652,241,0, + 5651,241,0,5650,241,0,5649,241,0,5648, + 241,0,5647,241,0,5646,241,0,5645,241, + 0,39,5398,241,0,39,5397,241,0,5421, + 241,0,43,5419,0,43,37,0,2156,91, + 0,32,34,0,39,625,0,329,443,0, + 5389,1,0,5388,1,0,237,2804,0,32, + 386,0,29,385,0,2570,128,0,2570,127, + 0,499,1828,0,5421,1,229,0,39,1, + 229,0,229,414,0,5398,37,0,5397,37, + 0,5419,45,0,37,45,0,5421,1,0, + 39,1,0,1,92,0,5393,403,0,5392, + 403,0,4422,1,0,2749,1,0,625,1, + 0,229,413,0,1914,381,0,5398,2,37, + 0,5397,2,37,0,5398,36,0,5397,36, + 0,1,329,0,8,12,0,329,95,0, + 35,73,0,499,4234,0,1,229,0,229, + 220,0,278,3284,0,229,219,0,1,3776, + 0,1,4244,0,5395,1,0,5391,1,0, + 1,229,2283,0,5392,229,0,2291,229,0, + 2506,229,0,10,12,0,8,10,12,0, + 185,3393,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1103,356 +1102,346 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 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,63,0,65,66,67,68,0, - 6,0,72,4,3,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,0,56,57,58,59,60,61,62, - 63,9,65,66,67,68,0,93,94,72, - 4,0,75,76,77,78,79,80,81,82, - 83,84,85,86,0,1,2,3,4,5, + 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,0,49,50,51,52,53,54,0, - 56,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,0,56,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, + 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,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,6,0,1,2,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,92,93,89,4,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,71,49,50,51, + 42,43,44,45,46,47,0,49,50,51, 52,53,54,0,56,57,58,59,60,61, - 62,63,0,65,66,67,68,0,6,103, - 104,105,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, - 0,56,57,58,59,60,61,62,63,9, - 65,66,67,68,101,93,94,0,1,2, - 75,76,77,78,79,80,81,82,83,84, - 85,86,0,1,2,3,4,5,6,7, + 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,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,68,56,57,58,59, + 60,61,62,0,64,65,66,67,0,6, + 0,0,9,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,87,88,8,87,88, + 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,63,0,65,66,67, - 68,0,6,0,1,2,0,75,76,77, - 78,79,80,81,82,83,84,85,86,0, + 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,117,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,0,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,4,0,61, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,0,1,2,0,0, + 40,55,0,1,2,3,4,5,48,7, + 8,0,89,0,91,0,56,57,58,59, + 60,63,62,0,9,0,0,25,0,1, + 2,71,72,22,23,24,0,26,27,28, + 29,30,31,32,33,34,86,22,23,24, + 0,26,27,28,29,30,31,32,33,34, + 65,66,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, + 25,26,27,28,29,30,31,32,33,34, + 74,0,0,0,3,40,3,0,0,6, + 0,8,9,48,0,1,2,0,4,96, + 97,56,57,58,59,60,0,62,25,0, + 4,0,6,120,0,9,71,72,35,36, + 37,38,8,0,1,2,3,4,5,6, + 7,86,9,0,0,0,39,0,55,0, + 6,8,48,55,35,36,63,102,103,104, + 69,68,69,70,71,72,73,22,23,24, + 72,26,27,28,29,30,31,32,33,34, + 87,88,89,90,91,92,93,94,95,96, + 97,98,99,100,101,98,63,73,105,106, + 107,108,109,110,111,112,113,114,115,116, + 117,0,119,120,3,0,73,6,69,8, + 9,100,0,1,2,3,4,5,6,7, + 0,9,0,90,87,88,25,0,1,2, + 3,4,5,0,7,0,35,36,37,38, + 101,8,0,1,2,106,107,108,109,110, + 111,112,113,114,115,116,55,0,0,1, + 2,3,4,5,63,7,8,0,63,68, + 69,70,71,72,73,63,0,1,2,0, + 4,69,6,25,0,9,0,3,87,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,70,71,70,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,25,26,27, + 28,29,30,31,32,33,34,100,0,0, + 1,2,40,4,5,98,7,0,0,0, + 48,4,0,87,88,0,0,0,56,57, + 58,59,60,8,62,8,64,68,0,22, + 22,23,24,71,26,27,28,29,30,31, + 32,33,34,0,35,36,48,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,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,63,0,65,66,67,68,101,93, - 94,90,0,92,75,76,77,78,79,80, - 81,82,83,84,85,86,0,1,2,3, + 31,32,33,34,67,0,1,2,73,40, + 5,0,1,2,3,4,5,48,7,0, + 72,89,0,91,55,56,57,58,59,60, + 8,62,0,64,0,1,2,3,4,5, + 6,7,10,9,0,0,1,2,3,4, + 5,6,7,48,9,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,69,56,57,58,59,60,61,62,63, - 0,65,66,67,68,0,1,2,0,0, - 5,75,76,77,78,79,80,81,82,83, - 84,85,86,0,1,2,3,4,5,6, + 34,59,70,0,60,73,40,0,0,1, + 2,3,4,5,48,7,9,63,89,0, + 91,0,56,57,58,59,60,72,62,8, + 64,0,1,2,3,4,5,71,7,8, + 0,0,1,2,0,4,25,6,4,8, + 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,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,69,56, - 57,58,59,60,61,62,63,0,65,66, - 67,68,0,1,2,0,4,10,75,76, - 77,78,79,80,81,82,83,84,85,86, + 27,28,29,30,31,32,33,34,0,1, + 2,70,0,40,63,55,0,1,2,55, + 4,48,6,0,73,9,87,88,68,56, + 57,58,59,60,73,62,0,64,0,0, + 1,2,3,4,71,6,8,0,9,0, + 0,90,0,3,94,95,48,0,8,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,70,56,57,58,59, - 60,61,62,63,0,65,66,67,68,0, - 6,23,24,9,0,75,76,77,78,79, - 80,81,82,83,84,85,86,0,1,2, + 30,31,32,33,34,0,1,2,0,4, + 40,6,63,0,9,0,1,2,48,4, + 5,73,7,63,0,63,56,57,58,59, + 60,72,62,73,64,68,90,70,0,1, + 2,71,0,1,2,3,4,5,6,7, + 0,9,0,1,2,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,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, - 63,0,65,66,67,68,0,88,89,8, - 0,0,75,76,77,78,79,80,81,82, - 83,84,85,86,0,1,2,3,4,5, + 33,34,68,0,0,1,2,40,4,5, + 48,7,0,1,2,48,4,99,6,96, + 97,9,0,56,57,58,59,60,68,62, + 8,64,0,1,2,3,4,5,0,7, + 0,1,2,3,4,5,0,7,0,0, + 1,2,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,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,69, - 56,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,118, + 26,27,28,29,30,31,32,33,34,67, + 0,0,1,2,40,4,5,48,7,0, + 0,55,48,63,72,0,68,8,70,4, + 56,57,58,59,60,0,62,0,64,0, + 3,0,1,2,25,8,5,22,7,0, + 1,2,0,0,5,0,7,0,1,2, + 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,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,0,56,57,58, - 59,35,36,62,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,0, - 1,2,0,0,40,3,0,1,2,3, - 4,5,48,7,8,0,0,0,1,2, - 64,57,58,59,60,61,0,63,0,0, - 0,25,0,1,2,6,72,73,22,23, - 24,0,26,27,28,29,30,31,32,33, - 34,87,22,23,24,0,26,27,28,29, - 30,31,32,33,34,66,67,103,104,105, - 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,0,1,2,0,4, - 40,6,0,0,9,0,3,0,48,6, - 8,8,9,97,98,122,0,57,58,59, - 60,61,0,63,8,0,1,2,25,4, - 99,6,72,73,9,0,91,39,35,36, - 37,38,0,8,22,23,24,87,26,27, - 28,29,30,31,32,33,34,0,55,0, - 0,1,2,103,104,105,6,64,0,64, - 68,0,69,70,71,72,73,74,0,1, - 2,3,4,5,6,7,0,9,0,3, - 74,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,102,71,72,48,106, - 107,108,109,110,111,112,113,114,115,116, - 117,118,0,120,121,3,55,0,6,70, - 8,9,0,1,2,3,4,5,6,7, - 0,9,64,55,73,88,89,25,70,0, - 1,2,3,4,5,0,7,35,36,37, - 38,102,0,8,0,3,107,108,109,110, - 111,112,113,114,115,116,117,55,0,1, - 2,3,4,5,6,7,64,9,48,121, - 0,69,70,71,72,73,74,0,1,2, - 3,4,5,39,7,73,0,1,2,0, - 88,89,90,91,92,93,94,95,96,97, - 98,99,100,101,102,35,36,72,106,107, - 108,109,110,111,112,113,114,115,116,117, - 118,0,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,25, - 26,27,28,29,30,31,32,33,34,0, - 71,0,1,2,40,4,5,0,7,48, - 3,0,48,0,1,2,3,4,5,0, - 7,57,58,59,60,61,0,63,0,65, - 4,0,4,22,23,24,72,26,27,28, - 29,30,31,32,33,34,0,0,22,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,25,26,27, - 28,29,30,31,32,33,34,88,89,0, - 1,2,40,4,5,64,7,0,1,2, - 48,4,5,0,7,0,0,55,3,57, - 58,59,60,61,64,63,69,65,0,1, - 2,3,4,5,6,7,0,9,0,1, - 2,3,4,5,8,7,8,48,119,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,25,26,27,28,29, - 30,31,32,33,34,70,0,1,2,61, - 40,5,0,1,2,3,4,5,48,7, - 8,0,64,90,68,92,0,57,58,59, - 60,61,74,63,8,65,100,25,0,1, - 2,0,72,0,1,2,3,4,5,6, - 7,0,9,0,48,0,0,87,0,1, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,0,1,2,0, + 63,40,3,68,8,68,0,70,55,48, + 73,72,0,0,1,2,4,56,57,58, + 59,60,70,62,0,64,0,102,103,104, + 0,0,1,2,10,0,0,6,8,0, + 1,2,3,4,5,6,7,86,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,48,63,67,40,0,1,2,0,63, + 35,36,48,0,35,36,37,38,39,48, + 41,42,43,44,45,46,47,61,49,50, + 51,52,53,54,0,1,2,0,0,0, + 61,71,3,0,65,66,8,68,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,0,1,2,55,4,40,6, - 74,0,9,48,66,67,48,64,55,0, - 0,90,0,92,4,57,58,59,60,61, - 0,63,0,65,0,0,1,2,0,4, - 72,6,22,8,9,0,1,2,3,4, - 5,90,7,92,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,25,26,27,28,29,30,31,32,33, - 34,0,1,2,0,4,40,6,4,69, - 9,0,1,2,48,4,5,69,7,74, - 88,89,0,57,58,59,60,61,73,63, - 8,65,0,103,104,105,91,0,72,0, - 1,2,3,4,0,6,102,3,9,0, - 0,107,8,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,25, - 26,27,28,29,30,31,32,33,34,0, - 0,1,2,71,40,5,74,7,0,0, - 1,2,48,64,5,55,7,0,64,0, - 3,57,58,59,60,61,0,63,74,65, - 0,1,2,3,4,5,0,7,0,0, - 1,2,0,4,97,98,4,0,0,1, - 2,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,25,26,27, - 28,29,30,31,32,33,34,48,0,1, - 2,55,40,55,64,0,48,55,99,4, - 48,6,0,0,9,69,0,69,100,57, - 58,59,60,61,8,63,69,65,0,0, - 0,3,0,1,2,0,8,0,1,2, - 8,95,96,95,96,0,48,35,36,87, + 65,66,0,0,0,0,3,3,3,0, + 8,68,48,35,36,37,38,39,0,41, + 42,43,44,45,46,47,8,49,50,51, + 52,53,54,0,1,2,0,1,2,61, + 0,73,0,25,0,67,0,3,75,71, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,48,0,0,72,0, - 40,0,64,4,8,8,0,69,48,71, - 68,71,74,0,1,2,10,57,58,59, - 60,61,25,63,0,65,0,88,89,0, - 0,0,1,2,10,0,1,2,8,0, - 1,2,3,4,5,6,7,87,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,48,0,0,40,0,60,0,71,0, - 74,8,48,8,35,36,37,38,39,48, - 41,42,43,44,45,46,47,91,49,50, - 51,52,53,54,0,56,70,0,69,0, - 71,62,72,0,10,66,67,8,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,40,73,69,74,71,74, - 0,0,48,0,35,36,37,38,39,0, - 41,42,43,44,45,46,47,8,49,50, - 51,52,53,54,0,56,0,1,2,0, - 73,62,3,74,25,0,73,68,3,48, - 40,72,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,64,4,3, - 69,0,0,8,48,3,0,35,36,37, - 38,39,0,41,42,43,44,45,46,47, - 25,49,50,51,52,53,54,0,56,0, - 3,0,3,0,62,0,3,0,3,0, - 68,0,1,2,3,4,5,6,7,55, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,64,0,55,0,0, - 64,0,8,0,3,0,35,36,37,38, - 39,8,41,42,43,44,45,46,47,25, - 49,50,51,52,53,54,0,56,25,0, - 4,70,0,62,0,0,4,66,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,0,3,3,0,75,73, - 0,73,73,0,35,36,37,38,39,0, - 41,42,43,44,45,46,47,55,49,50, - 51,52,53,54,0,56,91,62,0,70, - 0,62,0,3,70,3,0,68,0,1, - 2,3,4,5,6,7,55,9,10,11, + 20,21,0,0,0,73,3,3,0,70, + 0,48,0,3,48,35,36,37,38,39, + 8,41,42,43,44,45,46,47,0,49, + 50,51,52,53,54,63,0,25,0,0, + 4,61,3,0,0,69,3,67,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,3,55,0,0,70,3,3, - 70,0,0,35,36,37,38,39,0,41, - 42,43,44,45,46,47,0,49,50,51, - 52,53,54,0,56,0,3,73,3,0, - 62,73,37,38,66,67,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,0,64, - 0,0,0,55,0,0,0,0,76,0, - 3,35,36,37,38,39,0,41,42,43, - 44,45,46,47,55,49,50,51,52,53, - 54,0,56,91,3,0,5,6,69,0, - 9,106,0,0,0,0,0,0,0,0, - 119,0,0,55,0,120,55,55,0,55, - 55,55,0,0,95,96,35,36,37,38, - 70,55,41,0,0,119,0,0,39,70, - 0,0,0,0,0,0,55,0,0,0, - 0,0,0,0,118,64,0,66,67,0, - 69,70,71,0,0,70,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,0,0,0,0,0,0, - 0,0,0,0,35,36,37,38,39,0, - 41,42,43,44,45,46,47,0,49,50, - 51,52,53,54,0,56,0,0,0,0, - 0,62,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,0,0,0, - 0,0,0,0,0,0,0,35,36,37, + 0,0,70,0,4,0,48,69,5,8, + 0,0,0,35,36,37,38,39,0,41, + 42,43,44,45,46,47,25,49,50,51, + 52,53,54,0,0,0,0,69,0,61, + 0,55,4,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,63,0, + 0,0,3,55,3,39,0,0,0,0, + 35,36,37,38,39,0,41,42,43,44, + 45,46,47,55,49,50,51,52,53,54, + 90,0,0,69,3,72,61,72,0,0, + 70,0,67,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,3,0, + 5,6,0,4,9,69,69,10,35,36, + 37,38,39,0,41,42,43,44,45,46, + 47,0,49,50,51,52,53,54,90,0, + 35,36,37,38,61,0,41,40,65,66, + 72,70,0,0,0,48,0,0,118,0, + 55,55,3,72,55,0,0,55,63,3, + 65,66,0,68,69,70,0,0,55,0, + 3,0,0,0,3,3,55,0,0,0, + 118,3,87,88,89,0,0,92,93,94, + 95,96,97,98,99,100,101,55,55,55, + 105,55,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,0,70,0,69,0, + 3,0,69,0,0,0,69,35,36,37, 38,39,0,41,42,43,44,45,46,47, - 0,49,50,51,52,53,54,0,56,0, - 0,0,0,0,0,0,64,0,1,2, - 3,4,5,6,7,0,9,10,11,12, + 0,49,50,51,52,53,54,0,1,2, + 3,4,5,6,7,40,9,10,11,12, 13,14,15,16,17,18,19,20,21,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,35,36,37,38,39,0,41,42, + 0,39,0,0,55,0,0,118,0,0, + 0,0,35,36,37,38,39,121,41,42, 43,44,45,46,47,0,49,50,51,52, - 53,54,0,56,0,0,0,0,0,62, + 53,54,0,0,0,0,0,0,61,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,0,0,0,0,0, + 20,21,0,0,0,0,0,0,69,0, 0,0,0,0,0,35,36,37,38,39, 0,41,42,43,44,45,46,47,0,49, - 50,51,52,53,54,0,56,0,1,2, + 50,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, + 0,0,0,0,0,0,0,0,0,0, + 35,36,37,38,39,0,41,42,43,44, + 45,46,47,0,49,50,51,52,53,54, + 0,0,0,0,0,0,61,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,0,0,0,0,0,0,0,0, 0,0,35,36,37,38,39,0,41,42, 43,44,45,46,47,0,49,50,51,52, - 53,54,0,56,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,0, - 0,0,0,0,0,0,0,0,0,35, - 36,37,38,39,0,41,42,43,44,45, - 46,47,0,49,50,51,52,53,54,0, - 56,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,26,27,28, - 29,30,31,32,33,34,0,0,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, + 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,0,0,0, + 0,0,0,0,0,0,0,35,36,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,0,0,0,0,0,0,0,0, + 0,0,35,36,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,26,27, + 28,29,30,31,32,33,34,0,0,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,26,27,28, 29,30,31,32,33,34,0,0,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,25,26,27, + 8,9,0,0,0,0,0,56,57,58, + 0,0,0,0,22,23,24,25,26,27, 28,29,30,31,32,33,34,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,0,0,64,0,0,0, - 0,0,0,0,0,0,74,0,1,2, - 3,4,5,6,7,8,9,0,0,0, - 0,0,0,0,0,0,0,0,0,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,64,26,27,28,29,30,31,32,33, - 34,74,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, + 0,55,3,55,0,0,0,55,0,0, + 0,0,0,0,68,63,68,0,0,0, + 0,0,0,0,0,73,0,1,2,3, + 4,5,6,7,8,9,37,38,0,0, + 94,95,94,95,0,0,0,0,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,0,63,0,0,0,0,0,0,0, + 0,0,0,0,0,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,63, + 26,27,28,29,30,31,32,33,34,73, + 0,0,0,0,105,0,0,0,0,0, + 0,0,0,0,0,0,0,0,119,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,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; @@ -1460,354 +1449,345 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TermAction { public final static char termAction[] = {0, - 5384,5361,5337,5337,5337,5337,5337,5337,5371,5337, + 5383,5360,5336,5336,5336,5336,5336,5336,5370,5336, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5364,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5365,1,1,1,1, + 1,1,1,1,1,1,1,1,139,1, + 1,1,1,1,1,1,1,1,1,1519, + 5558,1,1182,115,1993,1,1,5394,5383,3743, + 5383,5390,731,4798,1124,2435,4216,2213,3782,2206, + 2929,2384,1302,2366,3453,2336,10,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,5373,5373,329,5373,5373,5373,5373,5373, + 5373,393,5373,5373,5373,5373,5373,5373,5373,2251, + 5373,5373,5373,5373,3586,3712,3680,5373,382,5383, + 5373,5373,5373,5373,5373,5373,5373,5373,5373,5373, + 5373,5373,8,5376,5376,5376,5376,5376,5376,5376, + 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, + 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, + 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, + 5376,5376,5376,5376,5376,5376,5376,5376,5376,5376, + 5383,5376,5376,5376,5376,5376,5376,5836,5376,5376, + 5376,5376,5376,5376,5376,301,5376,5376,5376,5376, + 286,5129,5129,5376,283,5683,5376,5376,5376,5376, + 5376,5376,5376,5376,5376,5376,5376,5376,5383,5360, + 5336,5336,5336,5336,5336,5336,5367,5336,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5364,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,330,1,1,1,1, - 1520,5560,1,1183,116,1994,1,1,5395,5384, - 3744,346,5391,732,1941,1125,2436,4217,2214,3783, - 2207,2930,2385,1303,2367,3454,2337,10,5374,5374, - 5374,5374,5374,5374,5374,5374,5374,5374,5374,5374, - 5374,5374,5374,5374,5374,5374,5374,5374,5374,5374, - 5374,5374,5374,5374,5374,5374,5374,5374,5374,5374, - 5374,5374,5374,5374,5374,5374,5374,5374,5374,5374, - 5374,5374,5374,5374,5374,1351,5374,5374,5374,5374, - 5374,5374,132,5374,5374,5374,5374,5374,5374,5374, - 5374,594,5374,5374,5374,5374,40,3713,3681,5374, - 5423,394,5374,5374,5374,5374,5374,5374,5374,5374, - 5374,5374,5374,5374,8,5377,5377,5377,5377,5377, - 5377,5377,5377,5377,5377,5377,5377,5377,5377,5377, - 5377,5377,5377,5377,5377,5377,5377,5377,5377,5377, - 5377,5377,5377,5377,5377,5377,5377,5377,5377,5377, - 5377,5377,5377,5377,5377,5377,5377,5377,5377,5377, - 5377,5377,383,5377,5377,5377,5377,5377,5377,5384, - 5377,5377,5377,5377,5377,5377,5377,5377,158,5377, - 5377,5377,5377,287,5130,5130,5377,284,5384,5377, - 5377,5377,5377,5377,5377,5377,5377,5377,5377,5377, - 5377,5384,5361,5337,5337,5337,5337,5337,5337,5368, - 5337,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5365,1,1,1, + 1,1,1,1,1,1,5383,1,1,1, + 1,1,1,437,1,1,1,1519,5558,1, + 1182,5383,1993,1,1,5394,5383,5066,5063,5391, + 5421,5383,1124,2435,4216,2213,3782,2206,2929,2384, + 1302,2366,3453,2336,5383,5360,5336,5336,5336,5336, + 5336,5336,5367,5336,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5364, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1911, - 1,1,1,1,1,1,438,1,1,1, - 1,1520,5560,1,1183,514,1994,1,1,5395, - 5384,5067,5064,5384,5423,5384,1125,2436,4217,2214, - 3783,2207,2930,2385,1303,2367,3454,2337,5384,5361, - 5337,5337,5337,5337,5337,5337,5368,5337,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5365,1,1,1,1,1,1, + 1,1,5390,1,1,1,1,1,1,135, + 1,1,1,1519,5558,1,1182,117,1993,1, + 1,5394,5383,3743,5383,5816,5817,5818,1124,2435, + 4216,2213,3782,2206,2929,2384,1302,2366,3453,2336, + 5383,5360,5336,5336,5336,5336,5336,5336,5367,5336, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,881,1,1,1, - 1,1,1,138,1,1,1,1,1520,5560, - 1,1183,118,1994,1,1,5395,5384,3744,5818, - 5819,5820,3505,1125,2436,4217,2214,3783,2207,2930, - 2385,1303,2367,3454,2337,5384,5361,5337,5337,5337, - 5337,5337,5337,5368,5337,1,1,1,1,1, + 1,1,1,1,1,5364,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5365,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5383,1, + 1,1,1,1,1,5383,1,1,1,1519, + 5558,1,1182,5383,1993,1,1,5394,2300,3712, + 3680,5383,5397,5398,1124,2435,4216,2213,3782,2206, + 2929,2384,1302,2366,3453,2336,5383,5360,5336,5336, + 5336,5336,5336,5336,5367,5336,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5384,1,1,1,1,1,1, - 133,1,1,1,1,1520,5560,1,1183,594, - 1994,1,1,5395,1186,3713,3681,5384,5398,5399, - 1125,2436,4217,2214,3783,2207,2930,2385,1303,2367, - 3454,2337,5384,5361,5337,5337,5337,5337,5337,5337, - 5368,5337,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5365,1,1, + 1,5364,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5383,1,1,1,1,1, + 1,5383,1,1,1,1519,5558,1,1182,116, + 1993,1,1,5394,111,3743,5383,5054,5051,5383, + 1124,2435,4216,2213,3782,2206,2929,2384,1302,2366, + 3453,2336,5383,5360,5336,5336,5336,5336,5336,5336, + 5367,5336,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5364,1,1, 1,1,1,1,1,1,1,1,1,1, - 5384,1,1,1,1,1,1,139,1,1, - 1,1,1520,5560,1,1183,117,1994,1,1, - 5395,112,3744,5384,5055,5052,5384,1125,2436,4217, - 2214,3783,2207,2930,2385,1303,2367,3454,2337,5384, - 5361,5337,5337,5337,5337,5337,5337,5368,5337,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5365,1,1,1,1,1, + 5383,1,1,1,1,1,1,5822,1,1, + 1,1519,5558,1,1182,5383,1993,1,1,5394, + 39,3712,3680,4102,5421,4124,1124,2435,4216,2213, + 3782,2206,2929,2384,1302,2366,3453,2336,5383,5360, + 5336,5336,5336,5336,5336,5336,5367,5336,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5384,1,1, - 1,1,1,1,5384,1,1,1,1,1520, - 5560,1,1183,361,1994,1,1,5395,1186,3713, - 3681,4103,5384,4125,1125,2436,4217,2214,3783,2207, - 2930,2385,1303,2367,3454,2337,5384,5361,5337,5337, - 5337,5337,5337,5337,5368,5337,1,1,1,1, + 1,1,1,5364,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5365,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,334,1,1,1, + 1,1,1,5383,1,1,1,1519,5558,1, + 1182,5383,1993,1,1,5394,5383,5397,5398,5718, + 5719,3504,1124,2435,4216,2213,3782,2206,2929,2384, + 1302,2366,3453,2336,5383,5360,5336,5336,5336,5336, + 5336,5336,5367,5336,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5364, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3025,1,1,1,1,1, - 1,5838,1,1,1,1,1520,5560,1,1183, - 290,1994,1,1,5395,5384,5398,5399,5384,5384, - 3505,1125,2436,4217,2214,3783,2207,2930,2385,1303, - 2367,3454,2337,5384,5361,5337,5337,5337,5337,5337, - 5337,5368,5337,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5365,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,5383,1,1,1,1,1,1,5383, + 1,1,1,1519,5558,1,1182,8,1993,1, + 1,5394,5383,5066,5063,5324,5421,5383,1124,2435, + 4216,2213,3782,2206,2929,2384,1302,2366,3453,2336, + 5383,5360,5336,5336,5336,5336,5336,5336,5367,5336, 1,1,1,1,1,1,1,1,1,1, - 1,1136,1,1,1,1,1,1,5824,1, - 1,1,1,1520,5560,1,1183,302,1994,1, - 1,5395,5384,5067,5064,292,5423,5685,1125,2436, - 4217,2214,3783,2207,2930,2385,1303,2367,3454,2337, - 5384,5361,5337,5337,5337,5337,5337,5337,5368,5337, + 1,1,1,1,1,5364,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5365,1,1,1,1, + 1,1,1,1,1,1,1,1,5324,1, + 1,1,1,1,1,5893,1,1,1,1519, + 5558,1,1182,5383,1993,1,1,5394,121,1384, + 5383,125,5710,2804,1124,2435,4216,2213,3782,2206, + 2929,2384,1302,2366,3453,2336,5383,5360,5336,5336, + 5336,5336,5336,5336,5367,5336,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,335,1, - 1,1,1,1,1,2040,1,1,1,1, - 1520,5560,1,1183,5384,1994,1,1,5395,122, - 1385,5720,5721,5712,5384,1125,2436,4217,2214,3783, - 2207,2930,2385,1303,2367,3454,2337,5384,5361,5337, - 5337,5337,5337,5337,5337,5368,5337,1,1,1, + 1,5364,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5365,1,1,1,1,1,1,1, + 1,1,1,1,5383,1,1,1,1,1, + 1,5383,1,1,1,1519,5558,1,1182,5383, + 1993,1,1,5394,5383,629,2872,5387,629,2872, + 1124,2435,4216,2213,3782,2206,2929,2384,1302,2366, + 3453,2336,5383,2283,1,1,1,1,1,1, + 2291,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5392,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5384,1,1,1,1, - 1,1,5384,1,1,1,1,1520,5560,1, - 1183,5384,1994,1,1,5395,5384,630,2873,5388, - 5384,5384,1125,2436,4217,2214,3783,2207,2930,2385, - 1303,2367,3454,2337,5384,2284,1,1,1,1, - 1,1,2292,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5393, 1,1,1,1,1,1,1,1,1,1, + 5383,1,1,1,1,1,1,5383,1,1, + 1,1519,5558,1,1182,5383,1993,1,1,5394, + 395,5397,5398,48,5054,5051,1124,2435,4216,2213, + 3782,2206,2929,2384,1302,2366,3453,2336,39,5066, + 5063,4786,2115,3926,3992,2749,5386,4014,871,5647, + 5645,5654,5653,5649,5650,5648,5651,5652,5655,5646, + 5643,5718,5719,114,5637,5644,5640,5616,5642,5641, + 5638,5639,5617,3970,3948,4058,4036,5402,5779,3904, + 1085,1261,5404,1139,3643,1217,452,5405,5403,1051, + 5399,5400,5401,5383,2322,5780,5781,800,318,1393, + 5383,5258,5258,229,5254,229,229,229,5262,229, 1,1,1,1,1,1,1,1,1,1, - 1,1,5384,1,1,1,1,1,1,5895, - 1,1,1,1,1520,5560,1,1183,425,1994, - 1,1,5395,396,5398,5399,49,5055,5052,1125, - 2436,4217,2214,3783,2207,2930,2385,1303,2367,3454, - 2337,40,5067,5064,4787,2116,3927,3993,2750,5387, - 4015,872,5649,5647,5656,5655,5651,5652,5650,5653, - 5654,5657,5648,5645,5720,5721,119,5639,5646,5642, - 5618,5644,5643,5640,5641,5619,3971,3949,4059,4037, - 5404,5781,3905,1086,1262,5406,1140,3644,1218,4223, - 5407,5405,1052,5400,5402,5403,319,5401,2323,5782, - 5783,3522,3341,1394,5384,5259,5259,230,5255,230, - 230,230,5263,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,230, - 1,1,1,1,1,1,1,1,1,5384, - 5398,5399,5384,186,1,4799,1,5030,5026,5293, - 5023,5299,5252,5296,5394,5384,225,291,5398,5399, - 1351,1,1,1,2638,5795,130,1175,5384,5384, - 226,5393,37,5319,5316,1855,415,230,5645,5720, - 5721,134,5639,5646,5642,5618,5644,5643,5640,5641, - 5619,5883,5645,5720,5721,357,5639,5646,5642,5618, - 5644,5643,5640,5641,5619,4081,682,5818,5819,5820, - 5384,5259,5259,230,5255,230,230,230,5302,230, + 1,1,1,1,1,229,1,1,1,1, + 1,1,1,1,1,5383,5397,5398,5383,5383, + 1,5042,1,5029,5025,5292,5022,5298,5251,5295, + 5393,224,4102,5383,4124,131,1,1,1,2637, + 5793,1350,1174,129,593,225,1,5392,290,5397, + 5398,414,229,5643,5718,5719,5383,5637,5644,5640, + 5616,5642,5641,5638,5639,5617,5881,5643,5718,5719, + 5383,5637,5644,5640,5616,5642,5641,5638,5639,5617, + 4080,681,5816,5817,5818,5383,5258,5258,229,5254, + 229,229,229,5301,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,230,1,1,1,1, - 1,1,1,1,1,443,1,1,5384,1, - 1,5070,5384,34,5070,318,5079,5384,5252,5079, - 5396,5079,5079,2391,2363,5381,5384,1,1,1, - 2638,5795,227,1175,5390,444,40,40,5079,5423, - 2333,5228,414,230,5228,5384,5740,739,5079,5079, - 5079,5079,5384,5392,5645,5720,5721,5883,5639,5646, - 5642,5618,5644,5643,5640,5641,5619,126,5079,140, - 38,5085,5085,5818,5819,5820,330,5079,5384,1351, - 5395,30,5079,5079,5079,5079,5079,5079,366,5030, - 5026,2665,5023,626,1,2750,5384,1,453,2805, - 5389,5079,5079,5079,5079,5079,5079,5079,5079,5079, - 5079,5079,5079,5079,5079,5079,1004,5391,5421,5079, - 5079,5079,5079,5079,5079,5079,5079,5079,5079,5079, - 5079,5079,5384,5079,5079,5222,1078,5384,5222,1868, - 5222,5222,5384,5030,5026,4423,5023,626,5322,2750, - 38,5322,1351,5043,423,630,2873,5222,1222,1, - 5030,5026,4423,5023,626,5384,2750,5222,5222,5222, - 5222,2252,92,5392,5384,5219,3587,1825,1782,1739, - 1696,1653,1610,1567,1524,1481,1438,5222,310,5030, - 5026,4423,5023,626,5322,2750,5222,5322,5421,5022, - 121,5222,5222,5222,5222,5222,5222,330,5067,5064, - 4423,2116,626,3899,2750,1048,5384,8473,8365,448, - 5222,5222,5222,5222,5222,5222,5222,5222,5222,5222, - 5222,5222,5222,5222,5222,3522,3341,5391,5222,5222, - 5222,5222,5222,5222,5222,5222,5222,5222,5222,5222, - 5222,48,5222,5222,5384,5337,5337,230,5337,230, - 230,230,5340,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,230, - 1,1,8680,1,1,1,1,1,1,125, - 2684,5384,5067,5064,1,2116,5225,238,2750,2502, - 5237,228,5334,1,5030,5026,5293,5023,5299,5384, - 5296,1,1,1,3188,5596,40,1183,5384,1994, - 5423,457,801,5645,5720,5721,221,5639,5646,5642, - 5618,5644,5643,5640,5641,5619,5384,5384,3412,940, - 456,5883,5384,5337,5337,230,5337,230,230,230, - 230,230,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,230,1,1, - 8680,1,1,1,1,1,1,630,2873,5384, - 5067,5064,1,2116,5225,5073,2750,5384,5067,5064, - 5334,2116,626,115,2750,311,136,1890,2070,1, - 1,1,3188,5596,5076,1183,1812,1994,5384,5030, - 5026,4423,5023,626,1,2750,1,1,1,5030, - 5026,2665,5023,626,5355,2750,5231,2288,2478,5883, - 5384,5337,5337,230,5337,230,230,230,5346,230, + 229,1,1,1,1,1,1,1,1,1, + 3478,310,5383,33,2069,1,5078,133,29,5078, + 5383,5078,5078,5251,392,5126,5126,5383,283,2390, + 2362,1,1,1,2637,5793,39,1174,5078,118, + 5421,137,329,5021,5383,329,413,229,5078,5078, + 5078,5078,5389,343,5066,5063,2664,2115,625,329, + 2749,5881,329,1,5383,226,738,124,5078,139, + 1854,361,283,1077,3521,3340,5078,5816,5817,5818, + 1092,5078,5078,5078,5078,5078,5078,5643,5718,5719, + 422,5637,5644,5640,5616,5642,5641,5638,5639,5617, + 5078,5078,5078,5078,5078,5078,5078,5078,5078,5078, + 5078,5078,5078,5078,5078,2332,1350,5388,5078,5078, + 5078,5078,5078,5078,5078,5078,5078,5078,5078,5078, + 5078,5383,5078,5078,5221,317,361,5221,1867,5221, + 5221,1185,365,5029,5025,2664,5022,625,1,2749, + 5383,1,5383,361,629,2872,5221,1,5029,5025, + 4422,5022,625,5383,2749,157,5221,5221,5221,5221, + 2251,5391,36,5318,5315,3586,1824,1781,1738,1695, + 1652,1609,1566,1523,1480,1437,5221,138,1,5029, + 5025,4422,5022,625,5221,2749,309,134,1350,5221, + 5221,5221,5221,5221,5221,1350,442,1,1,5383, + 1,1221,5069,309,91,5069,123,5218,5221,5221, + 5221,5221,5221,5221,5221,5221,5221,5221,5221,5221, + 5221,5221,5221,1003,5390,1910,5221,5221,5221,5221, + 5221,5221,5221,5221,5221,5221,5221,5221,5221,5383, + 5221,5221,5383,5336,5336,229,5336,229,229,229, + 5339,229,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,229,1,1, + 8691,1,1,1,1,1,1,1185,37,5383, + 5066,5063,1,2115,5224,2332,2749,39,227,120, + 5333,5421,113,629,2872,1,5383,5383,1,1, + 1,3187,5594,161,1182,5395,1993,1811,5383,3411, + 5643,5718,5719,220,5637,5644,5640,5616,5642,5641, + 5638,5639,5617,5383,3521,3340,5419,939,5881,5383, + 5336,5336,229,5336,229,229,229,229,229,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,230,1,1,8680,1, - 1,1,1,1,1,1093,38,5085,5085,5919, - 1,5085,1,5030,5026,4423,5023,626,5334,2750, - 310,114,1351,4103,5395,4125,1,1,1,1, - 3188,5596,5234,1183,162,1994,2301,310,5384,5055, - 5052,439,220,344,5067,5064,2665,2116,626,330, - 2750,113,330,30,3668,5384,5384,5883,5384,5337, - 5337,230,5337,230,230,230,5340,230,1,1, + 1,1,1,1,229,1,1,8691,1,1, + 1,1,1,1,5394,37,5084,5084,161,1, + 5084,329,5066,5063,4422,2115,625,5333,2749,112, + 1953,4102,5383,4124,1889,1,1,1,3187,5594, + 5389,1182,301,1993,5383,5029,5025,4422,5022,625, + 1,2749,5683,1,456,5383,5029,5025,4422,5022, + 625,5321,2749,3667,5321,5881,5383,5336,5336,229, + 5336,229,229,229,5345,229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,230,1,1,8680,1,1,1, - 1,1,1,93,1,1,5046,1,1,5284, - 162,5384,5284,1900,4081,682,5334,1351,5049,5384, - 40,4103,124,4125,5423,1,1,1,3188,5596, - 5384,1183,5384,1994,140,1,5281,5281,5384,5278, - 221,330,2768,362,330,1,5030,5026,4423,5023, - 626,4103,2750,4125,5384,5883,5384,5337,5337,230, - 5337,230,230,230,5340,230,1,1,1,1, + 1,229,1,1,8691,1,1,1,1,1, + 1,3235,4869,47,5917,5388,1,132,1,5029, + 5025,5292,5022,5298,5333,5295,593,5072,4102,122, + 4124,5383,1,1,1,3187,5594,1047,1182,5393, + 1993,1,5029,5025,2664,5022,625,219,2749,5230, + 126,1,5280,5280,394,5277,5392,329,385,361, + 329,2501,5881,5383,5336,5336,229,5336,229,229, + 229,5339,229,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,229,1, + 1,8691,1,1,1,1,1,1,37,5084, + 5084,4190,5383,1,1350,2597,443,39,39,1077, + 5421,5333,5227,5383,5233,5227,629,2872,5087,1, + 1,1,3187,5594,361,1182,356,1993,1,343, + 39,39,3312,5421,220,329,5389,5383,329,5383, + 1,361,455,3312,2525,2431,5419,5383,5230,5881, + 5383,5336,5336,229,5336,229,229,229,5339,229, 1,1,1,1,1,1,1,1,1,1, - 1,230,1,1,8680,1,1,1,1,1, - 1,96,40,40,394,5423,1,5328,387,1814, - 5328,5384,5067,5064,5334,2116,626,1820,2750,362, - 630,2873,5384,1,1,1,3188,5596,1048,1183, - 5390,1994,5384,5818,5819,5820,362,131,221,344, - 40,40,3313,5423,1,330,2252,3313,330,5384, - 5384,3587,5231,5883,5384,5337,5337,230,5337,230, - 230,230,230,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,230, - 1,1,8680,1,1,1,1,1,1,135, - 39,5040,5037,4870,1,5034,5389,2750,137,5384, - 5398,5399,5334,1351,626,1078,2750,1,1351,5384, - 4234,1,1,1,3188,5596,5384,1183,5234,1994, - 1,5030,5026,2665,5023,626,127,2750,129,393, - 5127,5127,395,284,2391,2363,386,5384,38,5085, - 5085,5883,5384,5337,5337,230,5337,230,230,230, - 230,230,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,230,1,1, - 8680,1,1,1,1,1,1,284,44,5216, - 5216,2598,1,2598,1351,40,5421,1078,2333,5423, - 5334,330,120,5384,330,5088,8,5246,2301,1, - 1,1,3188,5596,5325,1183,1821,1994,1,123, - 309,3313,5384,5398,5399,5384,340,5384,8657,8657, - 5396,2526,2432,2526,2432,5384,5213,3522,3341,5883, - 5384,5337,5337,230,5337,230,230,230,230,230, + 1,1,1,1,1,229,1,1,8691,1, + 1,1,1,1,1,92,1,1,136,1, + 1,5283,1350,130,5283,5383,5066,5063,5333,2115, + 625,5388,2749,1350,5383,5075,1,1,1,3187, + 5594,5782,1182,5233,1993,4336,5738,2988,5383,8538, + 8437,220,309,5029,5025,4422,5022,625,5321,2749, + 5383,5321,43,5215,5215,5383,5881,5383,5336,5336, + 229,5336,229,229,229,229,229,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,230,1,1,8680,1, - 1,1,1,1,1,5421,1,5384,5325,5384, - 1,5384,1351,2355,362,5394,302,340,5334,340, - 5395,4204,340,5384,5269,5266,5685,1,1,1, - 3188,5596,5393,1183,1,1994,369,630,2873,5384, - 1,46,5275,5275,5349,5384,8473,8365,5358,1, - 5030,5026,4787,5023,3927,3993,2750,5883,4015,5091, - 5118,5124,5097,5100,5112,5109,5115,5106,5103,5094, - 5121,5421,5384,1,5352,1,3236,5384,4191,5384, - 362,5390,2036,527,3971,3949,4059,4037,5404,5272, - 3905,1086,1262,5406,1140,3644,1218,362,5407,5405, - 1052,5400,5402,5403,1,5401,1265,5384,4337,1, - 2989,1394,5391,427,5349,40,40,164,515,40, - 5067,5064,4787,2116,3927,3993,2750,5305,4015,1342, - 5649,5647,5656,5655,5651,5652,5650,5653,5654,5657, - 5648,38,5085,5085,5352,1954,2570,5389,2989,527, - 5384,5384,2036,347,3971,3949,4059,4037,5404,404, - 3905,1086,1262,5406,1140,3644,1218,5287,5407,5405, - 1052,5400,5402,5403,5384,5401,5384,5312,5308,5384, - 5784,1394,3595,164,5290,5384,3283,5061,4220,3296, - 4352,5391,40,5067,5064,4787,2116,3927,3993,2750, - 5058,4015,1342,5649,5647,5656,5655,5651,5652,5650, - 5653,5654,5657,5648,49,5384,5384,1351,5399,4221, - 4222,101,5384,5394,5421,4293,100,3971,3949,4059, - 4037,5404,386,3905,1086,1262,5406,1140,3644,1218, - 5393,5407,5405,1052,5400,5402,5403,5384,5401,5384, - 3285,367,3389,5384,1394,104,3593,5384,3673,5384, - 5061,142,5067,5064,4787,2116,3927,3993,2750,5399, - 4015,1342,5649,5647,5656,5655,5651,5652,5650,5653, - 5654,5657,5648,1,1,4342,447,5082,5384,5384, - 2078,279,5394,1,5343,1,3971,3949,4059,4037, - 5404,192,3905,1086,1262,5406,1140,3644,1218,5393, - 5407,5405,1052,5400,5402,5403,5384,5401,192,419, - 2985,1308,49,1394,36,531,5398,40,40,40, - 5067,5064,4787,2116,3927,3993,2750,5058,4015,1342, - 5649,5647,5656,5655,5651,5652,5650,5653,5654,5657, - 5648,5384,5384,5384,5384,2019,3879,507,3479,2509, - 505,2127,2984,5384,3971,3949,4059,4037,5404,5384, - 3905,1086,1262,5406,1140,3644,1218,5398,5407,5405, - 1052,5400,5402,5403,5384,5401,5742,2197,5384,2165, - 5384,1394,5384,4447,3603,4884,5384,5061,1,5030, - 5026,4787,5023,3927,3993,2750,3187,4015,5091,5118, - 5124,5097,5100,5112,5109,5115,5106,5103,5094,5121, - 5384,374,5384,4894,3427,76,5384,4448,3070,4461, - 4745,5384,1,3971,3949,4059,4037,5404,5384,3905, - 1086,1262,5406,1140,3644,1218,520,5407,5405,1052, - 5400,5402,5403,5384,5401,5384,4918,3038,3392,128, - 1394,3092,5447,5448,40,40,40,5067,5064,4787, - 2116,3927,3993,2750,5388,4015,1342,5649,5647,5656, - 5655,5651,5652,5650,5653,5654,5657,5648,5384,3473, - 5384,5384,394,3435,5384,74,5384,5384,2620,5384, - 4551,3971,3949,4059,4037,5404,2,3905,1086,1262, - 5406,1140,3644,1218,2598,5407,5405,1052,5400,5402, - 5403,1,5401,4444,1392,509,5852,5846,5249,1, - 5850,581,5384,5384,5384,5384,5384,5384,5384,5384, - 2478,5384,5384,3785,5384,667,1890,1078,5384,3456, - 5331,3876,5384,5384,2526,2432,5844,5845,5875,5876, - 3603,38,5853,5384,5384,2478,5384,5384,1993,1997, - 5384,5384,5384,5384,5384,5384,5855,5384,5384,5384, - 5384,5384,5384,5384,5387,741,5384,913,957,5384, - 5856,5854,5877,5384,5384,806,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5866, - 5865,5878,5384,5384,5847,5848,5871,5872,5869,5870, - 5849,5851,5873,5874,5384,5384,5384,5879,5384,5859, - 5860,5861,5857,5858,5867,5868,5863,5862,5864,40, - 5067,5064,4787,2116,3927,3993,2750,5384,4015,1342, - 5649,5647,5656,5655,5651,5652,5650,5653,5654,5657, - 5648,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,3971,3949,4059,4037,5404,5384, - 3905,1086,1262,5406,1140,3644,1218,5384,5407,5405, - 1052,5400,5402,5403,5384,5401,5384,5384,5384,5384, - 5384,1394,40,5067,5064,4787,2116,3927,3993,2750, - 5384,4015,1342,5649,5647,5656,5655,5651,5652,5650, - 5653,5654,5657,5648,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,3971,3949,4059, - 4037,5404,5384,3905,1086,1262,5406,1140,3644,1218, - 5384,5407,5405,1052,5400,5402,5403,5384,5401,5384, - 5384,5384,5384,5384,5384,5384,1691,40,5067,5064, - 4787,2116,3927,3993,2750,5384,4015,1342,5649,5647, - 5656,5655,5651,5652,5650,5653,5654,5657,5648,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,3971,3949,4059,4037,5404,5384,3905,1086, - 1262,5406,1140,3644,1218,5384,5407,5405,1052,5400, - 5402,5403,5384,5401,5384,5384,5384,5384,5384,1394, - 40,5067,5064,4830,2116,3927,3993,2750,5384,4015, - 1342,5649,5647,5656,5655,5651,5652,5650,5653,5654, - 5657,5648,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,3971,3949,4059,4037,5404, - 5384,3905,1086,1262,5406,1140,3644,1218,5384,5407, - 5405,1052,5400,5402,5403,5384,5401,40,5067,5064, - 4787,2116,3927,3993,2750,5384,4015,1342,5649,5647, - 5656,5655,5651,5652,5650,5653,5654,5657,5648,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,3971,3949,4059,4037,5404,5384,3905,1086, - 1262,5406,1140,3644,1218,5384,5407,5405,1052,5400, - 5402,5403,5384,5401,40,5067,5064,4787,2116,3927, - 3993,2750,5384,4015,1342,5649,5647,5656,5655,5651, - 5652,5650,5653,5654,5657,5648,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,3971, - 3949,4059,4037,5404,5384,3905,1086,1262,5406,1140, - 3644,1218,5384,5407,5405,1052,5400,5402,5403,5384, - 5401,5384,5067,5064,5384,5423,5384,5384,5384,5384, - 5384,575,5649,5647,5656,5655,5651,5652,5650,5653, - 5654,5657,5648,5645,5720,5721,5384,5639,5646,5642, - 5618,5644,5643,5640,5641,5619,5384,5384,5384,5384, - 5384,5781,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,242,5206,5202,5384,5210,5384,5384,2323,5782, - 5783,575,5193,5199,5172,5175,5187,5184,5190,5181, - 5178,5169,5196,5148,5142,5139,5384,5166,5145,5157, - 5136,5151,5154,5163,5160,5133,5384,5384,5384,5384, - 5384,5781,30,386,386,5243,386,386,5243,386, - 5243,5243,5384,5384,5384,5384,5384,5384,2323,5782, - 5783,5384,5384,5384,386,386,386,5243,386,386, - 386,386,386,386,386,386,386,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5049,5384,5384, - 5384,5384,5384,5384,5384,5384,5243,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5243,33,387,387, - 5240,387,387,5240,387,5240,5240,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,387, - 387,387,5240,387,387,387,387,387,387,387, - 387,387,5384,5384,5384,5384,224,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5649,5647,5656, - 5655,5651,5652,5650,5653,5654,5657,5648,5645,5720, - 5721,5240,5639,5646,5642,5618,5644,5643,5640,5641, - 5619,5240 + 1,1,229,1,1,8691,1,1,1,1, + 1,1,1813,5383,5383,5066,5063,1,2115,5224, + 5212,2749,95,39,39,5333,5421,2300,5327,2390, + 2362,5327,1,1,1,1,3187,5594,1819,1182, + 5354,1993,1,5029,5025,4422,5022,625,5383,2749, + 1,5029,5025,2664,5022,625,438,2749,5383,5383, + 8678,8678,2287,5881,5383,5336,5336,229,5336,229, + 229,229,229,229,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,229, + 1,1,8691,1,1,1,1,1,1,5394, + 5383,5383,5066,5063,1,2115,625,5419,2749,403, + 5383,5045,5333,1350,1047,39,2569,5286,2988,5421, + 1,1,1,3187,5594,5383,1182,1,1993,426, + 3312,38,5039,5036,5289,339,5033,2767,2749,5383, + 5397,5398,513,29,625,5383,2749,5383,8538,8437, + 5881,5383,5336,5336,229,5336,229,229,229,229, + 229,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,229,1,1,8691, + 1,1,1,1,1,1,5383,5397,5398,345, + 1350,1,1940,1820,5395,339,346,339,5048,5333, + 339,3282,393,5383,5268,5265,386,1,1,1, + 3187,5594,880,1182,1,1993,530,5816,5817,5818, + 1,37,5084,5084,5348,119,5383,329,5357,1, + 5029,5025,4786,5022,3926,3992,2749,5881,4014,5090, + 5117,5123,5096,5099,5111,5108,5114,5105,5102,5093, + 5120,5419,1350,5394,5351,5383,5054,5051,5383,1350, + 3521,3340,2035,5383,3970,3948,4058,4036,5402,5419, + 3904,1085,1261,5404,1139,3643,1217,2196,5405,5403, + 1051,5399,5400,5401,45,5274,5274,5383,1,237, + 1393,5390,5236,5383,39,39,526,514,39,5066, + 5063,4786,2115,3926,3992,2749,5304,4014,1341,5647, + 5645,5654,5653,5649,5650,5648,5651,5652,5655,5646, + 4080,681,1,1,5383,5383,4233,3594,4219,360, + 163,4221,5271,3970,3948,4058,4036,5402,5383,3904, + 1085,1261,5404,1139,3643,1217,5393,5405,5403,1051, + 5399,5400,5401,37,5084,5084,5383,5311,5307,1393, + 5383,526,100,5392,5383,5060,291,4220,2619,5390, + 39,5066,5063,4786,2115,3926,3992,2749,5057,4014, + 1341,5647,5645,5654,5653,5649,5650,5648,5651,5652, + 5655,5646,289,5383,5383,163,4292,3284,368,3024, + 5383,3295,1,3388,5419,3970,3948,4058,4036,5402, + 5393,3904,1085,1261,5404,1139,3643,1217,5383,5405, + 5403,1051,5399,5400,5401,4341,5383,5392,366,5383, + 2354,1393,3592,103,5383,2039,3672,5060,141,5066, + 5063,4786,2115,3926,3992,2749,5383,4014,1341,5647, + 5645,5654,5653,5649,5650,5648,5651,5652,5655,5646, + 5383,1,1135,5383,2984,99,1899,1264,3504,191, + 1,5383,385,3970,3948,4058,4036,5402,5383,3904, + 1085,1261,5404,1139,3643,1217,191,5405,5403,1051, + 5399,5400,5401,446,418,5383,5383,1307,48,1393, + 424,1077,5398,39,39,39,5066,5063,4786,2115, + 3926,3992,2749,5057,4014,1341,5647,5645,5654,5653, + 5649,5650,5648,5651,5652,5655,5646,5081,2077,278, + 5383,5383,5342,3186,2018,3898,35,506,1,5383, + 3970,3948,4058,4036,5402,5383,3904,1085,1261,5404, + 1139,3643,1217,5398,5405,5403,1051,5399,5400,5401, + 5740,5383,373,2164,3878,2508,1393,2126,5383,5383, + 4222,447,5060,1,5029,5025,4786,5022,3926,3992, + 2749,5383,4014,5090,5117,5123,5096,5099,5111,5108, + 5114,5105,5102,5093,5120,1,5383,1,1391,48, + 5850,5844,5383,5397,5848,3602,4447,5348,3970,3948, + 4058,4036,5402,5383,3904,1085,1261,5404,1139,3643, + 1217,5383,5405,5403,1051,5399,5400,5401,4443,5383, + 5842,5843,5873,5874,1393,5383,5851,5351,39,39, + 2983,2683,393,5383,73,2035,5383,5383,2477,5383, + 5853,3426,4446,3037,5397,5383,5383,3434,740,4883, + 912,956,5383,5854,5852,5875,308,5383,3784,504, + 4893,5383,5383,5383,4460,4917,1889,5383,5383,519, + 2477,3391,5864,5863,5876,5383,185,5845,5846,5869, + 5870,5867,5868,5847,5849,5871,5872,1077,3455,5330, + 5877,3875,5857,5858,5859,5855,5856,5865,5866,5861, + 5860,5862,39,5066,5063,4786,2115,3926,3992,2749, + 5387,4014,1341,5647,5645,5654,5653,5649,5650,5648, + 5651,5652,5655,5646,3091,5383,4203,5383,4744,2, + 4550,5383,3602,5383,5383,5383,1996,3970,3948,4058, + 4036,5402,1,3904,1085,1261,5404,1139,3643,1217, + 5383,5405,5403,1051,5399,5400,5401,39,5066,5063, + 4786,2115,3926,3992,2749,4351,4014,1341,5647,5645, + 5654,5653,5649,5650,5648,5651,5652,5655,5646,508, + 5383,1992,5383,5383,37,5383,5383,2477,5383,5383, + 5383,5383,3970,3948,4058,4036,5402,5380,3904,1085, + 1261,5404,1139,3643,1217,5383,5405,5403,1051,5399, + 5400,5401,5383,5383,5383,5383,5383,5383,1393,5386, + 39,5066,5063,4786,2115,3926,3992,2749,5383,4014, + 1341,5647,5645,5654,5653,5649,5650,5648,5651,5652, + 5655,5646,5383,5383,5383,5383,5383,5383,805,5383, + 5383,5383,5383,5383,5383,3970,3948,4058,4036,5402, + 5383,3904,1085,1261,5404,1139,3643,1217,5383,5405, + 5403,1051,5399,5400,5401,39,5066,5063,4786,2115, + 3926,3992,2749,1690,4014,1341,5647,5645,5654,5653, + 5649,5650,5648,5651,5652,5655,5646,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, + 3970,3948,4058,4036,5402,5383,3904,1085,1261,5404, + 1139,3643,1217,5383,5405,5403,1051,5399,5400,5401, + 5383,5383,5383,5383,5383,5383,1393,39,5066,5063, + 4829,2115,3926,3992,2749,5383,4014,1341,5647,5645, + 5654,5653,5649,5650,5648,5651,5652,5655,5646,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, + 5383,5383,3970,3948,4058,4036,5402,5383,3904,1085, + 1261,5404,1139,3643,1217,5383,5405,5403,1051,5399, + 5400,5401,39,5066,5063,4786,2115,3926,3992,2749, + 5383,4014,1341,5647,5645,5654,5653,5649,5650,5648, + 5651,5652,5655,5646,5383,5383,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,3970,3948,4058, + 4036,5402,5383,3904,1085,1261,5404,1139,3643,1217, + 5383,5405,5403,1051,5399,5400,5401,39,5066,5063, + 4786,2115,3926,3992,2749,5383,4014,1341,5647,5645, + 5654,5653,5649,5650,5648,5651,5652,5655,5646,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, + 5383,5383,3970,3948,4058,4036,5402,5383,3904,1085, + 1261,5404,1139,3643,1217,5383,5405,5403,1051,5399, + 5400,5401,5383,5066,5063,5383,5421,5383,5383,5383, + 5383,5383,574,5647,5645,5654,5653,5649,5650,5648, + 5651,5652,5655,5646,5643,5718,5719,5383,5637,5644, + 5640,5616,5642,5641,5638,5639,5617,5383,5383,5383, + 5383,5383,5779,5383,5383,5383,5383,5383,5383,5383, + 5383,241,5205,5201,5383,5209,5383,5383,2322,5780, + 5781,574,5192,5198,5171,5174,5186,5183,5189,5180, + 5177,5168,5195,5147,5141,5138,5383,5165,5144,5156, + 5135,5150,5153,5162,5159,5132,128,5383,127,5383, + 5383,5779,29,385,385,5242,385,385,5242,385, + 5242,5242,5383,5383,5383,5383,5383,2322,5780,5781, + 5383,5383,5383,5383,385,385,385,5242,385,385, + 385,385,385,385,385,385,385,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,75, + 5383,2597,3069,2597,5383,5383,5383,5048,5383,5383, + 5383,5383,5383,5383,5245,5242,5248,5383,5383,5383, + 5383,5383,5383,5383,5383,5242,32,386,386,5239, + 386,386,5239,386,5239,5239,5445,5446,5383,5383, + 2525,2431,2525,2431,5383,5383,5383,5383,386,386, + 386,5239,386,386,386,386,386,386,386,386, + 386,5383,3472,5383,223,5383,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,5647,5645,5654,5653,5649, + 5650,5648,5651,5652,5655,5646,5643,5718,5719,5239, + 5637,5644,5640,5616,5642,5641,5638,5639,5617,5239, + 5383,5383,5383,5383,580,5383,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,666 }; }; public final static char termAction[] = TermAction.termAction; @@ -1815,60 +1795,60 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asb { public final static char asb[] = {0, - 60,15,8,1081,213,261,849,849,615,219, - 849,219,1,1,179,223,213,219,417,320, - 70,70,846,655,364,320,849,849,540,849, - 70,219,1085,1020,727,323,320,179,423,912, - 68,540,540,540,540,1083,68,163,263,180, - 180,180,180,180,180,180,180,180,851,857, - 862,859,866,864,871,869,873,872,874,367, - 875,219,418,842,70,70,1081,1009,1020,912, - 1020,268,1020,550,1020,1004,1083,219,364,364, - 70,17,217,364,890,426,423,223,163,655, - 655,655,655,219,733,320,320,311,163,915, - 654,727,163,851,726,726,733,179,180,180, - 180,180,180,180,180,180,180,180,180,180, - 180,180,180,180,180,180,180,179,179,179, - 179,179,179,179,179,179,179,179,179,180, - 17,418,842,839,838,839,846,469,270,513, - 271,1083,219,219,514,839,1085,219,179,223, - 320,320,839,839,839,839,514,320,180,1081, - 576,566,565,433,1027,1027,1083,263,364,654, - 179,320,216,218,216,320,364,859,859,857, - 857,857,864,864,864,864,862,862,869,866, - 866,872,871,873,788,874,842,841,163,469, - 219,911,130,518,514,912,524,219,514,219, - 17,422,68,68,68,68,219,219,311,320, - 578,580,219,727,180,655,855,276,320,219, - 218,727,179,842,423,219,469,788,271,540, - 516,123,778,469,911,519,911,911,514,524, - 524,219,219,420,222,179,179,179,179,68, - 68,320,570,558,569,580,514,217,320,855, - 1081,1085,219,217,727,687,912,839,540,216, - 910,780,68,911,911,911,911,219,524,423, - 529,422,420,420,320,320,320,320,733,733, - 831,179,567,567,574,1081,790,320,219,855, - 856,855,179,276,128,851,1085,217,687,687, - 25,485,217,911,911,213,895,180,788,10, - 534,580,911,911,823,423,180,219,320,320, - 831,179,179,578,558,831,1062,855,733,180, - 364,128,896,423,776,958,409,68,271,996, - 687,687,485,217,911,912,1083,780,180,180, - 580,542,682,824,219,833,831,856,320,364, - 24,409,776,546,1083,423,838,540,899,899, - 896,912,143,542,219,68,320,823,219,1083, - 1083,219,833,833,25,687,896,895,320,1083, - 219,485,25,485,837,837,905,144,1083,219, - 733,907,219,219,219,68,833,687,213,896, - 219,219,485,655,655,905,143,788,180,788, - 896,142,68,68,68,144,68,219,375,896, - 896,219,912,320,907,219,219,581,423,219, - 896,838,135,68,135,144,788,144,163,163, - 161,556,163,896,896,13,905,909,319,896, - 613,790,144,320,213,320,161,409,68,320, - 905,909,655,899,320,320,1075,144,13,144, - 896,409,179,144,141,837,912,912,1077,179, - 142,733,896,320,216,144,320,896,144 + 60,15,8,1074,211,258,843,843,610,217, + 843,217,1,1,178,221,211,217,412,317, + 70,70,840,650,360,317,843,843,535,843, + 70,217,1078,1013,722,320,317,178,418,906, + 68,535,535,535,535,1076,68,162,260,179, + 179,179,179,179,179,179,179,179,845,851, + 856,853,860,858,865,863,867,866,868,363, + 869,217,413,836,70,70,1074,1002,1013,906, + 1013,265,1013,545,1013,997,1076,217,360,360, + 70,17,215,360,884,421,418,221,162,650, + 650,650,650,217,728,317,317,308,162,909, + 649,722,162,845,721,721,728,178,179,179, + 179,179,179,179,179,179,179,179,179,179, + 179,179,179,179,179,179,179,178,178,178, + 178,178,178,178,178,178,178,178,178,179, + 17,413,836,833,832,833,840,464,267,508, + 268,1076,217,217,509,833,1078,217,178,221, + 317,317,833,833,833,833,509,317,179,1074, + 571,561,560,428,1020,1020,1076,260,360,649, + 178,317,214,216,214,317,360,853,853,851, + 851,851,858,858,858,858,856,856,863,860, + 860,866,865,867,782,868,836,835,162,464, + 217,905,129,513,509,906,519,217,509,217, + 17,417,68,68,68,68,217,217,308,317, + 573,575,217,722,179,650,849,273,317,217, + 216,722,178,836,418,217,464,782,268,535, + 511,122,772,464,905,514,905,905,509,519, + 519,217,217,415,220,178,178,178,178,68, + 68,317,565,553,564,575,509,215,317,849, + 1074,1078,217,215,722,682,906,833,535,214, + 904,774,68,905,905,905,905,217,519,418, + 524,417,415,415,317,317,317,317,728,728, + 825,178,562,562,569,1074,784,317,217,849, + 850,849,178,273,127,845,1078,215,682,682, + 25,480,215,905,905,211,889,179,782,10, + 529,575,905,905,817,418,179,217,317,317, + 825,178,178,573,553,825,1055,849,728,179, + 360,127,890,418,770,951,404,68,268,989, + 682,682,480,215,905,906,1076,774,179,179, + 575,537,677,818,217,827,825,850,317,360, + 24,404,770,541,1076,418,832,535,893,893, + 890,906,142,537,217,68,317,817,217,1076, + 1076,217,827,827,25,682,890,889,317,1076, + 217,480,25,480,831,831,899,143,1076,217, + 728,901,217,217,217,68,827,682,211,890, + 217,217,480,650,650,899,142,782,179,782, + 890,141,68,68,68,143,68,217,371,890, + 890,217,906,317,901,217,217,576,418,217, + 890,832,134,68,134,143,782,143,162,162, + 160,551,162,890,890,13,899,903,316,890, + 608,784,143,317,211,317,160,404,68,317, + 899,903,650,893,317,317,1068,143,13,143, + 890,404,178,143,140,831,906,906,1070,178, + 141,728,890,317,214,143,317,890,143 }; }; public final static char asb[] = Asb.asb; @@ -1876,115 +1856,114 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asr { public final static byte asr[] = {0, - 75,69,73,91,74,68,64,121,3,8, - 71,25,70,0,121,0,7,6,5,1, - 2,48,0,68,40,23,13,57,27,14, - 29,30,15,16,31,32,17,18,33,58, - 34,10,59,19,22,20,24,21,12,11, - 26,8,25,63,60,65,87,28,48,9, - 6,5,7,61,1,2,4,3,0,26, - 11,12,40,23,42,66,13,43,57,27, - 28,44,14,29,30,15,16,31,67,32, - 45,17,18,46,33,47,58,49,62,50, - 34,51,59,19,22,20,24,21,52,53, + 74,68,72,90,73,67,63,120,3,8, + 70,25,69,0,120,0,7,6,5,1, + 2,48,0,67,40,23,13,56,27,14, + 29,30,15,16,31,32,17,18,33,57, + 34,10,58,19,22,20,24,21,12,11, + 26,8,25,62,59,64,86,28,48,9, + 6,5,7,60,1,2,4,3,0,26, + 11,12,40,23,42,65,13,43,56,27, + 28,44,14,29,30,15,16,31,66,32, + 45,17,18,46,33,47,57,49,61,50, + 34,51,58,19,22,20,24,21,52,53, 54,39,3,37,38,9,6,35,36,41, - 69,56,7,1,2,4,10,5,0,4, - 8,73,68,0,87,103,104,105,48,73, - 119,122,72,61,75,63,60,65,77,79, - 85,83,76,81,82,84,86,68,78,80, - 25,8,26,40,23,57,27,28,29,30, - 31,32,33,58,34,59,22,24,62,66, - 67,10,43,47,45,42,51,12,21,11, - 17,15,16,18,19,14,13,20,52,56, - 53,54,39,50,44,49,37,38,35,36, - 41,46,9,6,3,4,7,5,1,2, - 0,72,62,37,38,9,6,35,36,41, - 46,3,4,52,56,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,48,4,73, - 1,2,68,8,0,92,90,35,36,93, - 94,88,89,55,95,96,97,98,99,100, - 101,102,107,73,91,70,108,109,110,111, - 112,113,114,115,116,117,118,72,25,121, - 69,1,2,9,6,4,3,64,71,74, - 8,0,66,67,3,10,43,47,45,42, - 51,12,21,11,17,15,16,18,19,14, - 13,20,52,56,53,54,39,50,44,49, - 5,7,4,37,38,9,6,35,36,41, - 46,1,2,118,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,62,50,51,10,19,20,21,52,53, - 54,39,37,38,35,36,41,56,8,25, - 5,7,1,2,4,3,9,6,0,25, - 121,71,8,72,0,8,73,118,74,25, - 71,0,26,11,12,23,13,27,28,14, - 29,30,15,16,31,7,32,17,18,33, - 34,19,22,20,24,21,1,2,8,64, - 9,6,5,4,74,25,3,0,87,60, - 7,103,104,105,63,8,3,9,6,5, - 73,72,25,61,26,11,12,40,23,13, - 57,27,28,14,29,30,15,16,31,32, - 17,18,33,58,34,10,59,19,22,20, - 24,21,4,1,2,48,0,4,8,73, - 68,55,0,1,2,8,72,0,8,71, - 72,70,0,73,8,64,70,71,25,55, - 0,8,68,71,0,8,68,70,0,4, - 8,68,1,2,0,76,0,9,6,7, - 5,4,1,2,3,64,69,70,71,8, - 74,91,0,5,7,3,64,6,9,91, - 26,11,12,23,13,57,27,28,14,29, - 30,15,16,31,32,17,18,33,58,34, - 10,59,19,22,20,24,21,1,2,4, - 74,8,40,0,67,66,35,36,6,93, - 94,99,9,100,5,41,70,55,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,10,57,40,58,59,12, + 68,7,1,2,4,10,5,0,4,8, + 72,67,0,86,102,103,104,48,72,118, + 121,71,60,74,62,59,64,76,78,84, + 82,75,80,81,83,85,67,77,79,25, + 8,26,40,23,56,27,28,29,30,31, + 32,33,57,34,58,22,24,61,65,66, + 10,43,47,45,42,51,12,21,11,17, + 15,16,18,19,14,13,20,52,53,54, + 39,50,44,49,37,38,35,36,41,46, + 9,6,3,4,7,5,1,2,0,71, + 61,37,38,9,6,35,36,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,48,4,72,1,2,67, + 8,0,91,89,35,36,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,25,120,68,1,2, + 9,6,4,3,63,70,73,8,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,35,36,41,46,1,2,117, + 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,61,50,51, + 10,19,20,21,52,53,54,39,37,38, + 35,36,41,8,25,5,7,1,2,4, + 3,9,6,0,25,120,70,8,71,0, + 8,72,117,73,25,70,0,26,11,12, + 23,13,27,28,14,29,30,15,16,31, + 7,32,17,18,33,34,19,22,20,24, + 21,1,2,8,63,9,6,5,4,73, + 25,3,0,86,59,7,102,103,104,62, + 8,3,9,6,5,72,71,25,60,26, + 11,12,40,23,13,56,27,28,14,29, + 30,15,16,31,32,17,18,33,57,34, + 10,58,19,22,20,24,21,4,1,2, + 48,0,4,8,72,67,55,0,1,2, + 8,71,0,8,70,71,69,0,72,8, + 63,69,70,25,55,0,8,67,70,0, + 8,67,69,0,4,8,67,1,2,0, + 75,0,9,6,7,5,4,1,2,3, + 63,68,69,70,8,73,90,0,5,7, + 3,63,6,9,90,26,11,12,23,13, + 56,27,28,14,29,30,15,16,31,32, + 17,18,33,57,34,10,58,19,22,20, + 24,21,1,2,4,73,8,40,0,66, + 65,35,36,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,10, + 56,40,57,58,12,21,11,17,15,16, + 18,19,14,13,20,26,32,33,28,31, + 30,27,23,24,29,34,1,2,4,22, + 0,64,26,11,12,40,23,13,56,27, + 86,28,14,29,30,15,16,31,59,32, + 17,18,33,57,34,10,58,19,62,22, + 20,24,21,8,3,9,6,71,25,60, + 4,7,5,48,1,2,0,8,73,11, + 12,42,65,13,43,44,14,15,16,66, + 7,45,17,18,46,47,49,61,50,51, + 10,19,20,21,52,53,54,1,2,3, + 37,38,9,6,35,36,5,41,4,39, + 0,25,8,3,7,5,9,6,4,1, + 2,72,0,26,11,12,40,23,13,56, + 27,28,14,29,30,15,16,31,32,17, + 18,33,57,34,10,58,19,22,20,24, + 21,1,2,4,90,0,22,1,2,4, + 102,103,104,0,23,24,61,8,90,73, + 69,70,68,0,61,23,7,24,5,1, + 2,4,74,67,119,105,37,38,63,3, + 91,89,6,92,93,35,36,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,71,101,106,70,25, + 8,0,68,69,70,1,2,0,118,0, + 23,24,61,74,72,67,8,0,65,66, + 37,38,9,6,35,36,5,41,46,3, + 4,7,52,53,54,39,50,44,49,12, 21,11,17,15,16,18,19,14,13,20, - 26,32,33,28,31,30,27,23,24,29, - 34,1,2,4,22,0,65,26,11,12, - 40,23,13,57,27,87,28,14,29,30, - 15,16,31,60,32,17,18,33,58,34, - 10,59,19,63,22,20,24,21,8,3, - 9,6,72,25,61,4,7,5,48,1, - 2,0,8,74,11,12,42,66,13,43, - 44,14,15,16,67,7,45,17,18,46, - 47,49,62,50,51,10,19,20,21,52, - 53,54,1,2,3,37,38,9,6,35, - 36,5,41,4,56,39,0,25,8,3, - 7,5,9,6,4,1,2,73,0,26, - 11,12,40,23,13,57,27,28,14,29, - 30,15,16,31,32,17,18,33,58,34, - 10,59,19,22,20,24,21,1,2,4, - 91,0,22,1,2,4,103,104,105,0, - 23,24,62,8,91,74,70,71,69,0, - 62,23,7,24,5,1,2,4,75,68, - 120,106,37,38,64,3,92,90,6,93, - 94,35,36,89,88,55,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,72,102,107,71,25,8,0,69,70, - 71,1,2,0,119,0,23,24,62,75, - 73,68,8,0,66,67,37,38,9,6, - 35,36,5,41,46,3,4,7,52,56, - 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,27,14,29,30,15,16,31,32,17, - 18,33,58,34,59,19,22,20,24,21, - 12,11,26,8,3,9,6,25,63,65, - 87,28,61,55,48,7,1,2,5,4, - 10,60,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,35,36,93,94,88,89,55,69, - 95,96,97,98,99,100,101,102,107,70, - 108,109,110,111,112,113,114,115,116,117, - 71,26,23,27,28,29,30,31,32,33, - 34,22,24,25,8,74,3,64,7,5, - 9,6,1,2,4,0 + 10,43,47,45,42,51,63,1,2,0, + 40,23,13,56,27,14,29,30,15,16, + 31,32,17,18,33,57,34,58,19,22, + 20,24,21,12,11,26,8,3,9,6, + 25,62,64,86,28,60,55,48,7,1, + 2,5,4,10,59,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,35,36,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,26,23,27,28,29,30, + 31,32,33,34,22,24,25,8,73,3, + 63,7,5,9,6,1,2,4,0 }; }; public final static byte asr[] = Asr.asr; @@ -2093,14 +2072,14 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 107,104,54,106,120,47,64,66,70,73, 76,83,89,98,11,12,7,8,112,53, 14,55,61,67,84,88,90,93,94,97, - 99,109,110,111,19,123,63,91,101,77, - 122,95,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,122, + 95,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; @@ -2108,26 +2087,26 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 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,165,152, - 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,205,0,0,156, - 188,202,206,0,0,128,172,0,0,0, - 0,0,0,176,207,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,199,0,200,0,0,212,0, - 0,0,0,241,242,0,148,180,190,191, - 192,193,194,196,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,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,164,151, + 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,204,0,0,155, + 187,201,205,0,0,127,171,0,0,0, + 0,0,0,175,206,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,198,0,199,0,0,211,0, + 0,0,0,240,241,0,147,179,189,190, + 191,192,193,195,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,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 }; }; @@ -2193,18 +2172,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,72,74,74,74,74,74,72, - 25,72,72,1,69,1,74,122,68,3, - 74,69,69,69,1,1,25,72,68,72, - 1,1,1,72,1,1,4,69,71,25, - 1,1,69,74,74,74,119,74,1,25, - 1,25,25,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, - 25,74,118,74,5,74,1,48,70,73, - 74,1,48,76,75,25,25,4,4,4, - 4,3,1,68,1,1,3 + 118,73,73,71,73,73,73,73,73,71, + 25,71,71,1,68,1,73,121,67,3, + 73,68,68,68,1,1,25,71,67,71, + 1,1,1,71,1,1,4,68,70,25, + 1,1,68,73,73,73,118,73,1,25, + 1,25,25,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, + 25,73,117,73,5,73,1,48,69,72, + 73,1,48,75,74,25,25,4,4,4, + 4,3,1,67,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2231,71 +2210,71 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeRhs { public final static char scopeRhs[] = {0, - 321,3,62,0,127,0,320,3,119,0, - 127,173,0,127,179,75,0,217,0,253, - 127,55,125,0,20,0,296,127,55,48, - 0,20,53,0,33,133,0,20,53,0, - 0,296,127,55,48,204,0,20,179,0, - 253,127,55,133,0,182,128,0,142,0, - 219,3,295,0,295,0,2,0,127,0, - 253,127,55,132,0,182,128,224,0,182, - 128,22,224,0,182,128,316,22,0,129, - 187,167,128,0,129,0,187,167,128,0, - 135,129,0,171,0,312,127,171,0,127, - 171,0,223,129,0,167,311,246,0,137, - 0,0,0,0,136,0,0,0,0,310, - 127,163,252,0,128,0,252,0,130,0, - 0,128,0,309,127,163,251,0,128,0, - 0,44,128,0,0,153,3,0,127,283, - 282,127,75,280,171,0,282,127,75,280, - 171,0,216,0,217,0,280,171,0,96, - 0,0,216,0,217,0,204,96,0,0, - 216,0,217,0,282,127,280,171,0,216, - 0,204,0,0,216,0,230,127,3,0, - 127,0,0,0,0,0,230,127,3,216, - 0,223,3,0,212,127,0,209,0,147, - 0,177,167,128,0,10,0,0,0,214, - 64,0,126,0,230,127,3,180,0,180, - 0,2,0,0,127,0,0,0,0,0, - 197,3,0,202,0,239,127,163,39,28, - 0,182,128,60,63,0,197,129,0,129, - 182,128,278,63,0,182,128,278,63,0, - 182,128,70,124,60,0,239,127,163,60, - 0,239,127,163,226,60,0,276,127,163, - 124,306,57,0,276,127,163,306,57,0, - 182,128,275,57,0,136,0,187,182,128, - 275,246,0,137,0,182,128,275,246,0, - 187,167,128,10,0,167,128,10,0,167, - 128,0,93,137,0,268,127,145,0,268, - 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,190, - 81,0,127,129,0,190,81,0,108,2, - 132,127,129,0,225,3,76,0,197,168, - 0,33,170,0,168,0,176,33,170,0, - 225,3,86,0,190,155,225,3,84,0, - 62,172,0,225,3,84,0,127,172,62, - 172,0,302,127,163,0,162,0,214,78, - 0,30,172,0,162,107,159,0,30,170, - 0,178,3,0,127,150,0,219,3,0, - 214,64,265,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,220,182, - 128,0,147,31,148,0,178,3,51,0, - 162,3,51,0,162,3,69,178,55,42, - 0,178,55,42,0,20,2,132,127,0, - 162,3,69,178,55,45,0,178,55,45, - 0,162,3,69,178,55,47,0,178,55, - 47,0,162,3,69,178,55,43,0,178, - 55,43,0,219,3,126,187,167,128,10, - 0,126,187,167,128,10,0,137,2,0, - 127,0,219,3,125,258,167,128,10,0, - 258,167,128,10,0,136,2,0,127,0, - 219,3,136,0,219,3,140,0,162,64, - 140,0,260,0,31,0,31,140,0,166, - 0,135,0,162,3,0 + 320,3,61,0,126,0,319,3,118,0, + 126,172,0,126,178,74,0,216,0,252, + 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,203,0,20,178,0, + 252,126,55,132,0,181,127,0,141,0, + 218,3,294,0,294,0,2,0,126,0, + 252,126,55,131,0,181,127,223,0,181, + 127,22,223,0,181,127,315,22,0,128, + 186,166,127,0,128,0,186,166,127,0, + 134,128,0,170,0,311,126,170,0,126, + 170,0,222,128,0,166,310,245,0,136, + 0,0,0,0,135,0,0,0,0,309, + 126,162,251,0,127,0,251,0,129,0, + 0,127,0,308,126,162,250,0,127,0, + 0,44,127,0,0,152,3,0,126,282, + 281,126,74,279,170,0,281,126,74,279, + 170,0,215,0,216,0,279,170,0,96, + 0,0,215,0,216,0,203,96,0,0, + 215,0,216,0,281,126,279,170,0,215, + 0,203,0,0,215,0,229,126,3,0, + 126,0,0,0,0,0,229,126,3,215, + 0,222,3,0,211,126,0,208,0,146, + 0,176,166,127,0,10,0,0,0,213, + 63,0,125,0,229,126,3,179,0,179, + 0,2,0,0,126,0,0,0,0,0, + 196,3,0,201,0,238,126,162,39,28, + 0,181,127,59,62,0,196,128,0,128, + 181,127,277,62,0,181,127,277,62,0, + 181,127,69,123,59,0,238,126,162,59, + 0,238,126,162,225,59,0,275,126,162, + 123,305,56,0,275,126,162,305,56,0, + 181,127,274,56,0,135,0,186,181,127, + 274,245,0,136,0,181,127,274,245,0, + 186,166,127,10,0,166,127,10,0,166, + 127,0,93,136,0,267,126,144,0,267, + 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,189, + 80,0,126,128,0,189,80,0,108,2, + 131,126,128,0,224,3,75,0,196,167, + 0,33,169,0,167,0,175,33,169,0, + 224,3,85,0,189,154,224,3,83,0, + 62,171,0,224,3,83,0,126,171,62, + 171,0,301,126,162,0,161,0,213,77, + 0,30,171,0,161,106,158,0,30,169, + 0,177,3,0,126,149,0,218,3,0, + 213,63,264,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,219,181, + 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,218,3,125,186,166,127,10, + 0,125,186,166,127,10,0,136,2,0, + 126,0,218,3,124,257,166,127,10,0, + 257,166,127,10,0,135,2,0,126,0, + 218,3,135,0,218,3,139,0,161,63, + 139,0,259,0,31,0,31,139,0,165, + 0,134,0,161,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2303,38 +2282,38 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeState { public final static char scopeState[] = {0, - 4709,4918,4894,4884,0,1008,2696,1000,2121,0, - 3448,3394,3254,3200,3146,3092,3038,2984,2930,2793, - 2731,4461,0,1256,1127,810,0,2684,2509,0, - 3448,3394,3415,2872,3254,3200,3146,3092,3038,2984, - 1125,2930,2793,2731,4294,3127,0,3113,2989,3039, - 0,4223,3283,0,2645,2602,0,2569,999,0, - 4504,2915,0,4589,4441,0,4589,4441,3786,4337, - 4327,3776,4317,4235,4222,3766,0,4589,4441,3786, - 4337,4327,3776,4317,4235,4222,3766,3448,3394,3254, - 3200,3146,3092,3038,2984,2930,2793,2731,0,667, - 581,0,682,0,801,732,0,537,4437,2816, - 0,2037,804,661,541,3547,2732,3328,2665,2625, - 3313,2971,0,4780,4776,4763,4727,4716,4703,4698, - 4681,4900,4876,4865,4677,4651,4616,4612,4861,2712, - 4847,3738,3366,4793,2906,2690,0,2419,3547,4531, - 4538,3015,3177,2647,723,4236,2732,3118,737,871, - 2459,735,0,671,0,4504,3547,4538,2915,2459, - 3328,3561,4567,4204,2419,4191,2665,2647,2625,4423, - 3574,0,3377,3370,4780,4776,4763,3261,2660,4727, - 2484,4716,4703,4698,4681,3799,3791,3668,3505,3296, - 2773,4900,3007,4876,4865,2565,2502,4677,4651,927, - 4616,4612,3016,3277,4861,2712,4847,3738,4437,3366, - 4793,3223,2816,2906,2690,626,2553,2488,2203,2116, - 806,3328,3561,4567,4204,2419,4191,4504,3547,4538, - 2665,2647,2625,2915,2288,940,667,581,2459,4423, - 3574,3644,4169,4147,2252,1186,2333,2301,2391,2363, - 594,2873,630,2598,2571,2526,2432,3744,3713,3681, - 3522,3341,4125,4103,4081,4059,4037,4015,3993,3971, - 3949,3927,3905,1997,2214,2165,2127,2078,1308,1265, - 2040,1048,1222,1954,881,1911,1868,1825,1782,1739, - 1696,1653,1610,1567,1524,1481,1438,537,825,745, - 689,1394,1143,1351,1004,961,1093,0 + 4708,4917,4893,4883,0,1007,2695,999,2120,0, + 3447,3393,3253,3199,3145,3091,3037,2983,2929,2792, + 2730,4460,0,1255,1126,809,0,2683,2508,0, + 3447,3393,3414,2871,3253,3199,3145,3091,3037,2983, + 1124,2929,2792,2730,4293,3126,0,3112,2988,3038, + 0,4222,3282,0,2644,2601,0,2568,998,0, + 4503,2914,0,4588,4440,0,4588,4440,3785,4336, + 4326,3775,4316,4234,4221,3765,0,4588,4440,3785, + 4336,4326,3775,4316,4234,4221,3765,3447,3393,3253, + 3199,3145,3091,3037,2983,2929,2792,2730,0,666, + 580,0,681,0,800,731,0,536,4436,2815, + 0,2036,803,660,540,3546,2731,3327,2664,2624, + 3312,2970,0,4779,4775,4762,4726,4715,4702,4697, + 4680,4899,4875,4864,4676,4650,4615,4611,4860,2711, + 4846,3737,3365,4792,2905,2689,0,2418,3546,4530, + 4537,3014,3176,2646,722,4235,2731,3117,736,870, + 2458,734,0,670,0,4503,3546,4537,2914,2458, + 3327,3560,4566,4203,2418,4190,2664,2646,2624,4422, + 3573,0,3376,3369,4779,4775,4762,3260,2659,4726, + 2483,4715,4702,4697,4680,3798,3790,3667,3504,3295, + 2772,4899,3006,4875,4864,2564,2501,4676,4650,926, + 4615,4611,3015,3276,4860,2711,4846,3737,4436,3365, + 4792,3222,2815,2905,2689,625,2552,2487,2202,2115, + 805,3327,3560,4566,4203,2418,4190,4503,3546,4537, + 2664,2646,2624,2914,2287,939,666,580,2458,4422, + 3573,3643,4168,4146,2251,1185,2332,2300,2390,2362, + 593,2872,629,2597,2570,2525,2431,3743,3712,3680, + 3521,3340,4124,4102,4080,4058,4036,4014,3992,3970, + 3948,3926,3904,1996,2213,2164,2126,2077,1307,1264, + 2039,1047,1221,1953,880,1910,1867,1824,1781,1738, + 1695,1652,1609,1566,1523,1480,1437,536,824,744, + 688,1393,1142,1350,1003,960,1092,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2342,60 +2321,60 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface InSymb { public final static char inSymb[] = {0, - 0,297,229,127,3,4,133,132,7,5, - 125,128,186,180,3,70,212,128,177,197, - 55,55,168,127,64,3,66,67,125,124, - 55,182,166,125,167,64,153,127,163,251, - 51,42,45,47,43,10,136,3,128,46, - 41,5,36,35,6,9,38,37,140,146, - 148,147,150,149,152,151,156,154,158,62, - 159,128,167,6,127,127,127,269,270,252, - 271,246,272,57,273,274,10,128,64,64, - 127,4,187,214,159,267,127,163,3,55, - 55,55,55,128,3,178,162,168,127,66, - 67,167,3,126,106,120,3,64,90,92, - 36,35,94,93,6,96,95,69,55,88, - 89,9,98,97,100,99,101,117,116,115, - 114,113,112,111,110,109,108,70,107,102, - 167,177,127,253,256,253,212,163,311,275, - 306,275,128,182,167,253,260,187,71,127, - 178,162,178,178,178,178,167,219,155,127, - 3,217,216,136,126,125,10,128,64,298, - 3,178,48,128,48,219,162,147,147,146, - 146,146,149,149,149,149,148,148,151,150, - 150,154,152,156,162,158,6,184,71,127, - 167,233,126,125,128,124,163,128,167,48, - 4,309,69,69,69,69,187,258,212,223, - 127,3,128,167,205,3,299,168,153,128, - 182,167,73,127,310,128,169,224,60,48, - 204,63,171,313,126,125,234,234,182,163, - 127,182,187,189,71,3,3,3,3,126, - 125,230,231,145,232,127,167,48,178,127, - 127,220,5,48,167,163,226,55,48,278, - 280,127,180,234,234,127,127,187,127,276, - 124,277,189,8,162,162,162,162,3,3, - 155,70,223,197,3,127,71,230,187,155, - 262,265,64,183,4,124,126,187,127,163, - 69,55,128,75,127,212,312,73,290,197, - 125,3,127,127,73,276,70,71,219,219, - 127,70,70,127,212,155,126,127,3,64, - 162,4,129,239,28,48,171,65,60,63, - 241,127,127,182,127,282,73,71,73,70, - 127,315,224,22,128,221,127,262,219,214, - 39,127,3,124,60,239,296,48,10,40, - 129,282,163,294,128,295,230,71,128,22, - 316,182,127,221,127,163,268,279,39,70, - 128,71,69,55,233,233,283,127,71,182, - 3,155,182,128,128,62,127,127,71,155, - 128,182,127,70,70,127,302,80,78,1, - 162,8,86,84,82,81,76,83,85,79, - 77,60,75,219,127,182,182,3,239,182, - 226,296,284,119,8,73,214,73,3,3, - 3,190,3,124,162,124,179,221,321,226, - 69,3,73,225,168,225,304,145,76,225, - 127,127,71,40,91,320,168,155,197,155, - 303,127,3,155,284,233,155,155,127,70, - 190,161,268,162,70,122,301,155,155 + 0,296,228,126,3,4,132,131,7,5, + 124,127,185,179,3,69,211,127,176,196, + 55,55,167,126,63,3,65,66,124,123, + 55,181,165,124,166,63,152,126,162,250, + 51,42,45,47,43,10,135,3,127,46, + 41,5,36,35,6,9,38,37,139,145, + 147,146,149,148,151,150,155,153,157,61, + 158,127,166,6,126,126,126,268,269,251, + 270,245,271,56,272,273,10,127,63,63, + 126,4,186,213,158,266,126,162,3,55, + 55,55,55,127,3,177,161,167,126,65, + 66,166,3,125,105,119,3,63,89,91, + 36,35,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, + 166,176,126,252,255,252,211,162,310,274, + 305,274,127,181,166,252,259,186,70,126, + 177,161,177,177,177,177,166,218,154,126, + 3,216,215,135,125,124,10,127,63,297, + 3,177,48,127,48,218,161,146,146,145, + 145,145,148,148,148,148,147,147,150,149, + 149,153,151,155,161,157,6,183,70,126, + 166,232,125,124,127,123,162,127,166,48, + 4,308,68,68,68,68,186,257,211,222, + 126,3,127,166,204,3,298,167,152,127, + 181,166,72,126,309,127,168,223,59,48, + 203,62,170,312,125,124,233,233,181,162, + 126,181,186,188,70,3,3,3,3,125, + 124,229,230,144,231,126,166,48,177,126, + 126,219,5,48,166,162,225,55,48,277, + 279,126,179,233,233,126,126,186,126,275, + 123,276,188,8,161,161,161,161,3,3, + 154,69,222,196,3,126,70,229,186,154, + 261,264,63,182,4,123,125,186,126,162, + 68,55,127,74,126,211,311,72,289,196, + 124,3,126,126,72,275,69,70,218,218, + 126,69,69,126,211,154,125,126,3,63, + 161,4,128,238,28,48,170,64,59,62, + 240,126,126,181,126,281,72,70,72,69, + 126,314,223,22,127,220,126,261,218,213, + 39,126,3,123,59,238,295,48,10,40, + 128,281,162,293,127,294,229,70,127,22, + 315,181,126,220,126,162,267,278,39,69, + 127,70,68,55,232,232,282,126,70,181, + 3,154,181,127,127,61,126,126,70,154, + 127,181,126,69,69,126,301,79,77,1, + 161,8,85,83,81,80,75,82,84,78, + 76,59,74,218,126,181,181,3,238,181, + 225,295,283,118,8,72,213,72,3,3, + 3,189,3,123,161,123,178,220,320,225, + 68,3,72,224,167,224,303,144,75,224, + 126,126,70,40,90,319,167,154,196,154, + 302,126,3,154,283,232,154,154,126,69, + 189,160,267,161,69,121,300,154,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2526,7 +2505,6 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars "SemiColon", "LeftBrace", "ERROR_TOKEN", - "0", "EOF_TOKEN", "no_function_declarator_start", "]", @@ -2660,7 +2638,7 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 61, + ERROR_SYMBOL = 60, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2672,19 +2650,19 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final static int NUM_STATES = 539, - NT_OFFSET = 123, - LA_STATE_OFFSET = 5920, + NT_OFFSET = 122, + LA_STATE_OFFSET = 5918, MAX_LA = 2147483647, - NUM_RULES = 536, + NUM_RULES = 535, NUM_NONTERMINALS = 202, - NUM_SYMBOLS = 325, + NUM_SYMBOLS = 324, SEGMENT_SIZE = 8192, - START_STATE = 3574, + START_STATE = 3573, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 121, - EOLT_SYMBOL = 121, - ACCEPT_ACTION = 5022, - ERROR_ACTION = 5384; + EOFT_SYMBOL = 120, + EOLT_SYMBOL = 120, + ACCEPT_ACTION = 5021, + ERROR_ACTION = 5383; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java index 09e123a5dbf..8bc901613bd 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java @@ -15,69 +15,69 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoFunctionDeclaratorParsersym { public final static int - TK_asm = 65, + TK_asm = 64, TK_auto = 26, 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 = 27, - TK_export = 87, + TK_export = 86, TK_extern = 28, TK_false = 44, TK_float = 14, - TK_for = 82, + TK_for = 81, TK_friend = 29, - TK_goto = 83, - TK_if = 84, + TK_goto = 82, + TK_if = 83, TK_inline = 30, TK_int = 15, TK_long = 16, TK_mutable = 31, - 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 = 32, TK_reinterpret_cast = 45, - TK_return = 85, + TK_return = 84, TK_short = 17, TK_signed = 18, TK_sizeof = 46, TK_static = 33, TK_static_cast = 47, - TK_struct = 58, - TK_switch = 86, + TK_struct = 57, + TK_switch = 85, TK_template = 48, TK_this = 49, - TK_throw = 62, - TK_try = 75, + TK_throw = 61, + TK_try = 74, TK_true = 50, TK_typedef = 34, 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 CPPNoFunctionDeclaratorParsersym { 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 CPPNoFunctionDeclaratorParsersym { TK_Minus = 36, TK_Tilde = 5, TK_Bang = 41, - TK_Slash = 93, - TK_Percent = 94, - TK_RightShift = 88, - TK_LeftShift = 89, + TK_Slash = 92, + TK_Percent = 93, + TK_RightShift = 87, + TK_LeftShift = 88, TK_LT = 55, - 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_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 = 25, - TK_LeftBrace = 68, - TK_ERROR_TOKEN = 61, - TK_0 = 56, - TK_EOF_TOKEN = 121; + TK_LeftBrace = 67, + TK_ERROR_TOKEN = 60, + TK_EOF_TOKEN = 120; public final static String orderedTerminalSymbols[] = { "", @@ -196,7 +195,6 @@ public interface CPPNoFunctionDeclaratorParsersym { "floating", "charconst", "LT", - "0", "enum", "struct", "union", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java index 8d5a94fc2fa..37fceff4298 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java @@ -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 CPPParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { @@ -173,7 +174,7 @@ public CPPParser() { // 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, CPPParsersym.TK_EOF_TOKEN)); } -public CPPParser(String[] mapFrom) { // constructor - tokenMap = new TokenMap(CPPParsersym.orderedTerminalSymbols, mapFrom); +public CPPParser(IParserActionTokenProvider parser) { // constructor + tokenMap = new TokenMap(CPPParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } @@ -271,1707 +272,1701 @@ public CPPParser(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; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java index da56f7fa2d6..c065f48663a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java @@ -29,7 +29,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,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,494 +39,494 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 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,-235,0,0,0,-2, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-4,0,0, - 0,0,0,0,0,-7,0,-124,0,0, - 0,0,0,-145,0,0,0,0,-519,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,-235,0,0,0,-2,0, 0,0,0,0,0,0,0,0,0,0, - 0,-9,-324,-258,0,0,0,0,0,0, + 0,0,0,0,0,0,-4,0,0,0, + 0,0,0,0,-7,0,-124,0,0,0, + 0,0,-145,0,0,0,0,-519,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,-48,0,0,0,-54, - 0,0,0,0,0,-50,0,0,0,0, - -295,0,0,-72,0,-12,-106,0,0,-118, + -9,-324,-258,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-14,0,0,-24,0,-144,0,0,0, - -31,0,0,0,0,0,-25,0,0,0, - 0,0,0,0,0,0,0,0,-100,0, + 0,0,0,0,-58,0,0,0,0,0, + 0,0,0,0,-48,0,0,0,-54,0, + 0,0,0,0,-50,0,0,0,0,-295, + 0,0,-72,0,-12,-106,0,0,-118,0, 0,0,0,0,0,0,0,0,0,0, + -14,0,0,-24,0,-144,0,0,0,-31, + 0,0,0,0,0,-25,0,0,0,0, + 0,0,0,0,0,0,0,-100,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-3,0, - -32,0,-113,0,0,0,0,0,0,0, - 0,0,0,0,-63,0,-448,0,0,-34, - 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,-3,0,-32, + 0,-113,0,0,0,0,0,0,0,0, + 0,0,0,-63,0,-448,0,0,-34,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,0,0,-333,0, - 0,0,0,-135,0,0,0,0,0,0, - -92,0,0,0,-102,0,0,0,-35,0, - 0,0,0,-241,0,0,0,-215,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-116,0,0,0,0,0, + 0,0,0,0,0,0,0,-333,0,0, + 0,0,-135,0,0,0,0,0,0,-92, + 0,0,0,-102,0,0,0,-35,0,0, + 0,0,-241,0,0,0,-215,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-116,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-396,0,-60,0,0,0, - 0,0,-101,0,0,0,0,-184,-13,0, - -37,0,0,0,0,0,-313,0,0,0, - -277,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-396,0,-60,0,0,0,0, + 0,-101,0,0,0,0,-184,-13,0,-37, + 0,0,0,0,0,-313,0,0,0,-277, 0,0,0,0,0,0,0,0,0,0, - -232,0,-38,0,0,0,0,0,0,0, - 0,0,0,-310,-49,0,-417,0,0,0, - -282,0,0,0,0,0,0,-227,0,0, - 0,0,0,-30,0,0,0,-372,0,0, - 0,0,0,0,0,0,0,-39,0,0, - -380,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-232, + 0,-38,0,0,0,0,0,0,0,0, + 0,0,-310,-49,0,-417,0,0,0,-282, + 0,0,0,0,0,0,-227,0,0,0, + 0,0,-30,0,0,0,-372,0,0,0, + 0,0,0,0,0,0,-39,0,0,-380, 0,0,0,0,0,0,0,0,0,0, - -43,0,0,0,0,0,0,0,0,-55, - 0,0,0,-467,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-43, + 0,0,0,0,0,0,0,0,-55,0, + 0,0,-467,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-27,0,-56,0,0,0,0, - 0,0,-40,0,0,0,0,0,-304,0, - 0,0,-237,0,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, - -67,0,0,0,0,0,-41,-435,0,0, - 0,0,0,-111,0,0,0,-129,0,0, + 0,0,-27,0,-56,0,0,0,0,0, + 0,-40,0,0,0,0,0,-304,0,0, + 0,-237,0,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,-67, + 0,0,0,0,0,-41,-435,0,0,0, + 0,0,-111,0,0,0,-129,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-47,0,-74,0,0,0,0, - 0,0,0,0,0,0,-180,0,0,0, - 0,-306,-192,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-47,0,-74,0,0,0,0,0, + 0,0,0,0,0,-180,0,0,0,0, + -306,-192,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-52,0,-19,0,0,0,0,0, - -142,0,0,0,0,-276,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-75,0,0, - 0,0,0,0,0,-57,0,-17,0,0, - 0,0,0,-290,0,0,0,0,0,0, + 0,-52,0,-19,0,0,0,0,0,-142, + 0,0,0,0,-276,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-75,0,0,0, + 0,0,0,0,-57,0,-17,0,0,0, + 0,0,-290,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-500,0,0,0,0,0,0, - 0,-88,0,0,0,0,-242,0,0,0, - -76,0,0,0,0,0,0,0,0,-53, - 0,0,0,-383,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-77,0,0,0,0, - 0,0,0,0,0,-95,0,-132,0,0, - 0,-61,0,0,0,0,-42,0,-384,0, + 0,0,-500,0,0,0,0,0,0,0, + -88,0,0,0,0,-242,0,0,0,-76, + 0,0,0,0,0,0,0,0,-53,0, + 0,0,-383,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-77,0,0,0,0,0, + 0,0,0,0,-95,0,-132,0,0,0, + -61,0,0,0,0,-42,0,-384,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-134,0, - -146,0,0,0,0,0,0,0,0,0, - 0,-107,0,0,0,-97,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-377,0,0,0,0,0,0, - 0,0,0,-148,0,0,0,0,0,-224, - 0,-177,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-134,0,-146, 0,0,0,0,0,0,0,0,0,0, + -107,0,0,0,-97,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-411,0,-59,0,0,0,0,0,0, - -149,-104,0,0,0,0,-405,0,0,-264, + 0,0,-377,0,0,0,0,0,0,0, + 0,0,-148,0,0,0,0,0,-224,0, + -177,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -411,0,-59,0,0,0,0,0,0,-149, + -104,0,0,0,0,-405,0,0,-264,0, 0,0,0,0,0,0,0,0,0,0, - 0,-150,0,-51,0,0,0,-225,0,-151, - 0,0,-265,0,0,0,-152,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-93,0,0,0,0,0, - 0,0,-69,0,-154,0,0,0,0,0, - -376,0,-94,0,0,-266,0,0,0,-166, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-138,0,0, - 0,0,0,0,0,-70,0,0,0,0, - 0,0,0,-167,-168,-139,0,0,-267,0, - 0,0,-169,0,0,0,0,0,0,0, + -150,0,-51,0,0,0,-225,0,-151,0, + 0,-265,0,0,0,-152,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-93,0,0,0,0,0,0, + 0,-69,0,-154,0,0,0,0,0,-376, + 0,-94,0,0,-266,0,0,0,-166,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-80,0,0,0,0,-170,-466,0, - 0,-268,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-138,0,0,0, + 0,0,0,0,-70,0,0,0,0,0, + 0,0,-167,-168,-139,0,0,-267,0,0, + 0,-169,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-81,0,-501,0,0,0,0,0,-171, - -172,-173,0,0,-269,0,0,0,0,0, + 0,-80,0,0,0,0,-170,-466,0,0, + -268,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-84,0,-174,0,0,0, - 0,0,-175,-176,-178,0,0,-270,0,0, - 0,-179,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,-86,0,-185, - 0,0,0,0,0,-187,-189,-195,0,0, - -271,0,0,0,-197,0,0,0,0,0, + -81,0,-501,0,0,0,0,0,-171,-172, + -173,0,0,-269,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-198,0,0,0,0,0,0,0, - 0,0,-201,0,-87,0,0,0,-203,0, - -204,0,0,-272,0,0,0,-205,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-84,0,-174,0,0,0,0, + 0,-175,-176,-178,0,0,-270,0,0,0, + -179,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,-86,0,-185,0, + 0,0,0,0,-187,-189,-195,0,0,-271, + 0,0,0,-197,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-98,0,-220,0,0,0,0, - 0,-221,-90,-240,0,0,-273,0,0,0, - -284,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-291,0, - 0,0,0,0,0,0,-292,0,-299,0, - 0,0,0,0,-300,-305,-307,0,0,-274, - 0,0,0,-320,0,0,0,0,0,0, + 0,-198,0,0,0,0,0,0,0,0, + 0,-201,0,-87,0,0,0,-203,0,-204, + 0,0,-272,0,0,0,-205,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-321,0,0,0,0,0,0,0,-114, - 0,-322,0,0,0,0,0,-323,-127,-327, - 0,0,-379,0,0,0,-328,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-329,0,0,0,0,0, - 0,0,-341,0,-342,0,0,0,0,0, - -343,-128,-344,0,0,-416,0,0,0,-345, + 0,0,-98,0,-220,0,0,0,0,0, + -221,-90,-240,0,0,-273,0,0,0,-284, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-346,0,0, - 0,0,0,0,0,-347,0,-348,0,0, - 0,0,0,-349,-131,-350,0,0,-520,0, - 0,0,-351,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-291,0,0, + 0,0,0,0,0,-292,0,-299,0,0, + 0,0,0,-300,-305,-307,0,0,-274,0, + 0,0,-320,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -352,0,0,0,0,0,0,0,-119,0, - -353,0,0,0,0,0,-360,-354,-188,0, - 0,-312,0,0,0,-301,0,0,0,0, + -321,0,0,0,0,0,0,0,-114,0, + -322,0,0,0,0,0,-323,-127,-327,0, + 0,-379,0,0,0,-328,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-79,0,0,0,0,0,0, - 0,-110,0,-355,0,0,0,0,0,-363, + 0,0,0,-329,0,0,0,0,0,0, + 0,-341,0,-342,0,0,0,0,0,-343, + -128,-344,0,0,-416,0,0,0,-345,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-346,0,0,0, + 0,0,0,0,-347,0,-348,0,0,0, + 0,0,-349,-131,-350,0,0,-520,0,0, + 0,-351,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-352, + 0,0,0,0,0,0,0,-119,0,-353, + 0,0,0,0,0,-360,-354,-188,0,0, + -312,0,0,0,-301,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-71, - 0,0,0,0,0,0,0,-89,0,0, - 0,0,-356,0,0,0,0,0,0,-392, + 0,0,-79,0,0,0,0,0,0,0, + -110,0,-355,0,0,0,0,0,-363,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-334, - 0,-194,0,0,0,0,0,-393,0,0, + 0,0,0,0,0,0,0,0,-71,0, + 0,0,0,0,0,0,-89,0,0,0, + 0,-356,0,0,0,0,0,0,-392,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-357, - 0,0,0,0,0,-120,0,0,0,-358, - -208,0,0,0,0,0,-359,-514,0,0, + 0,0,0,0,0,0,0,0,-334,0, + -194,0,0,0,0,0,-393,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-190, - 0,0,0,0,0,0,0,-140,0,-303, - 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,-357,0, + 0,0,0,0,-120,0,0,0,-358,-208, + 0,0,0,0,0,-359,-514,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-362,0,0,0,-536, + 0,0,0,0,0,0,0,0,-190,0, + 0,0,0,0,0,0,-140,0,-303,0, + 0,0,0,0,-263,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-364,0,0,-261,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-451,0,0, - 0,0,0,0,0,-366,0,-262,0,0, - 0,-367,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-216, - 0,0,0,0,0,0,0,-28,0,0, + 0,0,0,0,-362,0,0,0,-536,0, 0,0,0,0,0,0,0,0,0,0, - -202,0,0,0,0,0,0,0,0,0, - 0,0,0,-302,0,0,0,-218,0,0, - 0,0,0,0,-368,-212,0,0,0,0, - 0,0,0,0,0,0,0,0,-141,-369, - -365,0,0,-15,-452,0,0,0,0,0, - 0,0,-217,0,0,0,0,-308,-143,0, - 0,0,0,0,0,-109,0,0,0,0, - -130,0,0,0,-206,0,0,0,0,0, - 0,-371,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-46,0,0, - -16,0,0,-394,0,0,-68,0,0,0, - 0,0,0,0,0,0,-29,0,0,0, + 0,-364,0,0,-261,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, - -259,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-451,0,0,0, + 0,0,0,0,-366,0,-262,0,0,0, + -367,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-216,0, + 0,0,0,0,0,0,-28,0,0,0, + 0,0,0,0,0,0,0,0,0,-202, 0,0,0,0,0,0,0,0,0,0, + 0,0,-302,0,0,0,-218,0,0,0, + 0,0,0,-368,-212,0,0,0,0,0, + 0,0,0,0,0,0,0,-141,-369,-365, + 0,0,-15,-452,0,0,0,0,0,0, + 0,-217,0,0,0,0,-308,-143,0,0, + 0,0,0,0,-109,0,0,0,0,-130, + 0,0,0,-206,0,0,0,0,0,0, + -371,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-46,0,0,-16, + 0,0,-394,0,0,-68,0,0,0,0, + 0,0,0,0,0,-29,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-400,-401,0,0,0,-468,0, - 0,-527,-402,-403,0,0,0,0,0,0, - 0,0,0,-537,-336,0,0,0,0,0, - 0,0,0,0,0,0,0,-207,0,0, - -260,0,0,0,0,0,0,0,0,0, + 0,0,0,-78,0,0,0,0,0,-259, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-293,0, 0,0,0,0,0,0,0,0,0,0, - 0,-65,0,0,0,-209,0,0,0,0, - 0,0,0,0,-21,-211,-252,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-418,0, - 0,0,0,-439,0,0,0,0,0,0, - -419,0,0,-153,0,0,-421,0,0,0, + 0,0,-400,-401,0,0,0,-468,0,0, + -527,-402,-403,0,0,0,0,0,0,0, + 0,0,-537,-336,0,0,0,0,0,0, + 0,0,0,0,0,0,-207,0,0,-260, 0,0,0,0,0,0,0,0,0,0, - 0,-487,0,-426,-281,0,0,0,0,0, - 0,0,0,0,0,-253,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-430,0,0, - 0,0,-254,0,0,0,-309,0,0,0, + 0,0,0,0,0,0,0,-293,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-434,0,0,0,0,-255, - 0,0,0,-73,0,0,0,0,0,0, + -65,0,0,0,-209,0,0,0,0,0, + 0,0,0,-21,-211,-252,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-446,0,0,0,0,-280,0,-196,-447, - 0,-338,0,0,0,0,0,0,0,0, - 0,0,0,0,-10,0,0,0,0,-414, - 0,0,0,-330,0,0,0,0,0,-404, - 0,0,0,-361,0,0,0,0,-449,0, + 0,0,0,0,0,0,0,-418,0,0, + 0,0,-439,0,0,0,0,0,0,-419, + 0,0,-153,0,0,-421,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -103,-238,0,0,0,0,-191,-373,0,0, + -487,0,-426,-281,0,0,0,0,0,0, + 0,0,0,0,-253,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-332,-453,0, + 0,0,0,0,0,0,-430,0,0,0, + 0,-254,0,0,0,-309,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -454,0,0,0,-200,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-5,0, - 0,0,-18,0,-316,0,0,0,0,0, - 0,0,-386,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-340,-256,0, + 0,0,0,-434,0,0,0,0,-255,0, + 0,0,-73,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -446,0,0,0,0,-280,0,-196,-447,0, + -338,0,0,0,0,0,0,0,0,0, + 0,0,0,-10,0,0,0,0,-414,0, + 0,0,-330,0,0,0,0,0,-404,0, + 0,0,-361,0,0,0,0,-449,0,0, + 0,0,0,0,0,0,0,0,0,-103, + -238,0,0,0,0,-191,-373,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-182,0,0,0,0,-33, - 0,-463,0,0,0,0,0,-469,-233,-234, - 0,0,0,0,-465,0,0,0,0,-484, - -488,0,-133,0,0,0,0,0,0,0, - 0,0,0,-512,0,0,0,0,-147,-121, - 0,0,0,0,0,0,0,0,0,-489, - 0,0,0,0,-278,0,0,0,0,0, - -494,0,0,-315,-157,0,0,0,0,0, + 0,0,0,0,0,0,-332,-453,0,0, + 0,0,0,0,0,0,0,0,0,-454, + 0,0,0,-200,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-5,0,0, + 0,-18,0,-316,0,0,0,0,0,0, + 0,-386,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-340,-256,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-257,0,0,0,0,0,0,0,0, + 0,0,0,-182,0,0,0,0,-33,0, + -463,0,0,0,0,0,-469,-233,-234,0, + 0,0,0,-465,0,0,0,0,-484,-488, + 0,-133,0,0,0,0,0,0,0,0, + 0,0,-512,0,0,0,0,-147,-121,0, + 0,0,0,0,0,0,0,0,-489,0, + 0,0,0,-278,0,0,0,0,0,-494, + 0,0,-315,-157,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-370,0,0,0,0,0,0, - -385,-502,-456,-399,0,0,0,0,0,0, - 0,0,0,0,0,0,-193,-213,-219,0, - 0,0,0,0,0,0,0,0,0,-503, - -420,0,0,0,0,-210,0,0,-285,0, - 0,0,0,0,0,0,0,0,-407,0, - -511,-521,0,0,0,0,0,-20,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,0,-422,0,0,-395,0,-483, - 0,0,0,-214,0,-526,0,0,0,0, + -257,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-470,0,0,0,0, - 0,-457,0,0,0,0,-455,0,0,0, + 0,0,-370,0,0,0,0,0,0,-385, + -502,-456,-399,0,0,0,0,0,0,0, + 0,0,0,0,0,-193,-213,-219,0,0, + 0,0,0,0,0,0,0,0,-503,-420, + 0,0,0,0,-210,0,0,-285,0,0, + 0,0,0,0,0,0,0,-407,0,-511, + -521,0,0,0,0,0,-20,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-62,0,0,0,0,0,-22,0, + 0,0,0,-415,0,0,0,0,0,0, + 0,0,0,-422,0,0,-395,0,-483,0, + 0,0,-214,0,-526,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-228,-105,0,0,0,0,0,0, - 0,0,0,0,0,-493,-223,0,-279,0, - 0,-244,0,0,0,0,-318,0,-529,0, - 0,0,0,0,0,0,0,0,-183,0, - 0,-374,-286,0,-288,0,0,0,0,0, - 0,0,-495,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-375, + 0,0,0,0,-470,0,0,0,0,0, + -457,0,0,0,0,-455,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-62,0,0,0,0,0,-22,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-287,0,-311,0,0,0,0, + 0,-228,-105,0,0,0,0,0,0,0, + 0,0,0,0,-493,-223,0,-279,0,0, + -244,0,0,0,0,-318,0,-529,0,0, + 0,0,0,0,0,0,0,-183,0,0, + -374,-286,0,-288,0,0,0,0,0,0, + 0,-495,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-375,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-26,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-497,0,0, 0,0,0,0,0,0,0,0,0,0, - -437,-314,0,0,0,0,0,0,-505,0, - 0,0,0,-516,-499,-438,0,0,0,-117, - 0,0,0,0,0,-481,0,0,0,0, - 0,0,0,-289,-296,-199,0,0,0,-298, - 0,-317,0,0,0,0,0,0,0,0, + 0,0,-287,0,-311,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-532,0, - 0,0,0,0,-222,-390,-432,0,0,0, + 0,0,-26,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-497,0,0,0, + 0,0,0,0,0,0,0,0,0,-437, + -314,0,0,0,0,0,0,-505,0,0, + 0,0,-516,-499,-438,0,0,0,-117,0, + 0,0,0,0,-481,0,0,0,0,0, + 0,0,-289,-296,-199,0,0,0,-298,0, + -317,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-517,0,0,0,0,0,0,0,0, - -294,-506,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-532,0,0, + 0,0,0,-222,-390,-432,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-381,-538,0,0,-275,0,0,0, + -517,0,0,0,0,0,0,0,0,-294, + -506,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-410,0,-243,0, - 0,-382,0,0,0,-1,0,0,0,0, - 0,0,0,0,0,0,0,0,-319,0, + 0,-381,-538,0,0,-275,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -36,0,0,0,0,-44,0,0,0,0, - 0,0,0,0,0,0,0,0,-518,0, - 0,0,0,0,0,0,0,0,0,-156, - 0,0,0,0,0,-325,-442,-335,-428,0, - 0,0,0,0,0,-504,0,0,0,0, + 0,0,0,0,0,-410,0,-243,0,0, + -382,0,0,0,-1,0,0,0,0,0, + 0,0,0,0,0,0,0,-319,0,0, + 0,0,0,0,0,0,0,0,0,-36, + 0,0,0,0,-44,0,0,0,0,0, + 0,0,0,0,0,0,0,-518,0,0, + 0,0,0,0,0,0,0,0,-156,0, + 0,0,0,0,-325,-442,-335,-428,0,0, + 0,0,0,0,-504,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-431,0,0,0,0,0, + 0,0,0,-431,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-247,0,0,0,0,0,0,0,0, + -247,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-515,0,0,-248,0,0,0, - -429,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-85,0, - 0,0,0,-112,0,0,0,0,0,0, - 0,0,0,0,0,0,-531,0,0,0, - 0,-158,0,0,0,0,0,0,0,0, + 0,0,-515,0,0,-248,0,0,0,-429, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-496,0,0,0,0,0,0, - 0,0,-45,0,0,0,0,-433,0,0, - -339,0,0,0,0,-123,0,0,-443,0, - -378,0,0,0,0,0,0,0,-398,0, - 0,0,0,0,0,0,0,0,-66,0, - 0,0,0,-283,0,0,0,0,0,0, - -444,0,0,0,0,-412,-441,0,0,0, + 0,0,0,0,0,0,0,-85,0,0, + 0,0,-112,0,0,0,0,0,0,0, + 0,0,0,0,0,-531,0,0,0,0, + -158,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -440,0,0,0,0,-125,0,0,0,0, - 0,0,0,0,-450,-458,0,0,0,0, - 0,0,0,0,0,0,0,0,-460,0, - 0,0,0,-391,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-523, + 0,0,-496,0,0,0,0,0,0,0, + 0,-45,0,0,0,0,-433,0,0,-339, + 0,0,0,0,-123,0,0,-443,0,-378, + 0,0,0,0,0,0,0,-398,0,0, + 0,0,0,0,0,0,0,-66,0,0, + 0,0,-283,0,0,0,0,0,0,-444, + 0,0,0,0,-412,-441,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-440, + 0,0,0,0,-125,0,0,0,0,0, + 0,0,0,-450,-458,0,0,0,0,0, + 0,0,0,0,0,0,0,-460,0,0, + 0,0,-391,0,0,0,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,-231,0,0,0,-462,0,-464,-445,0, - 0,-474,0,0,-475,0,0,-476,0,0, + -231,0,0,0,-462,0,-464,-445,0,0, + -474,0,0,-475,0,0,-476,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,0,0,0,0,0,0,0,0, - 0,-249,0,0,0,0,0,0,0,0, + -477,0,0,0,0,0,0,0,0,0, + -249,0,0,0,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, + 0,0,0,0,-250,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-478,0,-251, - 0,0,0,-490,0,0,0,0,0,0, + 0,0,0,0,0,0,-478,0,-251,0, + 0,0,-490,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-482,0,-492,-507,0,-528,0,0,0, + -482,0,-492,-507,0,-528,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-159,0,0,0,0,0,0,0,0, + -159,0,0,0,0,0,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,-160,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-161,0,0,0,0, + 0,0,0,0,-161,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-162,0,0, + 0,0,0,0,0,0,-162,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-163, + 0,0,0,0,0,0,0,0,-163,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-164,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,0, - 0,0,0,-165,0,0,0,0,0,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,-236,0,0,0,0, + 0,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,0,-245,0,0, + 0,0,0,0,0,0,-245,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-246, + 0,0,0,0,0,0,0,0,-246,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-326,0,0,0,0,0,0,0,0, + -326,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-408,0,0,0,-491,0,0, + 0,0,-408,0,0,0,-491,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-8,-425,0,-509,0, - 0,-473,0,0,0,-510,-122,-11,-479,0, - 0,0,0,0,0,0,0,0,0,-524, - -530,0,0,-534,0,0,0,0,0,0, - 0,0,0,0,0,0,-522,0,0,0, + 0,0,0,0,-8,-425,0,-509,0,0, + -473,0,0,0,-510,-122,-11,-479,0,0, + 0,0,0,0,0,0,0,0,-524,-530, + 0,0,-534,0,0,0,0,0,0,0, + 0,0,0,0,0,-522,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-480,-82,0,-508,0,0, - 0,0,0,0,0,0,0,-533,0,0, - 0,0,0,0,0,0,0,0,0,-535, - 0,0,0,0,0,-485,0,0,0,0, - 0,0,0,0,-387,0,-83,0,0,0, + 0,0,0,-480,-82,0,-508,0,0,0, + 0,0,0,0,0,0,-533,0,0,0, + 0,0,0,0,0,0,0,0,-535,0, + 0,0,0,0,-485,0,0,0,0,0, + 0,0,0,-387,0,-83,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-297,0,0,0,0,0,0, + 0,0,-297,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-406,0,0,0,0,0,0,0, + 0,-406,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-486,0, + 0,0,0,0,0,0,0,-486,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-108, 0,0,0,0,0,0,0,0,0,0, - -108,0,0,0,0,0,0,0,0,0, - 0,0,0,-459,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-23,0, + 0,0,-459,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-23,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-229,0,0,0,0,-413,0, + 0,0,-229,0,0,0,0,-413,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-91,0,0,0,0, - 0,0,0,0,-96,0,0,0,0,0, + 0,0,0,0,-91,0,0,0,0,0, + 0,0,0,-96,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-136, 0,0,0,0,0,0,0,0,0,0, - -136,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-230,0,-137,0,0,0,0, + 0,0,-230,0,-137,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-6,0,0,0,0,0,0,0, - 0,0,0,0,0,-388,0,0,0,0, - 0,0,0,0,-99,0,0,0,0,0, - -126,0,0,0,0,-513,-498,0,0,0, - 0,0,-186,0,0,0,-331,0,0,0, + 0,-6,0,0,0,0,0,0,0,0, + 0,0,0,0,-388,0,0,0,0,0, + 0,0,0,-99,0,0,0,0,0,-126, + 0,0,0,0,-513,-498,0,0,0,0, + 0,-186,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, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-337,0,0,0,0,0,-461,0,0, - 0,0,0,0,0,0,-397,0,0,0, - -436,0,0,0,0,0,0,0,0,0, - 0,-471,0,0,0,0,0,0,-472,0, + -337,0,0,0,0,0,-461,0,0,0, + 0,0,0,0,0,-397,0,0,0,-436, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-155,0,0, - 0,0,-226,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-239,0,0,0, + -471,0,0,0,0,0,0,-472,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-155,0,0,0, + 0,-226,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-239,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -423,0,0,0,0,-424,0,0,0,0, - -427,0,0,0,0,0,-525,0,0,-389, - 0,0,0,0,-409,-539,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-423, + 0,0,0,0,-424,0,0,0,0,-427, + 0,0,0,0,0,-525,0,0,-389,0, + 0,0,0,-409,-539,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -545,7 +545,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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; @@ -557,550 +557,550 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final static char baseAction[] = { 174,4,136,83,83,32,32,67,67,38, 38,40,40,174,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,116,116,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, - 29,29,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,30,145, - 145,97,97,178,178,92,200,200,68,68, - 68,68,68,68,68,68,68,69,69,69, - 66,66,56,56,179,179,70,70,70,104, - 104,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,105,105, - 103,103,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,106,77,77,78,79,52, - 47,156,156,53,51,86,86,157,157,146, - 146,123,124,124,125,82,82,158,158,63, - 63,63,60,60,59,64,64,80,80,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,107,107, - 107,109,109,108,108,201,201,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,111,110,110,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,113,112,112, - 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,116,116,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,29, + 29,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,30,145,145, + 97,97,178,178,92,200,200,68,68,68, + 68,68,68,68,68,68,69,69,69,66, + 66,56,56,179,179,70,70,70,104,104, + 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,105,105,103, + 103,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,106,77,77,78,79,52,47, + 156,156,53,51,86,86,157,157,146,146, + 123,124,124,125,82,82,158,158,63,63, + 63,60,60,59,64,64,80,80,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,107,107,107, + 109,109,108,108,201,201,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,111,110,110,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,113,112,112,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, - 75,81,81,173,173,132,132,133,133,133, - 133,133,133,3,134,134,131,131,114,114, - 85,76,74,161,161,115,115,197,197,197, - 135,135,126,126,198,198,1132,36,1955,1937, - 1115,4727,28,31,32,721,671,27,29,1930, - 26,24,51,1550,107,77,78,109,245,1584, - 1593,1585,1670,1628,1672,1671,1404,1713,1444,1707, - 274,1714,1715,144,595,36,283,159,145,1487, - 36,799,33,3511,3591,28,31,32,721,671, - 340,29,1194,2292,3250,36,799,33,233,3620, - 28,31,32,721,671,27,29,1535,26,24, - 51,1550,107,77,78,109,943,1584,1593,1585, - 1670,1628,2041,236,231,232,1030,36,1316,1543, - 595,36,665,389,275,298,2041,1376,320,1322, - 322,501,315,857,1933,2929,675,157,36,454, - 1933,3596,4723,243,246,249,252,1175,2850,353, - 50,527,1726,2401,274,332,1218,1369,1836,1036, - 791,767,345,1498,1410,350,1834,157,36,280, - 528,1851,1280,2444,2501,2933,3168,3259,4549,2403, - 36,799,33,2929,3620,28,31,32,721,671, - 27,29,1535,26,24,51,1550,107,77,78, - 109,344,1584,1593,1585,1670,1628,1672,1671,2057, - 1713,1532,1707,2110,1714,1715,144,499,276,1457, - 518,145,362,461,3029,1373,1525,2385,36,278, - 595,1306,1271,35,519,2403,36,799,33,2929, - 3620,28,31,32,721,671,27,29,1535,26, - 24,51,1550,107,77,78,109,344,1584,1593, - 1585,1670,1628,1672,1671,3274,1713,1758,1707,2540, - 1714,1715,144,2929,1455,448,518,145,2226,288, - 3029,595,36,1586,1568,595,36,1271,277,1577, - 519,344,3436,514,1578,36,799,33,1862,4772, - 28,31,32,721,671,58,29,447,1750,1756, - 1361,3129,1842,1722,1442,2403,36,799,33,2929, - 3620,28,31,32,721,671,27,29,1535,26, - 24,51,1550,107,77,78,109,344,1584,1593, - 1585,1670,1628,1672,1671,1254,1713,1338,1707,514, - 1714,1715,144,2157,36,278,518,145,2147,675, - 3029,1245,2817,1457,3773,869,1765,595,1836,1722, - 519,2683,36,799,33,2929,3620,28,31,32, - 721,671,27,29,1535,26,24,51,1550,107, - 77,78,109,344,1584,1593,1585,1670,1628,1672, - 1671,2231,1713,1808,1707,1143,1714,1715,144,313, - 391,428,518,145,1950,675,3029,2654,1137,4787, - 4605,595,36,665,389,183,519,325,42,514, - 869,161,2929,62,1739,36,799,33,595,3629, - 42,31,32,721,671,3557,1783,439,1601,1722, - 344,2751,36,799,33,453,3620,28,31,32, - 721,671,27,29,1535,26,24,51,1550,107, - 77,78,109,3029,1584,1593,1585,1670,1628,1672, - 1671,59,1713,1894,1707,515,1714,1715,144,289, - 1806,3127,380,145,2473,36,799,33,3626,3620, - 28,31,32,721,671,27,29,1535,26,24, - 51,1550,107,77,78,109,3198,1584,1593,1585, - 1670,1628,1672,1671,593,1713,849,1707,616,1714, - 1715,144,524,1976,3127,380,145,4417,3426,3250, - 36,799,33,2504,3620,28,31,32,721,671, - 27,29,1535,26,24,51,1550,107,77,78, - 109,1664,1584,1593,1585,1670,1628,1672,1671,75, - 1713,1243,1707,1705,1714,1757,165,42,1950,386, - 2182,3719,430,4787,2546,36,799,33,1444,3620, - 28,31,32,721,671,27,29,1535,26,24, - 51,1550,107,77,78,109,2504,1584,1593,1585, - 1670,1628,1672,1671,42,1713,1869,1707,4596,1714, - 1715,144,387,2182,3127,380,145,595,36,1271, - 279,424,1883,2996,36,799,33,3487,3620,28, - 31,32,721,671,27,29,1535,26,24,51, - 1550,107,77,78,109,390,1584,1593,1585,1670, - 1628,1672,1671,42,1713,2022,1707,689,1714,1715, - 144,2157,36,281,159,145,3250,36,799,33, - 3198,3620,28,31,32,721,671,27,29,1535, - 26,24,51,1550,107,77,78,109,2313,1584, - 1593,1585,1670,1628,1672,1671,42,1713,1523,1707, - 1452,2237,378,2182,2996,36,799,33,779,3620, - 28,31,32,721,671,27,29,1535,26,24, - 51,1550,107,77,78,109,2453,1584,1593,1585, - 1670,1628,1672,1671,2660,1713,431,1707,1124,1714, - 1715,144,595,36,294,374,145,1730,36,799, - 33,2153,4772,28,31,32,721,671,57,29, - 595,36,665,389,2996,36,799,33,1851,3620, - 28,31,32,721,671,27,29,1535,26,24, - 51,1550,107,77,78,109,1448,1584,1593,1585, - 1670,1628,1672,1671,50,1713,419,1707,1119,1714, - 1715,144,1190,1036,863,374,145,1523,925,2996, - 36,799,33,422,3620,28,31,32,721,671, - 27,29,1535,26,24,51,1550,107,77,78, - 109,373,1584,1593,1585,1670,1628,1672,1671,2244, - 1713,2045,1707,626,1714,1715,144,1748,1929,524, - 374,145,2820,36,799,33,1523,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,109,1523,1584,1593,1585,1670,1628, - 1672,1671,326,1713,2326,1707,61,1714,1757,165, - 2468,372,2615,36,799,33,2459,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,109,868,1584,1593,1585,1670,1628, - 1672,1671,1852,1713,2123,1707,2445,1714,1715,144, - 3655,2332,943,143,145,328,370,595,36,2820, - 2996,36,799,33,2059,3620,28,31,32,721, - 671,27,29,1535,26,24,51,1550,107,77, - 78,109,222,1584,1593,1585,1670,1628,1672,1671, - 354,1713,2437,1707,675,1714,1715,144,1621,4705, - 2512,156,145,2996,36,799,33,2514,3620,28, - 31,32,721,671,27,29,1535,26,24,51, - 1550,107,77,78,109,66,1584,1593,1585,1670, - 1628,1672,1671,42,1713,2391,1707,745,1714,1715, - 144,595,2758,1110,155,145,2996,36,799,33, - 2604,3620,28,31,32,721,671,27,29,1535, - 26,24,51,1550,107,77,78,109,66,1584, - 1593,1585,1670,1628,1672,1671,42,1713,355,1707, - 825,1714,1715,144,418,1551,2324,154,145,2996, - 36,799,33,327,3620,28,31,32,721,671, - 27,29,1535,26,24,51,1550,107,77,78, - 109,3309,1584,1593,1585,1670,1628,1672,1671,94, - 1713,448,1707,42,1714,1715,144,3030,1790,320, - 153,145,2996,36,799,33,2268,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,109,2439,1584,1593,1585,1670,1628, - 1672,1671,42,1713,320,1707,4317,1714,1715,144, - 1446,153,1574,152,145,2996,36,799,33,3128, - 3620,28,31,32,721,671,27,29,1535,26, - 24,51,1550,107,77,78,109,3204,1584,1593, - 1585,1670,1628,1672,1671,42,1713,1393,1707,3786, - 1714,1715,144,1751,1287,1270,151,145,2996,36, - 799,33,1482,3620,28,31,32,721,671,27, - 29,1535,26,24,51,1550,107,77,78,109, - 1267,1584,1593,1585,1670,1628,1672,1671,42,1713, - 1894,1707,3846,1714,1715,144,2464,1253,1951,150, - 145,2996,36,799,33,2133,3620,28,31,32, - 721,671,27,29,1535,26,24,51,1550,107, - 77,78,109,2373,1584,1593,1585,1670,1628,1672, - 1671,382,1713,331,1707,675,1714,1715,144,2318, - 4711,1280,149,145,2996,36,799,33,2518,3620, - 28,31,32,721,671,27,29,1535,26,24, - 51,1550,107,77,78,109,381,1584,1593,1585, - 1670,1628,1672,1671,42,1713,233,1707,667,1714, - 1715,144,2463,2123,1567,148,145,2996,36,799, - 33,2471,3620,28,31,32,721,671,27,29, - 1535,26,24,51,1550,107,77,78,109,494, - 1584,1593,1585,1670,1628,1672,1671,581,1713,929, - 1707,304,1714,1715,144,1103,2052,2230,147,145, - 2996,36,799,33,2527,3620,28,31,32,721, - 671,27,29,1535,26,24,51,1550,107,77, - 78,109,2531,1584,1593,1585,1670,1628,1672,1671, - 42,1713,2537,1707,2819,1714,1715,144,2539,2123, - 2535,146,145,2996,36,799,33,3547,3620,28, - 31,32,721,671,27,29,1535,26,24,51, - 1550,107,77,78,109,3472,1584,1593,1585,1670, - 1628,1672,1671,588,1713,762,1707,303,1714,1715, - 144,1773,2123,1846,160,145,2996,36,799,33, - 2209,3620,28,31,32,721,671,27,29,1535, - 26,24,51,1550,107,77,78,109,1857,1584, - 1593,1585,1670,1628,1672,1671,1892,1713,1983,1707, - 300,1714,1715,144,2132,2217,2285,141,145,3126, - 36,799,33,2461,3620,28,31,32,721,671, - 27,29,1535,26,24,51,1550,107,77,78, - 109,1968,1584,1593,1585,1670,1628,1672,1671,1933, - 1713,2139,1707,405,1714,1715,144,2587,2141,1933, - 190,145,3250,36,799,33,2123,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,109,1116,1584,1593,1585,1670,1628, - 1672,1671,42,1713,1845,1707,1143,1714,1757,165, - 3250,36,799,33,299,3620,28,31,32,721, - 671,27,29,1535,26,24,51,1550,107,77, - 78,109,2877,1584,1593,1585,1670,1628,1672,1671, - 1238,1713,460,1707,3430,1714,1757,165,1767,36, - 799,33,327,1736,1972,31,32,721,671,2226, - 3250,36,799,33,293,3620,28,31,32,721, - 671,27,29,1535,26,24,51,1550,107,77, - 78,109,523,1584,1593,1585,1670,1628,1672,1671, - 42,1713,1523,1707,1143,1714,1757,165,3250,36, - 799,33,2707,3620,28,31,32,721,671,27, - 29,1535,26,24,51,1550,107,77,78,109, - 3826,1584,1593,1585,1670,1628,1672,1671,927,1713, - 1471,1707,3313,1714,1757,165,1767,36,799,33, - 2160,1444,41,31,32,721,671,2544,3310,36, - 799,33,423,3620,28,31,32,721,671,27, - 29,1535,26,24,51,1550,107,77,78,109, - 216,1584,1593,1585,1670,1628,1672,1671,42,1713, - 2129,1707,808,1714,1757,165,3250,36,799,33, - 426,3620,28,31,32,721,671,27,29,1535, - 26,24,51,1550,107,77,78,109,305,1584, - 1593,1585,1670,1628,1672,1671,2571,1713,403,2220, - 1459,36,799,33,1758,4569,28,31,32,721, - 671,27,29,2573,512,444,3250,36,799,33, - 3737,3620,28,31,32,721,671,27,29,1535, - 26,24,51,1550,107,77,78,109,2591,1584, - 1593,1585,1670,1628,1672,1671,88,2094,3250,36, - 799,33,2574,3620,28,31,32,721,671,27, - 29,1535,26,24,51,1550,107,77,78,109, - 1862,1584,1593,1585,1670,1628,1672,2143,1753,36, - 799,33,3253,3809,28,31,32,721,671,340, - 29,1272,36,799,33,3511,3591,28,31,32, - 721,671,340,29,1767,36,799,33,1369,1836, - 3486,31,32,721,671,2575,1496,36,1887,33, - 3253,3809,28,31,32,721,671,340,29,42, - 2610,2123,1081,2380,1765,240,333,320,1322,322, - 2466,315,857,595,36,1271,282,240,1862,42, - 320,1322,322,2418,315,857,595,36,665,389, - 314,595,36,665,389,1030,36,397,2652,180, - 1081,353,2637,1877,333,320,1322,322,3200,315, - 857,3010,392,428,345,1498,1410,350,1956,1081, - 50,1262,1869,4499,2568,50,233,1956,1142,1036, - 2260,307,311,735,1036,2666,2652,1593,36,799, - 33,3253,3591,28,31,32,721,671,340,29, - 1843,241,231,232,1444,595,36,665,389,323, - 288,3250,36,799,33,1079,3620,28,31,32, - 721,671,27,29,1535,26,24,51,1550,107, - 77,78,109,233,1584,1593,1585,1670,2051,274, - 394,428,3366,1842,2673,2677,320,1322,322,1023, - 315,857,1023,2705,2709,1879,367,95,245,231, - 232,418,420,1886,1023,1259,36,799,33,2507, - 4569,28,31,32,721,671,60,29,1030,36, - 397,3250,36,799,33,2270,3620,28,31,32, - 721,671,27,29,1535,26,24,51,1550,107, - 77,78,109,341,1584,1593,1585,1670,2058,1507, - 36,799,33,3111,3591,28,31,32,721,671, - 340,29,1626,36,799,33,1444,3809,28,31, - 32,721,671,340,29,70,2393,3250,36,799, - 33,352,3620,28,31,32,721,671,27,29, - 1535,26,24,51,1550,107,77,78,109,2711, - 1584,1593,1585,1998,595,36,665,389,320,1322, - 322,175,315,857,675,324,1081,2643,357,3902, - 334,320,1322,322,532,318,857,532,1885,353, - 356,2507,2580,297,766,157,36,454,432,532, - 4723,2414,345,1498,1410,350,3250,36,799,33, - 3054,3620,28,31,32,721,671,27,29,1535, - 26,24,51,1550,107,77,78,109,2374,1584, - 1593,1585,2006,3250,36,799,33,1862,3620,28, - 31,32,721,671,27,29,1535,26,24,51, - 1550,107,77,78,109,2238,1584,1593,1585,2008, - 3250,36,799,33,1956,3620,28,31,32,721, - 671,27,29,1535,26,24,51,1550,107,77, - 78,109,2741,1584,1593,1585,2014,262,1494,1599, - 2745,536,1259,36,799,33,498,4569,28,31, - 32,721,671,59,29,2041,991,294,71,229, - 940,36,665,389,505,36,280,157,636,4473, - 595,36,1271,2812,1,181,2441,868,536,2227, - 36,1271,277,204,216,4683,203,213,214,215, - 217,2204,2393,170,274,1087,229,1956,2290,393, - 428,3315,1143,169,157,184,168,171,172,173, - 174,175,181,2441,868,451,1750,1756,1933,1743, - 204,216,4683,203,213,214,215,217,157,379, - 170,595,3011,1271,75,1956,201,3701,329,336, - 169,182,185,168,171,172,173,174,175,3370, - 36,665,389,1368,3384,1887,2985,2226,2899,2929, - 2466,1327,238,1875,36,799,33,3444,3809,28, - 31,32,721,671,340,29,73,2401,1933,3250, - 36,799,33,274,3620,28,31,32,721,671, - 27,29,1535,26,24,51,1550,107,77,78, - 109,4284,1584,1593,2016,595,36,665,389,1081, - 2878,233,2774,333,2929,233,2854,1081,2737,1956, - 1956,334,320,1322,322,2587,316,857,43,1740, - 2648,2649,344,2041,36,294,236,231,232,50, - 248,231,232,353,2591,3412,361,275,47,1963, - 1947,4262,25,3485,2929,2130,347,1498,1410,350, - 2145,52,3799,1793,1799,2246,243,246,249,252, - 1175,2395,2401,1087,1956,3190,36,799,33,1218, - 3620,28,31,32,721,671,27,29,1535,26, - 24,51,1550,87,77,78,2444,2501,2933,3168, - 3259,4549,3250,36,799,33,351,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,109,349,1584,1593,2023,536,353, - 2985,1887,2308,1942,1947,2929,2466,2929,2929,1327, - 523,361,345,1498,1410,350,229,42,42,1444, - 343,3149,2458,2401,157,344,2401,2915,1793,1799, - 2780,436,181,2441,868,536,595,36,294,1444, - 204,216,4683,203,213,214,215,217,4024,2334, - 170,2781,2457,229,3299,1081,1254,3010,1584,333, - 169,157,2724,168,171,172,173,174,175,181, - 2441,868,45,1740,443,1723,457,204,216,4683, - 203,213,214,215,217,523,285,170,2118,536, - 2775,2943,361,4791,42,361,2647,169,2767,179, - 168,171,172,173,174,175,383,229,3799,1793, - 1799,3827,1793,1799,2226,157,595,36,665,389, - 233,5452,610,181,2441,868,536,2227,36,1271, - 3040,204,216,4683,203,213,214,215,217,5452, - 2226,170,2066,240,229,251,231,232,2466,1620, - 435,169,157,177,168,171,172,173,174,175, - 181,2441,868,42,1523,5452,5452,2929,204,216, - 4683,203,213,214,215,217,697,2056,170,42, - 536,2935,42,2057,5452,344,1143,1956,169,2775, - 178,168,171,172,173,174,175,1081,229,1523, - 4288,333,2123,42,868,1599,157,961,3029,352, - 5452,233,157,784,181,2441,868,536,1912,70, - 377,2958,204,216,4683,203,213,214,215,217, - 2123,89,170,4521,103,229,254,231,232,868, - 199,5452,169,157,188,168,171,172,173,174, - 175,181,2441,868,42,377,1444,353,3533,204, - 216,4683,203,213,214,215,217,3315,198,170, - 345,1498,1410,350,334,36,665,389,3054,169, - 5452,3162,168,171,172,173,174,175,2498,36, - 799,33,3253,3591,28,31,32,721,671,340, - 29,675,1524,5452,335,336,4802,2466,50,595, - 36,665,389,5452,2580,871,675,1036,1000,536, - 240,4809,5452,286,375,2466,595,36,1271,3161, - 90,630,5452,103,42,2029,1344,229,3562,2929, - 42,2466,42,434,4415,157,3114,320,1322,322, - 5452,315,857,181,2441,868,1081,2401,5452,3289, - 334,204,216,4683,203,213,214,215,217,958, - 314,170,5452,536,1081,240,2123,2142,333,5452, - 2466,169,353,193,168,171,172,173,174,175, - 1081,229,1523,5452,334,347,1498,1410,350,157, - 5452,240,595,36,665,389,2466,181,2441,868, - 3446,307,311,735,407,204,216,4683,203,213, - 214,215,217,1599,1045,170,506,42,536,1081, - 72,1143,868,333,3890,169,433,187,168,171, - 172,173,174,175,1629,1079,229,42,526,2231, - 5452,2348,1599,1143,157,1081,1688,157,5452,333, - 2929,5452,181,2441,868,3412,2230,504,505,1956, - 204,216,4683,203,213,214,215,217,229,161, - 170,334,36,665,389,3315,769,36,665,389, - 169,2943,195,168,171,172,173,174,175,1523, - 5452,69,206,216,4683,205,213,214,215,217, - 1231,36,665,389,3315,50,1956,42,1956,2123, - 50,1143,331,336,1036,2084,1030,36,397,1036, - 48,207,209,211,295,296,5452,566,2535,868, - 218,208,210,1262,50,42,3781,157,54,3005, - 88,3778,336,1036,2872,525,3915,202,5452,13, - 5452,4318,3250,36,799,33,5452,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,109,1933,1584,1963,3250,36,799, - 33,2123,3620,28,31,32,721,671,27,29, - 1535,26,24,51,1550,107,77,78,109,1898, - 1584,1965,5452,2929,1593,36,799,33,3253,3591, - 28,31,32,721,671,340,29,1933,5452,200, - 540,229,3250,36,799,33,3206,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,86,2123,206,216,4683,205,213, - 214,215,217,1027,36,665,389,98,42,5452, - 5452,1956,2579,320,1322,322,1986,315,857,42, - 2929,1956,5452,1143,207,209,211,295,296,1956, - 566,5452,4347,218,208,210,314,50,229,334, - 36,665,389,53,2231,5452,1036,48,1143,157, - 99,42,568,452,4318,1143,1956,1956,3918,5452, - 2138,3841,206,216,4683,205,213,214,215,217, - 5452,42,5452,50,161,4312,2074,308,311,735, - 2929,157,1036,723,5452,1956,1956,5452,91,3912, - 3942,207,209,211,295,296,2535,566,229,1956, - 218,208,210,5452,1800,36,1887,33,3253,3591, - 28,31,32,721,671,340,29,4022,3286,2231, - 2123,4318,206,216,4683,205,213,214,215,217, - 5452,3323,595,36,665,389,42,5452,1956,42, - 3398,3791,42,1143,5452,1956,4378,5452,1956,5452, - 5452,207,209,211,295,296,5452,566,223,5452, - 218,208,210,320,1322,322,50,315,857,157, - 3425,5452,1956,5452,5452,1036,593,68,3998,2656, - 67,4318,3250,36,799,33,1142,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,109,66,1971,3250,36,799,33, - 5452,3620,28,31,32,721,671,27,29,1535, - 26,24,51,1550,107,77,78,109,1956,1973, - 3250,36,799,33,1956,3620,28,31,32,721, - 671,27,29,1535,26,24,51,1550,107,77, - 78,109,42,1980,2232,42,3024,42,579,2582, - 65,2594,5452,5452,5452,5452,3502,5452,5452,419, - 420,1886,3250,1306,799,1844,5452,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,85,3250,36,799,33,5452,3620, - 28,31,32,721,671,27,29,1535,26,24, - 51,1550,107,77,78,84,3250,36,799,33, - 5452,3620,28,31,32,721,671,27,29,1535, - 26,24,51,1550,107,77,78,83,3250,36, - 799,33,5452,3620,28,31,32,721,671,27, - 29,1535,26,24,51,1550,107,77,78,82, - 3250,36,799,33,5452,3620,28,31,32,721, - 671,27,29,1535,26,24,51,1550,107,77, - 78,81,3250,36,799,33,5452,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,80,3250,36,799,33,5452,3620, - 28,31,32,721,671,27,29,1535,26,24, - 51,1550,107,77,78,79,3060,36,799,33, - 5452,3620,28,31,32,721,671,27,29,1535, - 26,24,51,1550,107,77,78,105,3250,36, - 799,33,5452,3620,28,31,32,721,671,27, - 29,1535,26,24,51,1550,107,77,78,111, - 3250,36,799,33,5452,3620,28,31,32,721, - 671,27,29,1535,26,24,51,1550,107,77, - 78,110,3250,36,799,33,5452,3620,28,31, - 32,721,671,27,29,1535,26,24,51,1550, - 107,77,78,108,3250,36,799,33,1956,3620, - 28,31,32,721,671,27,29,1535,26,24, - 51,1550,107,77,78,106,1810,2290,5452,1956, - 2929,536,1599,5452,5452,5452,1956,2029,1408,2231, - 3609,2929,2929,1143,5452,5452,5452,5452,229,3906, - 1956,1956,5452,5452,2123,5452,5452,157,5452,2401, - 229,56,5452,5452,5452,181,2441,2322,55,161, - 5452,1143,206,216,4683,205,213,214,215,217, - 5452,5452,4334,102,206,216,4683,205,213,214, - 215,217,194,196,3315,2231,2162,157,1599,1143, - 2929,207,209,211,295,296,163,566,1956,5452, - 520,208,210,207,209,211,295,296,229,566, - 2144,5452,219,208,210,161,42,5452,506,5452, - 1143,4025,336,5452,5452,2286,4309,2250,5452,2929, - 3534,2929,206,216,4683,205,213,214,215,217, - 5452,5452,530,5452,2338,5452,157,2401,2929,229, - 3315,5452,5452,5452,5452,3694,5452,5452,5452,503, - 505,207,209,211,295,296,229,566,5452,5452, - 521,208,210,206,216,4683,205,213,214,215, - 217,5452,4316,595,36,665,389,4027,336,5452, - 206,216,4683,205,213,214,215,217,4778,197, - 1801,5452,207,209,211,295,296,5452,566,1973, - 5452,306,208,210,2466,5452,506,50,5452,207, - 209,211,295,296,5452,566,1036,737,500,208, - 210,1626,36,799,33,4388,3809,28,31,32, - 721,671,340,29,1593,36,799,33,3253,3591, - 28,31,32,721,671,340,29,503,505,3417, - 36,665,389,1081,3384,5452,5452,4499,5452,5452, - 5452,5452,239,5452,42,5452,5452,5452,2929,595, - 36,665,389,5452,5452,1081,5452,5452,5452,334, - 320,1322,322,274,316,857,344,5452,2785,5452, - 5452,5452,5452,320,1322,322,1196,315,857,5452, - 2929,2471,5452,50,5452,1027,36,665,389,3029, - 5452,233,1036,2872,5452,5452,3051,5452,229,1922, - 5452,2428,36,799,33,2426,3591,28,31,32, - 721,671,340,29,5452,5452,237,231,232,50, - 5452,97,2015,408,4621,5452,5452,275,1036,48, - 5452,5452,5452,5452,42,5452,1302,5452,2929,404, - 2929,2471,1181,5452,5452,5452,244,247,250,253, - 1175,409,410,411,295,296,344,566,229,1218, - 317,871,322,1474,36,799,33,2388,3591,28, - 31,32,721,671,340,29,42,5452,1318,3029, - 2929,5452,2015,408,4621,334,36,665,389,1928, - 5452,1365,36,665,389,5452,2231,42,344,5452, - 1143,1143,5452,334,36,665,389,2060,36,665, - 389,409,410,411,295,296,5452,566,5452,50, - 5452,3029,317,871,322,50,161,157,1036,48, - 5452,510,5452,5452,1036,48,4330,50,1318,412, - 414,50,574,5452,5452,5452,1036,48,3146,5452, - 1036,3159,1027,36,665,389,5452,5452,2376,1034, - 931,5452,536,1098,630,5452,4656,334,36,665, - 389,334,36,665,389,5452,5452,5452,5452,5452, - 344,5452,334,36,665,389,50,5452,157,334, - 36,665,389,4331,5452,1036,3185,189,5452,412, - 415,50,5452,4534,5452,50,5452,5452,42,2840, - 1036,48,536,42,1036,48,50,536,5452,5452, - 5452,1034,5452,50,2694,1036,48,42,3226,5452, - 344,536,1036,48,5452,344,5452,5452,157,3419, - 5452,5452,5452,157,5452,5452,3512,3000,5452,344, - 5452,42,3579,3029,5452,536,42,157,3029,5452, - 536,42,191,2999,5452,536,3000,2323,3297,5452, - 42,2929,3029,344,2929,42,42,5452,344,2929, - 2929,157,3628,344,5452,5452,157,5452,5452,344, - 189,157,344,5452,5452,189,4534,344,344,531, - 189,4534,5452,5452,5452,5452,4534,5452,5452,5452, - 5452,5452,3029,5452,5452,3029,5452,5452,5452,5452, - 3029,3029,534,5452,5452,508,5452,5452,5452,5452, - 3855,535,5452,5452,5452,5452,5452,5452,3764,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,3856,5452,5452,5452,5452, - 3869,5452,5452,5452,5452,3908,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,4400,5452,0,502,4306, - 0,1,230,0,40,5467,0,40,5466,0, - 1,2517,0,944,1,0,40,1,5467,0, - 40,1,5466,0,1,2990,0,1,740,0, - 230,220,0,284,395,0,284,287,0,5687, - 242,0,5686,242,0,5791,242,0,5790,242, - 0,5714,242,0,5713,242,0,5712,242,0, - 5711,242,0,5710,242,0,5709,242,0,5708, - 242,0,5707,242,0,5725,242,0,5724,242, - 0,5723,242,0,5722,242,0,5721,242,0, - 5720,242,0,5719,242,0,5718,242,0,5717, - 242,0,5716,242,0,5715,242,0,40,242, - 5467,0,40,242,5466,0,5491,242,0,1173, - 388,0,5467,49,0,5466,49,0,1,332, - 0,39,740,0,39,5467,0,39,5466,0, - 455,1533,0,441,1576,0,1173,30,0,5464, - 1,0,1623,319,0,1,445,0,459,650, - 0,458,2049,0,36,34,0,48,38,0, - 230,221,0,502,1359,0,5491,1,230,0, - 40,1,230,0,230,417,0,1,2704,0, - 1,5725,0,1,5724,0,1,5723,0,1, - 5722,0,1,5721,0,1,5720,0,1,5719, - 0,1,5718,0,1,5717,0,1,5716,0, - 1,5715,0,5467,38,0,5466,38,0,44, - 5489,0,44,38,0,5464,384,0,5463,384, - 0,1,2475,0,1,2608,0,5462,406,0, - 5461,406,0,230,416,0,2763,127,0,5460, - 1,0,332,446,0,5458,1,0,5457,1, - 0,2180,92,0,33,35,0,40,740,0, - 5489,46,0,38,46,0,1,230,2323,0, - 5461,230,0,2356,230,0,5491,1,0,40, - 1,0,238,911,0,389,33,0,388,30, - 0,2763,129,0,2763,128,0,2701,230,0, - 10,12,0,1,93,0,8,10,12,0, - 5467,2,38,0,5466,2,38,0,5467,37, - 0,5466,37,0,3112,384,0,332,96,0, - 36,74,0,8,12,0,279,4319,0,186, - 3479,0 + 196,196,196,196,196,196,196,196,196,75, + 81,81,173,173,132,132,133,133,133,133, + 133,133,3,134,134,131,131,114,114,85, + 76,74,161,161,115,115,197,197,197,135, + 135,126,126,198,198,1119,35,1954,1936,1102, + 4726,27,30,31,720,670,26,28,1929,25, + 23,50,1549,106,76,77,108,242,1583,1592, + 1584,1669,1627,1671,1670,1456,1712,1943,1706,273, + 1713,1714,143,588,35,282,158,144,1472,35, + 798,32,3510,3590,27,30,31,720,670,339, + 28,1180,2262,3167,35,798,32,232,3619,27, + 30,31,720,670,26,28,1534,25,23,50, + 1549,106,76,77,108,675,1583,1592,1584,1669, + 1627,2040,235,230,231,1018,35,1315,1542,588, + 35,664,388,274,297,1428,1375,319,1321,321, + 2311,314,856,1349,2928,667,155,35,453,1349, + 3595,4722,242,245,248,251,1174,2849,352,49, + 526,1517,2400,273,758,1217,1353,1835,1035,790, + 1569,344,1497,1409,349,1833,155,35,279,527, + 1850,1279,2443,2500,2932,3167,3258,4548,2377,35, + 798,32,2928,3619,27,30,31,720,670,26, + 28,1534,25,23,50,1549,106,76,77,108, + 343,1583,1592,1584,1669,1627,1671,1670,1439,1712, + 1789,1706,2001,1713,1714,143,498,275,1456,517, + 144,361,460,3028,2047,1524,2436,35,277,588, + 1305,1270,34,518,2377,35,798,32,2928,3619, + 27,30,31,720,670,26,28,1534,25,23, + 50,1549,106,76,77,108,343,1583,1592,1584, + 1669,1627,1671,1670,3273,1712,1757,1706,2541,1713, + 1714,143,2928,1708,447,517,144,2225,287,3028, + 588,35,1585,1567,588,35,1270,276,2119,518, + 343,3435,513,1576,35,798,32,933,4771,27, + 30,31,720,670,57,28,446,1749,1755,1360, + 3128,1841,1721,1441,2377,35,798,32,2928,3619, + 27,30,31,720,670,26,28,1534,25,23, + 50,1549,106,76,77,108,343,1583,1592,1584, + 1669,1627,1671,1670,1240,1712,1471,1706,513,1713, + 1714,143,1959,35,277,517,144,2201,667,3028, + 1515,2816,1456,3772,868,1764,588,1835,1721,518, + 2653,35,798,32,2928,3619,27,30,31,720, + 670,26,28,1534,25,23,50,1549,106,76, + 77,108,343,1583,1592,1584,1669,1627,1671,1670, + 2122,1712,2136,1706,1142,1713,1714,143,312,390, + 427,517,144,1914,667,3028,988,1136,4786,4604, + 588,35,664,388,182,518,324,214,513,868, + 160,2928,61,1721,35,798,32,588,3628,41, + 30,31,720,670,3556,1782,438,1492,1721,343, + 2720,35,798,32,452,3619,27,30,31,720, + 670,26,28,1534,25,23,50,1549,106,76, + 77,108,3028,1583,1592,1584,1669,1627,1671,1670, + 59,1712,1893,1706,514,1713,1714,143,288,1613, + 3126,379,144,2446,35,798,32,3625,3619,27, + 30,31,720,670,26,28,1534,25,23,50, + 1549,106,76,77,108,3197,1583,1592,1584,1669, + 1627,1671,1670,1360,1712,839,1706,615,1713,1714, + 143,523,1954,3126,379,144,4416,3425,3167,35, + 798,32,2348,3619,27,30,31,720,670,26, + 28,1534,25,23,50,1549,106,76,77,108, + 1663,1583,1592,1584,1669,1627,1671,1670,1582,1712, + 1229,1706,1704,1713,1756,164,214,1914,385,2181, + 3718,429,4786,2518,35,798,32,1943,3619,27, + 30,31,720,670,26,28,1534,25,23,50, + 1549,106,76,77,108,2503,1583,1592,1584,1669, + 1627,1671,1670,214,1712,1668,1706,4595,1713,1714, + 143,386,2181,3126,379,144,588,35,1270,278, + 423,2431,2918,35,798,32,3486,3619,27,30, + 31,720,670,26,28,1534,25,23,50,1549, + 106,76,77,108,389,1583,1592,1584,1669,1627, + 1671,1670,214,1712,1458,1706,688,1713,1714,143, + 1959,35,280,158,144,3167,35,798,32,3197, + 3619,27,30,31,720,670,26,28,1534,25, + 23,50,1549,106,76,77,108,2224,1583,1592, + 1584,1669,1627,1671,1670,214,1712,1866,1706,1451, + 2236,377,2181,2918,35,798,32,778,3619,27, + 30,31,720,670,26,28,1534,25,23,50, + 1549,106,76,77,108,2452,1583,1592,1584,1669, + 1627,1671,1670,1838,1712,430,1706,1123,1713,1714, + 143,588,35,293,373,144,1712,35,798,32, + 2217,4771,27,30,31,720,670,56,28,588, + 35,664,388,2918,35,798,32,1850,3619,27, + 30,31,720,670,26,28,1534,25,23,50, + 1549,106,76,77,108,1432,1583,1592,1584,1669, + 1627,1671,1670,49,1712,414,1706,847,1713,1714, + 143,1491,1035,862,373,144,1866,924,2918,35, + 798,32,421,3619,27,30,31,720,670,26, + 28,1534,25,23,50,1549,106,76,77,108, + 372,1583,1592,1584,1669,1627,1671,1670,2299,1712, + 1787,1706,625,1713,1714,143,1747,1928,523,373, + 144,2860,35,798,32,1866,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,108,1866,1583,1592,1584,1669,1627,1671, + 1670,325,1712,1826,1706,60,1713,1756,164,2302, + 371,2586,35,798,32,2458,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,108,867,1583,1592,1584,1669,1627,1671, + 1670,1603,1712,1231,1706,2444,1713,1714,143,3654, + 2350,675,142,144,327,369,588,35,2819,2918, + 35,798,32,2058,3619,27,30,31,720,670, + 26,28,1534,25,23,50,1549,106,76,77, + 108,221,1583,1592,1584,1669,1627,1671,1670,353, + 1712,2411,1706,667,1713,1714,143,1707,4704,2422, + 155,144,2918,35,798,32,2487,3619,27,30, + 31,720,670,26,28,1534,25,23,50,1549, + 106,76,77,108,300,1583,1592,1584,1669,1627, + 1671,1670,214,1712,2009,1706,744,1713,1714,143, + 588,2757,1097,154,144,2918,35,798,32,2512, + 3619,27,30,31,720,670,26,28,1534,25, + 23,50,1549,106,76,77,108,300,1583,1592, + 1584,1669,1627,1671,1670,214,1712,354,1706,824, + 1713,1714,143,413,2098,2310,153,144,2918,35, + 798,32,323,3619,27,30,31,720,670,26, + 28,1534,25,23,50,1549,106,76,77,108, + 3308,1583,1592,1584,1669,1627,1671,1670,93,1712, + 447,1706,214,1713,1714,143,3029,1516,403,152, + 144,2918,35,798,32,2267,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,108,2438,1583,1592,1584,1669,1627,1671, + 1670,214,1712,403,1706,4316,1713,1714,143,1252, + 65,231,151,144,2918,35,798,32,3127,3619, + 27,30,31,720,670,26,28,1534,25,23, + 50,1549,106,76,77,108,3203,1583,1592,1584, + 1669,1627,1671,1670,214,1712,833,1706,3785,1713, + 1714,143,1745,317,1255,150,144,2918,35,798, + 32,1952,3619,27,30,31,720,670,26,28, + 1534,25,23,50,1549,106,76,77,108,1827, + 1583,1592,1584,1669,1627,1671,1670,214,1712,2029, + 1706,3845,1713,1714,143,2203,1387,145,149,144, + 2918,35,798,32,2216,3619,27,30,31,720, + 670,26,28,1534,25,23,50,1549,106,76, + 77,108,2294,1583,1592,1584,1669,1627,1671,1670, + 381,1712,1160,1706,667,1713,1714,143,2127,4710, + 1266,148,144,2918,35,798,32,2505,3619,27, + 30,31,720,670,26,28,1534,25,23,50, + 1549,106,76,77,108,380,1583,1592,1584,1669, + 1627,1671,1670,214,1712,575,1706,666,1713,1714, + 143,2279,1231,1550,147,144,2918,35,798,32, + 2295,3619,27,30,31,720,670,26,28,1534, + 25,23,50,1549,106,76,77,108,1942,1583, + 1592,1584,1669,1627,1671,1670,2306,1712,2371,1706, + 303,1713,1714,143,2416,1534,1955,146,144,2918, + 35,798,32,2441,3619,27,30,31,720,670, + 26,28,1534,25,23,50,1549,106,76,77, + 108,2491,1583,1592,1584,1669,1627,1671,1670,214, + 1712,2504,1706,2818,1713,1714,143,2510,1231,2511, + 145,144,2918,35,798,32,3459,3619,27,30, + 31,720,670,26,28,1534,25,23,50,1549, + 106,76,77,108,3385,1583,1592,1584,1669,1627, + 1671,1670,581,1712,753,1706,302,1713,1714,143, + 1234,1231,1653,159,144,2918,35,798,32,1755, + 3619,27,30,31,720,670,26,28,1534,25, + 23,50,1549,106,76,77,108,1377,1583,1592, + 1584,1669,1627,1671,1670,1828,1712,1958,1706,299, + 1713,1714,143,2020,2183,2175,140,144,3046,35, + 798,32,2179,3619,27,30,31,720,670,26, + 28,1534,25,23,50,1549,106,76,77,108, + 489,1583,1592,1584,1669,1627,1671,1670,1349,1712, + 2118,1706,404,1713,1714,143,42,2124,1349,189, + 144,3167,35,798,32,1231,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,108,1103,1583,1592,1584,1669,1627,1671, + 1670,214,1712,2023,1706,1142,1713,1756,164,3167, + 35,798,32,298,3619,27,30,31,720,670, + 26,28,1534,25,23,50,1549,106,76,77, + 108,2876,1583,1592,1584,1669,1627,1671,1670,1224, + 1712,459,1706,3429,1713,1756,164,1924,35,798, + 32,326,2435,1971,30,31,720,670,2225,3167, + 35,798,32,292,3619,27,30,31,720,670, + 26,28,1534,25,23,50,1549,106,76,77, + 108,522,1583,1592,1584,1669,1627,1671,1670,214, + 1712,1866,1706,1142,1713,1756,164,3167,35,798, + 32,2706,3619,27,30,31,720,670,26,28, + 1534,25,23,50,1549,106,76,77,108,3825, + 1583,1592,1584,1669,1627,1671,1670,926,1712,2516, + 1706,3312,1713,1756,164,1924,35,798,32,2468, + 1943,40,30,31,720,670,1272,3225,35,798, + 32,422,3619,27,30,31,720,670,26,28, + 1534,25,23,50,1549,106,76,77,108,386, + 1583,1592,1584,1669,1627,1671,1670,214,1712,2283, + 1706,807,1713,1756,164,3167,35,798,32,425, + 3619,27,30,31,720,670,26,28,1534,25, + 23,50,1549,106,76,77,108,304,1583,1592, + 1584,1669,1627,1671,1670,2470,1712,402,2219,1443, + 35,798,32,1757,4568,27,30,31,720,670, + 26,28,2507,511,443,3167,35,798,32,3736, + 3619,27,30,31,720,670,26,28,1534,25, + 23,50,1549,106,76,77,108,2650,1583,1592, + 1584,1669,1627,1671,1670,87,2093,3167,35,798, + 32,2581,3619,27,30,31,720,670,26,28, + 1534,25,23,50,1549,106,76,77,108,933, + 1583,1592,1584,1669,1627,1671,2142,1734,35,798, + 32,3252,3808,27,30,31,720,670,339,28, + 1258,35,798,32,3510,3590,27,30,31,720, + 670,339,28,1924,35,798,32,1353,1835,3485, + 30,31,720,670,2608,1480,35,1886,32,3252, + 3808,27,30,31,720,670,339,28,214,2609, + 1231,1080,2379,1746,237,332,319,1321,321,2465, + 314,856,588,35,1270,281,239,933,214,319, + 1321,321,2417,314,856,588,35,664,388,313, + 588,35,664,388,1018,35,396,2651,179,1080, + 352,2610,1876,332,319,1321,321,3199,314,856, + 3009,391,427,344,1497,1409,349,2101,1080,49, + 1247,1868,4498,2546,49,232,2101,1141,1035,2259, + 306,310,734,1035,2665,2651,1747,35,798,32, + 3252,3590,27,30,31,720,670,339,28,1842, + 240,230,231,1443,588,35,664,388,322,287, + 3167,35,798,32,1078,3619,27,30,31,720, + 670,26,28,1534,25,23,50,1549,106,76, + 77,108,232,1583,1592,1584,1669,2050,273,393, + 427,3365,1841,2644,2646,319,1321,321,2048,314, + 856,2048,2675,2676,1878,366,94,244,230,231, + 417,419,1885,2048,1244,35,798,32,2506,4568, + 27,30,31,720,670,59,28,1018,35,396, + 3167,35,798,32,2269,3619,27,30,31,720, + 670,26,28,1534,25,23,50,1549,106,76, + 77,108,340,1583,1592,1584,1669,2057,1506,35, + 798,32,3110,3590,27,30,31,720,670,339, + 28,2030,35,798,32,1943,3808,27,30,31, + 720,670,339,28,69,1922,3167,35,798,32, + 351,3619,27,30,31,720,670,26,28,1534, + 25,23,50,1549,106,76,77,108,2677,1583, + 1592,1584,1997,588,35,664,388,319,1321,321, + 173,314,856,667,323,1080,2547,356,3901,333, + 319,1321,321,531,317,856,531,1884,352,355, + 2506,1345,296,2552,155,35,453,431,531,4722, + 2413,344,1497,1409,349,3167,35,798,32,3053, + 3619,27,30,31,720,670,26,28,1534,25, + 23,50,1549,106,76,77,108,2614,1583,1592, + 1584,2005,3167,35,798,32,933,3619,27,30, + 31,720,670,26,28,1534,25,23,50,1549, + 106,76,77,108,2137,1583,1592,1584,2007,3167, + 35,798,32,2101,3619,27,30,31,720,670, + 26,28,1534,25,23,50,1549,106,76,77, + 108,2681,1583,1592,1584,2013,259,1493,1592,2682, + 535,1244,35,798,32,497,4568,27,30,31, + 720,670,58,28,1428,990,293,70,228,929, + 35,664,388,499,35,279,156,635,4472,588, + 35,1270,2811,1,180,2440,867,535,1571,35, + 1270,276,203,215,4682,202,212,213,214,216, + 2094,1922,169,273,1086,228,2101,2273,392,427, + 3314,1142,168,156,183,167,170,171,172,173, + 174,180,2440,867,450,1749,1755,1349,2636,203, + 215,4682,202,212,213,214,216,156,378,169, + 588,3010,1270,74,2101,200,3700,328,335,168, + 181,184,167,170,171,172,173,174,3283,35, + 664,388,1352,3383,1867,2984,2225,2898,2928,2465, + 1326,237,1856,35,798,32,3443,3808,27,30, + 31,720,670,339,28,72,2400,1349,3167,35, + 798,32,273,3619,27,30,31,720,670,26, + 28,1534,25,23,50,1549,106,76,77,108, + 4283,1583,1592,2015,588,35,664,388,1080,2743, + 232,2713,332,2928,232,2853,1080,1388,2101,2101, + 333,319,1321,321,42,315,856,42,1739,2686, + 2645,343,1428,35,293,235,230,231,49,247, + 230,231,352,2650,3411,360,274,46,2117,1840, + 4261,24,3484,2928,2129,346,1497,1409,349,2694, + 51,3798,1792,1798,2220,242,245,248,251,1174, + 2618,2400,1086,2101,3109,35,798,32,1217,3619, + 27,30,31,720,670,26,28,1534,25,23, + 50,1549,86,76,77,2443,2500,2932,3167,3258, + 4548,3167,35,798,32,350,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,108,345,1583,1592,2022,535,352,2984, + 1867,2293,2661,1840,2928,2465,2928,2928,1326,522, + 360,344,1497,1409,349,228,214,214,1943,342, + 3148,2457,2400,156,343,2400,2914,1792,1798,2744, + 431,180,2440,867,535,588,35,293,1943,203, + 215,4682,202,212,213,214,216,4023,2359,169, + 2783,2005,228,3298,1080,1253,3009,1567,332,168, + 156,2723,167,170,171,172,173,174,180,2440, + 867,44,1739,442,2087,456,203,215,4682,202, + 212,213,214,216,517,284,169,2270,535,2742, + 2942,360,4790,214,360,2692,168,2766,178,167, + 170,171,172,173,174,382,228,3798,1792,1798, + 3826,1792,1798,2225,156,588,35,664,388,232, + 5451,603,180,2440,867,535,1571,35,1270,3039, + 203,215,4682,202,212,213,214,216,5451,2225, + 169,2065,237,228,250,230,231,2465,1602,434, + 168,156,176,167,170,171,172,173,174,180, + 2440,867,214,1866,5451,5451,2928,203,215,4682, + 202,212,213,214,216,689,2041,169,214,535, + 2934,214,2056,5451,343,1142,2101,168,2742,177, + 167,170,171,172,173,174,1080,228,1866,4287, + 332,1231,214,867,1592,156,960,3028,351,5451, + 232,156,775,180,2440,867,535,1911,69,376, + 2957,203,215,4682,202,212,213,214,216,1231, + 88,169,4520,102,228,253,230,231,867,198, + 5451,168,156,187,167,170,171,172,173,174, + 180,2440,867,214,376,1943,352,3532,203,215, + 4682,202,212,213,214,216,3314,197,169,344, + 1497,1409,349,330,35,664,388,3053,168,5451, + 3161,167,170,171,172,173,174,2471,35,798, + 32,3252,3590,27,30,31,720,670,339,28, + 667,1944,5451,334,335,4801,2465,49,588,35, + 664,388,5451,1345,861,667,1035,999,535,237, + 4808,5451,285,374,2465,588,35,1270,3160,89, + 629,5451,102,214,2090,1329,228,3561,2928,214, + 2465,214,433,4414,156,3113,319,1321,321,5451, + 314,856,180,2440,867,1080,2400,5451,3288,333, + 203,215,4682,202,212,213,214,216,947,313, + 169,5451,535,1080,237,1231,1864,332,5451,2465, + 168,352,192,167,170,171,172,173,174,1080, + 228,1866,5451,333,346,1497,1409,349,156,5451, + 237,588,35,664,388,2465,180,2440,867,3445, + 306,310,734,406,203,215,4682,202,212,213, + 214,216,1592,1033,169,505,214,535,1080,71, + 1142,867,332,3889,168,432,186,167,170,171, + 172,173,174,1628,1078,228,214,525,2122,5451, + 2347,1592,1142,156,1080,1670,156,5451,332,2928, + 5451,180,2440,867,3411,2229,503,504,2101,203, + 215,4682,202,212,213,214,216,228,160,169, + 330,35,664,388,3314,760,35,664,388,168, + 2942,194,167,170,171,172,173,174,1866,5451, + 68,205,215,4682,204,212,213,214,216,1217, + 35,664,388,3314,49,2101,214,2101,1231,49, + 1142,330,335,1035,2083,1018,35,396,1035,47, + 206,208,210,294,295,5451,565,2534,867,217, + 207,209,1261,49,214,3780,156,53,3004,87, + 3777,335,1035,2871,524,3914,201,5451,13,5451, + 4317,3167,35,798,32,5451,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,108,1349,1583,1962,3167,35,798,32, + 1231,3619,27,30,31,720,670,26,28,1534, + 25,23,50,1549,106,76,77,108,1878,1583, + 1964,5451,2928,1747,35,798,32,3252,3590,27, + 30,31,720,670,339,28,1349,5451,199,539, + 228,3167,35,798,32,3205,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,85,1231,205,215,4682,204,212,213, + 214,216,1015,35,664,388,97,214,5451,5451, + 2101,2578,319,1321,321,1965,314,856,214,2928, + 2101,5451,1142,206,208,210,294,295,2101,565, + 5451,4346,217,207,209,313,49,228,330,35, + 664,388,52,2122,5451,1035,47,1142,156,98, + 214,567,451,4317,1142,2101,2101,3917,5451,2137, + 3840,205,215,4682,204,212,213,214,216,5451, + 214,5451,49,160,4311,2052,307,310,734,2928, + 156,1035,722,5451,2101,2101,5451,90,3911,3941, + 206,208,210,294,295,2534,565,228,2101,217, + 207,209,5451,1781,35,1886,32,3252,3590,27, + 30,31,720,670,339,28,4021,3285,2230,1231, + 4317,205,215,4682,204,212,213,214,216,5451, + 3322,588,35,664,388,214,5451,2101,214,3397, + 3790,214,1142,5451,2101,4377,5451,2101,5451,5451, + 206,208,210,294,295,5451,565,222,5451,217, + 207,209,319,1321,321,49,314,856,156,3424, + 5451,2101,5451,5451,1035,592,67,3997,2655,66, + 4317,3167,35,798,32,1141,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,108,65,1970,3167,35,798,32,5451, + 3619,27,30,31,720,670,26,28,1534,25, + 23,50,1549,106,76,77,108,2101,1972,3167, + 35,798,32,2101,3619,27,30,31,720,670, + 26,28,1534,25,23,50,1549,106,76,77, + 108,214,1979,2282,214,3023,214,578,2581,64, + 2593,5451,5451,5451,5451,3501,5451,5451,418,419, + 1885,3167,1305,798,1843,5451,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,84,3167,35,798,32,5451,3619,27, + 30,31,720,670,26,28,1534,25,23,50, + 1549,106,76,77,83,3167,35,798,32,5451, + 3619,27,30,31,720,670,26,28,1534,25, + 23,50,1549,106,76,77,82,3167,35,798, + 32,5451,3619,27,30,31,720,670,26,28, + 1534,25,23,50,1549,106,76,77,81,3167, + 35,798,32,5451,3619,27,30,31,720,670, + 26,28,1534,25,23,50,1549,106,76,77, + 80,3167,35,798,32,5451,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,79,3167,35,798,32,5451,3619,27, + 30,31,720,670,26,28,1534,25,23,50, + 1549,106,76,77,78,2981,35,798,32,5451, + 3619,27,30,31,720,670,26,28,1534,25, + 23,50,1549,106,76,77,104,3167,35,798, + 32,5451,3619,27,30,31,720,670,26,28, + 1534,25,23,50,1549,106,76,77,110,3167, + 35,798,32,5451,3619,27,30,31,720,670, + 26,28,1534,25,23,50,1549,106,76,77, + 109,3167,35,798,32,5451,3619,27,30,31, + 720,670,26,28,1534,25,23,50,1549,106, + 76,77,107,3167,35,798,32,2101,3619,27, + 30,31,720,670,26,28,1534,25,23,50, + 1549,106,76,77,105,1791,2273,5451,2101,2928, + 535,1592,5451,5451,5451,2101,2090,1392,2122,3608, + 2928,2928,1142,5451,5451,5451,5451,228,3905,2101, + 2101,5451,5451,1231,5451,5451,156,5451,2400,228, + 55,5451,5451,5451,180,2440,2296,54,160,5451, + 1142,205,215,4682,204,212,213,214,216,5451, + 5451,4333,101,205,215,4682,204,212,213,214, + 216,193,195,3314,2122,2139,156,1592,1142,2928, + 206,208,210,294,295,162,565,2101,5451,519, + 207,209,206,208,210,294,295,228,565,2196, + 5451,218,207,209,160,214,5451,505,5451,1142, + 4024,335,5451,5451,2268,4308,2226,5451,2928,3533, + 2928,205,215,4682,204,212,213,214,216,5451, + 5451,529,5451,2313,5451,156,2400,2928,228,3314, + 5451,5451,5451,5451,3693,5451,5451,5451,502,504, + 206,208,210,294,295,228,565,5451,5451,520, + 207,209,205,215,4682,204,212,213,214,216, + 5451,4315,588,35,664,388,4026,335,5451,205, + 215,4682,204,212,213,214,216,4777,196,1800, + 5451,206,208,210,294,295,5451,565,1833,5451, + 305,207,209,2465,5451,505,49,5451,206,208, + 210,294,295,5451,565,1035,736,499,207,209, + 2030,35,798,32,4387,3808,27,30,31,720, + 670,339,28,1747,35,798,32,3252,3590,27, + 30,31,720,670,339,28,502,504,3330,35, + 664,388,1080,3383,5451,5451,4498,5451,5451,5451, + 5451,238,5451,214,5451,5451,5451,2928,588,35, + 664,388,5451,5451,1080,5451,5451,5451,333,319, + 1321,321,273,315,856,343,5451,2784,5451,5451, + 5451,5451,319,1321,321,1182,314,856,5451,2928, + 2470,5451,49,5451,1015,35,664,388,3028,5451, + 232,1035,2871,5451,5451,3050,5451,228,1921,5451, + 2402,35,798,32,2425,3590,27,30,31,720, + 670,339,28,5451,5451,236,230,231,49,5451, + 96,2014,407,4620,5451,5451,274,1035,47,5451, + 5451,5451,5451,214,5451,1287,5451,2928,403,2928, + 2470,1180,5451,5451,5451,243,246,249,252,1174, + 408,409,410,294,295,343,565,228,1217,316, + 870,321,1561,35,798,32,2387,3590,27,30, + 31,720,670,339,28,214,5451,1317,3028,2928, + 5451,2014,407,4620,330,35,664,388,1927,5451, + 1177,35,664,388,5451,2122,214,343,5451,1142, + 1142,5451,330,35,664,388,2038,35,664,388, + 408,409,410,294,295,5451,565,5451,49,5451, + 3028,316,870,321,49,160,156,1035,47,5451, + 509,5451,5451,1035,47,4329,49,1317,411,413, + 49,573,5451,5451,5451,1035,47,3145,5451,1035, + 3158,1015,35,664,388,5451,5451,2543,1033,930, + 5451,535,1097,629,5451,4655,330,35,664,388, + 330,35,664,388,5451,5451,5451,5451,5451,343, + 5451,330,35,664,388,49,5451,156,330,35, + 664,388,4330,5451,1035,3184,188,5451,411,414, + 49,5451,4533,5451,49,5451,5451,214,2839,1035, + 47,535,214,1035,47,49,535,5451,5451,5451, + 1033,5451,49,2693,1035,47,214,3225,5451,343, + 535,1035,47,5451,343,5451,5451,156,3418,5451, + 5451,5451,156,5451,5451,3511,2999,5451,343,5451, + 214,3578,3028,5451,535,214,156,3028,5451,535, + 214,190,2998,5451,535,2999,2297,3296,5451,214, + 2928,3028,343,2928,214,214,5451,343,2928,2928, + 156,3627,343,5451,5451,156,5451,5451,343,188, + 156,343,5451,5451,188,4533,343,343,530,188, + 4533,5451,5451,5451,5451,4533,5451,5451,5451,5451, + 5451,3028,5451,5451,3028,5451,5451,5451,5451,3028, + 3028,533,5451,5451,507,5451,5451,5451,5451,3854, + 534,5451,5451,5451,5451,5451,5451,3763,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,3855,5451,5451,5451,5451,3868, + 5451,5451,5451,5451,3907,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,4399,5451,0,501,4305,0, + 1,229,0,39,5466,0,39,5465,0,1, + 2516,0,943,1,0,39,1,5466,0,39, + 1,5465,0,1,2989,0,1,739,0,229, + 219,0,283,394,0,283,286,0,5685,241, + 0,5684,241,0,5789,241,0,5788,241,0, + 5712,241,0,5711,241,0,5710,241,0,5709, + 241,0,5708,241,0,5707,241,0,5706,241, + 0,5705,241,0,5723,241,0,5722,241,0, + 5721,241,0,5720,241,0,5719,241,0,5718, + 241,0,5717,241,0,5716,241,0,5715,241, + 0,5714,241,0,5713,241,0,39,241,5466, + 0,39,241,5465,0,5489,241,0,1172,387, + 0,5466,48,0,5465,48,0,1,331,0, + 38,739,0,38,5466,0,38,5465,0,454, + 1532,0,440,1575,0,1172,29,0,5463,1, + 0,1622,318,0,1,444,0,458,649,0, + 457,2048,0,35,33,0,47,37,0,229, + 220,0,501,1358,0,5489,1,229,0,39, + 1,229,0,229,416,0,1,2703,0,1, + 5723,0,1,5722,0,1,5721,0,1,5720, + 0,1,5719,0,1,5718,0,1,5717,0, + 1,5716,0,1,5715,0,1,5714,0,1, + 5713,0,5466,37,0,5465,37,0,43,5487, + 0,43,37,0,5463,383,0,5462,383,0, + 1,2474,0,1,2607,0,5461,405,0,5460, + 405,0,229,415,0,2762,126,0,5459,1, + 0,331,445,0,5457,1,0,5456,1,0, + 2179,91,0,32,34,0,39,739,0,5487, + 45,0,37,45,0,1,229,2322,0,5460, + 229,0,2355,229,0,5489,1,0,39,1, + 0,237,910,0,388,32,0,387,29,0, + 2762,128,0,2762,127,0,2700,229,0,10, + 12,0,1,92,0,8,10,12,0,5466, + 2,37,0,5465,2,37,0,5466,36,0, + 5465,36,0,3111,383,0,331,95,0,35, + 73,0,8,12,0,278,4318,0,185,3478, + 0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1116,367 +1116,359 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 30,31,32,33,34,35,36,37,38,39, 40,0,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,0,59, - 60,61,62,63,64,0,66,67,68,0, - 1,2,72,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,70,42, - 43,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,71,59,60,61,62, - 63,64,0,66,67,68,0,1,2,72, - 4,9,75,76,77,78,79,80,81,82, - 83,84,85,86,0,1,2,3,4,5, + 60,61,62,63,0,65,66,67,0,1, + 2,71,4,9,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,69,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,0,59,60,61,62,63, + 6,65,66,67,0,1,2,71,4,118, + 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,0,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 0,59,60,61,62,63,0,65,66,67, + 4,0,6,71,3,9,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,0, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,56,57,0,59,60,61, + 62,63,0,65,66,67,96,97,6,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,0,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,0,59,60,61,62,63,64,0, - 66,67,68,4,0,6,72,3,9,75, + 56,57,0,59,60,61,62,63,0,65, + 66,67,0,0,92,93,100,4,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,70,42,43,44,45,46,47,48, - 49,50,51,52,53,54,55,56,57,0, - 59,60,61,62,63,64,0,66,67,68, - 0,0,6,0,1,2,75,76,77,78, - 79,80,81,82,83,84,85,86,0,1, + 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,58,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,0,59, + 60,61,62,63,0,65,66,67,0,1, + 2,89,4,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,0,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,0,59,60,61,62,63, + 0,65,66,67,96,97,6,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,69,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 0,59,60,61,62,63,0,65,66,67, + 4,0,92,93,0,4,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,58, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,0,59,60,61, - 62,63,64,0,66,67,68,0,0,93, - 94,91,4,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,58,42,43,44, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,0,59,60,61,62,63,64, - 0,66,67,68,0,1,2,90,4,92, - 75,76,77,78,79,80,81,82,83,84, - 85,86,0,1,2,3,4,5,6,7, + 52,53,54,55,56,57,72,59,60,61, + 62,63,0,65,66,67,0,0,6,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,58,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,0,59,60,61,62,63,0,65, + 66,67,4,0,92,93,0,4,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,58,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,72,59, + 60,61,62,63,0,65,66,67,0,1, + 2,99,0,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,0,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,72,59,60,61,62,63, + 0,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,70,42,43,44,45,46,47, + 38,39,40,0,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,56,57, - 0,59,60,61,62,63,64,0,66,67, - 68,91,0,6,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, - 70,42,43,44,45,46,47,48,49,50, - 51,52,53,54,55,56,57,75,59,60, - 61,62,63,64,0,66,67,68,4,0, - 93,94,0,4,75,76,77,78,79,80, - 81,82,83,84,85,86,0,1,2,3, + 0,59,60,61,62,63,0,65,66,67, + 4,0,0,1,2,118,74,75,76,77, + 78,79,80,81,82,83,84,85,0,1, + 2,3,4,5,6,7,0,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,41,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,0, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,56,57,0,1,2,0, + 62,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,0,1,2,40, + 39,120,41,0,1,2,45,4,0,6, + 0,50,9,0,6,54,0,9,8,0, + 59,60,61,0,1,2,0,4,5,90, + 7,0,71,72,0,25,0,0,1,2, + 3,4,5,6,7,0,9,86,22,23, + 24,0,26,27,28,29,30,31,32,33, + 34,65,66,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,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,58,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,0,59,60,61,62,63, - 64,0,66,67,68,0,0,6,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,58,42,43,44,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,76,59,60,61,62,63,64,0,66, - 67,68,4,0,93,94,0,4,75,76, - 77,78,79,80,81,82,83,84,85,86, + 34,64,89,69,91,39,69,41,0,1, + 2,45,4,68,6,70,50,9,87,88, + 54,102,103,104,0,59,60,61,0,5, + 0,0,0,1,2,101,8,71,72,0, + 106,107,108,109,110,111,112,113,114,115, + 116,100,86,22,23,24,0,26,27,28, + 29,30,31,32,33,34,0,0,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,25,26,27,28, + 29,30,31,32,33,34,39,0,1,2, + 39,0,41,74,3,8,45,6,0,8, + 9,50,0,1,2,54,4,5,10,7, + 59,60,61,0,63,0,25,0,1,2, + 0,4,71,87,88,117,35,36,37,38, + 0,0,1,2,3,4,5,86,7,0, + 1,2,3,4,5,6,7,101,9,58, + 0,0,106,3,67,64,41,59,41,68, + 69,70,71,72,73,0,1,2,3,4, + 5,120,7,8,0,0,0,3,87,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,0,64,64,105,106,107,108, + 109,110,111,112,113,114,115,116,117,0, + 119,72,3,0,64,6,40,8,9,68, + 0,1,2,3,4,5,0,7,0,64, + 0,1,2,58,25,0,1,2,73,4, + 5,0,7,68,35,36,37,38,22,23, + 24,0,26,27,28,29,30,31,32,33, + 34,0,0,1,2,72,4,58,6,94, + 95,9,0,64,23,24,41,68,69,70, + 71,72,73,22,23,24,58,26,27,28, + 29,30,31,32,33,34,87,88,89,90, + 91,92,93,94,95,96,97,98,99,100, + 101,70,0,41,105,106,107,108,109,110, + 111,112,113,114,115,116,117,0,119,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,0,0,0,0,39,3, + 41,0,1,2,45,4,5,10,7,50, + 0,1,2,54,0,5,0,7,59,60, + 61,64,63,0,1,2,3,4,5,6, + 7,89,9,91,0,0,0,1,2,3, + 4,5,41,7,0,86,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 64,26,27,28,29,30,31,32,33,34, + 0,1,2,3,4,5,0,7,0,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,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,58,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,0,59, - 60,61,62,63,64,0,66,67,68,0, - 1,2,0,0,5,75,76,77,78,79, - 80,81,82,83,84,85,86,0,1,2, + 30,31,32,33,34,0,0,0,3,39, + 4,41,0,1,2,45,4,0,6,0, + 50,9,98,89,54,91,58,8,58,59, + 60,61,72,63,68,0,1,2,3,4, + 5,6,7,0,9,0,0,1,2,0, + 4,8,6,8,8,9,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,70,42, - 43,44,45,46,47,48,49,50,51,52, - 53,54,55,56,57,73,59,60,61,62, - 63,64,0,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, + 33,34,73,0,87,88,39,4,41,64, + 0,0,45,0,1,2,0,50,5,90, + 7,54,67,70,71,22,59,60,61,73, + 63,0,0,0,1,2,3,4,71,6, + 8,0,9,0,0,118,90,0,0,1, + 2,8,41,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,63,42,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,0,59,60,61,62,63,64,0, - 66,67,68,4,0,0,1,2,0,75, - 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,0, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,41,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,70,42,43,44,45,46,47,48, - 49,50,51,52,53,54,55,56,57,0, - 59,73,3,0,63,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 0,1,2,40,39,121,41,0,1,2, - 45,4,0,6,0,50,9,3,6,54, - 0,9,0,0,65,60,61,62,0,1, - 2,0,4,5,0,7,0,72,73,0, - 4,0,1,2,3,4,5,6,7,0, - 9,0,87,22,23,24,0,26,27,28, - 29,30,31,32,33,34,66,67,103,104, - 105,0,1,2,3,4,5,6,7,8, + 26,27,28,29,30,31,32,33,34,41, + 0,1,2,39,0,41,6,64,0,45, + 69,3,58,71,50,102,103,104,54,0, + 67,70,0,59,60,61,72,63,0,0, + 1,2,3,4,5,71,7,0,1,2, + 0,41,0,3,87,88,0,0,8,3, + 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,65,0,0,70, - 39,70,41,0,1,2,45,4,69,6, - 71,50,9,0,102,54,103,104,105,107, - 0,60,61,62,0,1,2,0,0,1, - 2,102,0,72,73,3,107,108,109,110, - 111,112,113,114,115,116,117,101,87,22, - 23,24,0,26,27,28,29,30,31,32, - 33,34,65,0,103,104,105,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,70,0,41,0,39,0,41,0, - 3,8,45,6,0,8,9,50,0,1, - 2,54,4,5,10,7,0,60,61,62, - 0,64,25,0,1,2,3,4,5,72, - 7,0,35,36,37,38,0,1,2,3, - 4,5,100,7,87,0,1,2,3,4, - 5,6,7,0,9,58,0,1,2,3, - 4,5,65,7,8,72,69,70,71,72, - 73,74,0,0,1,2,3,4,121,6, - 8,0,9,88,89,88,89,90,91,92, - 93,94,95,96,97,98,99,100,101,102, - 0,65,71,106,107,108,109,110,111,112, - 113,114,115,116,117,118,0,120,73,3, - 100,65,6,0,8,9,0,0,1,2, - 74,4,5,0,7,35,36,0,65,58, - 68,25,0,1,2,3,4,5,0,7, - 0,35,36,37,38,22,23,24,0,26, - 27,28,29,30,31,32,33,34,41,0, - 0,23,24,3,58,0,1,2,3,4, - 5,65,7,0,58,69,70,71,72,73, - 74,22,23,24,0,26,27,28,29,30, - 31,32,33,34,88,89,90,91,92,93, - 94,95,96,97,98,99,100,101,102,69, - 97,98,106,107,108,109,110,111,112,113, - 114,115,116,117,118,65,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,25,26,27,28,29,30,31,32, - 33,34,0,1,2,0,39,5,41,0, - 1,2,45,4,5,0,7,50,0,1, - 2,54,0,5,9,7,4,60,61,62, - 0,64,0,1,2,3,4,5,6,7, - 0,9,0,41,0,40,0,1,2,0, - 41,5,0,7,87,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,0, - 26,27,28,29,30,31,32,33,34,0, - 1,2,3,4,5,0,7,0,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,25,26,27,28,29,30, - 31,32,33,34,0,0,41,58,39,99, - 41,0,1,2,45,4,0,6,69,50, - 9,0,90,54,92,58,0,58,0,60, - 61,62,73,64,0,1,2,3,4,5, - 6,7,0,9,95,96,0,1,2,0, - 4,0,6,0,8,9,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,25,26,27,28,29,30,31,32, - 33,34,0,65,73,90,39,92,41,65, - 8,0,45,99,88,89,0,50,0,0, - 0,54,70,4,8,0,6,60,61,62, - 74,64,0,8,71,3,0,0,0,72, - 8,22,0,1,2,0,4,91,6,88, - 89,9,0,8,87,0,1,2,3,4, + 29,30,31,32,33,34,0,1,2,0, + 39,5,41,0,1,2,45,0,70,10, + 0,50,65,66,64,54,87,88,8,62, + 59,60,61,73,63,69,0,0,0,3, + 98,0,71,0,8,121,0,41,39,8, + 41,0,35,36,41,0,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,25,26,27,28,29,30,31, + 32,33,34,73,0,58,58,39,0,41, + 64,58,0,45,68,68,70,0,50,73, + 8,68,54,58,73,0,70,59,60,61, + 0,63,0,8,68,3,70,25,8,35, + 36,94,95,35,36,0,0,94,95,0, + 1,2,0,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, 25,26,27,28,29,30,31,32,33,34, - 74,0,1,2,39,4,41,65,0,74, - 45,69,91,71,0,50,74,91,10,54, - 0,1,2,68,0,60,61,62,8,64, - 118,0,103,104,105,0,0,72,3,0, - 1,2,41,8,97,98,10,39,0,41, - 88,89,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,25,26, - 27,28,29,30,31,32,33,34,68,0, - 1,2,39,69,41,6,60,0,45,0, - 65,4,0,50,73,66,67,54,0,74, - 8,0,0,60,61,62,8,64,0,22, - 0,0,0,0,0,72,0,25,4,8, - 41,8,0,25,8,0,0,1,2,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,25,26,27,28, - 29,30,31,32,33,34,58,41,58,71, - 39,69,41,0,1,2,45,69,0,69, - 58,50,71,72,71,54,0,74,72,88, - 89,60,61,62,8,64,0,1,2,0, - 0,0,73,95,96,95,96,0,8,8, - 0,25,0,0,41,0,1,2,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,25,26,27,28,29,30, - 31,32,33,34,0,0,41,58,39,0, - 41,0,1,2,45,10,0,8,90,50, - 92,58,73,54,74,74,69,0,71,60, - 61,62,0,64,25,8,0,0,0,35, - 36,0,0,0,39,0,41,0,3,8, - 8,0,41,0,1,2,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,25,26,27,28,29,30,31,32, - 33,34,0,0,41,0,39,65,41,72, - 0,58,45,8,0,1,2,50,71,58, - 0,54,0,3,0,74,74,60,61,62, - 25,64,0,1,2,3,4,5,6,7, - 0,9,10,11,12,13,14,15,16,17, - 18,19,20,21,87,41,0,0,1,2, - 3,4,5,41,7,8,0,35,36,37, - 38,69,40,70,42,43,44,0,46,47, - 48,49,25,51,52,53,0,55,56,57, - 0,59,0,0,70,63,3,0,66,67, - 0,69,0,1,2,3,4,5,6,7, + 41,0,1,2,39,70,41,0,73,0, + 45,71,0,4,58,50,0,10,0,54, + 8,0,0,68,59,60,61,64,63,8, + 8,22,0,0,0,0,0,25,0,0, + 8,0,41,8,8,0,39,25,41,0, + 0,86,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,58,35,36,0,1,2, - 3,4,5,0,7,8,3,35,36,37, - 38,0,40,0,42,43,44,0,46,47, - 48,49,25,51,52,53,0,55,56,57, - 0,59,65,71,0,63,0,3,0,0, - 68,71,3,0,72,0,1,2,3,4, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,0,70,0, + 3,39,70,41,73,0,58,45,0,1, + 2,68,50,71,70,64,54,58,73,73, + 0,59,60,61,69,63,0,1,2,3, + 4,5,6,7,0,9,10,11,12,13, + 14,15,16,17,18,19,20,21,86,41, + 90,0,1,2,3,4,5,58,7,8, + 0,35,36,37,38,0,40,0,42,43, + 44,0,46,47,48,49,25,51,52,53, + 0,55,56,57,0,0,1,2,62,69, + 0,65,66,9,68,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,0,0,58, - 0,58,0,0,0,58,3,3,122,0, - 35,36,37,38,5,40,0,42,43,44, - 0,46,47,48,49,69,51,52,53,69, - 55,56,57,0,59,69,3,69,63,0, - 0,0,3,68,0,1,2,3,4,5, - 6,7,0,9,10,11,12,13,14,15, - 16,17,18,19,20,21,0,0,71,3, - 37,38,0,73,101,73,0,0,0,35, - 36,37,38,0,40,65,42,43,44,0, - 46,47,48,49,0,51,52,53,65,55, - 56,57,0,59,0,3,0,63,0,3, - 66,67,0,1,2,3,4,5,6,7, + 15,16,17,18,19,20,21,0,58,0, + 0,1,2,3,4,5,41,7,8,58, + 35,36,37,38,69,40,0,42,43,44, + 0,46,47,48,49,25,51,52,53,69, + 55,56,57,0,0,0,0,62,68,0, + 0,0,67,3,3,0,71,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,72, + 0,72,0,3,58,0,0,0,37,38, + 8,0,35,36,37,38,0,40,68,42, + 43,44,58,46,47,48,49,25,51,52, + 53,68,55,56,57,64,0,68,72,62, + 0,0,0,3,67,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, + 3,3,3,0,99,70,105,0,72,0, + 35,36,37,38,0,40,75,42,43,44, + 119,46,47,48,49,0,51,52,53,4, + 55,56,57,0,0,0,3,62,3,0, + 65,66,0,1,2,3,4,5,6,7, 0,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,119,58,3,0,106, - 0,3,65,3,40,73,70,35,36,37, - 38,0,40,120,42,43,44,0,46,47, - 48,49,0,51,52,53,0,55,56,57, - 0,59,0,3,0,63,0,3,66,67, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,119,0,0,39,3,3,119,0, - 0,0,3,3,0,35,36,37,38,0, - 40,0,42,43,44,0,46,47,48,49, - 58,51,52,53,0,55,56,57,0,59, - 0,0,0,63,0,0,0,0,68,0, + 18,19,20,21,0,0,0,3,3,3, + 0,0,69,3,3,0,69,35,36,37, + 38,0,40,0,42,43,44,4,46,47, + 48,49,58,51,52,53,0,55,56,57, + 0,0,0,64,62,3,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,0,0,0,0,0,0,0,0,0, - 0,0,0,0,35,36,37,38,0,40, - 0,42,43,44,0,46,47,48,49,0, - 51,52,53,0,55,56,57,0,59,0, - 3,0,5,6,0,0,9,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,35,36,37,38,0,0,0,42, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,58,0,118,0,0, - 0,0,65,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, - 0,0,0,0,0,0,0,0,0,0, - 35,36,37,38,0,40,0,42,43,44, - 0,46,47,48,49,0,51,52,53,0, - 55,56,57,0,59,0,0,0,63,0, - 1,2,3,4,5,6,7,0,9,10, + 21,0,0,0,3,3,3,5,6,64, + 90,9,0,0,35,36,37,38,0,40, + 69,42,43,44,58,46,47,48,49,0, + 51,52,53,0,55,56,57,35,36,37, + 38,62,0,0,42,3,67,0,0,0, + 0,0,40,0,0,0,0,0,0,0, + 58,0,0,0,0,0,64,65,66,0, + 68,69,70,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,87, + 88,89,0,0,92,93,94,95,96,97, + 98,99,100,101,0,0,0,105,0,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,0,0,0,0,0,0,0,0,0, 0,0,0,0,35,36,37,38,0,40, 0,42,43,44,0,46,47,48,49,0, - 51,52,53,0,55,56,57,0,59,0, - 0,0,0,0,65,0,1,2,3,4, + 51,52,53,0,55,56,57,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,0,0,0,0,0,0,0,0, + 0,0,35,36,37,38,0,40,0,42, + 43,44,0,46,47,48,49,0,51,52, + 53,0,55,56,57,0,117,0,0,62, + 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,0,0,0,0,0, + 0,0,0,0,0,35,36,37,38,0, + 40,0,42,43,44,0,46,47,48,49, + 0,51,52,53,0,55,56,57,0,0, + 0,0,0,0,64,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, 0,0,0,0,0,0,0,0,0,0, 35,36,37,38,0,40,0,42,43,44, 0,46,47,48,49,0,51,52,53,0, - 55,56,57,0,59,0,0,0,63,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,0,0,0,0,0,0, - 0,0,0,0,35,36,37,38,0,40, - 0,42,43,44,0,46,47,48,49,0, - 51,52,53,0,55,56,57,0,59,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,0,0,0,0,0,0, - 0,0,0,0,35,36,37,38,0,40, - 0,42,43,44,0,46,47,48,49,0, - 51,52,53,0,55,56,57,0,59,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,0,0,0,0,0,0, - 0,0,0,0,35,36,37,38,0,40, - 0,42,43,44,0,46,47,48,49,0, - 51,52,53,0,55,56,57,0,59,0, - 1,2,0,4,0,0,0,0,0,10, + 55,56,57,0,0,0,0,62,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,0,0,0,0,0,0,0, + 0,0,0,35,36,37,38,0,40,0, + 42,43,44,0,46,47,48,49,0,51, + 52,53,0,55,56,57,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,0,0,0,0,0,0,0,0,0, + 0,35,36,37,38,0,40,0,42,43, + 44,0,46,47,48,49,0,51,52,53, + 0,55,56,57,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,0, + 0,0,0,0,0,0,0,0,0,35, + 36,37,38,0,40,0,42,43,44,0, + 46,47,48,49,0,51,52,53,0,55, + 56,57,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,26,27, + 28,29,30,31,32,33,34,0,0,0, + 0,39,0,0,0,0,0,45,0,0, + 1,2,50,4,0,0,54,0,0,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,0,26,27,28,29,30, 31,32,33,34,0,0,0,0,39,0, - 0,0,0,0,45,0,0,1,2,50, - 4,0,0,54,0,0,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,0,26,27,28,29,30,31,32,33, - 34,0,0,0,0,39,0,0,0,0, - 0,45,0,0,0,0,50,0,0,0, - 54,0,1,2,3,4,5,6,7,8, - 9,0,0,0,0,0,0,0,0,0, - 0,0,0,22,23,24,25,26,27,28, - 29,30,31,32,33,34,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,58, - 0,0,0,0,0,0,65,0,0,0, - 0,0,0,0,0,74,0,1,2,3, - 4,5,6,7,8,9,0,0,0,0, - 0,0,0,0,0,0,0,0,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,45,0,0,0,0,50, + 0,0,0,54,0,1,2,3,4,5, + 6,7,8,9,0,0,0,0,0,0, + 0,0,0,0,0,0,22,23,24,25, + 26,27,28,29,30,31,32,33,34,0, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,58,0,0,0,0,0,64,0, + 0,0,0,0,0,0,0,73,0,1, + 2,3,4,5,6,7,8,9,0,0, + 0,0,0,0,0,0,0,0,0,0, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,65,0,0,0,0,0,0,0,0, - 74,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,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 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1484,369 +1476,360 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5452,5376,5091,5091,5091,5091,5091,5091,5407,5091, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5380,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, + 5451,5375,5090,5090,5090,5090,5090,5090,5406,5090, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,36,1, - 1541,719,5628,1,558,396,1,1,5463,287, - 5126,5126,5459,284,309,1394,2482,3340,2100,3312, - 2306,3104,2440,948,2425,2878,2362,10,5410,5410, - 5410,5410,5410,5410,5410,5410,5410,5410,5410,5410, - 5410,5410,5410,5410,5410,5410,5410,5410,5410,5410, - 5410,5410,5410,5410,5410,5410,5410,5410,5410,5410, - 5410,5410,5410,5410,5410,5410,5410,5410,1795,5410, - 5410,5410,5410,5410,5410,5410,5410,5410,5410,5410, - 5410,5410,5410,5410,5410,3724,5410,5410,5410,5410, - 5410,5410,132,5410,5410,5410,5452,5097,5094,5410, - 5491,594,5410,5410,5410,5410,5410,5410,5410,5410, - 5410,5410,5410,5410,8,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,332,5416,5416,5416,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5416,292,5416,5416,5416,5416,5416,5416,40, - 5416,5416,5416,5491,5452,332,5416,662,332,5416, - 5416,5416,5416,5416,5416,5416,5416,5416,5416,5416, - 5416,5452,5376,5091,5091,5091,5091,5091,5091,5383, - 5091,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5380,1,1,1, + 1,1,1,1,1,5379,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2062,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,385, - 1,1541,719,5628,1,558,116,1,1,5463, - 359,388,4000,5452,5215,5212,1394,2482,3340,2100, - 3312,2306,3104,2440,948,2425,2878,2362,5452,5376, - 5091,5091,5091,5091,5091,5091,5383,5091,1,1, + 1,5451,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,35,1540, + 718,5626,1,557,131,1,1,5462,286,5125, + 5125,5458,283,593,1393,2481,3339,2099,3311,2305, + 3103,2439,947,2424,2877,2361,10,5409,5409,5409, + 5409,5409,5409,5409,5409,5409,5409,5409,5409,5409, + 5409,5409,5409,5409,5409,5409,5409,5409,5409,5409, + 5409,5409,5409,5409,5409,5409,5409,5409,5409,5409, + 5409,5409,5409,5409,5409,5409,5409,1794,5409,5409, + 5409,5409,5409,5409,5409,5409,5409,5409,5409,5409, + 5409,5409,5409,5409,5451,5409,5409,5409,5409,5409, + 3363,5409,5409,5409,5451,5096,5093,5409,5489,2688, + 5409,5409,5409,5409,5409,5409,5409,5409,5409,5409, + 5409,5409,8,5415,5415,5415,5415,5415,5415,5415, + 5415,5415,5415,5415,5415,5415,5415,5415,5415,5415, + 5415,5415,5415,5415,5415,5415,5415,5415,5415,5415, + 5415,5415,5415,5415,5415,5415,5415,5415,5415,5415, + 5415,5415,5415,1,5415,5415,5415,5415,5415,5415, + 5415,5415,5415,5415,5415,5415,5415,5415,5415,5415, + 129,5415,5415,5415,5415,5415,39,5415,5415,5415, + 5489,5451,331,5415,661,331,5415,5415,5415,5415, + 5415,5415,5415,5415,5415,5415,5415,5415,5451,5375, + 5090,5090,5090,5090,5090,5090,5382,5090,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5380,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5209, + 1,1,1,5379,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,395, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5452,1,1541,719, - 5628,1,558,5452,1,1,5463,112,397,3976, - 3952,5810,388,1394,2482,3340,2100,3312,2306,3104, - 2440,948,2425,2878,2362,5452,5376,5091,5091,5091, - 5091,5091,5091,5383,5091,1,1,1,1,1, + 1,1,1,1,1,1,137,1540,718,5626, + 1,557,115,1,1,5462,2610,2540,3999,5451, + 5214,5211,1393,2481,3339,2099,3311,2305,3103,2439, + 947,2424,2877,2361,5451,5375,5090,5090,5090,5090, + 5090,5090,5382,5090,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5379, 1,1,1,1,1,1,1,1,1,1, - 5380,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1173,1,1,1, + 1,1,1,1,1,331,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,371,1,1541,719,5628,1,558, - 1,1,1,5463,5452,5097,5094,4218,5491,4240, - 1394,2482,3340,2100,3312,2306,3104,2440,948,2425, - 2878,2362,5452,5376,5091,5091,5091,5091,5091,5091, - 5383,5091,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5380,1,1, + 1,1,384,1540,718,5626,1,557,5451,1, + 1,5462,111,396,3975,3951,2275,387,1393,2481, + 3339,2099,3311,2305,3103,2439,947,2424,2877,2361, + 5451,5375,5090,5090,5090,5090,5090,5090,5382,5090, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1284,1,1,1,1,1,1, + 1,1,1,1,1,5379,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 369,1,1541,719,5628,1,558,118,1,1, - 5463,5812,1,4000,5452,5466,5467,1394,2482,3340, - 2100,3312,2306,3104,2440,948,2425,2878,2362,5452, - 5376,5091,5091,5091,5091,5091,5091,5383,5091,1, + 1,1172,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,130,1540, + 718,5626,1,557,5451,1,1,5462,5451,5096, + 5093,4217,5489,4239,1393,2481,3339,2099,3311,2305, + 3103,2439,947,2424,2877,2361,5451,5375,5090,5090, + 5090,5090,5090,5090,5382,5090,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5380,1,1,1,1,1, + 1,5379,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5451,1,1, 1,1,1,1,1,1,1,1,1,1, - 1329,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1216,1,1541, - 719,5628,1,558,40,1,1,5463,5491,49, - 3976,3952,5452,5467,1394,2482,3340,2100,3312,2306, - 3104,2440,948,2425,2878,2362,5452,5376,5091,5091, - 5091,5091,5091,5091,5383,5091,1,1,1,1, + 1,1,1,1,291,1540,718,5626,1,557, + 117,1,1,5462,2610,2540,3999,5451,5465,5466, + 1393,2481,3339,2099,3311,2305,3103,2439,947,2424, + 2877,2361,5451,5375,5090,5090,5090,5090,5090,5090, + 5382,5090,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5379,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5380,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5467,1,1, + 1,1,1,2061,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5452,1,1541,719,5628,1, - 558,117,1,1,5463,5452,455,4000,5452,6841, - 6667,1394,2482,3340,2100,3312,2306,3104,2440,948, - 2425,2878,2362,5452,5376,5091,5091,5091,5091,5091, - 5091,5383,5091,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5380,1, + 5451,1540,718,5626,1,557,39,1,1,5462, + 5489,48,3975,3951,448,5466,1393,2481,3339,2099, + 3311,2305,3103,2439,947,2424,2877,2361,5451,5375, + 5090,5090,5090,5090,5090,5090,5382,5090,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5230,1,1,1,1,1, + 1,1,1,5379,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5466, 1,1,1,1,1,1,1,1,1,1, - 1,2992,1,1541,719,5628,1,558,5452,1, - 1,5463,2871,49,3976,3952,5452,5466,1394,2482, - 3340,2100,3312,2306,3104,2440,948,2425,2878,2362, - 5452,5376,5091,5091,5091,5091,5091,5091,5383,5091, + 1,1,1,1,1,1,646,1540,718,5626, + 1,557,116,1,1,5462,5451,387,3999,5451, + 6829,6657,1393,2481,3339,2099,3311,2305,3103,2439, + 947,2424,2877,2361,5451,5375,5090,5090,5090,5090, + 5090,5090,5382,5090,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5379, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5380,1,1,1,1, + 1,1,1,1,1,5208,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5466,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,509,1, - 1541,719,5628,1,558,5452,1,1,5463,5452, - 5466,5467,449,5452,2911,1394,2482,3340,2100,3312, - 2306,3104,2440,948,2425,2878,2362,5452,5376,5091, - 5091,5091,5091,5091,5091,5383,5091,1,1,1, + 1,1,135,1540,718,5626,1,557,5451,1, + 1,5462,2870,48,3975,3951,5451,5465,1393,2481, + 3339,2099,3311,2305,3103,2439,947,2424,2877,2361, + 5451,5375,5090,5090,5090,5090,5090,5090,5382,5090, 1,1,1,1,1,1,1,1,1,1, - 1,1,5380,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,4696,1, + 1,1,1,1,1,5379,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,647,1,1541,719,5628, - 1,558,533,1,1,5463,49,5215,5212,398, - 5466,5467,1394,2482,3340,2100,3312,2306,3104,2440, - 948,2425,2878,2362,5452,5376,5091,5091,5091,5091, - 5091,5091,5383,5091,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5380, + 1,5465,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5852,1540, + 718,5626,1,557,5451,1,1,5462,5451,5465, + 5466,2325,428,2910,1393,2481,3339,2099,3311,2305, + 3103,2439,947,2424,2877,2361,5451,5375,5090,5090, + 5090,5090,5090,5090,5382,5090,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3140,1,1,1,1, + 1,5379,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,375,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,507,1,1541,719,5628,1,558,396, - 1,1,5463,389,5452,38,5257,5257,5452,1394, - 2482,3340,2100,3312,2306,3104,2440,948,2425,2878, - 2362,40,5097,5094,4828,944,4042,4108,2990,5452, - 4130,2844,5717,5715,5724,5723,5719,5720,5718,5721, - 5722,5725,5716,5713,5790,5791,5489,5707,5714,5710, - 5686,5712,5711,5708,5709,5687,4086,4064,4174,4152, - 5851,5472,4890,3742,1451,1507,2665,5474,1492,3055, - 1500,5852,5475,5473,1404,5853,5468,5470,5471,319, - 5469,5854,5242,5452,1412,5452,5270,5270,230,5266, - 230,230,230,5274,230,1,1,1,1,1, + 1,1,1,1,923,1540,718,5626,1,557, + 5451,1,1,5462,48,5214,5211,397,5465,5466, + 1393,2481,3339,2099,3311,2305,3103,2439,947,2424, + 2877,2361,5451,5375,5090,5090,5090,5090,5090,5090, + 5382,5090,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5379,1,1, 1,1,1,1,1,1,1,1,1,1, - 230,1,1,1,1,1,1,1,1,1, - 5452,5466,5467,1043,1,5087,5263,445,1,1, - 1,1,5452,5245,5452,1,5245,1623,1920,1, - 5452,5782,140,440,1372,3013,784,5865,5452,5097, - 5094,225,944,740,5452,2990,5452,417,230,140, - 3045,368,5110,5106,2639,5103,740,1,2990,5452, - 1,5452,5953,5713,5790,5791,138,5707,5714,5710, - 5686,5712,5711,5708,5709,5687,4196,1053,5888,5889, - 5890,5452,5270,5270,230,5266,230,230,230,5343, - 230,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,230,1,1,1, - 1,1,1,1,1,1,1372,321,5452,1890, - 1,1224,5263,446,40,40,1,5491,4434,5352, - 3445,1,5352,5452,1186,1,5888,5889,5890,3537, - 5452,3013,784,5865,5452,6841,6667,226,291,5466, - 5467,1186,312,416,230,2092,3537,1847,1804,1761, - 1718,1675,1632,1589,1546,1503,1460,2276,5953,5713, - 5790,5791,136,5707,5714,5710,5686,5712,5711,5708, - 5709,5687,1372,5452,5888,5889,5890,5452,5091,5091, - 230,5091,230,230,230,5120,230,1,1,1, + 1,1,1,5451,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,8662,1,1,1,1, - 1,1,1094,5452,913,122,1,34,5088,5452, - 5254,5460,1,5254,302,5254,5254,1,5452,5097, - 5094,1,944,740,5753,2990,5452,2835,719,5664, - 137,558,5254,1,5110,5106,5100,5103,5117,220, - 5114,516,5254,5254,5254,5254,1,5110,5106,2639, - 5103,740,2326,2990,5953,5452,5110,5106,2517,5103, - 740,5218,2990,5452,5218,5254,1,5110,5106,2639, - 5103,740,5254,2990,5355,5459,5254,5254,5254,5254, - 5254,5254,5452,346,40,40,3287,5491,220,332, - 5464,441,332,2959,3082,5254,5254,5254,5254,5254, - 5254,5254,5254,5254,5254,5254,5254,5254,5254,5254, - 119,1372,881,5254,5254,5254,5254,5254,5254,5254, - 5254,5254,5254,5254,5254,5254,5452,5254,1049,5364, - 2326,1372,5364,130,5364,5364,30,5452,5097,5094, - 5358,944,5367,227,2990,3697,3672,5452,1372,5233, - 5463,5364,1,5110,5106,2517,5103,740,337,2990, - 5452,5364,5364,5364,5364,5713,5790,5791,5452,5707, - 5714,5710,5686,5712,5711,5708,5709,5687,2595,228, - 348,5790,5791,3452,5364,332,5097,5094,2517,944, - 740,5364,2990,5452,5236,5364,5364,5364,5364,5364, - 5364,5713,5790,5791,5452,5707,5714,5710,5686,5712, - 5711,5708,5709,5687,5364,5364,5364,5364,5364,5364, - 5364,5364,5364,5364,5364,5364,5364,5364,5364,4376, - 2611,2541,5364,5364,5364,5364,5364,5364,5364,5364, - 5364,5364,5364,5364,5364,1372,5364,5452,5091,5091, - 230,5091,230,230,230,230,230,1,1,1, + 5451,1540,718,5626,1,557,395,1,1,5462, + 388,5451,37,5256,5256,2688,1393,2481,3339,2099, + 3311,2305,3103,2439,947,2424,2877,2361,39,5096, + 5093,4827,943,4041,4107,2989,5451,4129,2843,5715, + 5713,5722,5721,5717,5718,5716,5719,5720,5723,5714, + 5711,5788,5789,5487,5705,5712,5708,5684,5710,5709, + 5706,5707,5685,4085,4063,4173,4151,5849,5470,358, + 3741,1450,1506,2664,5472,1491,3054,1499,5850,5473, + 5471,1403,5851,5467,5468,5469,5451,6829,6657,5451, + 1411,5451,5269,5269,229,5265,229,229,229,5273, + 229,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,229,1,1,1, + 1,1,1,1,1,1,5451,5465,5466,1042, + 1,5086,5262,444,1,1,1,1,5451,5244, + 5451,1,5244,114,1919,1,5451,5780,5461,439, + 3012,783,5863,5451,5096,5093,224,943,739,5808, + 2989,121,416,229,139,5460,5451,367,5109,5105, + 2638,5102,739,1,2989,5451,1,5951,5711,5788, + 5789,138,5705,5712,5708,5684,5710,5709,5706,5707, + 5685,4195,1052,5886,5887,5888,5451,5269,5269,229, + 5265,229,229,229,5342,229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,8662,1,1,1,1, - 1,1,38,5257,5257,5452,1,5257,5088,5452, - 5097,5094,1,944,5367,133,2990,1,39,5227, - 5224,1,5452,5221,594,2990,2722,2835,719,5664, - 134,558,310,5110,5106,2517,5103,740,5218,2990, - 5452,5218,5452,3237,224,2498,5452,5466,5467,5452, - 2822,740,115,2990,5953,5717,5715,5724,5723,5719, - 5720,5718,5721,5722,5725,5716,5713,5790,5791,127, - 5707,5714,5710,5686,5712,5711,5708,5709,5687,1, - 5110,5106,2517,5103,740,48,2990,5452,221,5452, - 5091,5091,230,5091,230,230,230,230,230,1, + 1,229,1,1,1,1,1,1,1,1, + 1,1371,4217,1889,4239,1,1223,5262,445,39, + 39,1,5489,4433,5351,3444,1,5351,2958,3081, + 1,5886,5887,5888,5451,3012,783,5863,5451,2910, + 5451,225,290,5465,5466,1185,5455,415,229,1, + 3536,1846,1803,1760,1717,1674,1631,1588,1545,1502, + 1459,2275,5951,5711,5788,5789,125,5705,5712,5708, + 5684,5710,5709,5706,5707,5685,139,5451,5886,5887, + 5888,5451,5090,5090,229,5090,229,229,229,5119, + 229,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,229,1,1,8738, + 1,1,1,1,1,1,3635,5451,5465,5466, + 1,33,5087,1215,5253,5463,1,5253,301,5253, + 5253,1,5451,5096,5093,1,943,739,5751,2989, + 2834,718,5662,5451,557,5451,5253,394,5122,5122, + 5451,283,219,2958,3081,5454,5253,5253,5253,5253, + 320,1,5109,5105,2638,5102,739,5951,2989,5451, + 5109,5105,2516,5102,739,5217,2989,1185,5217,5253, + 318,5451,3536,5241,5462,5253,912,645,283,5253, + 5253,5253,5253,5253,5253,1,5109,5105,2638,5102, + 739,219,2989,5354,5451,126,5451,1622,5253,5253, + 5253,5253,5253,5253,5253,5253,5253,5253,5253,5253, + 5253,5253,5253,5451,1371,1371,5253,5253,5253,5253, + 5253,5253,5253,5253,5253,5253,5253,5253,5253,5451, + 5253,1048,5363,5451,1371,5363,2497,5363,5363,4375, + 1,5109,5105,5099,5102,5116,226,5113,454,1371, + 36,5430,5427,2789,5363,5451,5096,5093,5357,943, + 5366,308,2989,5345,5363,5363,5363,5363,5711,5788, + 5789,336,5705,5712,5708,5684,5710,5709,5706,5707, + 5685,227,92,1,1,2149,1,5363,5412,2735, + 2666,5412,47,5363,5788,5789,2594,5363,5363,5363, + 5363,5363,5363,5711,5788,5789,5229,5705,5712,5708, + 5684,5710,5709,5706,5707,5685,5363,5363,5363,5363, + 5363,5363,5363,5363,5363,5363,5363,5363,5363,5363, + 5363,3723,113,794,5363,5363,5363,5363,5363,5363, + 5363,5363,5363,5363,5363,5363,5363,458,5363,5451, + 5090,5090,229,5090,229,229,229,229,229,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,230,1,1,8662,1,1, - 1,1,1,1,135,114,795,2790,1,2358, - 5088,93,1,1,1,1,126,5413,5346,1, - 5413,429,4218,1,4240,1662,5452,958,459,2835, - 719,5664,1049,558,346,5097,5094,2639,944,740, - 332,2990,421,332,2736,2667,1,5389,5389,5452, - 5386,125,332,450,364,332,5953,5452,5091,5091, - 230,5091,230,230,230,5260,230,1,1,1, + 1,1,1,1,229,1,1,8738,1,1, + 1,1,1,1,5451,5451,347,301,1,3451, + 5087,5451,5096,5093,1,943,5366,5751,2989,1, + 38,5226,5223,1,5451,5220,5451,2989,2834,718, + 5662,5247,557,309,5109,5105,2516,5102,739,5217, + 2989,4217,5217,4239,133,223,1,5109,5105,2516, + 5102,739,2821,2989,112,5951,5715,5713,5722,5721, + 5717,5718,5716,5719,5720,5723,5714,5711,5788,5789, + 1371,5705,5712,5708,5684,5710,5709,5706,5707,5685, + 1,5109,5105,2516,5102,739,5451,2989,440,220, + 5451,5090,5090,229,5090,229,229,229,229,229, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,8662,1,1,1,1, - 1,1,5452,5248,924,4218,1,4240,5088,1372, - 5456,1,1,2358,2959,3082,1,1,5452,40, - 5452,1,2188,5491,364,5452,3364,2835,719,5664, - 364,558,1,5458,2725,3287,5452,131,5452,221, - 342,855,96,40,40,1,5491,364,5437,2959, - 3082,5437,124,5239,5953,5452,5091,5091,230,5091, - 230,230,230,5260,230,1,1,1,1,1, + 1,1,1,1,1,229,1,1,8738,1, + 1,1,1,1,1,5451,5451,124,4832,1, + 3044,5087,95,39,39,1,5489,521,5436,1, + 1,5436,2357,4217,1,4239,5232,363,957,2834, + 718,5662,1048,557,5963,345,5096,5093,2638,943, + 739,331,2989,5451,331,5451,1,5388,5388,5451, + 5385,5459,331,5463,363,331,5951,5451,5090,5090, + 229,5090,229,229,229,5259,229,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 230,1,1,8662,1,1,1,1,1,1, - 364,395,5123,5123,1,284,5088,1372,1,5457, - 1,342,4004,342,5452,1,342,364,5331,1, - 5452,5466,5467,5463,5452,2835,719,5664,5464,558, - 5455,5452,5888,5889,5890,1,302,221,3287,5452, - 5215,5212,284,5355,2611,2541,5753,5334,5452,1808, - 2959,3082,5953,5452,5091,5091,230,5091,230,230, - 230,5260,230,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,230,1, - 1,8662,1,1,1,1,1,1,5463,38, - 5257,5257,1,5965,5088,332,646,40,1,5452, - 1372,5491,5452,1,2150,4196,1053,1,5452,5358, - 5462,123,5452,2835,719,5664,5462,558,129,3411, - 128,5452,5452,5452,5452,221,1,5461,3424,5460, - 5489,5458,5452,5461,5349,5452,5452,5316,5313,5452, - 5953,5452,5091,5091,230,5091,230,230,230,230, - 230,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,230,1,1,8662, - 1,1,1,1,1,1,2790,5489,2790,3874, - 1,5908,5088,44,5322,5322,1,5401,113,5404, - 1173,1,1004,5459,4896,1,406,5457,5459,2959, - 3082,2835,719,5664,5337,558,37,5431,5428,30, - 1,1,1976,2736,2667,2736,2667,5452,162,529, - 5452,5340,5452,5452,5319,46,5373,5373,5953,5452, - 5091,5091,230,5091,230,230,230,230,230,1, + 1,1,229,1,1,8738,1,1,1,1, + 1,1,363,39,2958,3081,1,5489,5087,1371, + 5451,37,1,5451,5465,5466,5451,1,739,363, + 2989,1,5462,1003,5458,854,2834,718,5662,363, + 557,370,5451,345,39,39,3286,5489,220,331, + 5459,515,331,1,29,2688,363,123,5451,5315, + 5312,5238,5487,5951,5451,5090,5090,229,5090,229, + 229,229,5259,229,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,229, + 1,1,8738,1,1,1,1,1,1,5487, + 37,5256,5256,1,185,5087,331,1371,5451,1, + 1283,910,1172,5458,1,5886,5887,5888,1,122, + 5462,880,134,2834,718,5662,424,557,449,331, + 5096,5093,2516,943,739,220,2989,5451,5214,5211, + 1,5487,5451,3286,2958,3081,311,532,5354,2091, + 5951,5451,5090,5090,229,5090,229,229,229,5259, + 229,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,229,1,1,8738, + 1,1,1,1,1,1,37,5256,5256,1, + 1,5256,5087,43,5321,5321,1,118,2724,5330, + 5451,1,4195,1052,1371,1,2958,3081,5457,3139, + 2834,718,5662,5357,557,1093,1,128,29,3286, + 2357,1,220,127,341,5448,362,3236,5333,161, + 1807,5451,3696,3671,5318,5451,5451,5951,5451,5090, + 5090,229,5090,229,229,229,229,229,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,230,1,1,8662,1,1, - 1,1,1,1,121,1,5370,1173,1,1, - 5088,5452,8730,8730,1,5331,5452,5462,4218,1, - 4240,958,425,1,162,529,2998,8,3445,2835, - 719,5664,458,558,5461,5443,5452,363,5452,3697, - 3672,1,1,396,5334,5452,1808,5452,4833,164, - 5458,5452,5489,38,5257,5257,5953,5452,5091,5091, - 230,5091,230,230,230,230,230,1,1,1, + 1,1,1,229,1,1,8738,1,1,1, + 1,1,1,5456,120,2789,5235,1,119,5087, + 1371,2789,405,1,341,5400,341,5451,1,341, + 5336,5403,1,1661,161,5451,640,2834,718,5662, + 1,557,5451,5457,2997,3813,3444,5339,5348,3696, + 3671,2735,2666,3696,3671,5451,5451,2735,2666,45, + 5372,5372,5451,457,5951,5451,5090,5090,229,5090, + 229,229,229,229,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,8662,1,1,1,1, - 1,1,5452,5452,2859,1,1,5251,5088,5443, - 5452,1173,1,192,5452,5424,5420,1,641,938, - 5452,1,38,911,5452,164,5457,2835,719,5664, - 192,558,1,5110,5106,4828,5103,4042,4108,2990, - 5452,4130,5277,5304,5310,5283,5286,5298,5295,5301, - 5292,5289,5280,5307,5953,5489,5452,1,5110,5106, - 5100,5103,5117,5489,5114,5462,5452,4086,4064,4174, - 4152,5894,5472,1795,3742,1451,1507,5452,5474,1492, - 3055,1500,5461,5475,5473,1404,186,5468,5470,5471, - 120,5469,290,5452,2019,1412,3814,349,40,40, - 158,517,40,5097,5094,4828,944,4042,4108,2990, - 5434,4130,2704,5717,5715,5724,5723,5719,5720,5718, - 5721,5722,5725,5716,3273,3697,3672,1,5110,5106, - 2517,5103,740,92,2990,310,5361,4086,4064,4174, - 4152,5452,5472,5452,3742,1451,1507,5452,5474,1492, - 3055,1500,310,5475,5473,1404,5452,5468,5470,5471, - 5452,5469,1372,877,238,1412,5452,5392,5452,1, - 5328,1933,4895,139,5459,40,5097,5094,4828,944, - 4042,4108,2990,5325,4130,2704,5717,5715,5724,5723, - 5719,5720,5718,5721,5722,5725,5716,427,5452,4564, - 5452,4654,5452,5452,5452,3450,4871,4876,5449,5452, - 4086,4064,4174,4152,2911,5472,5452,3742,1451,1507, - 101,5474,1492,3055,1500,2574,5475,5473,1404,2575, - 5468,5470,5471,76,5469,2583,3559,2584,1412,5452, - 5452,5452,4307,5328,142,5097,5094,4828,944,4042, - 4108,2990,5452,4130,2704,5717,5715,5724,5723,5719, - 5720,5718,5721,5722,5725,5716,5452,5452,1088,4881, - 5515,5516,5452,3141,2276,3195,511,100,74,4086, - 4064,4174,4152,376,5472,4406,3742,1451,1507,522, - 5474,1492,3055,1500,5452,5475,5473,1404,3292,5468, - 5470,5471,5452,5469,1,3627,5452,1412,5452,3789, - 40,40,1,5110,5106,4828,5103,4042,4108,2990, - 5452,4130,5277,5304,5310,5283,5286,5298,5295,5301, - 5292,5289,5280,5307,5452,2689,5440,3821,5452,804, - 5452,3909,2238,3113,592,3232,2310,4086,4064,4174, - 4152,5452,5472,1267,3742,1451,1507,5452,5474,1492, - 3055,1500,5452,5475,5473,1404,5452,5468,5470,5471, - 5452,5469,2,4319,5452,1412,5452,4375,40,40, - 40,5097,5094,4828,944,4042,4108,2990,5325,4130, - 2704,5717,5715,5724,5723,5719,5720,5718,5721,5722, - 5725,5716,2689,5452,104,3636,4717,4716,2689,5452, - 279,5452,4887,5446,5452,4086,4064,4174,4152,5452, - 5472,5452,3742,1451,1507,5452,5474,1492,3055,1500, - 38,5475,5473,1404,5452,5468,5470,5471,5452,5469, - 5452,5452,5452,1412,5452,5452,5452,5452,5328,40, - 5097,5094,4828,944,4042,4108,2990,5456,4130,2704, - 5717,5715,5724,5723,5719,5720,5718,5721,5722,5725, - 5716,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,4086,4064,4174,4152,5452,5472, - 5452,3742,1451,1507,5452,5474,1492,3055,1500,5452, - 5475,5473,1404,5452,5468,5470,5471,1,5469,5452, - 2794,5452,5922,5916,5452,5452,5920,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5914,5915,5945,5946,5452,5452,5452,5923, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5925,5452,5455,5452,5452, - 5452,5452,644,1126,1208,5452,5926,5924,5947,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5936,5935,5948,5452,5452, - 5917,5918,5941,5942,5939,5940,5919,5921,5943,5944, - 5452,5452,5452,5949,5452,5929,5930,5931,5927,5928, - 5937,5938,5933,5932,5934,40,5097,5094,4828,944, - 4042,4108,2990,5452,4130,2704,5717,5715,5724,5723, - 5719,5720,5718,5721,5722,5725,5716,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 4086,4064,4174,4152,5452,5472,5452,3742,1451,1507, - 5452,5474,1492,3055,1500,5452,5475,5473,1404,5452, - 5468,5470,5471,5452,5469,5452,5452,5452,1412,40, - 5097,5094,4828,944,4042,4108,2990,5452,4130,2704, - 5717,5715,5724,5723,5719,5720,5718,5721,5722,5725, - 5716,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,4086,4064,4174,4152,5452,5472, - 5452,3742,1451,1507,5452,5474,1492,3055,1500,5452, - 5475,5473,1404,5452,5468,5470,5471,5452,5469,5452, - 5452,5452,5452,5452,2898,40,5097,5094,4828,944, - 4042,4108,2990,5452,4130,2704,5717,5715,5724,5723, - 5719,5720,5718,5721,5722,5725,5716,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 4086,4064,4174,4152,5452,5472,5452,3742,1451,1507, - 5452,5474,1492,3055,1500,5452,5475,5473,1404,5452, - 5468,5470,5471,5452,5469,5452,5452,5452,1412,40, - 5097,5094,4847,944,4042,4108,2990,5452,4130,2704, - 5717,5715,5724,5723,5719,5720,5718,5721,5722,5725, - 5716,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,4086,4064,4174,4152,5452,5472, - 5452,3742,1451,1507,5452,5474,1492,3055,1500,5452, - 5475,5473,1404,5452,5468,5470,5471,5452,5469,40, - 5097,5094,4828,944,4042,4108,2990,5452,4130,2704, - 5717,5715,5724,5723,5719,5720,5718,5721,5722,5725, - 5716,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,4086,4064,4174,4152,5452,5472, - 5452,3742,1451,1507,5452,5474,1492,3055,1500,5452, - 5475,5473,1404,5452,5468,5470,5471,5452,5469,40, - 5097,5094,4828,944,4042,4108,2990,5452,4130,2704, - 5717,5715,5724,5723,5719,5720,5718,5721,5722,5725, - 5716,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,4086,4064,4174,4152,5452,5472, - 5452,3742,1451,1507,5452,5474,1492,3055,1500,5452, - 5475,5473,1404,5452,5468,5470,5471,5452,5469,5452, - 5097,5094,5452,5491,5452,5452,5452,5452,5452,677, - 5717,5715,5724,5723,5719,5720,5718,5721,5722,5725, - 5716,5713,5790,5791,5452,5707,5714,5710,5686,5712, - 5711,5708,5709,5687,5452,5452,5452,5452,5851,5452, - 5452,5452,5452,5452,2665,5452,242,5202,5198,5852, - 5206,5452,5452,5853,5452,5452,677,5189,5195,5168, - 5171,5183,5180,5186,5177,5174,5165,5192,5144,5138, - 5135,5452,5162,5141,5153,5132,5147,5150,5159,5156, - 5129,5452,5452,5452,5452,5851,5452,5452,5452,5452, - 5452,2665,5452,5452,5452,5452,5852,5452,5452,5452, - 5853,30,388,388,5398,388,388,5398,388,5398, - 5398,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,388,388,388,5398,388,388,388, - 388,388,388,388,388,388,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5236, - 5452,5452,5452,5452,5452,5452,5398,5452,5452,5452, - 5452,5452,5452,5452,5452,5398,33,389,389,5395, - 389,389,5395,389,5395,5395,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,389,389, - 389,5395,389,389,389,389,389,389,389,389, - 389,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5452,5452,5452,5452,5452,5452,5452,5452,5452, - 5452,5395,5452,5452,5452,5452,5452,5452,5452,5452, - 5395 + 229,1,1,8738,1,1,1,1,1,1, + 5369,5451,8692,8692,1,4895,5087,1,5456,39, + 1,5458,1,5489,1172,1,5451,5330,289,1, + 5461,1,5451,5906,2834,718,5662,5250,557,528, + 5461,3410,8,5451,157,1,1,5460,5451,5451, + 5442,348,5487,163,5457,368,5333,5460,1807,395, + 1,5951,5451,5090,5090,229,5090,229,229,229, + 229,229,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,229,1,1, + 8738,1,1,1,1,1,1,91,876,5451, + 5360,1,3873,5087,528,5451,957,1,37,5256, + 5256,5892,1,5442,1932,1371,1,1172,163,5456, + 508,2834,718,5662,1328,557,1,5109,5105,4827, + 5102,4041,4107,2989,5451,4129,5276,5303,5309,5282, + 5285,5297,5294,5300,5291,5288,5279,5306,5951,2858, + 5810,1,5109,5105,5099,5102,5116,937,5113,5461, + 5451,4085,4063,4173,4151,506,5470,5451,3741,1450, + 1506,5451,5472,1491,3054,1499,5460,5473,5471,1403, + 420,5467,5468,5469,132,5451,5423,5419,1411,4695, + 5451,39,39,593,516,39,5096,5093,4827,943, + 4041,4107,2989,5433,4129,2703,5715,5713,5722,5721, + 5717,5718,5716,5719,5720,5723,5714,5451,3272,5451, + 1,5109,5105,2516,5102,739,5487,2989,309,4563, + 4085,4063,4173,4151,4889,5470,5451,3741,1450,1506, + 5451,5472,1491,3054,1499,309,5473,5471,1403,2187, + 5467,5468,5469,5451,5451,5451,5451,1411,2573,5451, + 237,75,5327,5391,3558,136,5458,39,5096,5093, + 4827,943,4041,4107,2989,5324,4129,2703,5715,5713, + 5722,5721,5717,5718,5716,5719,5720,5723,5714,1975, + 1,3140,1,4894,4653,426,5451,5451,5513,5514, + 191,5451,4085,4063,4173,4151,5451,5470,2574,3741, + 1450,1506,3449,5472,1491,3054,1499,191,5473,5471, + 1403,2582,5467,5468,5469,3291,5451,2583,3194,1411, + 5451,5451,5451,4870,5327,141,5096,5093,4827,943, + 4041,4107,2989,5451,4129,2703,5715,5713,5722,5721, + 5717,5718,5716,5719,5720,5723,5714,5451,5451,5451, + 4875,4306,4880,5451,2325,1087,803,5451,3231,5451, + 4085,4063,4173,4151,5451,5470,2991,3741,1450,1506, + 1266,5472,1491,3054,1499,5451,5473,5471,1403,2721, + 5467,5468,5469,5451,73,5451,3626,1411,3788,100, + 39,39,1,5109,5105,4827,5102,4041,4107,2989, + 1,4129,5276,5303,5309,5282,5285,5297,5294,5300, + 5291,5288,5279,5306,5451,5451,5451,3820,3908,3112, + 5451,5451,1794,4318,4374,99,2018,4085,4063,4173, + 4151,510,5470,5451,3741,1450,1506,3423,5472,1491, + 3054,1499,5439,5473,5471,1403,2,5467,5468,5469, + 5451,5451,5451,4405,1411,4716,5451,39,39,39, + 5096,5093,4827,943,4041,4107,2989,5324,4129,2703, + 5715,5713,5722,5721,5717,5718,5716,5719,5720,5723, + 5714,103,1,5451,4715,2793,4886,5920,5914,2237, + 4003,5918,1,5451,4085,4063,4173,4151,5451,5470, + 2309,3741,1450,1506,37,5472,1491,3054,1499,5451, + 5473,5471,1403,5451,5467,5468,5469,5912,5913,5943, + 5944,1411,278,5451,5921,5445,5327,5451,5451,5451, + 5451,5451,591,5451,5451,5451,5451,5451,5451,5451, + 5923,5451,5451,5451,5451,5451,643,1125,1207,5451, + 5924,5922,5945,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5934, + 5933,5946,5451,5451,5915,5916,5939,5940,5937,5938, + 5917,5919,5941,5942,5451,5451,5451,5947,5451,5927, + 5928,5929,5925,5926,5935,5936,5931,5930,5932,39, + 5096,5093,4827,943,4041,4107,2989,5455,4129,2703, + 5715,5713,5722,5721,5717,5718,5716,5719,5720,5723, + 5714,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,4085,4063,4173,4151,5451,5470, + 5451,3741,1450,1506,5451,5472,1491,3054,1499,5451, + 5473,5471,1403,5451,5467,5468,5469,39,5096,5093, + 4827,943,4041,4107,2989,5451,4129,2703,5715,5713, + 5722,5721,5717,5718,5716,5719,5720,5723,5714,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,4085,4063,4173,4151,5451,5470,5451,3741, + 1450,1506,5451,5472,1491,3054,1499,5451,5473,5471, + 1403,5451,5467,5468,5469,5451,5454,5451,5451,1411, + 39,5096,5093,4827,943,4041,4107,2989,5451,4129, + 2703,5715,5713,5722,5721,5717,5718,5716,5719,5720, + 5723,5714,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,4085,4063,4173,4151,5451, + 5470,5451,3741,1450,1506,5451,5472,1491,3054,1499, + 5451,5473,5471,1403,5451,5467,5468,5469,5451,5451, + 5451,5451,5451,5451,2897,39,5096,5093,4827,943, + 4041,4107,2989,5451,4129,2703,5715,5713,5722,5721, + 5717,5718,5716,5719,5720,5723,5714,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 4085,4063,4173,4151,5451,5470,5451,3741,1450,1506, + 5451,5472,1491,3054,1499,5451,5473,5471,1403,5451, + 5467,5468,5469,5451,5451,5451,5451,1411,39,5096, + 5093,4846,943,4041,4107,2989,5451,4129,2703,5715, + 5713,5722,5721,5717,5718,5716,5719,5720,5723,5714, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,4085,4063,4173,4151,5451,5470,5451, + 3741,1450,1506,5451,5472,1491,3054,1499,5451,5473, + 5471,1403,5451,5467,5468,5469,39,5096,5093,4827, + 943,4041,4107,2989,5451,4129,2703,5715,5713,5722, + 5721,5717,5718,5716,5719,5720,5723,5714,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,4085,4063,4173,4151,5451,5470,5451,3741,1450, + 1506,5451,5472,1491,3054,1499,5451,5473,5471,1403, + 5451,5467,5468,5469,39,5096,5093,4827,943,4041, + 4107,2989,5451,4129,2703,5715,5713,5722,5721,5717, + 5718,5716,5719,5720,5723,5714,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,4085, + 4063,4173,4151,5451,5470,5451,3741,1450,1506,5451, + 5472,1491,3054,1499,5451,5473,5471,1403,5451,5467, + 5468,5469,5451,5096,5093,5451,5489,5451,5451,5451, + 5451,5451,676,5715,5713,5722,5721,5717,5718,5716, + 5719,5720,5723,5714,5711,5788,5789,5451,5705,5712, + 5708,5684,5710,5709,5706,5707,5685,5451,5451,5451, + 5451,5849,5451,5451,5451,5451,5451,2664,5451,241, + 5201,5197,5850,5205,5451,5451,5851,5451,5451,676, + 5188,5194,5167,5170,5182,5179,5185,5176,5173,5164, + 5191,5143,5137,5134,5451,5161,5140,5152,5131,5146, + 5149,5158,5155,5128,5451,5451,5451,5451,5849,5451, + 5451,5451,5451,5451,2664,5451,5451,5451,5451,5850, + 5451,5451,5451,5851,29,387,387,5397,387,387, + 5397,387,5397,5397,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,387,387,387,5397, + 387,387,387,387,387,387,387,387,387,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5235,5451,5451,5451,5451,5451,5397,5451, + 5451,5451,5451,5451,5451,5451,5451,5397,32,388, + 388,5394,388,388,5394,388,5394,5394,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 388,388,388,5394,388,388,388,388,388,388, + 388,388,388,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5451,5451,5451,5451,5451,5451,5451,5451, + 5451,5451,5394,5451,5451,5451,5451,5451,5451,5451, + 5451,5394 }; }; public final static char termAction[] = TermAction.termAction; @@ -1854,60 +1837,60 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 844,1,1028,941,738,499,338,943,92,403, - 989,186,1112,92,1041,1052,405,1052,400,1052, - 690,1052,1036,1052,186,187,240,499,181,233, - 780,780,698,187,780,187,941,589,842,245, - 990,405,190,187,1113,553,291,402,335,403, - 186,340,187,187,336,768,410,410,887,36, - 36,184,43,45,181,187,507,553,340,340, - 777,455,553,780,780,589,780,187,285,655, - 307,991,991,990,990,990,186,187,1113,887, - 291,187,410,556,408,336,405,565,187,340, - 336,187,982,410,405,186,414,181,187,147, - 195,181,982,773,340,340,184,455,455,1113, - 655,307,990,826,990,187,887,887,826,187, - 291,1128,403,589,393,1118,291,410,409,410, - 410,336,565,565,187,842,544,941,589,589, - 589,589,186,941,131,235,148,148,148,148, - 148,148,148,148,148,782,788,793,790,797, - 795,802,800,804,803,805,458,806,841,187, - 768,187,405,111,561,187,941,455,820,508, - 553,147,826,405,508,773,842,842,777,553, - 639,627,638,841,589,643,643,826,826,187, - 285,1120,410,410,410,410,187,565,826,570, - 825,184,651,635,634,131,738,738,738,738, - 187,49,553,553,131,900,737,285,131,782, - 284,284,49,147,148,148,148,148,148,148, - 148,148,148,148,148,148,148,148,148,148, - 148,148,148,147,147,147,147,147,147,147, - 147,147,147,147,147,148,131,982,770,112, - 186,187,49,575,826,195,773,772,829,147, - 636,636,649,184,3,307,991,307,840,840, - 887,1113,45,148,1128,44,582,410,410,94, - 826,148,187,544,553,653,655,553,553,842, - 842,842,842,336,553,148,591,1058,1058,186, - 235,455,737,147,553,1112,1114,1112,553,455, - 790,790,788,788,788,795,795,795,795,793, - 793,800,797,797,803,802,804,1128,805,770, - 111,1128,148,1128,887,110,941,941,941,112, - 941,187,465,887,887,187,405,553,147,195, - 773,829,147,147,653,627,307,738,738,887, - 1120,148,148,561,765,95,187,553,655,941, - 941,941,941,187,187,187,285,148,738,786, - 510,553,187,1114,285,147,102,941,102,112, - 1128,112,131,131,129,696,131,887,887,898, - 770,825,831,841,94,187,186,186,187,890, - 553,147,147,147,147,941,941,336,1113,553, - 786,184,768,187,1113,3,112,553,181,553, - 129,499,941,553,770,824,194,831,688,187, - 187,187,890,890,553,553,553,553,49,49, - 187,786,787,786,147,510,1116,782,768,553, - 553,1106,112,898,112,887,499,147,112,109, - 824,824,941,643,187,187,836,890,553,553, - 1093,786,49,148,455,1116,405,405,1108,147, - 110,49,887,553,656,840,836,836,787,553, - 455,112,553,887,552,1112,836,112,738 + 838,1,1021,934,732,493,335,936,91,399, + 982,184,1105,91,1034,1045,401,1045,396,1045, + 684,1045,1029,1045,184,185,237,493,179,230, + 774,774,692,185,774,185,934,583,836,242, + 983,401,188,185,1106,547,288,398,332,399, + 184,337,185,185,333,762,406,406,881,36, + 36,182,43,45,179,185,501,547,337,337, + 771,450,547,774,774,583,774,185,282,649, + 304,984,984,983,983,983,184,185,1106,881, + 288,185,406,550,404,333,401,559,185,337, + 333,185,975,406,401,184,410,179,185,146, + 193,179,975,767,337,337,182,450,450,1106, + 649,304,983,820,983,185,881,881,820,185, + 288,1121,399,583,389,1111,288,406,405,406, + 406,333,559,559,185,836,538,934,583,583, + 583,583,184,934,130,232,147,147,147,147, + 147,147,147,147,147,776,782,787,784,791, + 789,796,794,798,797,799,453,800,835,185, + 762,185,401,110,555,185,934,450,814,502, + 547,146,820,401,502,767,836,836,771,547, + 633,621,632,835,583,637,637,820,820,185, + 282,1113,406,406,406,406,185,559,820,564, + 819,182,645,629,628,130,732,732,732,732, + 185,49,547,547,130,894,731,282,130,776, + 281,281,49,146,147,147,147,147,147,147, + 147,147,147,147,147,147,147,147,147,147, + 147,147,147,146,146,146,146,146,146,146, + 146,146,146,146,146,147,130,975,764,111, + 184,185,49,569,820,193,767,766,823,146, + 630,630,643,182,3,304,984,304,834,834, + 881,1106,45,147,1121,44,576,406,406,93, + 820,147,185,538,547,647,649,547,547,836, + 836,836,836,333,547,147,585,1051,1051,184, + 232,450,731,146,547,1105,1107,1105,547,450, + 784,784,782,782,782,789,789,789,789,787, + 787,794,791,791,797,796,798,1121,799,764, + 110,1121,147,1121,881,109,934,934,934,111, + 934,185,460,881,881,185,401,547,146,193, + 767,823,146,146,647,621,304,732,732,881, + 1113,147,147,555,759,94,185,547,649,934, + 934,934,934,185,185,185,282,147,732,780, + 504,547,185,1107,282,146,101,934,101,111, + 1121,111,130,130,128,690,130,881,881,892, + 764,819,825,835,93,185,184,184,185,884, + 547,146,146,146,146,934,934,333,1106,547, + 780,182,762,185,1106,3,111,547,179,547, + 128,493,934,547,764,818,192,825,682,185, + 185,185,884,884,547,547,547,547,49,49, + 185,780,781,780,146,504,1109,776,762,547, + 547,1099,111,892,111,881,493,146,111,108, + 818,818,934,637,185,185,830,884,547,547, + 1086,780,49,147,450,1109,401,401,1101,146, + 109,49,881,547,650,834,830,830,781,547, + 450,111,547,881,546,1105,830,111,732 }; }; public final static char asb[] = Asb.asb; @@ -1915,119 +1898,119 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 121,0,26,11,12,39,23,13,45,27, + 120,0,26,11,12,39,23,13,45,27, 28,14,29,30,15,16,31,32,17,18, 33,50,34,10,54,19,22,20,24,21, - 1,2,4,91,0,75,69,73,91,74, - 68,65,3,70,8,25,71,0,8,74, - 11,12,43,66,13,44,46,14,15,16, - 67,7,47,17,18,48,49,51,63,52, + 1,2,4,90,0,74,68,72,90,73, + 67,64,3,69,8,25,70,0,8,73, + 11,12,43,65,13,44,46,14,15,16, + 66,7,47,17,18,48,49,51,62,52, 53,10,19,20,21,55,56,57,1,2, 3,37,38,9,6,35,36,5,42,4, - 59,40,0,22,1,2,4,103,104,105, - 0,87,103,104,105,41,73,121,119,122, - 72,62,75,61,60,64,77,79,85,83, - 76,81,82,84,86,68,78,80,25,8, - 26,39,23,45,27,28,29,30,31,32, - 33,50,34,54,22,24,63,66,67,10, - 44,49,47,43,53,12,21,11,17,15, - 16,18,19,14,13,20,55,59,56,57, - 40,52,46,51,37,38,35,36,42,48, - 5,7,3,9,6,4,1,2,0,8, - 68,70,0,72,63,37,38,9,6,35, - 36,42,48,3,4,55,59,56,57,40, - 52,46,51,12,21,11,17,15,16,18, - 19,14,13,20,10,44,49,47,43,53, - 68,8,7,5,1,2,67,66,0,8, - 73,68,75,0,64,26,11,12,39,23, - 13,45,27,87,28,14,29,30,15,16, - 31,60,32,17,18,33,50,34,10,54, - 19,61,22,20,24,21,3,9,6,25, - 62,68,8,4,7,5,41,1,2,0, - 87,60,7,103,104,105,61,8,3,9, - 6,5,73,72,25,62,26,11,12,39, - 23,13,45,27,28,14,29,30,15,16, - 31,32,17,18,33,50,34,10,54,19, - 22,20,24,21,4,1,2,41,0,26, - 11,12,39,23,43,66,13,44,45,27, - 28,46,14,29,30,15,16,31,67,32, - 47,17,18,48,33,49,50,51,63,52, - 34,53,54,19,22,20,24,21,55,56, - 57,40,3,37,38,9,6,35,36,42, - 69,59,7,1,2,5,4,10,0,41, - 4,73,1,2,68,8,0,4,58,8, - 73,68,0,66,67,3,10,44,49,47, - 43,53,12,21,11,17,15,16,18,19, - 14,13,20,55,59,56,57,40,52,46, - 51,5,7,4,37,38,9,6,35,36, - 42,48,1,2,118,8,0,69,73,91, - 71,118,74,72,11,12,43,66,13,44, - 46,14,15,16,67,47,17,18,48,49, - 51,63,52,53,10,19,20,21,55,56, - 57,40,37,38,35,36,42,59,8,25, - 5,7,1,2,4,3,9,6,0,92, - 90,35,36,93,94,88,89,58,95,96, - 97,98,99,100,101,102,107,73,91,70, - 108,109,110,111,112,113,114,115,116,117, - 118,72,25,69,1,2,9,6,4,3, - 65,71,74,8,0,4,8,73,68,0, - 8,68,71,0,1,2,8,72,0,8, - 71,72,70,0,8,73,118,74,25,71, - 0,73,8,65,3,70,71,25,58,0, - 26,11,12,23,13,27,28,14,29,30, - 15,16,31,7,32,17,18,33,34,19, - 22,20,24,21,1,2,8,65,9,6, - 5,4,74,25,3,0,9,6,7,5, - 4,1,2,3,65,69,70,71,8,74, - 91,0,69,70,71,1,2,0,5,7, - 3,65,6,9,91,26,11,12,23,13, - 45,27,28,14,29,30,15,16,31,32, - 17,18,33,50,34,10,54,19,22,20, - 24,21,1,2,4,74,8,39,0,4, - 8,68,1,2,0,76,0,67,66,35, - 36,6,93,94,99,9,100,5,42,70, - 58,69,111,112,108,109,110,116,115,117, - 89,88,113,114,97,98,95,96,101,102, - 37,38,71,90,106,65,3,10,45,39, - 50,54,12,21,11,17,15,16,18,19, - 14,13,20,26,32,33,28,31,30,27, - 23,24,29,34,1,2,22,4,0,119, - 0,63,23,7,24,5,1,2,4,75, - 68,120,106,37,38,65,3,92,90,6, - 93,94,35,36,89,88,58,95,96,97, - 98,9,99,100,101,69,91,74,70,108, - 109,110,111,112,113,114,115,116,117,73, - 118,102,107,25,71,72,8,0,23,24, - 75,3,73,25,68,63,8,91,74,70, - 71,69,0,3,9,6,5,7,26,11, - 12,39,23,13,45,27,14,29,30,15, - 16,31,32,17,18,33,50,34,10,54, - 19,22,20,24,21,121,62,60,28,87, - 64,61,1,2,4,41,25,8,0,23, - 63,24,8,69,91,71,74,70,0,66, - 67,37,38,9,6,35,36,5,42,48, - 4,7,55,59,56,57,40,52,46,51, + 40,0,22,1,2,4,102,103,104,0, + 86,102,103,104,41,72,120,118,121,71, + 61,74,60,59,63,76,78,84,82,75, + 80,81,83,85,67,77,79,25,8,26, + 39,23,45,27,28,29,30,31,32,33, + 50,34,54,22,24,62,65,66,10,44, + 49,47,43,53,12,21,11,17,15,16, + 18,19,14,13,20,55,56,57,40,52, + 46,51,37,38,35,36,42,48,5,7, + 3,9,6,4,1,2,0,8,67,69, + 0,71,62,37,38,9,6,35,36,42, + 48,3,4,55,56,57,40,52,46,51, 12,21,11,17,15,16,18,19,14,13, - 20,10,44,49,47,43,53,65,1,2, - 3,0,39,23,13,45,27,14,29,30, + 20,10,44,49,47,43,53,67,8,7, + 5,1,2,66,65,0,8,72,67,74, + 0,63,26,11,12,39,23,13,45,27, + 86,28,14,29,30,15,16,31,59,32, + 17,18,33,50,34,10,54,19,60,22, + 20,24,21,3,9,6,25,61,67,8, + 4,7,5,41,1,2,0,86,59,7, + 102,103,104,60,8,3,9,6,5,72, + 71,25,61,26,11,12,39,23,13,45, + 27,28,14,29,30,15,16,31,32,17, + 18,33,50,34,10,54,19,22,20,24, + 21,4,1,2,41,0,26,11,12,39, + 23,43,65,13,44,45,27,28,46,14, + 29,30,15,16,31,66,32,47,17,18, + 48,33,49,50,51,62,52,34,53,54, + 19,22,20,24,21,55,56,57,40,3, + 37,38,9,6,35,36,42,68,7,1, + 2,5,4,10,0,41,4,72,1,2, + 67,8,0,4,58,8,72,67,0,65, + 66,3,10,44,49,47,43,53,12,21, + 11,17,15,16,18,19,14,13,20,55, + 56,57,40,52,46,51,5,7,4,37, + 38,9,6,35,36,42,48,1,2,117, + 8,0,68,72,90,70,117,73,71,11, + 12,43,65,13,44,46,14,15,16,66, + 47,17,18,48,49,51,62,52,53,10, + 19,20,21,55,56,57,40,37,38,35, + 36,42,8,25,5,7,1,2,4,3, + 9,6,0,91,89,35,36,92,93,87, + 88,58,94,95,96,97,98,99,100,101, + 106,72,90,69,107,108,109,110,111,112, + 113,114,115,116,117,71,25,68,1,2, + 9,6,4,3,64,70,73,8,0,4, + 8,72,67,0,8,67,70,0,1,2, + 8,71,0,8,70,71,69,0,8,72, + 117,73,25,70,0,72,8,64,3,69, + 70,25,58,0,26,11,12,23,13,27, + 28,14,29,30,15,16,31,7,32,17, + 18,33,34,19,22,20,24,21,1,2, + 8,64,9,6,5,4,73,25,3,0, + 9,6,7,5,4,1,2,3,64,68, + 69,70,8,73,90,0,68,69,70,1, + 2,0,5,7,3,64,6,9,90,26, + 11,12,23,13,45,27,28,14,29,30, 15,16,31,32,17,18,33,50,34,10, + 54,19,22,20,24,21,1,2,4,73, + 8,39,0,4,8,67,1,2,0,75, + 0,66,65,35,36,6,92,93,98,9, + 99,5,42,69,58,68,110,111,107,108, + 109,115,114,116,88,87,112,113,96,97, + 94,95,100,101,37,38,70,89,105,64, + 3,10,45,39,50,54,12,21,11,17, + 15,16,18,19,14,13,20,26,32,33, + 28,31,30,27,23,24,29,34,1,2, + 22,4,0,118,0,62,23,7,24,5, + 1,2,4,74,67,119,105,37,38,64, + 3,91,89,6,92,93,35,36,88,87, + 58,94,95,96,97,9,98,99,100,68, + 90,73,69,107,108,109,110,111,112,113, + 114,115,116,72,117,101,106,25,70,71, + 8,0,23,24,74,3,72,25,67,62, + 8,90,73,69,70,68,0,3,9,6, + 5,7,26,11,12,39,23,13,45,27, + 14,29,30,15,16,31,32,17,18,33, + 50,34,10,54,19,22,20,24,21,120, + 61,59,28,86,63,60,1,2,4,41, + 25,8,0,23,62,24,8,68,90,70, + 73,69,0,65,66,37,38,9,6,35, + 36,5,42,48,4,7,55,56,57,40, + 52,46,51,12,21,11,17,15,16,18, + 19,14,13,20,10,44,49,47,43,53, + 64,1,2,3,0,39,23,13,45,27, + 14,29,30,15,16,31,32,17,18,33, + 50,34,10,54,19,22,20,24,21,12, + 11,26,8,3,9,25,60,59,63,86, + 28,61,58,4,7,6,5,1,2,41, + 0,120,71,39,23,13,45,27,14,29, + 30,15,16,31,32,17,18,33,50,34, 54,19,22,20,24,21,12,11,26,8, - 3,9,25,61,60,64,87,28,62,58, - 4,7,6,5,1,2,41,0,121,72, - 39,23,13,45,27,14,29,30,15,16, - 31,32,17,18,33,50,34,54,19,22, - 20,24,21,12,11,26,8,3,9,6, - 25,62,28,87,64,61,41,7,1,2, - 5,4,10,60,0,10,45,39,50,54, - 12,21,11,17,15,16,18,19,14,13, - 20,75,73,91,118,72,68,120,92,106, - 90,37,38,35,36,93,94,88,89,58, - 69,95,96,97,98,99,100,101,102,107, - 70,108,109,110,111,112,113,114,115,116, - 117,71,26,23,27,28,29,30,31,32, - 33,34,22,24,25,8,74,9,6,3, - 65,4,7,1,2,5,0,25,8,3, - 7,5,9,6,4,1,2,73,0 + 3,9,6,25,61,28,86,63,60,41, + 7,1,2,5,4,10,59,0,10,45, + 39,50,54,12,21,11,17,15,16,18, + 19,14,13,20,74,72,90,117,71,67, + 119,91,105,89,37,38,35,36,92,93, + 87,88,58,68,94,95,96,97,98,99, + 100,101,106,69,107,108,109,110,111,112, + 113,114,115,116,70,26,23,27,28,29, + 30,31,32,33,34,22,24,25,8,73, + 9,6,3,64,4,7,1,2,5,0, + 25,8,3,7,5,9,6,4,1,2, + 72,0 }; }; public final static byte asr[] = Asr.asr; @@ -2136,14 +2119,14 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 107,104,54,106,120,47,64,66,70,73, 76,83,89,98,11,12,7,8,53,112, 93,14,55,61,63,67,84,88,90,91, - 94,97,99,101,109,110,111,19,123,77, - 103,122,95,46,1,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 + 94,97,99,101,109,110,111,19,77,103, + 122,95,46,1,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; @@ -2151,26 +2134,26 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {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,164,151, - 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,0,0,0,0,0,206, - 0,175,125,178,0,0,186,0,0,202, - 212,157,208,209,210,0,0,146,0,0, - 207,220,0,174,179,196,0,0,211,0, - 0,0,0,240,241,147,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,0,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, + 129,134,135,0,0,133,0,0,228,234, + 132,0,142,131,0,0,141,147,0,0, + 148,179,157,158,159,160,161,162,163,150, + 164,125,165,140,166,167,0,127,130,128, + 168,0,137,136,151,176,0,0,0,0, + 0,0,0,0,144,171,0,154,0,203, + 0,186,200,204,0,0,126,170,0,0, + 0,0,0,0,0,0,0,0,0,205, + 0,174,124,177,0,0,185,0,0,201, + 211,156,207,208,209,0,0,145,0,0, + 206,219,0,173,178,195,0,0,210,0, + 0,0,0,239,240,146,188,189,190,191, + 192,194,197,0,198,0,213,216,0,218, + 0,237,0,238,0,0,138,139,143,0, + 0,153,155,0,169,0,180,181,182,183, + 184,187,0,0,193,0,196,202,0,214, + 215,0,0,220,223,0,225,227,0,231, + 232,233,236,0,0,149,152,0,172,0, + 175,0,0,199,212,217,0,0,221,222, + 224,226,0,229,230,235,241,242,0,0, 0 }; }; @@ -2236,18 +2219,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,72,74,74,74,74,74,72, - 25,72,72,1,69,1,74,122,68,3, - 74,69,69,69,1,1,25,72,68,72, - 1,1,1,72,1,1,4,69,71,25, - 1,1,69,74,74,74,119,74,1,25, - 1,25,25,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, - 25,74,118,74,5,74,1,41,70,73, - 74,1,41,76,75,25,25,4,4,4, - 4,3,1,68,1,1,3 + 118,73,73,71,73,73,73,73,73,71, + 25,71,71,1,68,1,73,121,67,3, + 73,68,68,68,1,1,25,71,67,71, + 1,1,1,71,1,1,4,68,70,25, + 1,1,68,73,73,73,118,73,1,25, + 1,25,25,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, + 25,73,117,73,5,73,1,41,69,72, + 73,1,41,75,74,25,25,4,4,4, + 4,3,1,67,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2274,71 +2257,71 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 321,3,63,0,126,0,320,3,119,0, - 126,172,0,127,179,75,0,216,0,254, - 127,58,125,0,20,0,296,127,58,41, - 0,20,53,0,33,132,0,20,53,0, - 0,296,127,58,41,204,0,20,178,0, - 254,127,58,133,0,180,128,0,141,0, - 220,3,295,0,295,0,2,0,126,0, - 254,127,58,132,0,180,128,225,0,180, - 128,22,225,0,180,128,316,22,0,129, - 188,167,128,0,128,0,188,167,128,0, - 134,128,0,171,0,312,127,171,0,127, - 171,0,222,128,0,167,311,244,0,136, - 0,0,0,0,135,0,0,0,0,310, - 127,163,253,0,127,0,253,0,129,0, - 0,127,0,309,127,163,252,0,127,0, - 0,44,127,0,0,153,3,0,127,283, - 282,127,75,281,171,0,282,127,75,281, - 171,0,215,0,216,0,281,171,0,96, - 0,0,215,0,216,0,203,96,0,0, - 215,0,216,0,282,127,281,171,0,215, - 0,203,0,0,215,0,230,127,3,0, - 126,0,0,0,0,0,230,127,3,217, - 0,224,3,0,213,127,0,208,0,146, - 0,177,167,128,0,10,0,0,0,215, - 65,0,125,0,230,127,3,183,0,183, - 0,2,0,0,126,0,0,0,0,0, - 205,3,0,201,0,226,127,163,40,28, - 0,180,128,60,61,0,196,128,0,129, - 180,128,279,61,0,180,128,279,61,0, - 180,128,70,124,60,0,226,127,163,60, - 0,226,127,163,229,60,0,277,127,163, - 124,306,45,0,277,127,163,306,45,0, - 180,128,276,45,0,135,0,188,180,128, - 276,244,0,136,0,180,128,276,244,0, - 188,167,128,10,0,167,128,10,0,167, - 128,0,93,136,0,269,127,145,0,269, - 127,171,0,162,85,0,301,161,303,304, - 3,82,0,126,171,0,303,304,3,82, - 0,128,0,126,171,0,162,3,76,191, - 81,0,126,128,0,191,81,0,108,2, - 131,126,128,0,227,3,76,0,205,168, - 0,33,169,0,168,0,175,33,169,0, - 227,3,86,0,191,155,227,3,84,0, - 62,171,0,227,3,84,0,126,171,62, - 171,0,302,127,163,0,162,0,215,78, - 0,30,171,0,162,107,159,0,30,169, - 0,178,3,0,126,149,0,220,3,0, - 215,65,266,0,162,65,0,178,3,298, - 67,128,0,126,0,0,0,0,298,67, - 128,0,2,145,126,0,0,0,0,178, - 3,48,0,147,0,126,41,167,128,0, - 31,147,0,93,136,31,147,0,221,180, - 128,0,146,31,147,0,178,3,53,0, - 162,3,53,0,162,3,69,178,58,43, - 0,178,58,43,0,20,2,131,126,0, - 162,3,69,178,58,47,0,178,58,47, - 0,162,3,69,178,58,49,0,178,58, - 49,0,162,3,69,178,58,44,0,178, - 58,44,0,220,3,126,188,167,128,10, - 0,126,188,167,128,10,0,136,2,0, - 126,0,220,3,125,259,167,128,10,0, - 259,167,128,10,0,135,2,0,126,0, - 220,3,136,0,220,3,140,0,162,65, - 140,0,261,0,31,0,31,139,0,166, - 0,134,0,162,3,0 + 320,3,62,0,125,0,319,3,118,0, + 125,171,0,126,178,74,0,215,0,253, + 126,58,124,0,20,0,295,126,58,41, + 0,20,53,0,33,131,0,20,53,0, + 0,295,126,58,41,203,0,20,177,0, + 253,126,58,132,0,179,127,0,140,0, + 219,3,294,0,294,0,2,0,125,0, + 253,126,58,131,0,179,127,224,0,179, + 127,22,224,0,179,127,315,22,0,128, + 187,166,127,0,127,0,187,166,127,0, + 133,127,0,170,0,311,126,170,0,126, + 170,0,221,127,0,166,310,243,0,135, + 0,0,0,0,134,0,0,0,0,309, + 126,162,252,0,126,0,252,0,128,0, + 0,126,0,308,126,162,251,0,126,0, + 0,44,126,0,0,152,3,0,126,282, + 281,126,74,280,170,0,281,126,74,280, + 170,0,214,0,215,0,280,170,0,96, + 0,0,214,0,215,0,202,96,0,0, + 214,0,215,0,281,126,280,170,0,214, + 0,202,0,0,214,0,229,126,3,0, + 125,0,0,0,0,0,229,126,3,216, + 0,223,3,0,212,126,0,207,0,145, + 0,176,166,127,0,10,0,0,0,214, + 64,0,124,0,229,126,3,182,0,182, + 0,2,0,0,125,0,0,0,0,0, + 204,3,0,200,0,225,126,162,40,28, + 0,179,127,59,60,0,195,127,0,128, + 179,127,278,60,0,179,127,278,60,0, + 179,127,69,123,59,0,225,126,162,59, + 0,225,126,162,228,59,0,276,126,162, + 123,305,45,0,276,126,162,305,45,0, + 179,127,275,45,0,134,0,187,179,127, + 275,243,0,135,0,179,127,275,243,0, + 187,166,127,10,0,166,127,10,0,166, + 127,0,93,135,0,268,126,144,0,268, + 126,170,0,161,84,0,300,160,302,303, + 3,81,0,125,170,0,302,303,3,81, + 0,127,0,125,170,0,161,3,75,190, + 80,0,125,127,0,190,80,0,108,2, + 130,125,127,0,226,3,75,0,204,167, + 0,33,168,0,167,0,174,33,168,0, + 226,3,85,0,190,154,226,3,83,0, + 62,170,0,226,3,83,0,125,170,62, + 170,0,301,126,162,0,161,0,214,77, + 0,30,170,0,161,106,158,0,30,168, + 0,177,3,0,125,148,0,219,3,0, + 214,64,265,0,161,64,0,177,3,297, + 66,127,0,125,0,0,0,0,297,66, + 127,0,2,144,125,0,0,0,0,177, + 3,48,0,146,0,125,41,166,127,0, + 31,146,0,93,135,31,146,0,220,179, + 127,0,145,31,146,0,177,3,53,0, + 161,3,53,0,161,3,68,177,58,43, + 0,177,58,43,0,20,2,130,125,0, + 161,3,68,177,58,47,0,177,58,47, + 0,161,3,68,177,58,49,0,177,58, + 49,0,161,3,68,177,58,44,0,177, + 58,44,0,219,3,125,187,166,127,10, + 0,125,187,166,127,10,0,135,2,0, + 125,0,219,3,124,258,166,127,10,0, + 258,166,127,10,0,134,2,0,125,0, + 219,3,135,0,219,3,139,0,161,64, + 139,0,260,0,31,0,31,138,0,165, + 0,133,0,161,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2346,38 +2329,38 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 3299,3200,0,2594,2582,2579,0,3024,2348,0, - 4778,4881,4876,4871,0,1254,3005,927,2057,0, - 1088,924,0,3534,3479,3425,3323,3286,3232,3195, - 3141,3104,2854,2817,4307,0,1267,804,0,1053, - 0,4415,3445,4317,0,2725,647,0,3534,3479, - 3609,3502,3425,3323,3286,3232,3195,3141,1394,3104, - 2854,2817,3309,3274,0,3045,2871,0,4656,4596, - 0,735,0,1498,1410,1322,857,2943,3412,579, - 2639,3287,2401,3029,0,4499,2445,2943,3111,2935, - 3412,3511,3485,2426,3446,3430,4521,2652,3253,2388, - 0,4809,4802,4791,4569,4473,4787,4772,4727,3902, - 4723,3620,2471,4711,2466,4705,4605,3809,1280,626, - 3773,3596,3591,3384,0,2943,4621,4521,2652,4683, - 579,3398,4534,3874,2639,2426,2401,3724,2517,2388, - 0,4621,4683,0,3512,3419,3436,4809,4802,3226, - 3237,2911,2859,2694,4791,2840,4569,4473,2850,4787, - 4772,4727,931,3902,2453,4723,2985,1137,3620,2471, - 4711,2466,795,4705,4605,791,2535,3809,630,1280, - 626,3773,3596,3591,740,3384,4549,2929,2414,2226, - 2138,944,2310,579,3398,4534,3874,2943,2822,2595, - 2639,1267,804,2426,2401,4621,3724,4521,2652,2517, - 2388,4683,3055,4284,4262,1186,2276,2358,2326,2611, - 2541,594,3082,2959,2790,2763,2736,2667,4000,3976, - 3952,3697,3672,4240,4218,4196,4174,4152,4130,4108, - 4086,4064,4042,3742,2019,2238,1976,2188,2150,1329, - 1284,1933,2100,2062,1049,1224,881,1890,1847,1804, - 1761,1718,1675,1632,1589,1546,1503,1460,536,1143, - 1412,825,745,1372,689,1004,961,1094,0,536, - 4549,2929,0,4656,4596,4434,3846,3786,3719,4417, - 4376,4318,4306,3566,3534,3479,3425,3323,3286,3232, - 3195,3141,3104,2854,2817,0,4656,4596,4434,3846, - 3786,3719,4417,4376,4318,4306,3566,0 + 3298,3199,0,2593,2581,2578,0,3023,2347,0, + 4777,4880,4875,4870,0,1253,3004,926,2056,0, + 1087,923,0,3533,3478,3424,3322,3285,3231,3194, + 3140,3103,2853,2816,4306,0,1266,803,0,1052, + 0,4414,3444,4316,0,2724,646,0,3533,3478, + 3608,3501,3424,3322,3285,3231,3194,3140,1393,3103, + 2853,2816,3308,3273,0,3044,2870,0,4655,4595, + 0,734,0,1497,1409,1321,856,2942,3411,578, + 2638,3286,2400,3028,0,4498,2444,2942,3110,2934, + 3411,3510,3484,2425,3445,3429,4520,2651,3252,2387, + 0,4808,4801,4790,4568,4472,4786,4771,4726,3901, + 4722,3619,2470,4710,2465,4704,4604,3808,1279,625, + 3772,3595,3590,3383,0,2942,4620,4520,2651,4682, + 578,3397,4533,3873,2638,2425,2400,3723,2516,2387, + 0,4620,4682,0,3511,3418,3435,4808,4801,3225, + 3236,2910,2858,2693,4790,2839,4568,4472,2849,4786, + 4771,4726,930,3901,2452,4722,2984,1136,3619,2470, + 4710,2465,794,4704,4604,790,2534,3808,629,1279, + 625,3772,3595,3590,739,3383,4548,2928,2413,2225, + 2137,943,2309,578,3397,4533,3873,2942,2821,2594, + 2638,1266,803,2425,2400,4620,3723,4520,2651,2516, + 2387,4682,3054,4283,4261,1185,2275,2357,2325,2610, + 2540,593,3081,2958,2789,2762,2735,2666,3999,3975, + 3951,3696,3671,4239,4217,4195,4173,4151,4129,4107, + 4085,4063,4041,3741,2018,2237,1975,2187,2149,1328, + 1283,1932,2099,2061,1048,1223,880,1889,1846,1803, + 1760,1717,1674,1631,1588,1545,1502,1459,535,1142, + 1411,824,744,1371,688,1003,960,1093,0,535, + 4548,2928,0,4655,4595,4433,3845,3785,3718,4416, + 4375,4317,4305,3565,3533,3478,3424,3322,3285,3231, + 3194,3140,3103,2853,2816,0,4655,4595,4433,3845, + 3785,3718,4416,4375,4317,4305,3565,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2385,60 +2368,60 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,297,61,64,127,171,204,41,28,60, - 228,60,279,3,270,271,253,272,244,273, - 45,274,275,125,10,128,281,127,3,4, - 133,132,7,5,125,128,183,41,58,40, - 163,229,124,128,128,40,163,311,276,306, - 276,58,128,180,167,166,75,127,269,187, - 183,127,248,280,213,128,177,205,58,58, - 168,65,3,66,67,125,124,180,167,3, - 58,69,127,163,127,163,70,180,180,155, - 127,167,233,126,125,128,124,163,128,127, - 167,41,4,127,282,73,65,213,128,3, - 70,71,167,6,127,127,127,65,65,188, - 127,127,127,226,127,128,229,129,310,128, - 169,225,60,41,61,171,313,126,125,234, - 234,180,163,127,180,254,168,53,43,47, - 49,44,10,136,3,128,48,42,5,36, - 35,6,9,38,37,140,146,148,147,150, - 149,152,151,156,154,158,63,159,257,188, - 261,188,282,163,294,128,295,215,159,167, - 153,127,163,252,177,127,254,254,213,230, - 231,145,232,296,41,10,39,226,226,180, - 167,127,234,234,127,127,188,127,277,124, - 278,127,3,218,217,3,58,58,58,58, - 128,3,178,162,127,66,67,167,3,126, - 106,120,3,65,90,92,36,35,94,93, - 6,96,95,69,58,88,89,9,98,97, - 100,99,101,117,116,115,114,113,112,111, - 110,109,108,70,107,102,71,4,283,127, - 71,180,3,268,127,163,6,185,155,70, - 224,205,3,127,71,71,69,58,233,233, - 229,188,312,73,290,205,125,127,127,73, - 277,70,71,213,224,127,3,178,162,178, - 178,178,178,167,220,155,136,126,125,10, - 128,65,298,3,178,41,128,41,220,162, - 147,147,146,146,146,149,149,149,149,148, - 148,151,150,150,154,152,156,162,158,127, - 302,80,78,1,162,8,86,84,82,81, - 76,83,85,79,77,60,75,220,71,127, - 127,127,70,70,127,213,127,70,70,129, - 71,73,70,315,225,22,128,230,127,69, - 69,69,69,188,259,128,167,206,3,299, - 168,153,128,180,167,73,284,119,8,73, - 215,73,3,3,3,191,3,124,162,124, - 179,309,222,296,71,128,22,316,180,155, - 230,3,3,3,3,126,125,167,41,178, - 127,127,221,5,41,3,73,227,168,227, - 304,145,76,227,127,190,71,127,69,180, - 128,128,127,155,162,162,162,162,3,3, - 188,155,263,266,65,181,4,124,126,91, - 320,168,155,205,155,303,127,3,155,284, - 190,8,63,39,180,180,222,127,220,220, - 126,127,3,65,162,4,155,155,127,70, - 191,161,269,162,3,233,127,222,263,220, - 215,122,301,155,321,70,127,155,71 + 0,296,60,63,126,170,203,41,28,59, + 227,59,278,3,269,270,252,271,243,272, + 45,273,274,124,10,127,280,126,3,4, + 132,131,7,5,124,127,182,41,58,40, + 162,228,123,127,127,40,162,310,275,305, + 275,58,127,179,166,165,74,126,268,186, + 182,126,247,279,212,127,176,204,58,58, + 167,64,3,65,66,124,123,179,166,3, + 58,68,126,162,126,162,69,179,179,154, + 126,166,232,125,124,127,123,162,127,126, + 166,41,4,126,281,72,64,212,127,3, + 69,70,166,6,126,126,126,64,64,187, + 126,126,126,225,126,127,228,128,309,127, + 168,224,59,41,60,170,312,125,124,233, + 233,179,162,126,179,253,167,53,43,47, + 49,44,10,135,3,127,48,42,5,36, + 35,6,9,38,37,139,145,147,146,149, + 148,151,150,155,153,157,62,158,256,187, + 260,187,281,162,293,127,294,214,158,166, + 152,126,162,251,176,126,253,253,212,229, + 230,144,231,295,41,10,39,225,225,179, + 166,126,233,233,126,126,187,126,276,123, + 277,126,3,217,216,3,58,58,58,58, + 127,3,177,161,126,65,66,166,3,125, + 105,119,3,64,89,91,36,35,93,92, + 6,95,94,68,58,87,88,9,97,96, + 99,98,100,116,115,114,113,112,111,110, + 109,108,107,69,106,101,70,4,282,126, + 70,179,3,267,126,162,6,184,154,69, + 223,204,3,126,70,70,68,58,232,232, + 228,187,311,72,289,204,124,126,126,72, + 276,69,70,212,223,126,3,177,161,177, + 177,177,177,166,219,154,135,125,124,10, + 127,64,297,3,177,41,127,41,219,161, + 146,146,145,145,145,148,148,148,148,147, + 147,150,149,149,153,151,155,161,157,126, + 301,79,77,1,161,8,85,83,81,80, + 75,82,84,78,76,59,74,219,70,126, + 126,126,69,69,126,212,126,69,69,128, + 70,72,69,314,224,22,127,229,126,68, + 68,68,68,187,258,127,166,205,3,298, + 167,152,127,179,166,72,283,118,8,72, + 214,72,3,3,3,190,3,123,161,123, + 178,308,221,295,70,127,22,315,179,154, + 229,3,3,3,3,125,124,166,41,177, + 126,126,220,5,41,3,72,226,167,226, + 303,144,75,226,126,189,70,126,68,179, + 127,127,126,154,161,161,161,161,3,3, + 187,154,262,265,64,180,4,123,125,90, + 319,167,154,204,154,302,126,3,154,283, + 189,8,62,39,179,179,221,126,219,219, + 125,126,3,64,161,4,154,154,126,69, + 190,160,268,161,3,232,126,221,262,219, + 214,121,300,154,320,69,126,154,70 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2569,7 +2552,6 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "SemiColon", "LeftBrace", "ERROR_TOKEN", - "0", "EOF_TOKEN", "]", ")", @@ -2702,7 +2684,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 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; @@ -2714,19 +2696,19 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final static int NUM_STATES = 539, - NT_OFFSET = 123, - LA_STATE_OFFSET = 5987, + NT_OFFSET = 122, + LA_STATE_OFFSET = 5985, MAX_LA = 2147483647, - NUM_RULES = 535, + NUM_RULES = 534, NUM_NONTERMINALS = 201, - NUM_SYMBOLS = 324, + NUM_SYMBOLS = 323, SEGMENT_SIZE = 8192, - START_STATE = 3566, + START_STATE = 3565, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 121, - EOLT_SYMBOL = 121, - ACCEPT_ACTION = 5087, - ERROR_ACTION = 5452; + EOFT_SYMBOL = 120, + EOLT_SYMBOL = 120, + ACCEPT_ACTION = 5086, + ERROR_ACTION = 5451; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java index 8d30143c051..e9634a2b8a4 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java @@ -15,69 +15,69 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPParsersym { public final static int - TK_asm = 64, + TK_asm = 63, TK_auto = 26, 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 = 39, TK_const = 23, TK_const_cast = 43, - 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 = 44, - TK_else = 122, + TK_else = 121, TK_enum = 45, TK_explicit = 27, - TK_export = 87, + TK_export = 86, TK_extern = 28, TK_false = 46, TK_float = 14, - TK_for = 82, + TK_for = 81, TK_friend = 29, - TK_goto = 83, - TK_if = 84, + TK_goto = 82, + TK_if = 83, TK_inline = 30, TK_int = 15, TK_long = 16, TK_mutable = 31, - 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 = 32, TK_reinterpret_cast = 47, - TK_return = 85, + TK_return = 84, TK_short = 17, TK_signed = 18, TK_sizeof = 48, TK_static = 33, TK_static_cast = 49, TK_struct = 50, - TK_switch = 86, + TK_switch = 85, TK_template = 41, TK_this = 51, - TK_throw = 63, - TK_try = 75, + TK_throw = 62, + TK_try = 74, TK_true = 52, TK_typedef = 34, TK_typeid = 53, TK_typename = 10, TK_union = 54, TK_unsigned = 19, - TK_using = 61, + TK_using = 60, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21, - TK_while = 76, + TK_while = 75, TK_integer = 55, TK_floating = 56, TK_charconst = 57, @@ -85,13 +85,13 @@ public interface CPPParsersym { TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 8, - TK_Invalid = 123, - TK_LeftBracket = 65, + TK_Invalid = 122, + TK_LeftBracket = 64, 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 CPPParsersym { TK_Minus = 36, TK_Tilde = 5, TK_Bang = 42, - TK_Slash = 93, - TK_Percent = 94, - TK_RightShift = 88, - TK_LeftShift = 89, + TK_Slash = 92, + TK_Percent = 93, + TK_RightShift = 87, + TK_LeftShift = 88, TK_LT = 58, - 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_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 = 25, - TK_LeftBrace = 68, - TK_ERROR_TOKEN = 62, - TK_0 = 59, - TK_EOF_TOKEN = 121; + TK_LeftBrace = 67, + TK_ERROR_TOKEN = 61, + TK_EOF_TOKEN = 120; public final static String orderedTerminalSymbols[] = { "", @@ -199,7 +198,6 @@ public interface CPPParsersym { "floating", "charconst", "LT", - "0", "namespace", "using", "ERROR_TOKEN", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java index 1f068d5311a..974ec54d590 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java @@ -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 CPPSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { @@ -173,7 +174,7 @@ public CPPSizeofExpressionParser() { // 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, CPPSizeofExpressionParsersym.TK_EOF_TOKEN)); } -public CPPSizeofExpressionParser(String[] mapFrom) { // constructor - tokenMap = new TokenMap(CPPSizeofExpressionParsersym.orderedTerminalSymbols, mapFrom); +public CPPSizeofExpressionParser(IParserActionTokenProvider parser) { // constructor + tokenMap = new TokenMap(CPPSizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } @@ -271,1701 +272,1695 @@ public CPPSizeofExpressionParser(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: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 69: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; + case 69: { action. consumePsudoDestructorName(true); break; } // - // Rule 70: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 70: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // case 70: { action. consumePsudoDestructorName(true); break; } // - // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 71: { action. consumePsudoDestructorName(true); break; + case 71: { action. consumePsudoDestructorName(false); break; } // - // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // Rule 72: destructor_type_name ::= ~ identifier_token // - case 72: { action. consumePsudoDestructorName(false); break; + case 72: { action. consumeDestructorName(); break; } // - // Rule 73: destructor_type_name ::= ~ identifier_token + // Rule 73: destructor_type_name ::= ~ template_id_name // - case 73: { action. consumeDestructorName(); break; + case 73: { action. consumeDestructorNameTemplateId(); break; } // - // Rule 74: destructor_type_name ::= ~ template_id_name + // Rule 77: unary_expression ::= ++ cast_expression // - case 74: { action. consumeDestructorNameTemplateId(); break; + case 77: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 78: unary_expression ::= ++ cast_expression + // Rule 78: unary_expression ::= -- cast_expression // - case 78: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 78: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 79: unary_expression ::= -- cast_expression + // Rule 79: unary_expression ::= & cast_expression // - case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 80: unary_expression ::= & cast_expression + // Rule 80: unary_expression ::= * cast_expression // - case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 81: unary_expression ::= * cast_expression + // Rule 81: unary_expression ::= + cast_expression // - case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 82: unary_expression ::= + cast_expression + // Rule 82: unary_expression ::= - cast_expression // - case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 83: unary_expression ::= - cast_expression + // Rule 83: unary_expression ::= ~ cast_expression // - case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 84: unary_expression ::= ~ cast_expression + // Rule 84: unary_expression ::= ! cast_expression // - case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 85: unary_expression ::= ! cast_expression + // Rule 85: unary_expression ::= sizeof unary_expression // - case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 86: unary_expression ::= sizeof unary_expression + // Rule 86: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 86: { action. consumeExpressionNew(true); break; } // - // Rule 87: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt + // Rule 87: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 87: { action. consumeExpressionNew(true); break; + case 87: { action. consumeExpressionNew(false); break; } // - // Rule 88: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt + // Rule 89: new_placement_opt ::= $Empty // - case 88: { action. consumeExpressionNew(false); break; + case 89: { action. consumeEmpty(); break; } // - // Rule 90: new_placement_opt ::= $Empty + // Rule 90: new_type_id ::= type_specifier_seq // - case 90: { action. consumeEmpty(); break; + case 90: { action. consumeTypeId(false); break; } // - // Rule 91: new_type_id ::= type_specifier_seq + // Rule 91: new_type_id ::= type_specifier_seq new_declarator // - case 91: { action. consumeTypeId(false); break; + case 91: { action. consumeTypeId(true); break; } // - // Rule 92: new_type_id ::= type_specifier_seq new_declarator + // Rule 92: new_declarator ::= <openscope-ast> new_pointer_operators // - case 92: { action. consumeTypeId(true); break; + case 92: { action. consumeNewDeclarator(); break; } // - // Rule 93: new_declarator ::= <openscope-ast> new_pointer_operators + // Rule 99: new_initializer ::= ( expression_list_opt ) // - case 93: { action. consumeNewDeclarator(); break; + case 99: { action. consumeNewInitializer(); break; } // - // Rule 100: new_initializer ::= ( expression_list_opt ) + // Rule 101: new_initializer_opt ::= $Empty // - case 100: { action. consumeNewInitializer(); break; + case 101: { action. consumeEmpty(); break; } // - // Rule 102: new_initializer_opt ::= $Empty + // Rule 102: delete_expression ::= dcolon_opt delete cast_expression // - case 102: { action. consumeEmpty(); break; + case 102: { action. consumeExpressionDelete(false); break; } // - // Rule 103: delete_expression ::= dcolon_opt delete cast_expression + // Rule 103: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 103: { action. consumeExpressionDelete(false); break; + case 103: { action. consumeExpressionDelete(true); break; } // - // Rule 104: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 105: cast_expression ::= ( type_id ) cast_expression // - case 104: { action. consumeExpressionDelete(true); break; + case 105: { action. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 106: cast_expression ::= ( type_id ) cast_expression + // Rule 107: pm_expression ::= pm_expression .* cast_expression // - case 106: { action. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; + case 107: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 108: pm_expression ::= pm_expression .* cast_expression + // Rule 108: pm_expression ::= pm_expression ->* cast_expression // - case 108: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; + case 108: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 109: pm_expression ::= pm_expression ->* cast_expression + // Rule 110: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 109: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; + case 110: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 111: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 111: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 111: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; + case 111: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 112: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 112: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 112: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; + case 112: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 113: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 114: additive_expression ::= additive_expression + multiplicative_expression // - case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; + case 114: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 115: additive_expression ::= additive_expression + multiplicative_expression + // Rule 115: additive_expression ::= additive_expression - multiplicative_expression // - case 115: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; + case 115: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 116: additive_expression ::= additive_expression - multiplicative_expression + // Rule 117: shift_expression ::= shift_expression << additive_expression // - case 116: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; + case 117: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 118: shift_expression ::= shift_expression << additive_expression + // Rule 118: shift_expression ::= shift_expression >> additive_expression // - case 118: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; + case 118: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 119: shift_expression ::= shift_expression >> additive_expression + // Rule 120: relational_expression ::= relational_expression < shift_expression // - case 119: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; + case 120: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 121: relational_expression ::= relational_expression < shift_expression + // Rule 121: relational_expression ::= relational_expression > shift_expression // - case 121: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; + case 121: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 122: relational_expression ::= relational_expression > shift_expression + // Rule 122: relational_expression ::= relational_expression <= shift_expression // - case 122: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; + case 122: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 123: relational_expression ::= relational_expression <= shift_expression + // Rule 123: relational_expression ::= relational_expression >= shift_expression // - case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; + case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 124: relational_expression ::= relational_expression >= shift_expression + // Rule 125: equality_expression ::= equality_expression == relational_expression // - case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; + case 125: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 126: equality_expression ::= equality_expression == relational_expression + // Rule 126: equality_expression ::= equality_expression != relational_expression // - case 126: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; + case 126: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 127: equality_expression ::= equality_expression != relational_expression + // Rule 128: and_expression ::= and_expression & equality_expression // - case 127: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; + case 128: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 129: and_expression ::= and_expression & equality_expression + // Rule 130: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 129: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; + case 130: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 131: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 132: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 131: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; + case 132: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 133: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 134: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 133: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; + case 134: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 135: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 136: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 135: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; + case 136: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 137: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 138: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 137: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; + case 138: { action. consumeExpressionConditional(); break; } // - // Rule 139: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 139: throw_expression ::= throw // - case 139: { action. consumeExpressionConditional(); break; + case 139: { action. consumeExpressionThrow(false); break; } // - // Rule 140: throw_expression ::= throw + // Rule 140: throw_expression ::= throw assignment_expression // - case 140: { action. consumeExpressionThrow(false); break; + case 140: { action. consumeExpressionThrow(true); break; } // - // Rule 141: throw_expression ::= throw assignment_expression + // Rule 143: assignment_expression ::= logical_or_expression = assignment_expression // - case 141: { action. consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 144: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 144: assignment_expression ::= logical_or_expression *= assignment_expression // - case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); 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_multiplyAssign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); 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_divideAssign); break; + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); 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_moduloAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); 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_plusAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); 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_minusAssign); break; + case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); 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_shiftRightAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); 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_shiftLeftAssign); break; + case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); 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_binaryAndAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); 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_binaryXorAssign); break; + case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 155: expression_list ::= <openscope-ast> expression_list_actual // - case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 155: { action. consumeExpressionList(); break; } // - // Rule 156: expression_list ::= <openscope-ast> expression_list_actual + // Rule 159: expression_list_opt ::= $Empty // - case 156: { action. consumeExpressionList(); break; + case 159: { action. consumeEmpty(); break; } // - // Rule 160: expression_list_opt ::= $Empty + // Rule 161: expression_opt ::= $Empty // - case 160: { action. consumeEmpty(); break; + case 161: { action. consumeEmpty(); break; } // - // Rule 162: expression_opt ::= $Empty + // Rule 164: constant_expression_opt ::= $Empty // - case 162: { action. consumeEmpty(); break; + case 164: { action. consumeEmpty(); break; } // - // Rule 165: constant_expression_opt ::= $Empty + // Rule 173: statement ::= ERROR_TOKEN // - case 165: { action. consumeEmpty(); break; + case 173: { action. consumeStatementProblem(); break; } // - // Rule 174: statement ::= ERROR_TOKEN + // Rule 174: labeled_statement ::= identifier : statement // - case 174: { action. consumeStatementProblem(); break; + case 174: { action. consumeStatementLabeled(); break; } // - // Rule 175: labeled_statement ::= identifier : statement + // Rule 175: labeled_statement ::= case constant_expression : statement // - case 175: { action. consumeStatementLabeled(); break; + case 175: { action. consumeStatementCase(); break; } // - // Rule 176: labeled_statement ::= case constant_expression : statement + // Rule 176: labeled_statement ::= default : statement // - case 176: { action. consumeStatementCase(); break; + case 176: { action. consumeStatementDefault(); break; } // - // Rule 177: labeled_statement ::= default : statement + // Rule 177: expression_statement ::= expression ; // - case 177: { action. consumeStatementDefault(); break; + case 177: { action. consumeStatementExpression(); break; } // - // Rule 178: expression_statement ::= expression ; + // Rule 178: expression_statement ::= ; // - case 178: { action. consumeStatementExpression(); break; + case 178: { action. consumeStatementNull(); break; } // - // Rule 179: expression_statement ::= ; + // Rule 179: compound_statement ::= { <openscope-ast> statement_seq } // - case 179: { action. consumeStatementNull(); break; + case 179: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 180: compound_statement ::= { <openscope-ast> statement_seq } + // Rule 180: compound_statement ::= { } // - case 180: { action. consumeStatementCompoundStatement(true); break; + case 180: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 181: compound_statement ::= { } + // Rule 183: selection_statement ::= if ( condition ) statement // - case 181: { action. consumeStatementCompoundStatement(false); break; + case 183: { action. consumeStatementIf(false); break; } // - // Rule 184: selection_statement ::= if ( condition ) statement + // Rule 184: selection_statement ::= if ( condition ) statement else statement // - case 184: { action. consumeStatementIf(false); break; + case 184: { action. consumeStatementIf(true); break; } // - // Rule 185: selection_statement ::= if ( condition ) statement else statement + // Rule 185: selection_statement ::= switch ( condition ) statement // - case 185: { action. consumeStatementIf(true); break; + case 185: { action. consumeStatementSwitch(); break; } // - // Rule 186: selection_statement ::= switch ( condition ) statement + // Rule 187: condition ::= type_specifier_seq declarator = assignment_expression // - case 186: { action. consumeStatementSwitch(); break; + case 187: { action. consumeConditionDeclaration(); break; } // - // Rule 188: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 189: condition_opt ::= $Empty // - case 188: { action. consumeConditionDeclaration(); break; + case 189: { action. consumeEmpty(); break; } // - // Rule 190: condition_opt ::= $Empty + // Rule 190: iteration_statement ::= while ( condition ) statement // - case 190: { action. consumeEmpty(); break; + case 190: { action. consumeStatementWhileLoop(); break; } // - // Rule 191: iteration_statement ::= while ( condition ) statement + // Rule 191: iteration_statement ::= do statement while ( expression ) ; // - case 191: { action. consumeStatementWhileLoop(); break; + case 191: { action. consumeStatementDoLoop(); break; } // - // Rule 192: iteration_statement ::= do statement while ( expression ) ; + // Rule 192: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 192: { action. consumeStatementDoLoop(); break; + case 192: { action. consumeStatementForLoop(); break; } // - // Rule 193: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 194: for_init_statement ::= simple_declaration_with_declspec // - case 193: { action. consumeStatementForLoop(); break; + case 194: { action. consumeStatementDeclaration(); break; } // - // Rule 195: for_init_statement ::= simple_declaration_with_declspec + // Rule 195: jump_statement ::= break ; // - case 195: { action. consumeStatementDeclaration(); break; + case 195: { action. consumeStatementBreak(); break; } // - // Rule 196: jump_statement ::= break ; + // Rule 196: jump_statement ::= continue ; // - case 196: { action. consumeStatementBreak(); break; + case 196: { action. consumeStatementContinue(); break; } // - // Rule 197: jump_statement ::= continue ; + // Rule 197: jump_statement ::= return expression ; // - case 197: { action. consumeStatementContinue(); break; + case 197: { action. consumeStatementReturn(true); break; } // - // Rule 198: jump_statement ::= return expression ; + // Rule 198: jump_statement ::= return ; // - case 198: { action. consumeStatementReturn(true); break; + case 198: { action. consumeStatementReturn(false); break; } // - // Rule 199: jump_statement ::= return ; + // Rule 199: jump_statement ::= goto identifier_token ; // - case 199: { action. consumeStatementReturn(false); break; + case 199: { action. consumeStatementGoto(); break; } // - // Rule 200: jump_statement ::= goto identifier_token ; + // Rule 200: declaration_statement ::= block_declaration // - case 200: { action. consumeStatementGoto(); break; + case 200: { action. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 201: declaration_statement ::= block_declaration + // Rule 201: declaration_statement ::= function_definition // - case 201: { action. consumeStatementDeclarationWithDisambiguation(); break; + case 201: { action. consumeStatementDeclaration(); break; } // - // Rule 202: declaration_statement ::= function_definition + // Rule 209: declaration ::= ERROR_TOKEN // - case 202: { action. consumeStatementDeclaration(); break; + case 209: { action. consumeDeclarationProblem(); break; } // - // Rule 210: declaration ::= ERROR_TOKEN + // Rule 219: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; // - case 210: { action. consumeDeclarationProblem(); break; + case 219: { action. consumeDeclarationSimple(true); break; } // - // Rule 220: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; + // Rule 220: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ; // case 220: { action. consumeDeclarationSimple(true); break; } // - // Rule 221: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ; + // Rule 221: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 221: { action. consumeDeclarationSimple(true); break; + case 221: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 222: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers + // Rule 222: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers // - case 222: { action. consumeDeclarationSpecifiersSimple(); break; + case 222: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 223: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers + // Rule 223: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // case 223: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 224: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers + // Rule 224: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // case 224: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 225: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers + // Rule 225: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers // - case 225: { action. consumeDeclarationSpecifiersComposite(); break; + case 225: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 226: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers + // Rule 227: declaration_specifiers_opt ::= $Empty // - case 226: { action. consumeDeclarationSpecifiersTypeName(); break; + case 227: { action. consumeEmpty(); break; } // - // Rule 228: declaration_specifiers_opt ::= $Empty + // Rule 231: no_type_declaration_specifier ::= friend // - case 228: { action. consumeEmpty(); break; + case 231: { action. consumeToken(); break; } // - // Rule 232: no_type_declaration_specifier ::= friend + // Rule 232: no_type_declaration_specifier ::= typedef // case 232: { action. consumeToken(); break; } // - // Rule 233: no_type_declaration_specifier ::= typedef + // Rule 252: storage_class_specifier ::= auto // - case 233: { action. consumeToken(); break; + case 252: { action. consumeToken(); break; } // - // Rule 253: storage_class_specifier ::= auto + // Rule 253: storage_class_specifier ::= register // case 253: { action. consumeToken(); break; } // - // Rule 254: storage_class_specifier ::= register + // Rule 254: storage_class_specifier ::= static // case 254: { action. consumeToken(); break; } // - // Rule 255: storage_class_specifier ::= static + // Rule 255: storage_class_specifier ::= extern // case 255: { action. consumeToken(); break; } // - // Rule 256: storage_class_specifier ::= extern + // Rule 256: storage_class_specifier ::= mutable // case 256: { action. consumeToken(); break; } // - // Rule 257: storage_class_specifier ::= mutable + // Rule 257: function_specifier ::= inline // case 257: { action. consumeToken(); break; } // - // Rule 258: function_specifier ::= inline + // Rule 258: function_specifier ::= virtual // case 258: { action. consumeToken(); break; } // - // Rule 259: function_specifier ::= virtual + // Rule 259: function_specifier ::= explicit // case 259: { action. consumeToken(); break; } // - // Rule 260: function_specifier ::= explicit + // Rule 260: simple_type_specifier ::= char // case 260: { action. consumeToken(); break; } // - // Rule 261: simple_type_specifier ::= char + // Rule 261: simple_type_specifier ::= wchar_t // case 261: { action. consumeToken(); break; } // - // Rule 262: simple_type_specifier ::= wchar_t + // Rule 262: simple_type_specifier ::= bool // case 262: { action. consumeToken(); break; } // - // Rule 263: simple_type_specifier ::= bool + // Rule 263: simple_type_specifier ::= short // case 263: { action. consumeToken(); break; } // - // Rule 264: simple_type_specifier ::= short + // Rule 264: simple_type_specifier ::= int // case 264: { action. consumeToken(); break; } // - // Rule 265: simple_type_specifier ::= int + // Rule 265: simple_type_specifier ::= long // case 265: { action. consumeToken(); break; } // - // Rule 266: simple_type_specifier ::= long + // Rule 266: simple_type_specifier ::= signed // case 266: { action. consumeToken(); break; } // - // Rule 267: simple_type_specifier ::= signed + // Rule 267: simple_type_specifier ::= unsigned // case 267: { action. consumeToken(); break; } // - // Rule 268: simple_type_specifier ::= unsigned + // Rule 268: simple_type_specifier ::= float // case 268: { action. consumeToken(); break; } // - // Rule 269: simple_type_specifier ::= float + // Rule 269: simple_type_specifier ::= double // case 269: { action. consumeToken(); break; } // - // Rule 270: simple_type_specifier ::= double + // Rule 270: simple_type_specifier ::= void // case 270: { action. consumeToken(); break; } // - // Rule 271: simple_type_specifier ::= void + // Rule 273: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 271: { action. consumeToken(); break; + case 273: { action. consumeQualifiedId(false); break; } // - // Rule 274: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 274: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // case 274: { action. consumeQualifiedId(false); break; } // - // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 275: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 275: { action. consumeQualifiedId(false); break; } // - // Rule 276: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 276: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 276: { action. consumeQualifiedId(false); break; + case 276: { action. consumeQualifiedId(true); break; } // - // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 278: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 277: { action. consumeQualifiedId(true); break; + case 278: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 279: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 279: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 279: { action. consumeTypeSpecifierElaborated(false); break; + case 279: { action. consumeTypeSpecifierElaborated(true); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 280: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name // - case 280: { action. consumeTypeSpecifierElaborated(true); break; + case 280: { action. consumeTypeSpecifierElaborated(false); break; } // - // Rule 281: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // Rule 282: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt } // - case 281: { action. consumeTypeSpecifierElaborated(false); break; + case 282: { action. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 283: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt } + // Rule 283: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt } // - case 283: { action. consumeTypeSpecifierEnumeration(false); break; + case 283: { action. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 284: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt } + // Rule 289: enumerator_definition ::= identifier_token // - case 284: { action. consumeTypeSpecifierEnumeration(true); break; + case 289: { action. consumeEnumerator(false); break; } // - // Rule 290: enumerator_definition ::= identifier_token + // Rule 290: enumerator_definition ::= identifier_token = constant_expression // - case 290: { action. consumeEnumerator(false); break; + case 290: { action. consumeEnumerator(true); break; } // - // Rule 291: enumerator_definition ::= identifier_token = constant_expression + // Rule 294: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt } // - case 291: { action. consumeEnumerator(true); break; + case 294: { action. consumeNamespaceDefinition(true); break; } // - // Rule 295: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt } + // Rule 295: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } // - case 295: { action. consumeNamespaceDefinition(true); break; + case 295: { action. consumeNamespaceDefinition(false); break; } // - // Rule 296: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } + // Rule 296: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 296: { action. consumeNamespaceDefinition(false); break; + case 296: { action. consumeNamespaceAliasDefinition(); break; } // - // Rule 297: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 297: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 297: { action. consumeNamespaceAliasDefinition(); break; + case 297: { action. consumeUsingDeclaration(); break; } // - // Rule 298: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 298: typename_opt ::= typename // - case 298: { action. consumeUsingDeclaration(); break; + case 298: { action. consumePlaceHolder(); break; } // - // Rule 299: typename_opt ::= typename + // Rule 299: typename_opt ::= $Empty // - case 299: { action. consumePlaceHolder(); break; + case 299: { action. consumeEmpty(); break; } // - // Rule 300: typename_opt ::= $Empty + // Rule 300: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 300: { action. consumeEmpty(); break; + case 300: { action. consumeUsingDirective(); break; } // - // Rule 301: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 301: asm_definition ::= asm ( stringlit ) ; // - case 301: { action. consumeUsingDirective(); break; + case 301: { action. consumeDeclarationASM(); break; } // - // Rule 302: asm_definition ::= asm ( stringlit ) ; + // Rule 302: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } // - case 302: { action. consumeDeclarationASM(); break; + case 302: { action. consumeLinkageSpecification(); break; } // - // Rule 303: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } + // Rule 303: linkage_specification ::= extern stringlit <openscope-ast> declaration // case 303: { action. consumeLinkageSpecification(); break; } // - // Rule 304: linkage_specification ::= extern stringlit <openscope-ast> declaration + // Rule 308: init_declarator_complete ::= init_declarator // - case 304: { action. consumeLinkageSpecification(); break; + case 308: { action. consumeInitDeclaratorComplete(); break; } // - // Rule 309: init_declarator_complete ::= init_declarator + // Rule 310: init_declarator ::= complete_declarator initializer // - case 309: { action. consumeInitDeclaratorComplete(); break; + case 310: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 311: init_declarator ::= complete_declarator initializer + // Rule 313: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 311: { action. consumeDeclaratorWithInitializer(true); break; + case 313: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 314: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator + // Rule 315: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 314: { action. consumeDeclaratorWithPointer(true); break; + case 315: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 316: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator + // Rule 319: basic_direct_declarator ::= declarator_id_name // - case 316: { action. consumeDeclaratorWithPointer(true); break; + case 319: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 320: basic_direct_declarator ::= declarator_id_name + // Rule 320: basic_direct_declarator ::= ( declarator ) // - case 320: { action. consumeDirectDeclaratorIdentifier(); break; + case 320: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 321: basic_direct_declarator ::= ( declarator ) + // Rule 321: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 321: { action. consumeDirectDeclaratorBracketed(); break; + case 321: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 322: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier // - case 322: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 322: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier // case 323: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 324: array_modifier ::= [ constant_expression ] // - case 324: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 324: { action. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 325: array_modifier ::= [ constant_expression ] + // Rule 325: array_modifier ::= [ ] // - case 325: { action. consumeDirectDeclaratorArrayModifier(true); break; + case 325: { action. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 326: array_modifier ::= [ ] + // Rule 326: ptr_operator ::= pointer_hook * <openscope-ast> cv_qualifier_seq_opt // - case 326: { action. consumeDirectDeclaratorArrayModifier(false); break; + case 326: { action. consumePointer(); break; } // - // Rule 327: ptr_operator ::= pointer_hook * <openscope-ast> cv_qualifier_seq_opt + // Rule 327: ptr_operator ::= pointer_hook & // - case 327: { action. consumePointer(); break; + case 327: { action. consumeReferenceOperator(); break; } // - // Rule 328: ptr_operator ::= pointer_hook & + // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * <openscope-ast> cv_qualifier_seq_opt // - case 328: { action. consumeReferenceOperator(); break; + case 328: { action. consumePointerToMember(); break; } // - // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * <openscope-ast> cv_qualifier_seq_opt + // Rule 335: cv_qualifier ::= const // - case 329: { action. consumePointerToMember(); break; + case 335: { action. consumeToken(); break; } // - // Rule 336: cv_qualifier ::= const + // Rule 336: cv_qualifier ::= volatile // case 336: { action. consumeToken(); break; } // - // Rule 337: cv_qualifier ::= volatile + // Rule 338: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 337: { action. consumeToken(); break; + case 338: { action. consumeQualifiedId(false); break; } // - // Rule 339: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 339: type_id ::= type_specifier_seq // - case 339: { action. consumeQualifiedId(false); break; + case 339: { action. consumeTypeId(false); break; } // - // Rule 340: type_id ::= type_specifier_seq + // Rule 340: type_id ::= type_specifier_seq abstract_declarator // - case 340: { action. consumeTypeId(false); break; + case 340: { action. consumeTypeId(true); break; } // - // Rule 341: type_id ::= type_specifier_seq abstract_declarator + // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq // - case 341: { action. consumeTypeId(true); break; + case 343: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator // - case 344: { action. consumeDeclaratorWithPointer(false); break; + case 344: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 345: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator + // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 345: { action. consumeDeclaratorWithPointer(true); break; + case 348: { action. consumeDirectDeclaratorBracketed(); break; } // - // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 349: basic_direct_abstract_declarator ::= ( ) // - case 349: { action. consumeDirectDeclaratorBracketed(); break; + case 349: { action. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 350: basic_direct_abstract_declarator ::= ( ) + // Rule 350: array_direct_abstract_declarator ::= array_modifier // - case 350: { action. consumeAbstractDeclaratorEmpty(); break; + case 350: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 351: array_direct_abstract_declarator ::= array_modifier + // Rule 351: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 351: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + case 351: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 352: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // case 352: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 353: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 353: 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 353: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + case 353: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // 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 + // Rule 354: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 354: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + case 354: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 355: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 355: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + case 355: { action. consumePlaceHolder(); break; } // - // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 356: { action. consumePlaceHolder(); break; + case 356: { action. consumeEmpty(); break; } // - // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 357: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 357: { action. consumeEmpty(); break; + case 357: { action. consumePlaceHolder(); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 363: abstract_declarator_opt ::= $Empty // - case 358: { action. consumePlaceHolder(); break; + case 363: { action. consumeEmpty(); break; } // - // Rule 364: abstract_declarator_opt ::= $Empty + // Rule 364: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 364: { action. consumeEmpty(); break; + case 364: { action. consumeParameterDeclaration(); break; } // - // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 365: parameter_declaration ::= declaration_specifiers // - case 365: { action. consumeParameterDeclaration(); break; + case 365: { action. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 366: parameter_declaration ::= declaration_specifiers + // Rule 367: parameter_init_declarator ::= declarator = parameter_initializer // - case 366: { action. consumeParameterDeclarationWithoutDeclarator(); break; + case 367: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 369: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 368: { action. consumeDeclaratorWithInitializer(true); break; + case 369: { action. consumeDeclaratorWithInitializer(true); break; } // - // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 370: parameter_init_declarator ::= = parameter_initializer // - case 370: { action. consumeDeclaratorWithInitializer(true); break; + case 370: { action. consumeDeclaratorWithInitializer(false); break; } // - // Rule 371: parameter_init_declarator ::= = parameter_initializer + // Rule 371: parameter_initializer ::= assignment_expression // - case 371: { action. consumeDeclaratorWithInitializer(false); break; + case 371: { action. consumeInitializer(); break; } // - // Rule 372: parameter_initializer ::= assignment_expression + // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body // - case 372: { action. consumeInitializer(); break; + case 372: { action. consumeFunctionDefinition(false); break; } // - // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body + // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq // - case 373: { action. consumeFunctionDefinition(false); break; + case 373: { action. consumeFunctionDefinition(true); break; } // - // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq + // Rule 376: initializer ::= ( expression_list ) // - case 374: { action. consumeFunctionDefinition(true); break; + case 376: { action. consumeInitializerConstructor(); break; } // - // Rule 377: initializer ::= ( expression_list ) + // Rule 377: initializer_clause ::= assignment_expression // - case 377: { action. consumeInitializerConstructor(); break; + case 377: { action. consumeInitializer(); break; } // - // Rule 378: initializer_clause ::= assignment_expression + // Rule 378: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // - case 378: { action. consumeInitializer(); break; + case 378: { action. consumeInitializerList(); break; } // - // Rule 379: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list + // Rule 379: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // case 379: { action. consumeInitializerList(); break; } // - // Rule 380: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list + // Rule 380: initializer_clause ::= { <openscope-ast> } // case 380: { action. consumeInitializerList(); break; } // - // Rule 381: initializer_clause ::= { <openscope-ast> } + // Rule 381: start_initializer_list ::= $Empty // - case 381: { action. consumeInitializerList(); break; + case 381: { action. initializerListStart(); break; } // - // Rule 382: start_initializer_list ::= $Empty + // Rule 382: end_initializer_list ::= $Empty // - case 382: { action. initializerListStart(); break; + case 382: { action. initializerListEnd(); break; } // - // Rule 383: end_initializer_list ::= $Empty + // Rule 387: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 383: { action. initializerListEnd(); break; + case 387: { action. consumeClassSpecifier(); break; } // - // Rule 388: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 388: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt // - case 388: { action. consumeClassSpecifier(); break; + case 388: { action. consumeClassHead(false); break; } // - // Rule 389: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 389: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt // case 389: { action. consumeClassHead(false); break; } // - // Rule 390: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 390: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt // - case 390: { action. consumeClassHead(false); break; + case 390: { action. consumeClassHead(true); break; } // - // Rule 391: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 391: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt // case 391: { action. consumeClassHead(true); break; } // - // Rule 392: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 395: identifier_name_opt ::= $Empty // - case 392: { action. consumeClassHead(true); break; - } + case 395: { action. consumeEmpty(); break; + } // - // Rule 396: identifier_name_opt ::= $Empty + // Rule 399: visibility_label ::= access_specifier_keyword : // - case 396: { action. consumeEmpty(); break; - } + case 399: { action. consumeVisibilityLabel(); break; + } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 400: { action. consumeVisibilityLabel(); break; + case 400: { action. consumeDeclarationSimple(true); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 401: member_declaration ::= declaration_specifiers_opt ; // - case 401: { action. consumeDeclarationSimple(true); break; + case 401: { action. consumeDeclarationSimple(false); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 402: { action. consumeDeclarationSimple(false); break; + case 404: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 410: member_declaration ::= ERROR_TOKEN // - case 405: { action. consumeMemberDeclarationQualifiedId(); break; + case 410: { action. consumeDeclarationProblem(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 419: member_declarator ::= declarator constant_initializer // - case 411: { action. consumeDeclarationProblem(); break; + case 419: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= declarator constant_initializer + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action. consumeMemberDeclaratorWithInitializer(); break; + case 420: { action. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= bit_field_declarator : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 421: { action. consumeBitField(true); break; + case 421: { action. consumeBitField(false); break; } // - // Rule 422: member_declarator ::= : constant_expression + // Rule 422: bit_field_declarator ::= identifier_name // - case 422: { action. consumeBitField(false); break; + case 422: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: bit_field_declarator ::= identifier_name + // Rule 423: constant_initializer ::= = constant_expression // - case 423: { action. consumeDirectDeclaratorIdentifier(); break; + case 423: { action. consumeInitializer(); break; } // - // Rule 424: constant_initializer ::= = constant_expression + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 424: { action. consumeInitializer(); break; + case 429: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 430: { action. consumeBaseSpecifier(false, false); break; + case 430: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // case 431: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 432: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 432: { action. consumeBaseSpecifier(true, true); break; + case 432: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 433: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 433: access_specifier_keyword ::= private // - case 433: { action. consumeBaseSpecifier(true, false); break; + case 433: { action. consumeToken(); break; } // - // Rule 434: access_specifier_keyword ::= private + // Rule 434: access_specifier_keyword ::= protected // case 434: { action. consumeToken(); break; } // - // Rule 435: access_specifier_keyword ::= protected + // Rule 435: access_specifier_keyword ::= public // case 435: { action. consumeToken(); break; } // - // Rule 436: access_specifier_keyword ::= public + // Rule 437: access_specifier_keyword_opt ::= $Empty // - case 436: { action. consumeToken(); break; + case 437: { action. consumeEmpty(); break; } // - // Rule 438: access_specifier_keyword_opt ::= $Empty + // Rule 439: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 438: { action. consumeEmpty(); break; + case 439: { action. consumeTemplateId(); break; } // - // Rule 440: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > + // Rule 440: conversion_function_id ::= operator conversion_type_id // - case 440: { action. consumeTemplateId(); break; + case 440: { action. consumeConversionName(); break; } // - // Rule 441: conversion_function_id ::= operator conversion_type_id + // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 441: { action. consumeConversionName(); break; + case 441: { action. consumeTypeId(true); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 442: conversion_type_id ::= type_specifier_seq // - case 442: { action. consumeTypeId(true); break; + case 442: { action. consumeTypeId(false); break; } // - // Rule 443: conversion_type_id ::= type_specifier_seq + // Rule 443: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 443: { action. consumeTypeId(false); break; + case 443: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 444: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 444: { action. consumeDeclaratorWithPointer(false); break; + case 449: { action. consumeConstructorChainInitializer(); break; } // - // Rule 450: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 450: { action. consumeConstructorChainInitializer(); break; + case 450: { action. consumeQualifiedId(false); break; } // - // Rule 451: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 453: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 451: { action. consumeQualifiedId(false); break; + case 453: { action. consumeTemplateId(); break; } // - // Rule 454: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 454: operator_id_name ::= operator overloadable_operator // - case 454: { action. consumeTemplateId(); break; + case 454: { action. consumeOperatorName(); break; } // - // Rule 455: operator_id_name ::= operator overloadable_operator + // Rule 497: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 455: { action. consumeOperatorName(); break; + case 497: { action. consumeTemplateDeclaration(); break; } // - // Rule 498: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 498: export_opt ::= export // - case 498: { action. consumeTemplateDeclaration(); break; + case 498: { action. consumePlaceHolder(); break; } // - // Rule 499: export_opt ::= export + // Rule 499: export_opt ::= $Empty // - case 499: { action. consumePlaceHolder(); break; + case 499: { action. consumeEmpty(); break; } // - // Rule 500: export_opt ::= $Empty + // Rule 503: template_parameter ::= parameter_declaration // - case 500: { action. consumeEmpty(); break; + case 503: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 504: template_parameter ::= parameter_declaration + // Rule 504: type_parameter ::= class identifier_name_opt // - case 504: { action. consumeTemplateParamterDeclaration(); break; + case 504: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= class identifier_name_opt + // Rule 505: type_parameter ::= class identifier_name_opt = type_id // - case 505: { action. consumeSimpleTypeTemplateParameter(false); break; + case 505: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= class identifier_name_opt = type_id + // Rule 506: type_parameter ::= typename identifier_name_opt // - case 506: { action. consumeSimpleTypeTemplateParameter(true); break; + case 506: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= typename identifier_name_opt + // Rule 507: type_parameter ::= typename identifier_name_opt = type_id // - case 507: { action. consumeSimpleTypeTemplateParameter(false); break; + case 507: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 508: type_parameter ::= typename identifier_name_opt = type_id + // Rule 508: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 508: { action. consumeSimpleTypeTemplateParameter(true); break; + case 508: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt + // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 509: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 509: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 510: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 510: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 510: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 510: { action. consumeTemplateId(); break; } // - // Rule 511: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > + // Rule 515: template_argument ::= assignment_expression // - case 511: { action. consumeTemplateId(); break; + case 515: { action. consumeTemplateArgumentExpression(); break; } // - // Rule 516: template_argument ::= assignment_expression + // Rule 516: template_argument ::= type_id // - case 516: { action. consumeTemplateArgumentExpression(); break; + case 516: { action. consumeTemplateArgumentTypeId(); break; } // - // Rule 517: template_argument ::= type_id + // Rule 517: explicit_instantiation ::= template declaration // - case 517: { action. consumeTemplateArgumentTypeId(); break; + case 517: { action. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_instantiation ::= template declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 518: { action. consumeTemplateExplicitInstantiation(); break; + case 518: { action. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: explicit_specialization ::= template < > declaration + // Rule 519: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 519: { action. consumeTemplateExplicitSpecialization(); break; + case 519: { action. consumeStatementTryBlock(); break; } // - // Rule 520: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action. consumeStatementTryBlock(); break; + case 522: { action. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( exception_declaration ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 523: { action. consumeStatementCatchHandler(false); break; + case 523: { action. consumeStatementCatchHandler(true); break; } // - // Rule 524: handler ::= catch ( ... ) compound_statement + // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 524: { action. consumeStatementCatchHandler(true); break; + case 524: { action. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // case 525: { action. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator - // - case 526: { action. consumeDeclarationSimple(true); break; - } - - // - // Rule 527: exception_declaration ::= type_specifier_seq + // Rule 526: exception_declaration ::= type_specifier_seq // - case 527: { action. consumeDeclarationSimple(false); break; + case 526: { action. consumeDeclarationSimple(false); break; } // - // Rule 529: exception_specification ::= throw ( ) + // Rule 528: exception_specification ::= throw ( ) // - case 529: { action. consumePlaceHolder(); break; + case 528: { action. consumePlaceHolder(); break; } // - // Rule 535: no_sizeof_type_name_start ::= ERROR_TOKEN + // Rule 534: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 535: { action. consumeExpressionProblem(); break; + case 534: { action. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java index ce8710f651d..c34b4f634fe 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java @@ -29,7 +29,7 @@ public class CPPSizeofExpressionParserprs 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,491 +39,491 @@ public class CPPSizeofExpressionParserprs 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,5, - 6,3,2,2,1,1,1,2,2,2, - 2,2,2,2,2,2,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,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,5,6, + 3,2,2,1,1,1,2,2,2,2, + 2,2,2,2,2,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,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,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,-62,0,0,0,-2, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-4,0, - 0,0,0,0,-5,0,0,0,0,0, - -223,0,0,-396,0,0,0,0,-71,0, - 0,0,-261,0,0,0,0,0,0,0, - 0,-368,-112,-88,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-219,0,0,0, - 0,0,0,0,0,-190,0,0,0,-79, - 0,0,0,0,0,0,0,0,0,0, + 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,0,0,0,-10, - -286,-237,0,0,0,0,-72,0,0,0, + 0,0,0,0,0,0,0,-4,0,0, + 0,0,0,-5,0,0,0,0,0,-223, + 0,0,-396,0,0,0,0,-71,0,0, + 0,-261,0,0,0,0,0,0,0,0, + -368,-112,-88,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-114,0, + 0,0,0,0,0,-219,0,0,0,0, + 0,0,0,0,-190,0,0,0,-79,0, 0,0,0,0,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,-286, + -237,0,0,0,0,-72,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-253,0,0,0,0,0,-49,0,0, - 0,0,-6,0,-531,0,0,0,0,0, + 0,0,0,0,0,0,0,-114,0,0, 0,0,0,0,0,0,0,0,0,0, - -115,0,0,0,0,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,-358,0,0,-126,0, - 0,0,0,0,-145,0,-7,0,0,-53, - 0,0,-270,0,0,0,-16,0,0,0, - -8,0,0,0,0,0,0,-187,0,0, - 0,0,0,0,-130,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -253,0,0,0,0,0,-49,0,0,0, + 0,-6,0,-531,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-115, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-121,0,0,0,0,0,-9, - 0,0,0,-204,-50,0,0,0,0,0, - -146,0,0,0,-11,-374,0,0,0,0, - 0,0,0,-65,0,0,-218,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,-358,0,0,-126,0,0, + 0,0,0,-145,0,-7,0,0,-53,0, + 0,-270,0,0,0,-16,0,0,0,-8, + 0,0,0,0,0,0,-187,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,-136, - 0,-400,0,0,0,0,0,0,0,0, - 0,0,-148,0,0,0,0,0,0,0, - 0,0,0,0,0,-457,0,0,0,-207, - 0,0,0,-354,0,0,0,0,0,-506, 0,0,0,0,0,0,0,0,0,0, + 0,0,-121,0,0,0,0,0,-9,0, + 0,0,-204,-50,0,0,0,0,0,-146, + 0,0,0,-11,-374,0,0,0,0,0, + 0,0,-65,0,0,-218,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-240,0,0, - 0,0,-530,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-136,0, + -400,0,0,0,0,0,0,0,0,0, + 0,-148,0,0,0,0,0,0,0,0, + 0,0,0,0,-457,0,0,0,-207,0, + 0,0,-354,0,0,0,0,0,-506,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-12,0,0,0,0, - 0,-379,0,0,0,0,0,-13,0,0, - 0,0,0,0,0,-186,-329,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-188, - 0,-462,0,0,0,0,-1,0,0,-256, - 0,-15,-437,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-240,0,0,0, + 0,-530,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-12,0,0,0,0,0, + -379,0,0,0,0,0,-13,0,0,0, + 0,0,0,0,-186,-329,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-42,0,0,0,0, - 0,-3,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-188,0, + -462,0,0,0,0,-1,0,0,-256,0, + -15,-437,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -137,0,0,0,0,0,-28,0,0,-177, - 0,0,0,0,-106,0,0,0,-29,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-345,0,0, - 0,0,0,-51,0,0,0,0,0,-30, - 0,0,-274,0,0,0,-54,0,0,0, + 0,0,0,0,-42,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,0,0,0,0,0,0,0,0,-137, + 0,0,0,0,0,-28,0,0,-177,0, + 0,0,0,-106,0,0,0,-29,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-57,0,0,0,0,0,-302,0,0, - 0,0,0,0,0,-150,0,0,0,-31, - 0,0,0,0,0,0,0,0,-18,0, - 0,0,-317,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-345,0,0,0, + 0,0,-51,0,0,0,0,0,-30,0, + 0,-274,0,0,0,-54,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,0,-119,0,-277,0,0, - -340,0,0,0,0,-385,-318,0,0,0, - -33,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-411, - 0,-278,0,0,-271,0,0,0,0,-39, - 0,0,0,-34,0,0,0,0,0,0, + -57,0,0,0,0,0,-302,0,0,0, + 0,0,0,0,-150,0,0,0,-31,0, + 0,0,0,0,0,0,0,-18,0,0, + 0,-317,0,0,0,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,0,-119,0,-277,0,0,-340, + 0,0,0,0,-385,-318,0,0,0,-33, 0,0,0,0,0,0,0,0,0,0, - 0,0,-491,0,-35,0,0,-59,0,0, - 0,0,-373,-41,0,0,0,-60,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-411,0, + -278,0,0,-271,0,0,0,0,-39,0, + 0,0,-34,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-529,0,-64,0, - 0,0,0,0,0,0,-94,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-491,0,-35,0,0,-59,0,0,0, + 0,-373,-41,0,0,0,-60,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-184,0,0,0,0,-342,0,0,-95, - 0,0,0,-107,0,0,0,0,0,0, + 0,0,0,0,0,-529,0,-64,0,0, + 0,0,0,0,0,-94,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-36,0,0,0,0,0,0,0, - 0,0,-535,0,0,0,0,0,0,-361, - 0,0,-96,0,0,0,-37,0,0,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,-40,0,0,0,0, - -128,0,-55,0,0,-97,0,0,0,-113, 0,0,0,0,0,0,0,0,0,0, + -184,0,0,0,0,-342,0,0,-95,0, + 0,0,-107,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-198,0,0,0,0,0, - -382,0,0,0,0,0,0,0,-98,0, - 0,0,-151,0,0,0,0,0,0,0, + 0,-36,0,0,0,0,0,0,0,0, + 0,-535,0,0,0,0,0,0,-361,0, + 0,-96,0,0,0,-37,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-56,0,0,0,0,0,-203,0,0, - 0,0,0,0,0,0,-129,0,-66,0, - 0,-99,0,0,0,-196,0,0,0,0, + 0,0,0,0,-38,0,0,0,0,0, + 0,0,0,0,-40,0,0,0,0,-128, + 0,-55,0,0,-97,0,0,0,-113,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -220,0,0,0,0,0,-392,0,0,-143, - 0,0,0,0,-100,0,0,0,-205,0, + 0,0,0,-198,0,0,0,0,0,-382, + 0,0,0,0,0,0,0,-98,0,0, + 0,-151,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-254,0,0, - 0,0,0,-228,0,0,0,0,0,0, - 0,0,-152,0,-67,0,0,-101,0,0, - 0,-232,0,0,0,0,0,0,0,0, + -56,0,0,0,0,0,-203,0,0,0, + 0,0,0,0,0,-129,0,-66,0,0, + -99,0,0,0,-196,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -69,0,0,0,0,0,-266,0,0,0, - 0,0,0,0,0,-194,0,-70,0,0, - -102,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-220, + 0,0,0,0,0,-392,0,0,-143,0, + 0,0,0,-100,0,0,0,-205,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-313,0,0,0,0,0,-267, - 0,0,0,0,0,0,0,0,-108,-445, - -109,0,0,-103,0,0,0,-239,0,0, + 0,0,0,0,0,0,-254,0,0,0, + 0,0,-228,0,0,0,0,0,0,0, + 0,-152,0,-67,0,0,-101,0,0,0, + -232,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-69, + 0,0,0,0,0,-266,0,0,0,0, + 0,0,0,0,-194,0,-70,0,0,-102, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-352,0,0,0, - 0,0,-269,0,0,0,0,0,0,0, - 0,-227,0,-475,0,0,-104,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-383, - 0,0,0,0,0,-273,0,0,0,0, - 0,0,0,0,-299,-200,-110,0,0,-134, + 0,0,-313,0,0,0,0,0,-267,0, + 0,0,0,0,0,0,0,-108,-445,-109, + 0,0,-103,0,0,0,-239,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-352,0,0,0,0, + 0,-269,0,0,0,0,0,0,0,0, + -227,0,-475,0,0,-104,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-285,0, - 0,0,0,0,0,0,0,-211,0,0, - 0,-111,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-383,0, + 0,0,0,0,-273,0,0,0,0,0, + 0,0,0,-299,-200,-110,0,0,-134,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-398,0,0,-141,0,0,0,0, - 0,0,0,-185,0,0,0,-524,0,0, + 0,0,0,0,0,0,0,-285,0,0, + 0,0,0,0,0,0,-211,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, + 0,-398,0,0,-141,0,0,0,0,0, + 0,0,-185,0,0,0,-524,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -330,0,-131,0,0,-471,0,0,0,0, - -343,0,0,0,-360,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-138,0,0,0,0,0,-295, - 0,0,0,0,0,0,0,0,-353,0, + 0,0,0,0,0,0,0,0,0,-330, + 0,-131,0,0,-471,0,0,0,0,-343, + 0,0,0,-360,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-138,0,0,0,0,0,-295,0, + 0,0,0,0,0,0,0,-353,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-298,0,0, - 0,0,0,0,0,0,-333,0,0,0, - -461,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,-298,0,0,0, + 0,0,0,0,0,-333,0,0,0,-461, + 0,0,0,0,0,0,0,-377,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-139,0,0,0,0,0,-303,0,0, - 0,0,0,-414,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,-296, - 0,0,0,0,0,-307,0,0,0,0, - 0,0,0,0,-372,0,0,0,-140,-153, - 0,0,0,0,0,-154,-448,0,0,0, + -139,0,0,0,0,0,-303,0,0,0, + 0,0,-414,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,-439, - 0,0,0,0,0,-308,0,0,0,0, - 0,0,0,0,-93,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-296,0, + 0,0,0,0,-307,0,0,0,0,0, + 0,0,0,-372,0,0,0,-140,-153,0, + 0,0,0,0,-154,-448,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,-308,0,0,0,0,0, + 0,0,0,-93,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-319,0,0,0,0,0,0, - -312,0,-362,-123,-408,0,0,0,-393,-290, - -428,0,0,0,-91,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-319,0,0,0,0,0,0,-312, + 0,-362,-123,-408,0,0,0,-393,-290,-428, + 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,-92,0,0,0, - -155,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-389,0,0, + 0,0,0,0,0,-92,0,0,0,-155, 0,0,0,0,0,0,0,0,0,0, - -89,0,0,0,-210,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-156,0,0,0,0,-47,0, - 0,0,0,-135,0,-246,-297,0,-48,-224, - -157,0,0,-117,0,0,0,0,-158,-159, - 0,0,-375,0,0,-160,0,0,-397,0, - 0,0,-161,0,0,0,0,0,0,0, - 0,0,0,-90,0,0,0,0,0,0, + 0,0,0,0,0,0,-389,0,0,0, + 0,0,0,0,0,0,0,0,0,-89, + 0,0,0,-210,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-156,0,0,0,0,-47,0,0, + 0,0,-135,0,-246,-297,0,-48,-224,-157, + 0,0,-117,0,0,0,0,-158,-159,0, + 0,-375,0,0,-160,0,0,-397,0,0, + 0,-161,0,0,0,0,0,0,0,0, + 0,0,-90,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-331,-61,-264,0,-118,0,0,-265, - 0,0,0,-234,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, - -58,0,0,0,0,-73,-458,-162,0,0, - 0,-327,-280,0,0,0,0,0,0,0, - 0,0,0,0,0,-163,0,-309,0,0, - -247,0,0,0,0,0,0,0,0,0, - 0,-258,0,0,0,0,-310,0,0,0, - -248,-249,0,0,0,0,0,0,0,0, - -176,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-164, - -120,0,0,0,0,0,0,0,0,-304, + 0,-331,-61,-264,0,-118,0,0,-265,0, + 0,0,-234,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-165,-166,0,0,0,0,-82, + 0,0,0,0,0,-127,0,0,0,-58, + 0,0,0,0,-73,-458,-162,0,0,0, + -327,-280,0,0,0,0,0,0,0,0, + 0,0,0,0,-163,0,-309,0,0,-247, 0,0,0,0,0,0,0,0,0,0, + -258,0,0,0,0,-310,0,0,0,-248, + -249,0,0,0,0,0,0,0,0,-176, 0,0,0,0,0,0,0,0,0,0, - 0,0,-483,0,0,0,0,0,0,-427, + 0,0,0,0,0,0,0,0,-164,-120, + 0,0,0,0,0,0,0,0,-304,0, 0,0,0,0,0,0,0,0,0,0, - -167,0,0,0,0,0,0,0,0,-325, - -321,0,-335,0,-168,0,0,0,0,0, - 0,0,-169,-170,-171,-83,0,0,0,0, + 0,0,-165,-166,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,0,-84,0,0,0,-172,0,0,0, + 0,-483,0,0,0,0,0,0,-427,0, + 0,0,0,0,0,0,0,0,0,-167, + 0,0,0,0,0,0,0,0,-325,-321, + 0,-335,0,-168,0,0,0,0,0,0, + 0,-169,-170,-171,-83,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-77, - 0,0,0,-173,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-406,0,0,0,0,0,-438,0, + 0,-84,0,0,0,-172,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-441,0,0,-85,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-77,0, + 0,0,-173,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-426,0,0, - 0,0,-197,-351,-174,-175,0,0,0,0, - 0,0,-178,0,0,-179,0,0,0,-193, - 0,0,0,-180,0,0,0,-430,0,0, - 0,-183,-191,-407,0,0,0,0,0,-464, + 0,-406,0,0,0,0,0,-438,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-446,0,-283,-505,0,0,-68,-436,0, - 0,0,0,0,-192,0,0,0,0,0, - 0,0,0,0,0,0,0,-122,-450,-418, - 0,0,0,0,0,-195,0,0,0,0, - 0,0,0,0,0,-349,0,0,0,0, + -441,0,0,-85,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -124,-206,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-523,0,0,0, + 0,0,0,0,0,0,-426,0,0,0, + 0,-197,-351,-174,-175,0,0,0,0,0, + 0,-178,0,0,-179,0,0,0,-193,0, + 0,0,-180,0,0,0,-430,0,0,0, + -183,-191,-407,0,0,0,0,0,-464,0, 0,0,0,0,0,0,0,0,0,0, - -293,-52,0,0,0,-236,0,-294,-216,0, - -324,0,0,0,0,0,0,0,0,0, - 0,0,0,-217,0,0,0,0,0,-225, - -233,0,0,-14,0,0,0,0,-465,0, - 0,0,0,-181,0,0,0,-235,0,0, - 0,-142,0,0,0,0,0,0,0,0, - -243,0,0,0,0,0,0,0,0,0, - 0,0,-337,0,0,0,0,-252,0,0, - 0,0,0,-257,0,0,-259,0,0,0, - 0,-468,-260,-275,0,0,0,0,-350,0, - 0,-518,-276,0,0,0,0,0,-287,-291, - 0,0,0,-222,0,0,0,-292,0,0, - 0,0,0,-231,0,0,0,-19,0,0, + -446,0,-283,-505,0,0,-68,-436,0,0, + 0,0,0,-192,0,0,0,0,0,0, + 0,0,0,0,0,0,-122,-450,-418,0, + 0,0,0,0,-195,0,0,0,0,0, + 0,0,0,0,-349,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-124, + -206,0,0,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,0,-293, + -52,0,0,0,-236,0,-294,-216,0,-324, 0,0,0,0,0,0,0,0,0,0, + 0,0,-217,0,0,0,0,0,-225,-233, + 0,0,-14,0,0,0,0,-465,0,0, + 0,0,-181,0,0,0,-235,0,0,0, + -142,0,0,0,0,0,0,0,0,-243, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-86,0,0,0,0,0, + 0,-337,0,0,0,0,-252,0,0,0, + 0,0,-257,0,0,-259,0,0,0,0, + -468,-260,-275,0,0,0,0,-350,0,0, + -518,-276,0,0,0,0,0,-287,-291,0, + 0,0,-222,0,0,0,-292,0,0,0, + 0,0,-231,0,0,0,-19,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-322,0,0, - -87,0,0,0,-459,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-455,0,0,-339,0,0,0, - 0,-323,0,-355,0,0,0,0,-230,0, - 0,-43,0,-300,-359,0,0,0,-301,0, - -116,-133,0,-306,0,0,0,-209,0,0, - 0,0,0,0,0,-320,0,0,0,0, - 0,0,0,0,0,0,0,-478,0,0, - -314,0,-507,0,0,0,0,-315,0,0, - 0,0,0,0,0,0,0,0,0,-386, - 0,-460,0,0,0,0,0,0,0,-149, - 0,0,0,-326,-344,0,0,0,-367,0, + 0,0,0,-86,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-480,0,-346,0,0,0,0,0,0, - 0,0,0,0,-147,0,0,0,0,0, - 0,0,0,0,0,0,-241,-473,0,-417, - 0,0,-363,0,-366,0,-472,0,0,0, - 0,0,0,-226,0,0,0,0,0,0, - 0,0,0,0,0,-497,0,-388,-289,0, - 0,0,-420,0,0,0,0,0,-242,0, - 0,0,0,0,0,0,0,-144,0,0, - 0,0,-486,0,0,0,0,0,-238,0, - 0,0,0,0,0,0,-463,0,-381,0, - 0,0,0,0,0,0,0,0,0,-511, - 0,-390,0,0,-391,0,-244,0,0,0, + 0,0,0,0,0,0,-322,0,0,-87, + 0,0,0,-459,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -466,0,0,0,-245,0,0,0,0,-394, - 0,-229,0,0,0,-395,-44,0,0,0, - 0,0,0,0,-401,0,0,0,0,0, - 0,0,0,-513,0,0,-356,0,0,0, - 0,-403,-387,-409,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-416,-423,0, - -424,0,0,-447,0,0,-449,0,-451,-452, - 0,0,0,0,-282,0,0,0,0,0, - 0,0,0,0,0,0,0,-453,0,-279, - 0,0,0,-338,0,0,0,0,-521,0, - -454,0,0,0,0,0,0,0,-515,0, + 0,0,-455,0,0,-339,0,0,0,0, + -323,0,-355,0,0,0,0,-230,0,0, + -43,0,-300,-359,0,0,0,-301,0,-116, + -133,0,-306,0,0,0,-209,0,0,0, + 0,0,0,0,-320,0,0,0,0,0, + 0,0,0,0,0,0,-478,0,0,-314, + 0,-507,0,0,0,0,-315,0,0,0, + 0,0,0,0,0,0,0,0,-386,0, + -460,0,0,0,0,0,0,0,-149,0, + 0,0,-326,-344,0,0,0,-367,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-456,0,0,-410,-481,0,0,0,0, - -413,-422,0,0,0,0,0,0,0,-474, - -517,0,0,0,0,0,-476,-469,0,0, - -268,0,0,0,0,-425,-467,-470,-45,0, + -480,0,-346,0,0,0,0,0,0,0, + 0,0,0,-147,0,0,0,0,0,0, + 0,0,0,0,0,-241,-473,0,-417,0, + 0,-363,0,-366,0,-472,0,0,0,0, + 0,0,-226,0,0,0,0,0,0,0, + 0,0,0,0,-497,0,-388,-289,0,0, + 0,-420,0,0,0,0,0,-242,0,0, + 0,0,0,0,0,0,-144,0,0,0, + 0,-486,0,0,0,0,0,-238,0,0, + 0,0,0,0,0,-463,0,-381,0,0, + 0,0,0,0,0,0,0,0,-511,0, + -390,0,0,-391,0,-244,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-466, + 0,0,0,-245,0,0,0,0,-394,0, + -229,0,0,0,-395,-44,0,0,0,0, + 0,0,0,-401,0,0,0,0,0,0, + 0,0,-513,0,0,-356,0,0,0,0, + -403,-387,-409,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-416,-423,0,-424, + 0,0,-447,0,0,-449,0,-451,-452,0, + 0,0,0,-282,0,0,0,0,0,0, + 0,0,0,0,0,0,-453,0,-279,0, + 0,0,-338,0,0,0,0,-521,0,-454, + 0,0,0,0,0,0,0,-515,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-477,-347,0,0,0,0,0, - 0,0,0,-479,0,-487,0,0,0,0, - 0,0,0,0,-498,0,-74,-250,-532,-484, - 0,0,0,0,-488,-495,0,0,0,0, - 0,0,0,0,0,0,-46,0,0,0, - 0,0,-494,0,-503,0,0,0,0,0, - 0,0,0,0,-522,0,0,0,0,0, - -384,0,0,0,0,0,0,0,0,0, - 0,0,-537,0,0,-399,0,-512,-526,-251, + -456,0,0,-410,-481,0,0,0,0,-413, + -422,0,0,0,0,0,0,0,-474,-517, + 0,0,0,0,0,-476,-469,0,0,-268, + 0,0,0,0,-425,-467,-470,-45,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-489,0,-493,-520, - 0,0,0,0,0,-525,-536,0,0,0, + 0,0,-477,-347,0,0,0,0,0,0, + 0,0,-479,0,-487,0,0,0,0,0, + 0,0,0,-498,0,-74,-250,-532,-484,0, + 0,0,0,-488,-495,0,0,0,0,0, + 0,0,0,0,0,-46,0,0,0,0, + 0,-494,0,-503,0,0,0,0,0,0, + 0,0,0,-522,0,0,0,0,0,-384, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-371,0, - 0,0,0,-272,0,0,0,-316,0,0, - 0,0,0,0,0,0,0,-78,0,0, + 0,-537,0,0,-399,0,-512,-526,-251,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-489,0,-493,-520,0, + 0,0,0,0,-525,-536,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,-371,0,0, + 0,0,-272,0,0,0,-316,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,-81,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-334,0, - -105,-502,0,-492,0,0,-510,-202,-370,0, - 0,0,0,0,-212,0,0,0,0,0, - 0,0,-284,0,0,0,-514,-527,0,0, - 0,0,-500,-213,-214,0,0,0,0,0, + 0,-80,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-81,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-281,0,0,0, + 0,0,0,0,0,0,0,-334,0,-105, + -502,0,-492,0,0,-510,-202,-370,0,0, + 0,0,0,-212,0,0,0,0,0,0, + 0,-284,0,0,0,-514,-527,0,0,0, + 0,-500,-213,-214,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-534,0,0,0,-376,0,0,0,0, - 0,0,0,0,0,0,0,0,-182,0, - 0,0,0,0,0,-435,-348,0,0,0, - 0,0,0,0,0,-341,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-504, - -508,0,-509,-189,0,0,0,-199,0,0, + 0,0,0,0,0,-281,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-519, 0,0,0,0,0,0,0,0,0,0, + -534,0,0,0,-376,0,0,0,0,0, + 0,0,0,0,0,0,0,-182,0,0, + 0,0,0,0,-435,-348,0,0,0,0, + 0,0,0,0,-341,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-504,-508, + 0,-509,-189,0,0,0,-199,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-519,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-20,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-311,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,-528,0,0,0,0,0, - 0,0,0,-22,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,-23,0,0,0,0, + 0,0,0,-311,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,-24,0,0, + 0,0,0,-528,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,0,0,0,0,-25, + 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,-24,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-26,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-25,0, 0,0,0,0,0,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,-63,0,0,0,0, + -26,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-75,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,0,0,0,0,-76, + 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,-75,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-132,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-76,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-201,0,0,0,-533,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-336,-215,0,-288,0, - 0,0,0,0,0,-364,0,-328,0,0, - -429,0,0,0,0,-369,-332,0,0,0, - 0,0,0,0,0,0,-496,0,0,0, + -132,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,-533,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-336,-215,0,-288,0,0, + 0,0,0,0,-364,0,-328,0,0,-429, + 0,0,0,0,-369,-332,0,0,0,0, + 0,0,0,0,0,-496,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,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,-404,0,-421,0, - 0,0,0,-516,0,0,0,0,-442,-357, - 0,0,0,0,0,0,0,0,0,-434, 0,0,0,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,-404,0,-421,0,0, + 0,0,-516,0,0,0,0,-442,-357,0, + 0,0,0,0,0,0,0,0,-434,0, 0,0,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,-305,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-125,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-380,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, + -125,0,0,0,0,0,0,0,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,-221, 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,0,0,-499, 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,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-262,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-365,0,0,0,0,0,0,0, - 0,0,0,0,0,-405,0,0,0,0, - 0,0,-263,0,0,0,0,0,0,0, - -419,0,0,0,-431,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-432,0,0,0,0,0,0,0,0, + 0,-262,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-365,0,0,0,0,0,0,0,0, + 0,0,0,0,-405,0,0,0,0,0, + 0,-263,0,0,0,0,0,0,0,-419, + 0,0,0,-431,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-443,0,0,0,0, - 0,0,-501,0,0,0,0,0,0,0, + -432,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,-17,0,-482,-444, - 0,0,0,0,0,-208,0,0,0,0, - 0,0,-255,0,0,0,0,0,0,0, - 0,0,0,0,-433,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-443,0,0,0,0,0, + 0,-501,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-440, + 0,0,0,0,0,-17,0,-482,-444,0, + 0,0,0,0,-208,0,0,0,0,0, + 0,-255,0,0,0,0,0,0,0,0, + 0,0,0,-433,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -485,0,0,0,0,0,0,0,-490,0, + 0,0,0,0,0,0,0,0,0,-485, + 0,0,0,0,0,0,0,-490,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -540,7 +540,7 @@ public class CPPSizeofExpressionParserprs 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 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -552,544 +552,544 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static char baseAction[] = { 174,4,136,83,83,35,35,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, - 139,139,139,115,115,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,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,34,34,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, - 59,59,58,64,64,75,75,57,57,57, - 54,90,90,100,99,99,62,62,60,60, - 61,61,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,33,33,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, + 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,19,19,175,175, + 176,176,177,142,142,143,143,140,140,144, + 141,141,20,20,21,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,34,34,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,59, + 59,58,64,64,75,75,57,57,57,54, + 90,90,100,99,99,62,62,60,60,61, + 61,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,33,33,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,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,2229,2172, - 1116,3032,28,31,32,1038,1092,27,29,2084, - 26,24,51,1177,105,76,77,107,1189,152, - 1270,1220,1331,1306,1405,1028,1374,1547,1523,272, - 1566,144,1576,142,1292,36,395,157,143,1621, - 36,1026,33,2065,3270,28,31,32,1038,1092, - 58,29,2251,1446,3172,36,1026,33,231,1279, - 28,31,32,1038,1092,27,29,875,26,24, - 51,1177,105,76,77,107,1189,72,1270,1220, - 1331,1306,2620,234,229,230,595,36,1755,387, - 3172,36,1026,33,273,1279,28,31,32,1038, - 1092,27,29,875,26,24,51,1177,105,76, - 77,107,2361,241,244,247,250,854,2601,272, - 505,2477,2106,36,276,2429,1316,1738,36,1026, - 33,3058,3270,28,31,32,1038,1092,57,29, - 1787,559,3479,2444,2507,2621,2918,2951,4542,2347, - 36,1026,33,2982,1279,28,31,32,1038,1092, - 27,29,875,26,24,51,1177,105,76,77, - 107,1189,342,1270,1220,1331,1306,1405,62,1374, - 1547,1523,2165,1566,274,1576,142,3843,70,1180, - 516,143,689,1239,2504,1337,36,1026,33,1258, - 4816,28,31,32,1038,1092,27,29,1258,510, - 517,2347,36,1026,33,2982,1279,28,31,32, - 1038,1092,27,29,875,26,24,51,1177,105, - 76,77,107,1189,342,1270,1220,1331,1306,1405, - 2375,1374,1547,1523,2210,1566,2477,1576,142,331, - 36,278,516,143,3964,70,2504,1511,1180,1142, - 1022,512,87,1408,3241,101,61,1522,36,1026, - 33,1525,517,42,31,32,1038,1092,2269,1882, - 2853,327,334,2856,1719,2347,36,1026,33,2982, - 1279,28,31,32,1038,1092,27,29,875,26, - 24,51,1177,105,76,77,107,1189,342,1270, - 1220,1331,1306,1405,1914,1374,1547,1523,1744,1566, - 1670,1576,142,512,2149,70,516,143,3317,751, - 2504,1897,36,1026,33,1379,1893,41,31,32, - 1038,1092,2864,497,1650,2856,517,2558,36,1026, - 33,2982,1279,28,31,32,1038,1092,27,29, - 875,26,24,51,1177,105,76,77,107,1189, - 342,1270,1220,1331,1306,1405,922,1374,1547,1523, - 1757,1566,2374,1576,142,286,2838,88,516,143, - 101,375,2504,1231,36,1026,33,512,4816,28, - 31,32,1038,1092,60,29,595,3373,517,871, - 595,36,1755,387,595,3241,2905,1824,3248,2856, - 2695,36,1026,33,311,1279,28,31,32,1038, - 1092,27,29,875,26,24,51,1177,105,76, - 77,107,1189,50,1270,1220,1331,1306,1405,181, - 1374,1547,1523,47,1566,352,1576,142,2161,513, - 3578,378,143,2417,36,1026,33,1046,1279,28, - 31,32,1038,1092,27,29,875,26,24,51, - 1177,105,76,77,107,1189,2194,1270,1220,1331, - 1306,1405,2405,1374,1547,1523,373,1566,2315,1576, - 142,92,2014,3578,378,143,505,3172,36,1026, - 33,3334,1279,28,31,32,1038,1092,27,29, - 875,26,24,51,1177,105,76,77,107,1189, - 1533,1270,1220,1331,1306,1405,287,1374,1547,1523, - 505,1566,1893,2926,163,3432,3058,2279,384,2056, - 2156,1142,2465,2626,36,1026,33,871,1279,28, - 31,32,1038,1092,27,29,875,26,24,51, - 1177,105,76,77,107,1189,155,1270,1220,1331, - 1306,1405,922,1374,1547,1523,534,1566,403,1576, - 142,385,2056,3578,378,143,70,3697,661,2065, - 1142,3089,2820,36,1026,33,3990,1279,28,31, - 32,1038,1092,27,29,875,26,24,51,1177, - 105,76,77,107,1189,155,1270,1220,1331,1306, - 1405,1029,1374,1547,1523,1504,1566,2275,1576,142, - 595,36,3004,157,143,3172,36,1026,33,418, - 1279,28,31,32,1038,1092,27,29,875,26, - 24,51,1177,105,76,77,107,1189,2623,1270, - 1220,1331,1306,1405,1885,1374,1547,1523,3211,2715, - 49,376,2056,2820,36,1026,33,1356,1279,28, - 31,32,1038,1092,27,29,875,26,24,51, - 1177,105,76,77,107,1189,353,1270,1220,1331, - 1306,1405,70,1374,1547,1523,825,1566,505,1576, - 142,540,496,3514,372,143,1231,36,1026,33, - 65,4816,28,31,32,1038,1092,59,29,1259, - 36,1755,387,2820,36,1026,33,559,1279,28, - 31,32,1038,1092,27,29,875,26,24,51, - 1177,105,76,77,107,1189,2314,1270,1220,1331, - 1306,1405,50,1374,1547,1523,1893,1566,2591,1576, - 142,2615,1669,884,372,143,2192,2820,36,1026, - 33,594,1279,28,31,32,1038,1092,27,29, - 875,26,24,51,1177,105,76,77,107,1189, - 371,1270,1220,1331,1306,1405,1492,1374,1547,1523, - 2192,1566,2102,1576,142,595,36,281,372,143, - 2490,36,1026,33,761,1279,28,31,32,1038, - 1092,27,29,875,26,24,51,1177,105,76, - 77,107,1189,323,1270,1220,1331,1306,1405,420, - 1374,1547,1523,2192,1566,1280,1576,142,1356,442, - 370,141,143,2615,2820,36,1026,33,1356,1279, - 28,31,32,1038,1092,27,29,875,26,24, - 51,1177,105,76,77,107,1189,324,1270,1220, - 1331,1306,1405,4282,1374,1547,1523,231,1566,1627, - 1576,142,355,25,368,158,143,2820,36,1026, - 33,530,1279,28,31,32,1038,1092,27,29, - 875,26,24,51,1177,105,76,77,107,1189, - 876,1270,1220,1331,1306,1405,354,1374,1547,1523, - 446,1566,70,1576,142,530,4610,1347,154,143, - 2820,36,1026,33,1356,1279,28,31,32,1038, - 1092,27,29,875,26,24,51,1177,105,76, - 77,107,1189,57,1270,1220,1331,1306,1405,322, - 1374,1547,1523,231,1566,401,1576,142,530,69, - 2590,153,143,2820,36,1026,33,1159,1279,28, - 31,32,1038,1092,27,29,875,26,24,51, - 1177,105,76,77,107,1189,1723,1270,1220,1331, - 1306,1405,3676,1374,1547,1523,1639,1566,405,1576, - 142,1022,446,420,152,143,2820,36,1026,33, - 1356,1279,28,31,32,1038,1092,27,29,875, - 26,24,51,1177,105,76,77,107,1189,380, - 1270,1220,1331,1306,1405,70,1374,1547,1523,2986, - 1566,2252,1576,142,3368,54,4706,151,143,2820, - 36,1026,33,1356,1279,28,31,32,1038,1092, - 27,29,875,26,24,51,1177,105,76,77, - 107,1189,1473,1270,1220,1331,1306,1405,70,1374, - 1547,1523,998,1566,459,1576,142,1022,53,1188, - 150,143,2820,36,1026,33,1356,1279,28,31, - 32,1038,1092,27,29,875,26,24,51,1177, - 105,76,77,107,1189,379,1270,1220,1331,1306, - 1405,70,1374,1547,1523,722,1566,505,1576,142, - 1022,349,4721,149,143,2820,36,1026,33,1356, - 1279,28,31,32,1038,1092,27,29,875,26, - 24,51,1177,105,76,77,107,1189,2013,1270, - 1220,1331,1306,1405,70,1374,1547,1523,803,1566, - 458,1576,142,1022,89,2524,148,143,2820,36, - 1026,33,1356,1279,28,31,32,1038,1092,27, - 29,875,26,24,51,1177,105,76,77,107, - 1189,1343,1270,1220,1331,1306,1405,70,1374,1547, - 1523,2568,1566,4304,1576,142,1022,1916,1462,147, - 143,2820,36,1026,33,388,1279,28,31,32, - 1038,1092,27,29,875,26,24,51,1177,105, - 76,77,107,1189,2013,1270,1220,1331,1306,1405, - 70,1374,1547,1523,2587,1566,52,1576,142,336, - 1101,684,146,143,2820,36,1026,33,1356,1279, - 28,31,32,1038,1092,27,29,875,26,24, - 51,1177,105,76,77,107,1189,2013,1270,1220, - 1331,1306,1405,70,1374,1547,1523,2311,1566,325, - 1576,142,1893,1959,2758,145,143,2820,36,1026, - 33,283,1279,28,31,32,1038,1092,27,29, - 875,26,24,51,1177,105,76,77,107,1189, - 318,1270,1220,1331,1306,1405,70,1374,1547,1523, - 3738,1566,1873,1576,142,1893,2061,858,144,143, - 2764,36,1026,33,284,1279,28,31,32,1038, - 1092,27,29,875,26,24,51,1177,105,76, - 77,107,1189,521,1270,1220,1331,1306,1405,70, - 1374,1547,1523,2552,1566,2703,2926,163,2820,36, - 1026,33,1180,1279,28,31,32,1038,1092,27, - 29,875,26,24,51,1177,105,76,77,107, - 1189,871,1270,1220,1331,1306,1405,522,1374,1547, - 1523,1884,1566,2590,1576,142,331,36,278,139, - 143,3968,437,326,1292,36,3010,2440,3054,36, - 1026,33,1796,1279,28,31,32,1038,1092,27, - 29,875,26,24,51,1177,105,76,77,107, - 1189,298,1270,1220,1331,1306,1405,50,1374,1547, - 1523,1022,1566,2530,1576,142,1893,1669,3094,188, - 143,3172,36,1026,33,1022,1279,28,31,32, - 1038,1092,27,29,875,26,24,51,1177,105, - 76,77,107,1189,1645,1270,1220,1331,1306,1405, - 70,1374,1547,1523,4347,1566,3699,2926,163,3172, - 36,1026,33,2874,1279,28,31,32,1038,1092, - 27,29,875,26,24,51,1177,105,76,77, - 107,1189,571,1270,1220,1331,1306,1405,70,1374, - 1547,1523,3819,1566,96,2926,163,1897,36,1026, - 33,595,3625,1540,31,32,1038,1092,97,3172, - 36,1026,33,422,1279,28,31,32,1038,1092, - 27,29,875,26,24,51,1177,105,76,77, - 107,1189,3375,1270,1220,1331,1306,1405,2512,1374, - 1547,1523,1321,1566,2590,2926,163,3172,36,1026, - 33,291,1279,28,31,32,1038,1092,27,29, - 875,26,24,51,1177,105,76,77,107,1189, - 2165,1270,1220,1331,1306,1405,70,1374,1547,1523, - 2936,1566,220,2926,163,1897,36,1026,33,1474, - 413,2003,31,32,1038,1092,587,3228,36,1026, - 33,421,1279,28,31,32,1038,1092,27,29, - 875,26,24,51,1177,105,76,77,107,1189, - 2590,1270,1220,1331,1306,1405,70,1374,1547,1523, - 3079,1566,2210,2926,163,3172,36,1026,33,424, - 1279,28,31,32,1038,1092,27,29,875,26, - 24,51,1177,105,76,77,107,1189,302,1270, - 1220,1331,1306,1405,70,1374,1547,2713,3457,333, - 334,1408,3241,2013,244,595,36,1755,387,2013, - 674,595,36,1755,387,3172,36,1026,33,3604, - 1279,28,31,32,1038,1092,27,29,875,26, - 24,51,1177,105,76,77,107,1189,430,1270, - 1220,1331,1306,1405,451,1374,2691,3172,36,1026, - 33,1027,1279,28,31,32,1038,1092,27,29, - 875,26,24,51,1177,105,76,77,107,1189, - 296,1270,1220,1331,1306,1405,295,2705,1540,36, - 1026,33,3937,3595,28,31,32,1038,1092,338, - 29,3172,36,1026,33,2439,1279,28,31,32, - 1038,1092,27,29,875,26,24,51,1177,105, - 76,77,107,1189,1296,1270,1220,1331,2644,595, - 36,1755,387,286,2190,70,1356,1650,2843,1345, - 2519,1722,2872,1142,2879,331,318,1362,320,1521, - 1566,313,1318,331,36,452,1785,238,4576,1292, - 36,395,50,1990,312,1867,3248,1080,159,350, - 871,68,1669,593,3172,36,1026,33,3946,1279, - 28,31,32,1038,1092,27,29,875,26,24, - 51,1177,105,76,77,107,1189,818,1270,1220, - 1331,2645,2137,674,2173,144,231,1240,3212,351, - 2592,305,309,780,1420,36,1026,33,3887,3510, - 28,31,32,1038,1092,338,29,343,1171,920, - 348,239,229,230,2184,1676,1590,940,36,1755, - 387,595,1781,2053,35,3478,1345,2658,136,1830, - 1142,1142,2161,1826,36,1026,33,3192,3510,28, - 31,32,1038,1092,338,29,1350,3481,2588,231, - 50,1356,318,1362,320,159,155,313,1318,351, - 1669,2873,2269,36,292,199,3606,2588,350,351, - 3083,1356,1356,626,243,229,230,343,1171,920, - 348,595,36,2053,2989,341,67,343,1171,920, - 348,318,1362,320,2216,3074,313,1318,71,2266, - 1713,1255,2128,445,3445,3462,66,65,351,3158, - 1836,36,3294,33,3937,3595,28,31,32,1038, - 1092,338,29,1633,2457,2525,343,1171,920,348, - 3172,36,1026,33,1676,1279,28,31,32,1038, - 1092,27,29,875,26,24,51,1177,105,76, - 77,107,1189,2658,1270,1220,2449,536,389,426, - 853,36,452,231,2872,4576,1925,331,318,1362, - 320,1736,786,313,1318,3089,3822,390,426,365, - 70,2450,155,70,4450,1486,1208,3829,246,229, - 230,179,2919,492,1844,2137,3172,36,1026,33, - 3946,1279,28,31,32,1038,1092,27,29,875, - 26,24,51,1177,105,76,77,107,1189,194, - 1270,1220,2450,3172,36,1026,33,1798,1279,28, - 31,32,1038,1092,27,29,875,26,24,51, - 1177,105,76,77,107,1189,871,1270,1220,2456, - 3172,36,1026,33,1988,1279,28,31,32,1038, - 1092,27,29,875,26,24,51,1177,105,76, - 77,107,1189,505,2230,416,418,3275,4725,1243, - 36,1026,33,3937,3510,28,31,32,1038,1092, - 338,29,595,36,292,3172,36,1026,33,1497, - 1279,28,31,32,1038,1092,27,29,875,26, - 24,51,1177,105,76,77,107,1189,262,1270, - 1220,2463,536,2003,2163,2100,2303,2982,3929,3661, - 449,3445,3462,1912,4783,195,239,318,1362,320, - 2095,227,313,1318,1931,3929,2514,155,595,36, - 1755,387,1109,1710,505,312,179,2919,922,4742, - 595,36,1755,387,202,214,4693,201,211,212, - 213,215,1,168,1356,1101,536,2872,70,70, - 331,433,1142,1142,167,2157,182,166,169,170, - 171,172,173,432,2872,227,3318,332,1361,2590, - 505,155,306,309,780,4801,1895,155,3568,2700, - 179,2919,922,2860,359,351,2588,1418,202,214, - 4693,201,211,212,213,215,1621,168,1762,3011, - 3028,1629,2272,345,1171,920,348,178,167,180, - 183,166,169,170,171,172,173,1633,36,1026, - 33,3887,3510,28,31,32,1038,1092,338,29, - 231,1356,3284,36,1755,387,1725,2537,1356,2376, - 2982,1921,36,1026,33,236,3595,28,31,32, - 1038,1092,338,29,2377,249,229,230,521,2514, - 2245,1919,428,231,2880,272,56,2892,2982,595, - 36,1755,387,55,1973,318,1362,320,326,3929, - 313,1318,1400,36,1755,387,3389,342,252,229, - 230,2585,351,525,231,2872,392,426,332,318, - 1362,320,431,70,314,1318,3082,3729,2162,1214, - 343,1171,920,348,2415,50,351,2566,526,234, - 229,230,2013,2191,2447,1669,1926,359,2872,2588, - 273,332,2800,2448,345,1171,920,348,626,2653, - 2618,2894,3011,3028,595,36,2510,2505,2650,241, - 244,247,250,854,595,36,2053,275,3116,36, - 1026,33,1316,1279,28,31,32,1038,1092,27, - 29,875,26,24,51,1177,86,76,77,2444, - 2507,2621,2918,2951,4542,3172,36,1026,33,303, - 1279,28,31,32,1038,1092,27,29,875,26, - 24,51,1177,105,76,77,107,1189,1356,1270, - 2548,3172,36,1026,33,2590,1279,28,31,32, - 1038,1092,27,29,875,26,24,51,1177,105, - 76,77,107,1189,349,1270,2566,70,536,391, - 426,1413,2003,321,70,522,2982,3929,1326,2090, - 36,276,70,197,2186,1356,2982,227,441,2662, - 455,1983,1983,155,2656,2514,3929,3929,766,36, - 1755,387,179,2919,922,342,595,36,1755,387, - 202,214,4693,201,211,212,213,215,436,168, - 100,2546,536,1292,36,395,2872,2504,500,331, - 167,272,3620,166,169,170,171,172,173,272, - 1356,227,2590,1839,3734,2872,2872,155,331,331, - 943,36,1755,387,2657,2686,179,2919,922,2269, - 3405,292,2991,359,202,214,4693,201,211,212, - 213,215,523,168,2246,3545,536,1762,3011,3028, - 196,3024,2860,50,167,1932,177,166,169,170, - 171,172,173,1669,2405,227,3041,1983,2590,2128, - 1356,155,3929,2689,339,2723,3218,595,36,292, - 179,2919,922,72,943,36,1755,387,202,214, - 4693,201,211,212,213,215,610,168,2335,2178, - 536,3700,4429,2474,3929,2260,301,2982,167,2195, - 175,166,169,170,171,172,173,50,1724,227, - 950,2872,2982,2590,3349,155,2514,1669,48,1365, - 36,2053,275,1925,179,2919,922,1356,3551,769, - 3571,342,202,214,4693,201,211,212,213,215, - 697,168,2690,2872,536,2649,3349,595,3090,2053, - 74,200,167,864,176,166,169,170,171,172, - 173,1398,450,227,950,1365,36,2053,3098,155, - 1744,3643,940,36,1755,387,2731,70,179,2919, - 922,2982,43,2952,504,848,202,214,4693,201, - 211,212,213,215,784,168,528,1725,536,93, - 342,2982,2752,70,2757,50,167,1360,186,166, - 169,170,171,172,173,1669,48,227,935,2683, - 2514,2691,2504,155,2724,502,503,2725,1365,88, - 2788,95,179,2919,922,2593,45,2952,1841,2982, - 202,214,4693,201,211,212,213,215,2792,168, - 940,36,1755,387,943,36,1755,387,2514,1893, - 167,2793,3706,166,169,170,171,172,173,2066, - 36,1026,33,3937,3510,28,31,32,1038,1092, - 338,29,2844,50,1658,70,70,50,359,4460, - 536,70,70,1669,2701,3936,4449,1669,48,922, - 2273,871,3260,3011,3028,536,3226,2848,1356,342, - 2225,2307,36,279,524,155,70,70,70,70, - 1840,1403,3824,2982,227,187,360,318,1362,320, - 155,4591,313,1318,175,940,36,1755,387,179, - 2919,922,342,377,2843,312,2590,202,214,4693, - 201,211,212,213,215,1356,168,70,1345,958, - 2479,1142,1142,536,2504,2786,1371,167,50,191, - 166,169,170,171,172,173,4045,70,1669,1032, - 1927,2982,227,2590,198,2849,155,159,155,3615, - 3400,3226,305,309,780,1893,1753,179,2919,922, - 342,940,36,1755,387,202,214,4693,201,211, - 212,213,215,1045,168,3848,1893,536,2850,2475, - 1345,297,2504,1142,1142,167,3478,185,166,169, - 170,171,172,173,50,922,227,70,1972,70, - 2853,2895,155,960,1669,48,2327,2404,155,159, - 523,179,2919,922,5400,2981,922,2315,161,202, - 214,4693,201,211,212,213,215,5400,168,2474, - 5400,375,5400,2982,595,36,2053,277,2165,167, - 5400,193,166,169,170,171,172,173,3172,36, - 1026,33,2514,1279,28,31,32,1038,1092,27, - 29,875,26,24,51,1177,105,76,77,107, - 1189,5400,2236,3172,36,1026,33,2988,1279,28, - 31,32,1038,1092,27,29,875,26,24,51, - 1177,105,76,77,107,2424,3172,36,1026,33, - 2210,1279,28,31,32,1038,1092,27,29,875, - 26,24,51,1177,105,76,77,107,2441,1584, - 504,70,70,2982,2013,1142,3529,2473,70,1848, - 5400,2967,2982,2982,5400,70,3576,3194,334,1142, - 5400,5400,227,595,36,2053,3274,2590,2590,5400, - 155,342,227,1356,70,70,5400,4308,1142,1142, - 2714,501,503,5400,155,204,214,4693,203,211, - 212,213,215,2504,2436,204,214,4693,203,211, - 212,213,215,155,155,3679,221,1983,3454,1848, - 5400,381,3929,2571,2591,5400,205,207,209,293, - 294,3073,3430,216,206,208,205,207,209,293, - 294,3073,2590,216,206,208,2015,36,3294,33, - 3937,3510,28,31,32,1038,1092,338,29,595, - 36,1755,387,2313,5400,4346,1936,1983,5400,5400, - 2982,2872,3929,2319,331,4346,1714,36,1026,33, - 192,3595,28,31,32,1038,1092,338,29,227, - 1356,1356,50,1356,595,36,1755,387,595,36, - 1755,387,1669,617,318,1362,320,2991,5400,313, - 1318,5400,204,214,4693,203,211,212,213,215, - 1978,2872,1208,5400,331,3561,3519,50,3655,5400, - 2872,50,5400,332,318,1362,320,1669,3199,316, - 1318,1669,662,205,207,209,293,294,3073,5400, - 216,206,208,3172,36,1026,33,4526,1279,28, - 31,32,1038,1092,27,29,875,26,24,51, - 1177,105,76,77,85,595,36,2053,280,5400, - 3072,5400,4346,3172,1781,1026,1798,1447,1279,28, - 31,32,1038,1092,27,29,875,26,24,51, - 1177,105,76,77,84,1356,5400,5400,5400,5400, - 5400,417,418,3275,3172,36,1026,33,5400,1279, - 28,31,32,1038,1092,27,29,875,26,24, - 51,1177,105,76,77,83,3172,36,1026,33, - 3912,1279,28,31,32,1038,1092,27,29,875, - 26,24,51,1177,105,76,77,82,3172,36, - 1026,33,5400,1279,28,31,32,1038,1092,27, - 29,875,26,24,51,1177,105,76,77,81, - 3172,36,1026,33,5400,1279,28,31,32,1038, - 1092,27,29,875,26,24,51,1177,105,76, - 77,80,3172,36,1026,33,5400,1279,28,31, - 32,1038,1092,27,29,875,26,24,51,1177, - 105,76,77,79,3172,36,1026,33,5400,1279, - 28,31,32,1038,1092,27,29,875,26,24, - 51,1177,105,76,77,78,2998,36,1026,33, - 5400,1279,28,31,32,1038,1092,27,29,875, - 26,24,51,1177,105,76,77,103,3172,36, - 1026,33,5400,1279,28,31,32,1038,1092,27, - 29,875,26,24,51,1177,105,76,77,109, - 3172,36,1026,33,5400,1279,28,31,32,1038, - 1092,27,29,875,26,24,51,1177,105,76, - 77,108,3172,36,1026,33,5400,1279,28,31, - 32,1038,1092,27,29,875,26,24,51,1177, - 105,76,77,106,3172,36,1026,33,1356,1279, - 28,31,32,1038,1092,27,29,875,26,24, - 51,1177,105,76,77,104,2024,70,5400,70, - 2982,1142,5400,1142,5400,5400,1672,5400,1345,5400, - 2982,1345,1142,3673,5400,1142,1760,2165,5400,227, - 2982,5400,5400,5400,5400,5400,155,2751,155,227, - 5400,2982,5400,5400,5400,5400,2592,159,2051,227, - 159,5400,204,214,4693,203,211,212,213,215, - 342,5400,204,214,4693,203,211,212,213,215, - 5400,5400,204,214,4693,203,211,212,213,215, - 5400,5400,3827,205,207,209,293,294,3073,2210, - 519,206,208,205,207,209,293,294,3073,5400, - 518,206,208,205,207,209,293,294,3073,2112, - 217,206,208,2982,5400,3205,5400,2163,3387,2200, - 5400,5400,3661,2982,70,5400,329,334,1142,2682, - 2165,5400,227,2982,5400,5400,5400,5400,5400,5400, - 2165,5400,227,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,2514,155,5400,204,214,4693,203,211, - 212,213,215,4075,5400,204,214,4693,203,211, - 212,213,215,1243,36,1026,33,3937,3510,28, - 31,32,1038,1092,338,29,205,207,209,293, - 294,3073,2210,304,206,208,205,207,209,293, - 294,3073,2210,498,206,208,1714,36,1026,33, - 5400,3595,28,31,32,1038,1092,338,29,1621, - 504,5400,3334,36,1755,387,5400,2537,5400,3463, - 334,318,1362,320,3963,237,313,1318,5400,3577, - 334,5400,5400,5400,5400,5400,5400,5400,5400,3158, - 5400,5400,5400,5400,5400,272,940,36,1755,387, - 2872,501,503,332,318,1362,320,5400,5400,314, - 1318,1243,36,1026,33,3937,3510,28,31,32, - 1038,1092,338,29,231,429,5400,5400,5400,50, - 1194,5400,5400,5400,2982,4823,5400,5400,5400,1669, - 48,5400,3560,5400,5400,5400,5400,5400,5400,235, - 229,230,2321,227,5400,5400,5400,5400,5400,5400, - 273,5400,5400,5400,5400,5400,5400,5400,5400,318, - 1362,320,5400,5400,313,1318,1090,406,4673,242, - 245,248,251,854,5400,5400,5400,3678,5400,5400, - 5400,5400,1316,1512,36,1026,33,2630,3510,28, - 31,32,1038,1092,338,29,5400,407,408,409, - 293,294,3073,1802,36,1026,33,2388,3510,28, - 31,32,1038,1092,338,29,940,36,1755,387, - 5400,402,3064,1300,5400,5400,5400,2982,4823,5400, - 5400,1491,36,1755,387,940,36,1755,387,5400, - 5400,315,3214,320,5400,5400,227,5400,5400,50, - 5400,5400,940,36,1755,387,5400,5400,5400,1669, - 48,315,3214,320,50,5400,5400,5400,50,1090, - 406,4673,2868,5400,1669,48,5400,5400,1669,48, - 5400,5400,5400,410,412,50,70,2812,5400,5400, - 2982,2880,5400,2727,5400,1669,48,536,5400,5400, - 407,408,409,293,294,3073,5400,1738,3019,342, - 4713,1666,36,1755,387,5400,342,70,5400,70, - 70,536,155,536,2982,3064,595,36,1755,387, - 5400,2504,187,595,36,1755,387,5400,4591,5400, - 342,2178,342,342,50,2006,155,508,155,2982, - 5400,5400,5400,5400,1669,48,1418,5400,187,50, - 5400,2178,2504,5400,4591,2504,50,3327,342,1669, - 884,70,5400,5400,5400,536,1669,2437,1408,70, - 529,506,5400,2982,5400,5400,410,413,5400,5400, - 2504,5400,5400,5400,342,5400,189,5400,5400,5400, - 155,5400,342,5400,5400,5400,532,5400,5400,5400, - 187,5400,5400,5400,5400,5400,4591,5400,5400,5400, - 5400,5400,3853,5400,2504,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 533,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,3847,3960,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,3421,5400,0,40,5415,0,40, - 5414,0,728,30,0,439,865,0,453,1252, - 0,39,2541,0,39,5415,0,39,5414,0, - 2743,125,0,1,443,0,457,1581,0,456, - 1667,0,795,90,0,728,386,0,36,34, - 0,33,35,0,40,2541,0,1,660,0, - 1,5671,0,1,5670,0,1,5669,0,1, - 5668,0,1,5667,0,1,5666,0,1,5665, - 0,1,5664,0,1,5663,0,1,5662,0, - 1,5661,0,40,1,5415,0,40,1,5414, - 0,807,1,0,282,393,0,282,285,0, - 5633,240,0,5632,240,0,5737,240,0,5736, - 240,0,5660,240,0,5659,240,0,5658,240, - 0,5657,240,0,5656,240,0,5655,240,0, - 5654,240,0,5653,240,0,5671,240,0,5670, - 240,0,5669,240,0,5668,240,0,5667,240, - 0,5666,240,0,5665,240,0,5664,240,0, - 5663,240,0,5662,240,0,5661,240,0,40, - 5415,240,0,40,5414,240,0,5439,240,0, - 5415,49,0,5414,49,0,5406,1,0,5405, - 1,0,2439,236,0,33,387,0,30,386, - 0,44,5437,0,44,38,0,2743,127,0, - 2743,126,0,330,444,0,5439,1,0,40, - 1,0,48,38,0,1,91,0,500,3067, - 0,5439,1,228,0,40,1,228,0,228, - 415,0,5415,38,0,5414,38,0,5415,2, - 38,0,5414,2,38,0,5415,37,0,5414, - 37,0,5437,46,0,38,46,0,5410,404, - 0,5409,404,0,1,4493,0,1,3014,0, - 1,2541,0,228,414,0,2304,317,0,330, - 94,0,36,73,0,1,330,0,3618,277, - 0,500,4336,0,1,228,0,228,219,0, - 228,218,0,1,574,0,1,2459,0,5412, - 1,0,5408,1,0,1,228,3487,0,5409, - 228,0,3489,228,0,5412,382,0,5411,382, - 0,3594,228,0,10,12,0,8,10,12, - 0,184,3619,0,3707,382,0,8,12,0 + 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,2228,2171,1278, + 3031,27,30,31,1037,1091,26,28,2083,25, + 23,50,1176,104,75,76,106,1188,1982,1269, + 1219,1330,1305,1404,71,1373,1546,1522,271,1565, + 142,1575,141,1243,35,394,156,142,1217,35, + 1025,32,236,3269,27,30,31,1037,1091,57, + 28,2050,1279,3121,35,1025,32,230,1278,27, + 30,31,1037,1091,26,28,874,25,23,50, + 1176,104,75,76,106,1188,135,1269,1219,1330, + 1305,2619,233,228,229,588,35,1754,386,3121, + 35,1025,32,272,1278,27,30,31,1037,1091, + 26,28,874,25,23,50,1176,104,75,76, + 106,2360,240,243,246,249,853,2600,271,69, + 2580,2079,35,275,2428,1315,1860,35,1025,32, + 3057,3269,27,30,31,1037,1091,56,28,1786, + 558,3478,2443,2506,2620,2917,2950,4541,2316,35, + 1025,32,2981,1278,27,30,31,1037,1091,26, + 28,874,25,23,50,1176,104,75,76,106, + 1188,341,1269,1219,1330,1305,1404,61,1373,1546, + 1522,737,1565,273,1575,141,3842,56,1179,515, + 142,688,1267,2503,2344,35,1025,32,1257,4815, + 27,30,31,1037,1091,26,28,1257,509,516, + 2316,35,1025,32,2981,1278,27,30,31,1037, + 1091,26,28,874,25,23,50,1176,104,75, + 76,106,1188,341,1269,1219,1330,1305,1404,2244, + 1373,1546,1522,2209,1565,2580,1575,141,327,35, + 277,515,142,3963,56,2503,2023,1179,1141,1010, + 511,86,1643,3240,100,60,1500,35,1025,32, + 2168,516,41,30,31,1037,1091,2129,1881,2852, + 326,333,2855,1718,2316,35,1025,32,2981,1278, + 27,30,31,1037,1091,26,28,874,25,23, + 50,1176,104,75,76,106,1188,341,1269,1219, + 1330,1305,1404,1229,1373,1546,1522,1743,1565,2493, + 1575,141,511,1868,56,515,142,3316,750,2503, + 2407,35,1025,32,1016,1330,40,30,31,1037, + 1091,2863,496,2121,2855,516,2524,35,1025,32, + 2981,1278,27,30,31,1037,1091,26,28,874, + 25,23,50,1176,104,75,76,106,1188,341, + 1269,1219,1330,1305,1404,921,1373,1546,1522,1873, + 1565,838,1575,141,285,2837,87,515,142,100, + 374,2503,1715,35,1025,32,511,4815,27,30, + 31,1037,1091,59,28,588,3372,516,870,588, + 35,1754,386,588,3240,2904,1823,3247,2855,2659, + 35,1025,32,310,1278,27,30,31,1037,1091, + 26,28,874,25,23,50,1176,104,75,76, + 106,1188,49,1269,1219,1330,1305,1404,180,1373, + 1546,1522,46,1565,351,1575,141,1988,512,3577, + 377,142,2385,35,1025,32,1045,1278,27,30, + 31,1037,1091,26,28,874,25,23,50,1176, + 104,75,76,106,1188,2681,1269,1219,1330,1305, + 1404,2371,1373,1546,1522,372,1565,2682,1575,141, + 91,2013,3577,377,142,69,3121,35,1025,32, + 3333,1278,27,30,31,1037,1091,26,28,874, + 25,23,50,1176,104,75,76,106,1188,1532, + 1269,1219,1330,1305,1404,286,1373,1546,1522,69, + 1565,1330,2925,162,3431,3057,2249,383,2055,2049, + 1141,2683,2591,35,1025,32,870,1278,27,30, + 31,1037,1091,26,28,874,25,23,50,1176, + 104,75,76,106,1188,154,1269,1219,1330,1305, + 1404,921,1373,1546,1522,533,1565,402,1575,141, + 384,2055,3577,377,142,56,3696,660,2064,1141, + 3088,2887,35,1025,32,3989,1278,27,30,31, + 1037,1091,26,28,874,25,23,50,1176,104, + 75,76,106,1188,154,1269,1219,1330,1305,1404, + 1699,1373,1546,1522,1503,1565,2245,1575,141,588, + 35,3003,156,142,3121,35,1025,32,413,1278, + 27,30,31,1037,1091,26,28,874,25,23, + 50,1176,104,75,76,106,1188,2750,1269,1219, + 1330,1305,1404,1599,1373,1546,1522,3210,2714,1445, + 375,2055,2887,35,1025,32,1614,1278,27,30, + 31,1037,1091,26,28,874,25,23,50,1176, + 104,75,76,106,1188,352,1269,1219,1330,1305, + 1404,56,1373,1546,1522,824,1565,69,1575,141, + 539,495,3513,371,142,1715,35,1025,32,64, + 4815,27,30,31,1037,1091,58,28,1976,35, + 1754,386,2887,35,1025,32,558,1278,27,30, + 31,1037,1091,26,28,874,25,23,50,1176, + 104,75,76,106,1188,2284,1269,1219,1330,1305, + 1404,49,1373,1546,1522,1330,1565,2556,1575,141, + 2728,1668,883,371,142,1721,2887,35,1025,32, + 587,1278,27,30,31,1037,1091,26,28,874, + 25,23,50,1176,104,75,76,106,1188,370, + 1269,1219,1330,1305,1404,1491,1373,1546,1522,1721, + 1565,2380,1575,141,588,35,280,371,142,2457, + 35,1025,32,494,1278,27,30,31,1037,1091, + 26,28,874,25,23,50,1176,104,75,76, + 106,1188,322,1269,1219,1330,1305,1404,419,1373, + 1546,1522,1721,1565,1355,1575,141,1614,441,369, + 140,142,2728,2887,35,1025,32,1614,1278,27, + 30,31,1037,1091,26,28,874,25,23,50, + 1176,104,75,76,106,1188,323,1269,1219,1330, + 1305,1404,4281,1373,1546,1522,159,1565,1017,1575, + 141,354,24,367,157,142,2887,35,1025,32, + 529,1278,27,30,31,1037,1091,26,28,874, + 25,23,50,1176,104,75,76,106,1188,875, + 1269,1219,1330,1305,1404,353,1373,1546,1522,445, + 1565,56,1575,141,529,4609,1604,153,142,2887, + 35,1025,32,1614,1278,27,30,31,1037,1091, + 26,28,874,25,23,50,1176,104,75,76, + 106,1188,400,1269,1219,1330,1305,1404,321,1373, + 1546,1522,159,1565,400,1575,141,529,68,2552, + 152,142,2887,35,1025,32,1226,1278,27,30, + 31,1037,1091,26,28,874,25,23,50,1176, + 104,75,76,106,1188,1146,1269,1219,1330,1305, + 1404,3675,1373,1546,1522,1617,1565,404,1575,141, + 1010,445,1625,151,142,2887,35,1025,32,1614, + 1278,27,30,31,1037,1091,26,28,874,25, + 23,50,1176,104,75,76,106,1188,379,1269, + 1219,1330,1305,1404,56,1373,1546,1522,2985,1565, + 2627,1575,141,3367,53,4705,150,142,2887,35, + 1025,32,1614,1278,27,30,31,1037,1091,26, + 28,874,25,23,50,1176,104,75,76,106, + 1188,1627,1269,1219,1330,1305,1404,56,1373,1546, + 1522,997,1565,458,1575,141,1010,52,1174,149, + 142,2887,35,1025,32,1614,1278,27,30,31, + 1037,1091,26,28,874,25,23,50,1176,104, + 75,76,106,1188,378,1269,1219,1330,1305,1404, + 56,1373,1546,1522,721,1565,69,1575,141,1010, + 348,4720,148,142,2887,35,1025,32,1614,1278, + 27,30,31,1037,1091,26,28,874,25,23, + 50,1176,104,75,76,106,1188,322,1269,1219, + 1330,1305,1404,56,1373,1546,1522,802,1565,457, + 1575,141,1010,88,2690,147,142,2887,35,1025, + 32,1614,1278,27,30,31,1037,1091,26,28, + 874,25,23,50,1176,104,75,76,106,1188, + 1323,1269,1219,1330,1305,1404,56,1373,1546,1522, + 2567,1565,4303,1575,141,1010,1915,1441,146,142, + 2887,35,1025,32,387,1278,27,30,31,1037, + 1091,26,28,874,25,23,50,1176,104,75, + 76,106,1188,322,1269,1219,1330,1305,1404,56, + 1373,1546,1522,2586,1565,51,1575,141,160,1088, + 676,145,142,2887,35,1025,32,1614,1278,27, + 30,31,1037,1091,26,28,874,25,23,50, + 1176,104,75,76,106,1188,322,1269,1219,1330, + 1305,1404,56,1373,1546,1522,2310,1565,324,1575, + 141,1330,1958,1964,144,142,2887,35,1025,32, + 282,1278,27,30,31,1037,1091,26,28,874, + 25,23,50,1176,104,75,76,106,1188,314, + 1269,1219,1330,1305,1404,56,1373,1546,1522,3737, + 1565,1872,1575,141,1330,1818,848,143,142,2832, + 35,1025,32,283,1278,27,30,31,1037,1091, + 26,28,874,25,23,50,1176,104,75,76, + 106,1188,520,1269,1219,1330,1305,1404,56,1373, + 1546,1522,2551,1565,2702,2925,162,2887,35,1025, + 32,1167,1278,27,30,31,1037,1091,26,28, + 874,25,23,50,1176,104,75,76,106,1188, + 870,1269,1219,1330,1305,1404,521,1373,1546,1522, + 1883,1565,2552,1575,141,327,35,277,138,142, + 3967,436,325,1243,35,3009,2439,3005,35,1025, + 32,1795,1278,27,30,31,1037,1091,26,28, + 874,25,23,50,1176,104,75,76,106,1188, + 297,1269,1219,1330,1305,1404,49,1373,1546,1522, + 1010,1565,2691,1575,141,1330,1668,3093,187,142, + 3121,35,1025,32,1010,1278,27,30,31,1037, + 1091,26,28,874,25,23,50,1176,104,75, + 76,106,1188,1503,1269,1219,1330,1305,1404,56, + 1373,1546,1522,4346,1565,3698,2925,162,3121,35, + 1025,32,2873,1278,27,30,31,1037,1091,26, + 28,874,25,23,50,1176,104,75,76,106, + 1188,570,1269,1219,1330,1305,1404,56,1373,1546, + 1522,3818,1565,95,2925,162,2407,35,1025,32, + 588,3624,1539,30,31,1037,1091,96,3121,35, + 1025,32,421,1278,27,30,31,1037,1091,26, + 28,874,25,23,50,1176,104,75,76,106, + 1188,3321,1269,1219,1330,1305,1404,1390,1373,1546, + 1522,1320,1565,2552,2925,162,3121,35,1025,32, + 290,1278,27,30,31,1037,1091,26,28,874, + 25,23,50,1176,104,75,76,106,1188,737, + 1269,1219,1330,1305,1404,56,1373,1546,1522,2935, + 1565,219,2925,162,2407,35,1025,32,1453,408, + 2002,30,31,1037,1091,580,3176,35,1025,32, + 420,1278,27,30,31,1037,1091,26,28,874, + 25,23,50,1176,104,75,76,106,1188,2552, + 1269,1219,1330,1305,1404,56,1373,1546,1522,3078, + 1565,2209,2925,162,3121,35,1025,32,423,1278, + 27,30,31,1037,1091,26,28,874,25,23, + 50,1176,104,75,76,106,1188,301,1269,1219, + 1330,1305,1404,56,1373,1546,2712,3456,332,333, + 1643,3240,322,241,588,35,1754,386,322,666, + 588,35,1754,386,3121,35,1025,32,3603,1278, + 27,30,31,1037,1091,26,28,874,25,23, + 50,1176,104,75,76,106,1188,429,1269,1219, + 1330,1305,1404,450,1373,2690,3121,35,1025,32, + 1015,1278,27,30,31,1037,1091,26,28,874, + 25,23,50,1176,104,75,76,106,1188,295, + 1269,1219,1330,1305,1404,294,2704,1518,35,1025, + 32,3936,3594,27,30,31,1037,1091,337,28, + 3121,35,1025,32,1334,1278,27,30,31,1037, + 1091,26,28,874,25,23,50,1176,104,75, + 76,106,1188,1700,1269,1219,1330,2643,588,35, + 1754,386,285,2417,69,1614,2121,2842,1354,2551, + 1787,2871,1141,3347,330,317,1361,319,1223,1385, + 312,1317,327,35,451,1559,237,4575,1243,35, + 394,49,1875,311,1866,3247,1079,158,349,870, + 67,1668,592,3121,35,1025,32,3945,1278,27, + 30,31,1037,1091,26,28,874,25,23,50, + 1176,104,75,76,106,1188,817,1269,1219,1330, + 2644,2136,666,2147,142,230,1225,3211,350,2699, + 304,308,779,1400,35,1025,32,3886,3509,27, + 30,31,1037,1091,337,28,342,1170,919,347, + 238,228,229,2183,1675,1589,929,35,1754,386, + 588,1780,2052,34,3477,1354,2717,1965,1829,1141, + 1141,1988,1888,35,1025,32,3191,3509,27,30, + 31,1037,1091,337,28,2022,3480,2433,230,49, + 1614,317,1361,319,158,154,312,1317,350,1668, + 2872,2129,35,291,198,3605,2433,349,350,3082, + 1614,1614,625,242,228,229,342,1170,919,347, + 588,35,2052,2988,340,66,342,1170,919,347, + 317,1361,319,2215,3073,312,1317,70,2265,1709, + 1240,2127,444,3444,3461,65,64,350,3157,1898, + 35,3293,32,3936,3594,27,30,31,1037,1091, + 337,28,1632,2491,2558,342,1170,919,347,3121, + 35,1025,32,1675,1278,27,30,31,1037,1091, + 26,28,874,25,23,50,1176,104,75,76, + 106,1188,2717,1269,1219,2448,535,388,425,843, + 35,451,230,2871,4575,1924,330,317,1361,319, + 1701,785,312,1317,3088,3821,389,425,364,56, + 2484,154,56,4449,1703,1207,3828,245,228,229, + 178,2918,486,1374,1515,3121,35,1025,32,3945, + 1278,27,30,31,1037,1091,26,28,874,25, + 23,50,1176,104,75,76,106,1188,193,1269, + 1219,2449,3121,35,1025,32,1883,1278,27,30, + 31,1037,1091,26,28,874,25,23,50,1176, + 104,75,76,106,1188,870,1269,1219,2455,3121, + 35,1025,32,2125,1278,27,30,31,1037,1091, + 26,28,874,25,23,50,1176,104,75,76, + 106,1188,69,2229,415,417,3274,4724,1691,35, + 1025,32,3936,3509,27,30,31,1037,1091,337, + 28,588,35,291,3121,35,1025,32,1496,1278, + 27,30,31,1037,1091,26,28,874,25,23, + 50,1176,104,75,76,106,1188,259,1269,1219, + 2462,535,1375,2122,2276,2413,2981,3928,3660,448, + 3444,3461,2306,4782,194,2139,317,1361,319,1983, + 226,312,1317,2347,3928,2513,154,588,35,1754, + 386,1096,2149,69,311,178,2918,921,4741,588, + 35,1754,386,201,213,4692,200,210,211,212, + 214,1,167,1614,1088,535,2871,56,56,330, + 432,1141,1141,166,2453,181,165,168,169,170, + 171,172,431,2871,226,3317,331,1606,2552,69, + 154,305,308,779,4800,49,154,3567,2699,178, + 2918,921,2859,358,350,2433,1417,201,213,4692, + 200,210,211,212,214,1620,167,1761,3010,3027, + 1780,1817,344,1170,919,347,177,166,179,182, + 165,168,169,170,171,172,2070,35,1025,32, + 3886,3509,27,30,31,1037,1091,337,28,230, + 1614,3231,35,1754,386,2234,2536,1614,2418,2981, + 1363,35,1025,32,235,3594,27,30,31,1037, + 1091,337,28,2515,248,228,229,520,2513,2218, + 1250,427,230,2715,271,55,2891,2981,588,35, + 1754,386,54,1773,317,1361,319,2305,3928,312, + 1317,2212,35,1754,386,3388,341,251,228,229, + 2553,350,524,230,2871,391,425,331,317,1361, + 319,430,56,313,1317,3081,3728,1790,1213,342, + 1170,919,347,2271,49,350,2693,525,233,228, + 229,322,2465,1714,1668,1925,358,2871,2433,272, + 331,2615,1906,344,1170,919,347,625,2587,2707, + 2893,3010,3027,588,35,2509,2504,2614,240,243, + 246,249,853,588,35,2052,274,3066,35,1025, + 32,1315,1278,27,30,31,1037,1091,26,28, + 874,25,23,50,1176,85,75,76,2443,2506, + 2620,2917,2950,4541,3121,35,1025,32,302,1278, + 27,30,31,1037,1091,26,28,874,25,23, + 50,1176,104,75,76,106,1188,1614,1269,2547, + 3121,35,1025,32,2552,1278,27,30,31,1037, + 1091,26,28,874,25,23,50,1176,104,75, + 76,106,1188,345,1269,2565,56,535,390,425, + 1412,1375,320,56,521,2981,3928,1325,1947,35, + 275,56,196,2621,1614,2981,226,440,2716,454, + 1607,1607,154,2620,2513,3928,3928,757,35,1754, + 386,178,2918,921,341,588,35,1754,386,201, + 213,4692,200,210,211,212,214,431,167,99, + 2654,535,1243,35,394,2871,2503,2727,330,166, + 271,3619,165,168,169,170,171,172,271,1614, + 226,2552,1838,3733,2871,2871,154,330,330,932, + 35,1754,386,2622,2729,178,2918,921,2129,3404, + 291,2990,358,201,213,4692,200,210,211,212, + 214,517,167,2492,3544,535,1761,3010,3027,195, + 3023,2859,49,166,1351,176,165,168,169,170, + 171,172,1668,2404,226,3040,1607,2552,2127,1614, + 154,3928,2272,338,2731,3217,588,35,291,178, + 2918,921,71,932,35,1754,386,201,213,4692, + 200,210,211,212,214,603,167,2154,2034,535, + 3699,4428,2646,3928,2259,300,2981,166,2440,174, + 165,168,169,170,171,172,49,1785,226,949, + 2871,2981,2552,3348,154,2513,1668,47,1543,35, + 2052,274,1924,178,2918,921,1614,3550,2735,3570, + 341,201,213,4692,200,210,211,212,214,689, + 167,2448,2871,535,2786,3348,588,3089,2052,73, + 199,166,863,175,165,168,169,170,171,172, + 2446,449,226,949,1543,35,2052,3097,154,2068, + 3642,929,35,1754,386,2732,56,178,2918,921, + 2981,42,2951,503,2747,201,213,4692,200,210, + 211,212,214,775,167,527,2234,535,92,341, + 2981,2739,56,2755,49,166,1359,185,165,168, + 169,170,171,172,1668,47,226,2751,2790,2513, + 2791,2503,154,2782,501,502,2789,1364,87,2757, + 94,178,2918,921,2624,44,2951,1840,2981,201, + 213,4692,200,210,211,212,214,2761,167,929, + 35,1754,386,932,35,1754,386,2513,1330,166, + 2763,3705,165,168,169,170,171,172,1952,35, + 1025,32,3936,3509,27,30,31,1037,1091,337, + 28,2765,49,1657,56,56,49,358,4459,535, + 56,56,1668,2700,3935,4448,1668,47,921,2444, + 861,3259,3010,3027,535,3225,2769,1614,341,2224, + 2449,35,278,523,154,56,56,56,56,1839, + 1402,3823,2981,226,186,359,317,1361,319,154, + 4590,312,1317,173,929,35,1754,386,178,2918, + 921,341,376,2792,311,2552,201,213,4692,200, + 210,211,212,214,1614,167,56,1354,947,2788, + 1141,1141,535,2503,2793,1761,166,49,190,165, + 168,169,170,171,172,4044,56,1668,1031,1926, + 2981,226,2552,197,2773,154,158,154,3614,3399, + 3225,304,308,779,1330,1752,178,2918,921,341, + 929,35,1754,386,201,213,4692,200,210,211, + 212,214,1033,167,3847,1330,535,2798,2481,1354, + 296,2503,1141,1141,166,3477,184,165,168,169, + 170,171,172,49,921,226,56,1971,56,2799, + 2894,154,959,1668,47,2110,1337,154,158,522, + 178,2918,921,5399,2980,921,2314,160,201,213, + 4692,200,210,211,212,214,5399,167,2646,5399, + 374,5399,2981,588,35,2052,276,737,166,5399, + 192,165,168,169,170,171,172,3121,35,1025, + 32,2513,1278,27,30,31,1037,1091,26,28, + 874,25,23,50,1176,104,75,76,106,1188, + 5399,2235,3121,35,1025,32,2987,1278,27,30, + 31,1037,1091,26,28,874,25,23,50,1176, + 104,75,76,106,2423,3121,35,1025,32,2209, + 1278,27,30,31,1037,1091,26,28,874,25, + 23,50,1176,104,75,76,106,2440,1562,503, + 56,56,2981,322,1141,3528,2447,56,1823,5399, + 2966,2981,2981,5399,56,3575,3193,333,1141,5399, + 5399,226,588,35,2052,3273,2552,2552,5399,154, + 341,226,1614,56,56,5399,4307,1141,1141,2713, + 500,502,5399,154,203,213,4692,202,210,211, + 212,214,2503,2435,203,213,4692,202,210,211, + 212,214,154,154,3678,220,1607,3453,1847,5399, + 380,3928,2570,2590,5399,204,206,208,292,293, + 3072,3429,215,205,207,204,206,208,292,293, + 3072,2552,215,205,207,2062,35,3293,32,3936, + 3509,27,30,31,1037,1091,337,28,588,35, + 1754,386,2312,5399,4345,1910,1607,5399,5399,2981, + 2871,3928,2318,330,4345,2156,35,1025,32,191, + 3594,27,30,31,1037,1091,337,28,226,1614, + 1614,49,1614,588,35,1754,386,588,35,1754, + 386,1668,616,317,1361,319,2990,5399,312,1317, + 5399,203,213,4692,202,210,211,212,214,1778, + 2871,1207,5399,330,3560,3518,49,3654,5399,2871, + 49,5399,331,317,1361,319,1668,3198,315,1317, + 1668,661,204,206,208,292,293,3072,5399,215, + 205,207,3121,35,1025,32,4525,1278,27,30, + 31,1037,1091,26,28,874,25,23,50,1176, + 104,75,76,84,588,35,2052,279,5399,3071, + 5399,4345,3121,1780,1025,1797,1446,1278,27,30, + 31,1037,1091,26,28,874,25,23,50,1176, + 104,75,76,83,1614,5399,5399,5399,5399,5399, + 416,417,3274,3121,35,1025,32,5399,1278,27, + 30,31,1037,1091,26,28,874,25,23,50, + 1176,104,75,76,82,3121,35,1025,32,3911, + 1278,27,30,31,1037,1091,26,28,874,25, + 23,50,1176,104,75,76,81,3121,35,1025, + 32,5399,1278,27,30,31,1037,1091,26,28, + 874,25,23,50,1176,104,75,76,80,3121, + 35,1025,32,5399,1278,27,30,31,1037,1091, + 26,28,874,25,23,50,1176,104,75,76, + 79,3121,35,1025,32,5399,1278,27,30,31, + 1037,1091,26,28,874,25,23,50,1176,104, + 75,76,78,3121,35,1025,32,5399,1278,27, + 30,31,1037,1091,26,28,874,25,23,50, + 1176,104,75,76,77,2950,35,1025,32,5399, + 1278,27,30,31,1037,1091,26,28,874,25, + 23,50,1176,104,75,76,102,3121,35,1025, + 32,5399,1278,27,30,31,1037,1091,26,28, + 874,25,23,50,1176,104,75,76,108,3121, + 35,1025,32,5399,1278,27,30,31,1037,1091, + 26,28,874,25,23,50,1176,104,75,76, + 107,3121,35,1025,32,5399,1278,27,30,31, + 1037,1091,26,28,874,25,23,50,1176,104, + 75,76,105,3121,35,1025,32,1614,1278,27, + 30,31,1037,1091,26,28,874,25,23,50, + 1176,104,75,76,103,1997,56,5399,56,2981, + 1141,5399,1141,5399,5399,1649,5399,1354,5399,2981, + 1354,1141,3672,5399,1141,1736,737,5399,226,2981, + 5399,5399,5399,5399,5399,154,2775,154,226,5399, + 2981,5399,5399,5399,5399,2591,158,2050,226,158, + 5399,203,213,4692,202,210,211,212,214,341, + 5399,203,213,4692,202,210,211,212,214,5399, + 5399,203,213,4692,202,210,211,212,214,5399, + 5399,3826,204,206,208,292,293,3072,2209,518, + 205,207,204,206,208,292,293,3072,5399,517, + 205,207,204,206,208,292,293,3072,2084,216, + 205,207,2981,5399,3204,5399,2122,3386,2171,5399, + 5399,3660,2981,56,5399,328,333,1141,2647,737, + 5399,226,2981,5399,5399,5399,5399,5399,5399,737, + 5399,226,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,2513,154,5399,203,213,4692,202,210,211, + 212,214,4074,5399,203,213,4692,202,210,211, + 212,214,1691,35,1025,32,3936,3509,27,30, + 31,1037,1091,337,28,204,206,208,292,293, + 3072,2209,303,205,207,204,206,208,292,293, + 3072,2209,497,205,207,2156,35,1025,32,5399, + 3594,27,30,31,1037,1091,337,28,1620,503, + 5399,3280,35,1754,386,5399,2536,5399,3462,333, + 317,1361,319,3962,236,312,1317,5399,3576,333, + 5399,5399,5399,5399,5399,5399,5399,5399,3157,5399, + 5399,5399,5399,5399,271,929,35,1754,386,2871, + 500,502,331,317,1361,319,5399,5399,313,1317, + 1691,35,1025,32,3936,3509,27,30,31,1037, + 1091,337,28,230,428,5399,5399,5399,49,1180, + 5399,5399,5399,2981,4822,5399,5399,5399,1668,47, + 5399,3559,5399,5399,5399,5399,5399,5399,234,228, + 229,2320,226,5399,5399,5399,5399,5399,5399,272, + 5399,5399,5399,5399,5399,5399,5399,5399,317,1361, + 319,5399,5399,312,1317,1089,405,4672,241,244, + 247,250,853,5399,5399,5399,3677,5399,5399,5399, + 5399,1315,1490,35,1025,32,2629,3509,27,30, + 31,1037,1091,337,28,5399,406,407,408,292, + 293,3072,2236,35,1025,32,2387,3509,27,30, + 31,1037,1091,337,28,929,35,1754,386,5399, + 401,3063,1285,5399,5399,5399,2981,4822,5399,5399, + 2151,35,1754,386,929,35,1754,386,5399,5399, + 314,3213,319,5399,5399,226,5399,5399,49,5399, + 5399,929,35,1754,386,5399,5399,5399,1668,47, + 314,3213,319,49,5399,5399,5399,49,1089,405, + 4672,2867,5399,1668,47,5399,5399,1668,47,5399, + 5399,5399,409,411,49,56,2811,5399,5399,2981, + 2879,5399,2722,5399,1668,47,535,5399,5399,406, + 407,408,292,293,3072,5399,1737,3018,341,4712, + 2164,35,1754,386,5399,341,56,5399,56,56, + 535,154,535,2981,3063,588,35,1754,386,5399, + 2503,186,588,35,1754,386,5399,4590,5399,341, + 2177,341,341,49,2208,154,507,154,2981,5399, + 5399,5399,5399,1668,47,1417,5399,186,49,5399, + 2177,2503,5399,4590,2503,49,3326,341,1668,883, + 56,5399,5399,5399,535,1668,2436,1407,56,528, + 505,5399,2981,5399,5399,409,412,5399,5399,2503, + 5399,5399,5399,341,5399,188,5399,5399,5399,154, + 5399,341,5399,5399,5399,531,5399,5399,5399,186, + 5399,5399,5399,5399,5399,4590,5399,5399,5399,5399, + 5399,3852,5399,2503,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,532, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,3846,3959,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,3420,5399,0,39,5414,0,39,5413, + 0,727,29,0,438,864,0,452,1251,0, + 38,2540,0,38,5414,0,38,5413,0,2742, + 124,0,1,442,0,456,1580,0,455,1666, + 0,794,89,0,727,385,0,35,33,0, + 32,34,0,39,2540,0,1,659,0,1, + 5669,0,1,5668,0,1,5667,0,1,5666, + 0,1,5665,0,1,5664,0,1,5663,0, + 1,5662,0,1,5661,0,1,5660,0,1, + 5659,0,39,1,5414,0,39,1,5413,0, + 806,1,0,281,392,0,281,284,0,5631, + 239,0,5630,239,0,5735,239,0,5734,239, + 0,5658,239,0,5657,239,0,5656,239,0, + 5655,239,0,5654,239,0,5653,239,0,5652, + 239,0,5651,239,0,5669,239,0,5668,239, + 0,5667,239,0,5666,239,0,5665,239,0, + 5664,239,0,5663,239,0,5662,239,0,5661, + 239,0,5660,239,0,5659,239,0,39,5414, + 239,0,39,5413,239,0,5437,239,0,5414, + 48,0,5413,48,0,5405,1,0,5404,1, + 0,2438,235,0,32,386,0,29,385,0, + 43,5435,0,43,37,0,2742,126,0,2742, + 125,0,329,443,0,5437,1,0,39,1, + 0,47,37,0,1,90,0,499,3066,0, + 5437,1,227,0,39,1,227,0,227,414, + 0,5414,37,0,5413,37,0,5414,2,37, + 0,5413,2,37,0,5414,36,0,5413,36, + 0,5435,45,0,37,45,0,5409,403,0, + 5408,403,0,1,4492,0,1,3013,0,1, + 2540,0,227,413,0,2303,316,0,329,93, + 0,35,72,0,1,329,0,3617,276,0, + 499,4335,0,1,227,0,227,218,0,227, + 217,0,1,573,0,1,2458,0,5411,1, + 0,5407,1,0,1,227,3486,0,5408,227, + 0,3488,227,0,5411,381,0,5410,381,0, + 3593,227,0,10,12,0,8,10,12,0, + 183,3618,0,3706,381,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1104,351 +1104,348 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,1,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 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1456,351 +1453,346 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5400,5365,5344,5344,5344,5344,5344,5344,5381,5344, + 5399,5364,5343,5343,5343,5343,5343,5343,5380,5343, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5368,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5369,1,1, + 1,1,1,1,1,1,1,1,137,1, + 1,1,1,1,1,1,1,1,1,2140, + 1,5572,591,113,3324,1,1,5410,39,3795, + 5399,5406,5437,1135,1081,3541,3261,2236,3164,3483, + 3183,3520,945,3507,2546,3489,10,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, + 5383,5383,5383,5383,329,5383,5383,5383,5383,5383, + 5383,393,5383,5383,5383,5383,5383,5383,5383,1184, + 5383,5383,5383,5383,3820,3772,629,5383,382,5399, + 5383,5383,5383,5383,5383,5383,5383,5383,5383,5383, + 5383,5383,8,5386,5386,5386,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,5386,5386,5386,5386,5386, + 5399,5386,5386,5386,5386,5386,5386,2746,5386,5386, + 5386,5386,5386,5386,5386,299,5386,5386,5386,5386, + 284,5136,5136,5386,281,5697,5386,5386,5386,5386, + 5386,5386,5386,5386,5386,5386,5386,5386,5399,5364, + 5343,5343,5343,5343,5343,5343,5371,5343,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,117,1, - 1,1,1,1,1,1,134,1,1,1, - 2141,1,5574,592,114,3325,1,1,5411,1, - 3796,330,5407,3748,2770,1082,3542,3262,2237,3165, - 3484,3184,3521,946,3508,2547,3490,10,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,5384,119,5384,5384,5384,5384, - 5384,5384,5384,394,5384,5384,5384,5384,5384,5384, - 5384,156,5384,5384,5384,5384,2325,3773,630,5384, - 3748,2770,5384,5384,5384,5384,5384,5384,5384,5384, - 5384,5384,5384,5384,8,5387,5387,5387,5387,5387, - 5387,5387,5387,5387,5387,5387,5387,5387,5387,5387, - 5387,5387,5387,5387,5387,5387,5387,5387,5387,5387, - 5387,5387,5387,5387,5387,5387,5387,5387,5387,5387, - 5387,5387,5387,5387,5387,5387,5387,5387,5387,5387, - 5387,5387,1414,5387,5387,5387,5387,5387,5387,5387, - 383,5387,5387,5387,5387,5387,5387,5387,514,5387, - 5387,5387,5387,285,5137,5137,5387,282,5400,5387, - 5387,5387,5387,5387,5387,5387,5387,5387,5387,5387, - 5387,5400,5365,5344,5344,5344,5344,5344,5344,5372, - 5344,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5369,1, + 1,1,1,1,1,5368,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,887, - 1,1,1,1,1,1,1,438,1,1, - 1,2141,1,5574,592,361,3325,1,1,5411, - 5400,5039,5036,5400,5439,5400,1082,3542,3262,2237, - 3165,3484,3184,3521,946,3508,2547,3490,5400,5365, - 5344,5344,5344,5344,5344,5344,5372,5344,1,1, + 1,1,1,1,1,1,5399,1,1,1, + 1,1,1,437,1,1,1,2140,1,5572, + 591,5399,3324,1,1,5410,5399,5038,5035,5407, + 5437,5399,1081,3541,3261,2236,3164,3483,3183,3520, + 945,3507,2546,3489,5399,5364,5343,5343,5343,5343, + 5343,5343,5371,5343,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5369,1,1,1,1, + 1,5368,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3495,1,1,1, - 1,1,1,1,2747,1,1,1,2141,1, - 5574,592,116,3325,1,1,5411,110,3796,457, - 5834,5835,5836,1082,3542,3262,2237,3165,3484,3184, - 3521,946,3508,2547,3490,5400,5365,5344,5344,5344, - 5344,5344,5344,5372,5344,1,1,1,1,1, + 1,1,5406,1,1,1,1,1,1,133, + 1,1,1,2140,1,5572,591,115,3324,1, + 1,5410,109,3795,5399,5832,5833,5834,1081,3541, + 3261,2236,3164,3483,3183,3520,945,3507,2546,3489, + 5399,5364,5343,5343,5343,5343,5343,5343,5371,5343, 1,1,1,1,1,1,1,1,1,1, - 1,1,5369,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5368,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5066,1,1,1,1,1,1, - 1,135,1,1,1,2141,1,5574,592,288, - 3325,1,1,5411,40,3773,630,4238,5439,4260, - 1082,3542,3262,2237,3165,3484,3184,3521,946,3508, - 2547,3490,5400,5365,5344,5344,5344,5344,5344,5344, - 5372,5344,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5369, + 1,1,1,1,1,1,1,1,5399,1, + 1,1,1,1,1,134,1,1,1,2140, + 1,5572,591,129,3324,1,1,5410,2324,3772, + 629,4237,593,4259,1081,3541,3261,2236,3164,3483, + 3183,3520,945,3507,2546,3489,5399,5364,5343,5343, + 5343,5343,5343,5343,5371,5343,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5368,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 954,1,1,1,1,1,1,1,5400,1, - 1,1,2141,1,5574,592,115,3325,1,1, - 5411,2325,3796,120,5400,5414,5415,1082,3542,3262, - 2237,3165,3484,3184,3521,946,3508,2547,3490,5400, - 5365,5344,5344,5344,5344,5344,5344,5372,5344,1, + 1,1,1,1,5399,1,1,1,1,1, + 1,5399,1,1,1,2140,1,5572,591,114, + 3324,1,1,5410,2324,3795,119,5399,5413,5414, + 1081,3541,3261,2236,3164,3483,3183,3520,945,3507, + 2546,3489,5399,5364,5343,5343,5343,5343,5343,5343, + 5371,5343,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5368, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5369,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5400,1,1, - 1,1,1,1,1,5400,1,1,1,2141, - 1,5574,592,5400,3325,1,1,5411,3407,3773, - 630,3135,3161,5400,1082,3542,3262,2237,3165,3484, - 3184,3521,946,3508,2547,3490,5400,5365,5344,5344, - 5344,5344,5344,5344,5372,5344,1,1,1,1, + 5399,1,1,1,1,1,1,5399,1,1, + 1,2140,1,5572,591,5399,3324,1,1,5410, + 3406,3772,629,3134,3160,5399,1081,3541,3261,2236, + 3164,3483,3183,3520,945,3507,2546,3489,5399,5364, + 5343,5343,5343,5343,5343,5343,5371,5343,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5369,1,1,1,1,1,1, + 1,1,1,1,1,5368,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5400,1,1,1,1,1, - 1,1,2774,1,1,1,2141,1,5574,592, - 130,3325,1,1,5411,5400,5414,5415,425,594, - 3407,1082,3542,3262,2237,3165,3484,3184,3521,946, - 3508,2547,3490,5400,5365,5344,5344,5344,5344,5344, - 5344,5372,5344,1,1,1,1,1,1,1, + 1,1,1,1,1,1,334,1,1,1, + 1,1,1,2773,1,1,1,2140,1,5572, + 591,5399,3324,1,1,5410,5399,5413,5414,5734, + 5735,3406,1081,3541,3261,2236,3164,3483,3183,3520, + 945,3507,2546,3489,5399,5364,5343,5343,5343,5343, + 5343,5343,5371,5343,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5369,1,1,1,1,1,1,1,1,1, + 1,5368,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5400,1,1,1,1,1,1,1,4437, - 1,1,1,2141,1,5574,592,448,3325,1, - 1,5411,5400,5039,5036,5400,5439,5400,1082,3542, - 3262,2237,3165,3484,3184,3521,946,3508,2547,3490, - 5400,5365,5344,5344,5344,5344,5344,5344,5372,5344, + 1,1,5399,1,1,1,1,1,1,5399, + 1,1,1,2140,1,5572,591,1,3324,1, + 1,5410,5399,5038,5035,5361,5437,5399,1081,3541, + 3261,2236,3164,3483,3183,3520,945,3507,2546,3489, + 5399,5364,5343,5343,5343,5343,5343,5343,5371,5343, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5369,1,1, + 1,1,1,1,1,1,1,5368,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2680,1, - 1,1,1,1,1,1,2845,1,1,1, - 2141,1,5574,592,307,3325,1,1,5411,5400, - 5223,5220,49,5223,5220,1082,3542,3262,2237,3165, - 3484,3184,3521,946,3508,2547,3490,5400,5365,5344, - 5344,5344,5344,5344,5344,5372,5344,1,1,1, + 1,1,1,1,1,1,1,1,5406,1, + 1,1,1,1,1,2844,1,1,1,2140, + 1,5572,591,5399,3324,1,1,5410,5399,5222, + 5219,48,5222,5219,1081,3541,3261,2236,3164,3483, + 3183,3520,945,3507,2546,3489,5399,5364,5343,5343, + 5343,5343,5343,5343,5371,5343,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5369,1,1,1,1,1, + 1,1,1,5368,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2799,1,1,1,1, - 1,1,1,5400,1,1,1,2141,1,5574, - 592,5400,3325,1,1,5411,113,5400,346,5404, - 1136,1615,1082,3542,3262,2237,3165,3484,3184,3521, - 946,3508,2547,3490,5400,3487,1,1,1,1, - 1,1,3489,1,1,1,1,1,1,1, + 1,1,1,1,5399,1,1,1,1,1, + 1,5399,1,1,1,2140,1,5572,591,5399, + 3324,1,1,5410,112,5399,89,5403,2438,5071, + 1081,3541,3261,2236,3164,3483,3183,3520,945,3507, + 2546,3489,5399,3486,1,1,1,1,1,1, + 3488,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5408, 1,1,1,1,1,1,1,1,1,1, - 1,5409,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1930,1,1,1,1,1,1,1, - 5400,1,1,1,2141,1,5574,592,5400,3325, - 1,1,5411,5400,1701,5400,4238,5728,4260,1082, - 3542,3262,2237,3165,3484,3184,3521,946,3508,2547, - 3490,40,5039,5036,4807,807,4053,4128,3014,5403, - 4150,2006,5663,5661,5670,5669,5665,5666,5664,5667, - 5668,5671,5662,5659,5736,5737,4106,4084,132,5653, - 5660,5656,5632,5658,5657,5654,5655,5633,4194,4172, - 5420,5797,4023,733,860,5422,797,3108,811,5400, - 5423,5421,565,5416,5418,5419,5417,5400,2314,5798, - 5799,3305,1370,5400,5275,5275,228,5271,228,228, - 228,5279,228,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5400,3567, - 228,1,1,1,1,1,1,1,1,1, - 5400,5039,5036,1,807,2541,5035,3014,5400,223, - 5400,5268,1,5127,5123,4493,5131,2541,2846,3014, - 1,1,1,2582,224,5811,583,2357,5400,5414, - 5415,5659,5736,5737,5400,415,228,5653,5660,5656, - 5632,5658,5657,5654,5655,5633,5659,5736,5737,128, - 5899,5400,5653,5660,5656,5632,5658,5657,5654,5655, - 5633,396,5414,5415,3202,112,5834,5835,5836,5400, - 5275,5275,228,5271,228,228,228,5323,228,1, + 5399,1,1,1,1,1,1,5399,1,1, + 1,2140,1,5572,591,5399,3324,1,1,5410, + 5399,1700,5399,4237,5726,4259,1081,3541,3261,2236, + 3164,3483,3183,3520,945,3507,2546,3489,39,5038, + 5035,4806,806,4052,4127,3013,5402,4149,2005,5661, + 5659,5668,5667,5663,5664,5662,5665,5666,5669,5660, + 5657,5734,5735,4105,4083,135,5651,5658,5654,5630, + 5656,5655,5652,5653,5631,4193,4171,5418,5795,4022, + 732,859,5420,796,3107,810,5399,5421,5419,564, + 5415,5416,5417,5399,2313,5796,5797,3304,1369,5399, + 5274,5274,227,5270,227,227,227,5278,227,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,4216,1449,228,1,1,1, - 1,1,1,1,1,1,5400,5039,5036,1, - 807,2541,34,3014,1,5078,5400,5268,5078,118, - 5078,5078,160,5400,5410,5400,1,1,1,2582, - 225,5811,583,5406,37,5299,5296,5078,5078,5078, - 5400,414,228,5409,3748,2770,2474,2401,5400,5078, - 5078,2439,5659,5736,5737,4238,5899,4260,5653,5660, - 5656,5632,5658,5657,5654,5655,5633,5400,5078,5400, - 5223,5220,5834,5835,5836,5406,5078,289,5414,5415, - 3243,5078,5078,5078,5078,5078,5078,3916,160,366, - 5127,5123,2553,5131,2541,1,3014,5400,1,5405, - 5078,5078,5078,5078,5078,5078,5078,5078,5078,5078, - 5078,5078,5078,5078,5078,5400,8678,8678,5078,5078, - 5078,5078,5078,5078,5078,5078,5078,5078,5078,5078, - 5078,5400,5078,5078,5081,4216,1449,5081,4869,5081, - 5081,5405,456,30,386,386,5238,386,386,5238, - 386,5238,5238,1930,5400,131,5081,5081,5081,1223, - 5400,8485,8417,5437,594,386,386,386,5081,5081, - 5238,386,386,386,386,386,386,386,386,386, - 5400,1,5127,5123,5314,5131,5320,5081,5317,5410, - 124,39,5057,5054,5400,5081,5051,5400,3014,5042, - 5081,5081,5081,5081,5081,5081,5069,5238,5409,308, - 5127,5123,4493,5131,2541,5335,3014,5238,5335,5081, - 5081,5081,5081,5081,5081,5081,5081,5081,5081,5081, - 5081,5081,5081,5081,5400,123,3437,5081,5081,5081, - 5081,5081,5081,5081,5081,5081,5081,5081,5081,5081, - 3579,5081,5081,5400,5344,5344,228,5344,228,228, - 228,5347,228,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3135,3161, - 228,1,1,8822,1,1,1,1,1,1, - 5400,5039,5036,1,807,5084,90,3014,226,5072, - 5400,5341,1,5127,5123,2553,5131,2541,138,3014, - 1,1,1,3279,236,5610,592,5232,3325,38, - 5659,5736,5737,3135,3161,219,5653,5660,5656,5632, - 5658,5657,5654,5655,5633,5400,8485,8417,933,5400, - 5899,5400,5344,5344,228,5344,228,228,228,228, - 228,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1930,5437,228,1, - 1,8822,1,1,1,1,1,1,1887,48, - 5400,1,129,330,5039,5036,4493,807,2541,5341, - 3014,111,136,1,1,3637,3828,3204,1,1, - 1,3279,362,5610,592,133,3325,5400,5039,5036, - 1185,807,5084,5400,3014,3821,1844,1801,1758,1715, - 1672,1629,1586,1543,1500,1457,347,3104,5899,5400, - 5344,5344,228,5344,228,228,228,5350,228,1, + 1,1,1,1,5399,3566,227,1,1,1, + 1,1,1,1,1,1,5399,5038,5035,1, + 806,5083,123,3013,222,131,5399,5267,392,5133, + 5133,5399,281,5399,2845,1,1,1,2581,223, + 5809,582,395,5413,5414,2274,5657,5734,5735,356, + 414,227,5651,5658,5654,5630,5656,5655,5652,5653, + 5631,5657,5734,5735,932,5897,5399,5651,5658,5654, + 5630,5656,5655,5652,5653,5631,281,5399,5399,8789, + 8789,5832,5833,5834,5399,5274,5274,227,5270,227, + 227,227,5322,227,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3134, + 3160,227,1,1,1,1,1,1,1,1, + 1,3201,33,2356,1,5077,5435,5399,5077,5399, + 5077,5077,5267,37,5261,5261,8,5411,5261,5754, + 1,1,1,2581,5396,5809,582,5077,5077,5077, + 43,5243,5243,1,127,413,227,5399,5399,5077, + 5077,159,343,5038,5035,2552,806,2540,329,3013, + 5897,329,5399,5399,1,5258,5258,5077,5255,5399, + 329,3424,361,329,122,5077,5832,5833,5834,1, + 5077,5077,5077,5077,5077,5077,5410,5034,5240,365, + 5126,5122,2552,5130,2540,1,3013,5396,1,5077, + 5077,5077,5077,5077,5077,5077,5077,5077,5077,5077, + 5077,5077,5077,5077,5399,1929,159,5077,5077,5077, + 5077,5077,5077,5077,5077,5077,5077,5077,5077,5077, + 5399,5077,5077,5080,116,1967,5080,361,5080,5080, + 2473,2400,29,385,385,5237,385,385,5237,385, + 5237,5237,1929,3186,361,5080,5080,5080,1222,3747, + 2769,3134,3160,5399,385,385,385,5080,5080,5237, + 385,385,385,385,385,385,385,385,385,1, + 5126,5122,5313,5130,5319,5080,5316,5409,5399,38, + 5056,5053,235,5080,5050,5231,3013,5041,5080,5080, + 5080,5080,5080,5080,136,5237,5408,307,5126,5122, + 4492,5130,2540,5334,3013,5237,5334,5080,5080,5080, + 5080,5080,5080,5080,5080,5080,5080,5080,5080,5080, + 5080,5080,36,5298,5295,5080,5080,5080,5080,5080, + 5080,5080,5080,5080,5080,5080,5080,5080,121,5080, + 5080,5399,5343,5343,227,5343,227,227,227,5346, + 227,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5399,5399,227,1, + 1,8700,1,1,1,1,1,1,442,1, + 1,1,1,5399,5062,224,39,5062,5399,5340, + 5437,5409,329,5399,2274,329,137,1,1,1, + 3278,5405,5608,591,456,3324,455,5657,5734,5735, + 5408,5399,218,5651,5658,5654,5630,5656,5655,5652, + 5653,5631,288,5413,5414,3134,3160,5897,5399,5343, + 5343,227,5343,227,227,227,227,227,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,122,1266,228,1,1,8822, - 1,1,1,1,1,1,5400,5400,362,1, - 3835,1,5127,5123,5314,5131,5320,5341,5317,2474, - 2401,4238,4439,4260,3353,362,1,1,1,3279, - 1930,5610,592,2275,3325,1,5127,5123,2553,5131, - 2541,218,3014,5226,2357,5400,5127,5123,4493,5131, - 2541,5335,3014,5400,5335,5400,5899,5400,5344,5344, - 228,5344,228,228,228,5347,228,1,1,1, + 1,1,1,3915,5399,227,1,1,8700,1, + 1,1,1,1,1,1886,5404,5065,1,5068, + 1,5126,5122,4492,5130,2540,5340,3013,345,111, + 132,1614,130,3203,1,1,1,3278,128,5608, + 591,593,3324,368,5399,5038,5035,1184,806,2540, + 530,3013,3820,1843,1800,1757,1714,1671,1628,1585, + 1542,1499,1456,5399,5897,5399,5343,5343,227,5343, + 227,227,227,5349,227,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3135,3161,228,1,1,8822,1,1, - 1,1,1,1,443,1,1,1,1,1930, - 5063,5400,5400,5063,138,5341,5400,5414,5415,5229, - 5412,2541,5400,3014,1,1,1,3279,2061,5610, - 592,5400,3325,393,5134,5134,1968,282,357,219, - 344,5039,5036,2553,807,2541,330,3014,5400,330, - 5400,44,5244,5244,5899,5400,5344,5344,228,5344, - 228,228,228,5347,228,1,1,1,1,1, + 5399,1929,227,1,1,8700,1,1,1,1, + 1,1,443,39,39,1,5437,5399,5252,225, + 3463,5252,1282,5340,1,5407,110,3827,4237,5399, + 4259,1,1,1,3278,2089,5608,591,2356,3324, + 3242,5657,5734,5735,2473,2400,217,5651,5658,5654, + 5630,5656,5655,5652,5653,5631,5399,37,5261,5261, + 3358,5897,5399,5343,5343,227,5343,227,227,227, + 5346,227,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1002,5406,227, + 1,1,8700,1,1,1,1,1,1,5399, + 5038,5035,1,806,5083,3378,3013,90,1,1, + 5340,1,346,5264,120,4237,5264,4259,1,1, + 1,3278,5399,5608,591,3834,3324,1,5126,5122, + 2552,5130,2540,218,3013,5225,5399,5399,5126,5122, + 4492,5130,2540,5334,3013,366,5334,1265,5897,5399, + 5343,5343,227,5343,227,227,227,5346,227,1, 1,1,1,1,1,1,1,1,1,1, - 5411,282,228,1,1,8822,1,1,1,1, - 1,1,444,40,40,1,5439,5400,5253,5241, - 5911,5253,40,5341,1930,5408,5439,5400,330,121, - 3854,330,1,1,1,3279,1185,5610,592,5840, - 3325,3821,1,5259,5259,1,5256,219,330,5756, - 362,330,5400,5406,1,5127,5123,4493,5131,2541, - 5408,3014,5899,5400,5344,5344,228,5344,228,228, - 228,228,228,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1003,5407, - 228,1,1,8822,1,1,1,1,1,1, - 38,5262,5262,1,300,1,5127,5123,4493,5131, - 2541,5341,3014,308,5699,5400,362,3135,3161,5405, - 1,1,1,3279,5407,5610,592,2061,3325,5400, - 5285,5282,308,362,344,40,40,2434,5439,5400, - 330,317,3855,330,5326,5400,5292,5288,3379,5400, - 5899,5400,5344,5344,228,5344,228,228,228,228, - 228,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,137,5437,228,1, - 1,8822,1,1,1,1,1,1,91,1, - 1,1,1,5437,5265,404,5400,5265,1930,5341, - 99,5400,40,5308,335,1930,5439,2090,1,1, - 1,3279,1,5610,592,2434,3325,94,40,40, - 340,5439,5311,5329,1910,5400,5329,5736,5737,1, - 5400,531,2434,30,46,5305,5305,5226,5899,5400, - 5344,5344,228,5344,228,228,228,228,228,1, + 1,1,1,1,5399,1929,227,1,1,8700, + 1,1,1,1,1,1,5399,5284,5281,1, + 1929,1,5126,5122,4492,5130,2540,5340,3013,307, + 5228,3134,3160,373,118,1,1,1,3278,2060, + 5608,591,5399,3324,1326,5399,5413,5414,307,5399, + 218,155,343,39,39,2433,5437,98,329,3747, + 2769,329,5399,5399,5435,5897,5399,5343,5343,227, + 5343,227,227,227,227,227,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,4329,5854,228,1,1,8822, - 1,1,1,1,1,1,1930,2275,3209,1, - 5400,340,5302,340,395,30,340,5341,386,5042, - 300,40,3464,1930,4326,5439,1,1,1,3279, - 5699,5610,592,5229,3325,5834,5835,5836,5400,5414, - 5415,5400,5400,2793,75,3359,5412,2546,5400,1, - 1,1,1,1,1,1,5899,1,1,1, + 1,117,5399,227,1,1,8700,1,1,1, + 1,1,1,93,39,39,1,5437,5399,5328, + 4215,1448,5328,5399,5340,1929,3747,2769,403,299, + 4328,1413,1,1,1,3278,5307,5608,591,5697, + 3324,1,5126,5122,4492,5130,2540,5399,3013,1, + 5126,5122,2552,5130,2540,5310,3013,3436,5399,5291, + 5287,3566,5897,5399,5343,5343,227,5343,227,227, + 227,227,227,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1706,183, + 227,1,1,8700,1,1,1,1,1,1, + 37,39,5399,1,5399,5437,5435,3853,5399,5413, + 5414,5340,1929,2060,5399,4438,5411,3352,513,1, + 1,1,3278,1909,5608,591,1,3324,47,2433, + 5399,8621,8218,1,339,329,5038,5035,4492,806, + 2540,5358,3013,5399,8621,8218,5399,5399,5435,5897, + 5399,5343,5343,227,5343,227,227,227,227,227, 1,1,1,1,1,1,1,1,1,1, - 728,728,5400,1,1,4327,5400,5285,5282,5400, - 1707,5463,5464,125,439,1,1,1,423,1, - 1,1,1,1,1,1,184,1,1,1, - 1,1,1,1,1,5400,5411,5400,3617,1, - 5935,3626,5359,3353,1,1,1,5127,5123,4807, - 5131,4053,4128,3014,5437,4150,5087,5114,5120,5093, - 5096,5108,5105,5111,5102,5099,5090,5117,5400,2815, - 5045,4106,4084,1,310,5400,5400,2899,3618,3680, - 579,5362,5060,4194,4172,5420,5400,4023,733,860, - 5422,797,3108,811,667,5423,5421,565,5416,5418, - 5419,5417,5411,8,38,5262,5262,1370,2716,2650, - 330,5397,40,40,5400,515,40,5039,5036,4807, - 807,4053,4128,3014,5394,4150,660,5663,5661,5670, - 5669,5665,5666,5664,5667,5668,5671,5662,38,5262, - 5262,4106,4084,5262,1093,5407,369,367,5391,38, - 5262,5262,5437,4194,4172,5420,127,4023,733,860, - 5422,797,3108,811,453,5423,5421,565,5416,5418, - 5419,5417,1,1,1,5397,102,1370,5400,4338, - 527,49,162,5353,5378,5415,3425,5800,5407,140, - 5039,5036,4807,807,4053,4128,3014,5437,4150,660, - 5663,5661,5670,5669,5665,5666,5664,5667,5668,5671, - 5662,1,2815,5356,4106,4084,1283,1327,394,5400, - 5048,3436,387,386,126,5247,4194,4172,5420,5400, - 4023,733,860,5422,797,3108,811,5415,5423,5421, - 565,5416,5418,5419,5417,290,527,5400,162,49, - 1370,2716,2650,5414,3645,40,40,1,5127,5123, - 4807,5131,4053,4128,3014,5400,4150,5087,5114,5120, - 5093,5096,5108,5105,5111,5102,5099,5090,5117,5075, - 2815,5400,4106,4084,5400,728,3187,427,2320,5400, - 319,394,1,5250,4194,4172,5420,5410,4023,733, - 860,5422,797,3108,811,5414,5423,5421,565,5416, - 5418,5419,5417,5400,447,2099,5409,73,1370,2716, - 2650,3204,419,40,40,40,5039,5036,4807,807, - 4053,4128,3014,5375,4150,660,5663,5661,5670,5669, - 5665,5666,5664,5667,5668,5671,5662,728,36,5400, - 4106,4084,98,2503,1930,5400,277,1,2304,5338, - 2844,5400,4194,4172,5420,5410,4023,733,860,5422, - 797,3108,811,5332,5423,5421,565,5416,5418,5419, - 5417,1,507,5758,5409,5400,1370,2453,5400,5400, - 505,5353,2187,5378,40,5039,5036,4807,807,4053, - 4128,3014,5375,4150,660,5663,5661,5670,5669,5665, - 5666,5664,5667,5668,5671,5662,1047,3053,2920,4106, - 4084,5356,5400,5400,5400,3402,1,3348,3320,3436, - 5400,4194,4172,5420,190,4023,733,860,5422,797, - 3108,811,2,5423,5421,565,5416,5418,5419,5417, - 1,5400,4776,190,4341,1370,5400,374,2149,4835, - 4810,5400,5378,40,5039,5036,4807,807,4053,4128, - 3014,5404,4150,660,5663,5661,5670,5669,5665,5666, - 5664,5667,5668,5671,5662,5400,3552,5400,4106,4084, - 3546,5400,5400,5400,4809,2673,3238,3292,38,520, - 4194,4172,5420,5400,4023,733,860,5422,797,3108, - 811,5400,5423,5421,565,5416,5418,5419,5417,40, - 5039,5036,4807,807,4053,4128,3014,5400,4150,660, - 5663,5661,5670,5669,5665,5666,5664,5667,5668,5671, - 5662,3961,5400,5400,4106,4084,4861,5400,5400,5400, - 4357,4444,509,5400,5400,2920,4194,4172,5420,5400, - 4023,733,860,5422,797,3108,811,5400,5423,5421, - 565,5416,5418,5419,5417,5400,3567,5400,222,1, - 1370,5403,1227,5400,5868,5862,1,5400,5866,5663, - 5661,5670,5669,5665,5666,5664,5667,5668,5671,5662, - 5659,5736,5737,5400,5860,5861,5653,5660,5656,5632, - 5658,5657,5654,5655,5633,3346,5891,5892,3567,2018, - 5869,5400,735,5400,5400,3323,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5871,5400,5400,5400,5400, - 5400,5400,5400,800,5400,1583,1652,5400,5872,5870, - 5893,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5882,5881,5894, - 5400,5400,5863,5864,5887,5888,5885,5886,5865,5867, - 5889,5890,5400,5400,5400,5895,5400,5875,5876,5877, - 5873,5874,5883,5884,5879,5878,5880,40,5039,5036, - 4807,807,4053,4128,3014,5400,4150,660,5663,5661, - 5670,5669,5665,5666,5664,5667,5668,5671,5662,5400, - 5400,5400,4106,4084,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,4194,4172,5420,5400,4023,733, - 860,5422,797,3108,811,5400,5423,5421,565,5416, - 5418,5419,5417,40,5039,5036,4807,807,4053,4128, - 3014,1710,4150,660,5663,5661,5670,5669,5665,5666, - 5664,5667,5668,5671,5662,5400,5400,5400,4106,4084, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 4194,4172,5420,5400,4023,733,860,5422,797,3108, - 811,5400,5423,5421,565,5416,5418,5419,5417,5400, - 5400,5400,5400,5400,1370,40,5039,5036,2898,807, - 4053,4128,3014,5400,4150,660,5663,5661,5670,5669, - 5665,5666,5664,5667,5668,5671,5662,5400,5400,5400, - 4106,4084,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,4194,4172,5420,5400,4023,733,860,5422, - 797,3108,811,5400,5423,5421,565,5416,5418,5419, - 5417,40,5039,5036,4807,807,4053,4128,3014,5400, - 4150,660,5663,5661,5670,5669,5665,5666,5664,5667, - 5668,5671,5662,5400,5400,5400,4106,4084,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,4194,4172, - 5420,5400,4023,733,860,5422,797,3108,811,5400, - 5423,5421,565,5416,5418,5419,5417,40,5039,5036, - 4807,807,4053,4128,3014,5400,4150,660,5663,5661, - 5670,5669,5665,5666,5664,5667,5668,5671,5662,5400, - 5400,5400,4106,4084,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,4194,4172,5420,5400,4023,733, - 860,5422,797,3108,811,5400,5423,5421,565,5416, - 5418,5419,5417,5400,5039,5036,5400,5439,5400,5400, - 5400,5400,5400,789,5663,5661,5670,5669,5665,5666, - 5664,5667,5668,5671,5662,5659,5736,5737,5400,5400, - 5400,5653,5660,5656,5632,5658,5657,5654,5655,5633, - 5400,5400,5400,5797,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,240,5213,5209,5400,5217,5400,5400, - 2314,5798,5799,789,5200,5206,5179,5182,5194,5191, - 5197,5188,5185,5176,5203,5155,5149,5146,5400,5400, - 5400,5173,5152,5164,5143,5158,5161,5170,5167,5140, - 5400,5400,5400,5797,33,387,387,5235,387,387, - 5235,387,5235,5235,5400,5400,5400,5400,5400,5400, - 2314,5798,5799,5400,5400,5400,387,387,387,5400, - 5400,5235,387,387,387,387,387,387,387,387, - 387,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5400,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5235,5400, - 5400,5400,5400,5400,5400,5400,5400,5400,5235 + 1,1,1,1,1,5410,3103,227,1,1, + 8700,1,1,1,1,1,1,1,886,1929, + 1,5399,5222,5219,339,5405,339,394,5340,339, + 5410,385,3578,5832,5833,5834,1,1,1,3278, + 5390,5608,591,1,3324,1,5126,5122,5313,5130, + 5319,361,5316,309,74,5399,2898,2545,5399,1, + 1,1,1,1,1,1,5897,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5399,5399,727,1,1,5399,4215,1448,3854,5399, + 5404,5461,5462,124,48,1,1,1,5414,1, + 1,1,1,1,1,1,5399,1,1,1, + 1,1,1,5399,360,5399,361,3616,1,5933, + 3347,5399,1092,1,1,1,5126,5122,4806,5130, + 4052,4127,3013,361,4149,5086,5113,5119,5092,5095, + 5107,5104,5110,5101,5098,5089,5116,5399,2814,5414, + 4105,4083,5798,5399,5038,5035,5399,806,2540,578, + 3013,5059,4193,4171,5418,5399,4022,732,859,5420, + 796,3107,810,666,5421,5419,564,5415,5416,5417, + 37,5261,5261,5909,3494,1369,329,2715,2649,316, + 39,39,5325,514,39,5038,5035,4806,806,4052, + 4127,3013,5393,4149,659,5661,5659,5668,5667,5663, + 5664,5662,5665,5666,5669,5660,5399,5413,5414,4105, + 4083,2540,5399,3013,5838,4326,1,5399,5435,2433, + 3617,4193,4171,5418,5225,4022,732,859,5420,796, + 3107,810,426,5421,5419,564,5415,5416,5417,45, + 5304,5304,1929,5399,1369,5399,1,5399,5399,5284, + 5281,5377,5399,5405,526,5406,139,5038,5035,4806, + 806,4052,4127,3013,5399,4149,659,5661,5659,5668, + 5667,5663,5664,5662,5665,5666,5669,5660,5399,1929, + 1,4105,4083,37,5261,5261,3319,5301,161,5228, + 126,29,5399,4193,4171,5418,5435,4022,732,859, + 5420,796,3107,810,2843,5421,5419,564,5415,5416, + 5417,3625,3208,3352,5399,4868,1369,3679,5404,526, + 5852,39,39,1,5126,5122,4806,5130,4052,4127, + 3013,5435,4149,5086,5113,5119,5092,5095,5107,5104, + 5110,5101,5098,5089,5116,2814,727,3636,4105,4083, + 393,5399,5399,161,386,318,2319,125,5246,5409, + 4193,4171,5418,422,4022,732,859,5420,796,3107, + 810,5399,5421,5419,564,5415,5416,5417,5408,101, + 5399,5399,4337,1369,2715,2649,97,5399,39,39, + 39,5038,5035,4806,806,4052,4127,3013,5374,4149, + 659,5661,5659,5668,5667,5663,5664,5662,5665,5666, + 5669,5660,2814,5399,519,4105,4083,2502,1929,5399, + 5399,276,2303,1,5337,5249,39,4193,4171,5418, + 5437,4022,732,859,5420,796,3107,810,5399,5421, + 5419,564,5415,5416,5417,1,1,5399,2792,1046, + 1369,2715,2649,289,5399,5352,5352,5377,39,5038, + 5035,4806,806,4052,4127,3013,5374,4149,659,5661, + 5659,5668,5667,5663,5664,5662,5665,5666,5669,5660, + 29,438,452,4105,4083,5355,5355,48,4325,385, + 5399,5413,5399,3435,3435,4193,4171,5418,393,4022, + 732,859,5420,796,3107,810,72,5421,5419,564, + 5415,5416,5417,5756,1,5399,1,1226,1369,5866, + 5860,1,2098,5864,5409,5377,287,446,5399,189, + 5399,5399,3566,3401,424,5041,5044,5047,5399,5858, + 5859,4340,5413,5408,5074,727,447,3203,189,418, + 306,5889,5890,727,5399,5867,5399,4834,5399,3545, + 5399,5331,5399,4808,5399,2672,1,4860,5399,5869, + 3052,4356,5399,5399,1,4443,5399,799,5399,1582, + 1651,5399,5870,5868,5891,35,3551,5399,5399,506, + 504,5399,5399,5399,5399,5399,953,5399,508,2452, + 2148,5880,5879,5892,4436,3322,5861,5862,5885,5886, + 5883,5884,5863,5865,5887,5888,2679,5399,2186,5893, + 2798,5873,5874,5875,5871,5872,5881,5882,5877,5876, + 5878,39,5038,5035,4806,806,4052,4127,3013,5403, + 4149,659,5661,5659,5668,5667,5663,5664,5662,5665, + 5666,5669,5660,3237,2919,2,4105,4083,4775,4809, + 3291,2919,3644,3345,3960,5399,2017,734,4193,4171, + 5418,5399,4022,732,859,5420,796,3107,810,5399, + 5421,5419,564,5415,5416,5417,39,5038,5035,4806, + 806,4052,4127,3013,5399,4149,659,5661,5659,5668, + 5667,5663,5664,5662,5665,5666,5669,5660,5399,5399, + 37,4105,4083,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,4193,4171,5418,5399,4022,732,859, + 5420,796,3107,810,5399,5421,5419,564,5415,5416, + 5417,5399,5399,5399,5399,5399,1369,5399,5402,39, + 5038,5035,4806,806,4052,4127,3013,5399,4149,659, + 5661,5659,5668,5667,5663,5664,5662,5665,5666,5669, + 5660,5399,5399,5399,4105,4083,5399,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,4193,4171,5418,5399, + 4022,732,859,5420,796,3107,810,5399,5421,5419, + 564,5415,5416,5417,39,5038,5035,4806,806,4052, + 4127,3013,1709,4149,659,5661,5659,5668,5667,5663, + 5664,5662,5665,5666,5669,5660,5399,5399,5399,4105, + 4083,5399,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,4193,4171,5418,5399,4022,732,859,5420,796, + 3107,810,5399,5421,5419,564,5415,5416,5417,5399, + 5399,5399,5399,5399,1369,39,5038,5035,2897,806, + 4052,4127,3013,5399,4149,659,5661,5659,5668,5667, + 5663,5664,5662,5665,5666,5669,5660,5399,5399,5399, + 4105,4083,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,4193,4171,5418,5399,4022,732,859,5420, + 796,3107,810,5399,5421,5419,564,5415,5416,5417, + 39,5038,5035,4806,806,4052,4127,3013,5399,4149, + 659,5661,5659,5668,5667,5663,5664,5662,5665,5666, + 5669,5660,5399,5399,5399,4105,4083,5399,5399,5399, + 5399,5399,5399,5399,5399,5399,5399,4193,4171,5418, + 5399,4022,732,859,5420,796,3107,810,5399,5421, + 5419,564,5415,5416,5417,39,5038,5035,4806,806, + 4052,4127,3013,5399,4149,659,5661,5659,5668,5667, + 5663,5664,5662,5665,5666,5669,5660,5399,5399,5399, + 4105,4083,5399,5399,5399,5399,5399,5399,5399,5399, + 5399,5399,4193,4171,5418,5399,4022,732,859,5420, + 796,3107,810,5399,5421,5419,564,5415,5416,5417, + 5399,5038,5035,5399,5437,5399,5399,5399,5399,5399, + 788,5661,5659,5668,5667,5663,5664,5662,5665,5666, + 5669,5660,5657,5734,5735,5399,5399,5399,5651,5658, + 5654,5630,5656,5655,5652,5653,5631,5399,5399,5399, + 5795,5399,5399,5399,5399,5399,5399,5399,5399,239, + 5212,5208,5399,5216,5399,5399,2313,5796,5797,788, + 5199,5205,5178,5181,5193,5190,5196,5187,5184,5175, + 5202,5154,5148,5145,5399,5399,5399,5172,5151,5163, + 5142,5157,5160,5169,5166,5139,5399,5399,5399,5795, + 32,386,386,5234,386,386,5234,386,5234,5234, + 5399,5399,5399,5399,5399,2313,5796,5797,5399,5399, + 5399,5399,386,386,386,5399,221,5234,386,386, + 386,386,386,386,386,386,386,5661,5659,5668, + 5667,5663,5664,5662,5665,5666,5669,5660,5657,5734, + 5735,5399,5399,5399,5651,5658,5654,5630,5656,5655, + 5652,5653,5631,5234,5399,5399,5399,5399,5399,5399, + 5399,5399,5399,5234 }; }; public final static char termAction[] = TermAction.termAction; @@ -1808,60 +1800,60 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 176,7,384,1,218,837,837,837,837,1113, - 218,576,576,753,576,169,368,171,385,385, - 385,385,385,385,385,385,385,578,584,589, - 586,593,591,598,596,600,599,601,233,602, - 384,384,793,793,793,793,424,632,15,15, - 573,793,478,127,576,576,15,424,127,127, - 118,368,945,792,1028,1115,1050,384,576,578, - 556,556,632,384,385,385,385,385,385,385, - 385,385,385,385,385,385,385,385,385,385, - 385,385,385,384,384,384,384,384,384,384, - 384,384,384,384,384,385,127,939,939,939, - 939,331,127,15,15,1111,1039,1050,80,1050, - 75,1050,626,1050,1034,1113,424,478,478,15, - 837,385,1111,437,700,690,689,481,1057,1057, - 1113,171,478,792,384,422,1027,421,423,421, - 127,478,586,586,584,584,584,591,591,591, - 591,589,589,596,593,593,599,598,600,1127, - 601,218,218,218,218,424,424,939,938,939, - 573,424,283,286,77,330,78,1113,424,424, - 331,939,118,478,617,127,702,704,424,1028, - 385,793,582,83,127,1115,424,424,423,1028, - 384,384,384,384,384,218,218,368,284,569, - 286,424,749,677,747,331,80,335,424,331, - 424,127,694,682,693,704,331,422,127,582, - 1111,1027,1115,424,422,127,127,127,127,632, - 632,284,569,827,424,286,1127,78,837,333, - 68,1117,286,749,748,749,749,331,335,335, - 424,424,427,384,691,691,220,220,424,698, - 1111,893,127,424,582,583,582,384,83,73, - 578,1115,127,127,569,568,1028,517,80,939, - 837,421,563,1119,418,218,749,749,749,749, - 424,335,827,825,826,427,384,384,704,424, - 1028,127,702,682,427,1092,582,632,385,478, - 73,569,422,517,517,840,302,422,749,749, - 418,622,385,1127,228,830,424,1111,749,749, - 739,827,385,424,933,704,427,583,127,478, - 623,827,675,988,275,218,78,877,517,517, - 302,422,749,80,1113,1119,385,385,1027,418, - 885,820,740,424,933,127,933,839,275,675, - 889,1113,827,938,837,9,9,623,80,348, - 885,424,218,739,424,1113,1113,424,218,926, - 933,840,517,623,227,622,127,1113,424,302, - 840,302,937,937,941,349,1113,424,632,424, - 424,424,705,926,517,384,131,418,623,424, - 424,302,793,793,941,348,1127,385,1127,623, - 347,218,218,218,349,218,424,241,623,623, - 424,80,127,424,424,126,928,827,127,827, - 80,424,623,938,340,218,340,349,1127,349, - 368,368,366,943,368,623,623,231,941,793, - 928,827,131,623,737,893,349,127,418,127, - 366,275,218,127,941,131,9,127,127,1105, - 349,231,349,623,275,384,349,346,826,937, - 80,80,1107,384,347,632,623,127,621,130, - 421,349,127,623,621,621,349 + 174,7,380,1,215,830,830,830,830,1105, + 215,570,570,746,570,167,364,169,381,381, + 381,381,381,381,381,381,381,572,578,583, + 580,587,585,592,590,594,593,595,230,596, + 380,380,786,786,786,786,419,626,15,15, + 567,786,472,126,570,570,15,419,126,126, + 117,364,938,785,1020,1107,1042,380,570,572, + 550,550,626,380,381,381,381,381,381,381, + 381,381,381,381,381,381,381,381,381,381, + 381,381,381,380,380,380,380,380,380,380, + 380,380,380,380,380,381,126,932,932,932, + 932,327,126,15,15,1103,1031,1042,79,1042, + 74,1042,620,1042,1026,1105,419,472,472,15, + 830,381,1103,432,693,683,682,475,1049,1049, + 1105,169,472,785,380,417,1019,416,418,416, + 126,472,580,580,578,578,578,585,585,585, + 585,583,583,590,587,587,593,592,594,1119, + 595,215,215,215,215,419,419,932,931,932, + 567,419,279,282,76,326,77,1105,419,419, + 327,932,117,472,611,126,695,697,419,1020, + 381,786,576,82,126,1107,419,419,418,1020, + 380,380,380,380,380,215,215,364,280,563, + 282,419,742,670,740,327,79,331,419,327, + 419,126,687,675,686,697,327,417,126,576, + 1103,1019,1107,419,417,126,126,126,126,626, + 626,280,563,820,419,282,1119,77,830,329, + 67,1109,282,742,741,742,742,327,331,331, + 419,419,422,380,684,684,217,217,419,691, + 1103,886,126,419,576,577,576,380,82,72, + 572,1107,126,126,563,562,1020,511,79,932, + 830,416,557,1111,413,215,742,742,742,742, + 419,331,820,818,819,422,380,380,697,419, + 1020,126,695,675,422,1084,576,626,381,472, + 72,563,417,511,511,833,298,417,742,742, + 413,616,381,1119,225,823,419,1103,742,742, + 732,820,381,419,926,697,422,577,126,472, + 617,820,668,980,271,215,77,870,511,511, + 298,417,742,79,1105,1111,381,381,1019,413, + 878,813,733,419,926,126,926,832,271,668, + 882,1105,820,931,830,9,9,617,79,344, + 878,419,215,732,419,1105,1105,419,215,919, + 926,833,511,617,224,616,126,1105,419,298, + 833,298,930,930,934,345,1105,419,626,419, + 419,419,698,919,511,380,130,413,617,419, + 419,298,786,786,934,344,1119,381,1119,617, + 343,215,215,215,345,215,419,238,617,617, + 419,79,126,419,419,125,921,820,126,820, + 79,419,617,931,336,215,336,345,1119,345, + 364,364,362,936,364,617,617,228,934,786, + 921,820,130,617,730,886,345,126,413,126, + 362,271,215,126,934,130,9,126,126,1097, + 345,228,345,617,271,380,345,342,819,930, + 79,79,1099,380,343,626,617,126,615,129, + 416,345,126,617,615,615,345 }; }; public final static char asb[] = Asb.asb; @@ -1869,119 +1861,118 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {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, + 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,69,55,7,1,2, - 4,10,5,0,48,4,73,1,2,68, - 8,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,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,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,75, - 69,73,91,74,68,64,3,8,71,27, - 70,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,1,2,8,72,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,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,23,61,24,8, - 69,91,70,71,74,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, - 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,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,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,4,8,68,1,2, - 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,4,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,22,1, - 2,4,103,104,105,0,4,56,8,73, - 68,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,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,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,24,75,3,73, - 27,68,61,8,91,74,70,71,69,0, - 119,0,76,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 + 9,6,25,26,41,68,7,1,2,4, + 10,5,0,48,4,72,1,2,67,8, + 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,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,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,74,68,72,90, + 73,67,63,3,8,70,27,69,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, + 1,2,8,71,0,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, + 53,54,39,50,44,49,37,38,25,26, + 41,46,9,6,3,4,7,5,1,2, + 0,23,60,24,8,68,90,69,70,73, + 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,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, + 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,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,4, + 8,67,1,2,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,4, + 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,22,1,2,4,102,103,104,0,4, + 55,8,72,67,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,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,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,24, + 74,3,72,27,67,60,8,90,73,69, + 70,68,0,118,0,75,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; @@ -2091,14 +2082,14 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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; @@ -2106,26 +2097,26 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,159,181,160,161,162,163,164,152,165, - 166,167,142,168,127,169,0,129,132,130, - 170,0,139,138,153,178,0,0,0,0, - 0,0,0,0,173,0,156,0,205,0, - 146,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,158,180,159,160,161,162,163,151,164, + 165,166,141,167,126,168,0,128,131,129, + 169,0,138,137,152,177,0,0,0,0, + 0,0,0,0,172,0,155,0,204,0, + 145,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 }; }; @@ -2191,18 +2182,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,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,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; @@ -2229,70 +2220,70 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 321,3,61,0,127,0,320,3,119,0, - 127,173,0,127,178,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,179,128,0,142,0, - 220,3,295,0,295,0,2,0,127,0, - 254,127,56,132,0,179,128,225,0,179, - 128,22,225,0,179,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,182,0,182, - 0,2,0,0,127,0,0,0,0,0, - 199,3,0,202,0,237,127,163,39,30, - 0,179,128,60,63,0,197,129,0,129, - 179,128,279,63,0,179,128,279,63,0, - 179,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, - 179,128,276,57,0,136,0,188,179,128, - 276,244,0,137,0,179,128,276,244,0, - 188,167,128,10,0,167,128,10,0,167, - 128,0,93,137,0,269,127,146,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,158,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,184,3,0,127,150,0,220,3,0, - 215,64,266,0,162,64,0,184,3,298, - 67,128,0,127,0,0,0,0,298,67, - 128,0,2,146,127,0,0,0,0,148, - 0,126,48,167,128,0,31,148,0,93, - 137,31,148,0,221,179,128,0,147,31, - 148,0,162,3,51,0,162,3,69,184, - 56,42,0,184,56,42,0,20,2,132, - 127,0,162,3,69,184,56,45,0,184, - 56,45,0,162,3,69,184,56,47,0, - 184,56,47,0,162,3,69,184,56,43, - 0,184,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,177,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,178,127,0,141,0, + 219,3,294,0,294,0,2,0,126,0, + 253,126,55,131,0,178,127,224,0,178, + 127,22,224,0,178,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,181,0,181, + 0,2,0,0,126,0,0,0,0,0, + 198,3,0,201,0,236,126,162,39,30, + 0,178,127,59,62,0,196,128,0,128, + 178,127,278,62,0,178,127,278,62,0, + 178,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, + 178,127,275,56,0,135,0,187,178,127, + 275,243,0,136,0,178,127,275,243,0, + 187,166,127,10,0,166,127,10,0,166, + 127,0,93,136,0,268,126,145,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,157,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,183,3,0,126,149,0,219,3,0, + 214,63,265,0,161,63,0,183,3,297, + 66,127,0,126,0,0,0,0,297,66, + 127,0,2,145,126,0,0,0,0,147, + 0,125,48,166,127,0,31,147,0,93, + 136,31,147,0,220,178,127,0,146,31, + 147,0,161,3,51,0,161,3,68,183, + 55,42,0,183,55,42,0,20,2,131, + 126,0,161,3,68,183,55,45,0,183, + 55,45,0,161,3,68,183,55,47,0, + 183,55,47,0,161,3,68,183,55,43, + 0,183,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; @@ -2300,38 +2291,38 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4783,4861,4809,3546,0,3082,2895,1884,1840,0, - 3673,3619,3561,3454,3400,3346,3292,3238,3184,2892, - 2838,2673,0,780,0,1403,1360,1326,0,2680, - 2453,0,3673,3619,3655,3519,3561,3454,3400,3346, - 3292,3238,1082,3184,2892,2838,3676,876,0,4449, - 3353,3729,0,4437,2844,0,786,661,0,4693, - 4673,0,2552,998,0,4526,4693,3946,2991,4673, - 2967,3529,4591,2799,2388,3916,4493,2630,2553,2514, - 0,4713,4610,0,4713,4610,3936,4439,4429,3829, - 4346,4336,4326,3819,0,4713,4610,3936,4439,4429, - 3829,4346,4336,4326,3819,3673,3619,3561,3454,3400, - 3346,3292,3238,3184,2892,2838,0,3359,3305,0, - 2388,4526,3937,3946,2991,3192,2630,3349,3887,3317, - 2843,2860,3024,3212,3211,0,667,579,0,1449, - 0,1362,1318,1171,920,2991,2860,2967,2553,2514, - 2434,2504,0,4542,536,2982,0,4801,4742,4725, - 4721,4706,4576,3661,3595,3514,3510,4823,3432,3334, - 4816,3968,3964,2014,3929,3270,3032,2537,2429,1279, - 0,3019,2880,4801,4742,4725,2868,2321,4721,2315, - 4706,4576,3661,3595,3514,3226,4045,3843,3510,3734, - 4823,3425,3407,3379,3104,3432,3334,3094,3218,4816, - 950,3968,626,3964,2014,3929,2601,3270,3032,2537, - 4542,2541,2982,2429,1279,2225,2137,871,807,735, - 2967,3529,4591,2799,2388,4526,3916,4693,3946,2991, - 4493,2630,2553,4673,2514,1266,933,667,579,3108, - 4304,4282,1185,2275,2357,2325,2474,2401,594,3161, - 3135,2815,2743,2716,2650,3796,3773,630,3748,2770, - 4260,4238,4216,4194,4172,4150,4128,4106,4084,4053, - 4023,2018,2237,2187,2149,2099,2061,1047,1327,1283, - 1223,887,1968,1930,825,751,689,1887,1844,1801, - 1758,1715,1672,1629,1586,1543,1500,1457,536,1414, - 1370,1142,1003,960,1093,0 + 4782,4860,4808,3545,0,3081,2894,1883,1839,0, + 3672,3618,3560,3453,3399,3345,3291,3237,3183,2891, + 2837,2672,0,779,0,1402,1359,1325,0,2679, + 2452,0,3672,3618,3654,3518,3560,3453,3399,3345, + 3291,3237,1081,3183,2891,2837,3675,875,0,4448, + 3352,3728,0,4436,2843,0,785,660,0,4692, + 4672,0,2551,997,0,4525,4692,3945,2990,4672, + 2966,3528,4590,2798,2387,3915,4492,2629,2552,2513, + 0,4712,4609,0,4712,4609,3935,4438,4428,3828, + 4345,4335,4325,3818,0,4712,4609,3935,4438,4428, + 3828,4345,4335,4325,3818,3672,3618,3560,3453,3399, + 3345,3291,3237,3183,2891,2837,0,3358,3304,0, + 2387,4525,3936,3945,2990,3191,2629,3348,3886,3316, + 2842,2859,3023,3211,3210,0,666,578,0,1448, + 0,1361,1317,1170,919,2990,2859,2966,2552,2513, + 2433,2503,0,4541,535,2981,0,4800,4741,4724, + 4720,4705,4575,3660,3594,3513,3509,4822,3431,3333, + 4815,3967,3963,2013,3928,3269,3031,2536,2428,1278, + 0,3018,2879,4800,4741,4724,2867,2320,4720,2314, + 4705,4575,3660,3594,3513,3225,4044,3842,3509,3733, + 4822,3424,3406,3378,3103,3431,3333,3093,3217,4815, + 949,3967,625,3963,2013,3928,2600,3269,3031,2536, + 4541,2540,2981,2428,1278,2224,2136,870,806,734, + 2966,3528,4590,2798,2387,4525,3915,4692,3945,2990, + 4492,2629,2552,4672,2513,1265,932,666,578,3107, + 4303,4281,1184,2274,2356,2324,2473,2400,593,3160, + 3134,2814,2742,2715,2649,3795,3772,629,3747,2769, + 4259,4237,4215,4193,4171,4149,4127,4105,4083,4052, + 4022,2017,2236,2186,2148,2098,2060,1046,1326,1282, + 1222,886,1967,1929,824,750,688,1886,1843,1800, + 1757,1714,1671,1628,1585,1542,1499,1456,535,1413, + 1369,1141,1002,959,1092,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2339,60 +2330,60 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,145,148, - 147,150,149,153,151,155,154,157,61,159, - 71,3,56,56,56,56,128,3,56,56, - 168,127,64,3,66,67,56,5,184,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,162,184,184,184, - 184,167,220,127,127,127,270,271,253,272, - 244,273,57,274,275,10,128,64,64,127, - 125,158,127,64,3,218,217,136,126,125, - 10,128,64,298,3,188,4,48,128,48, - 220,162,147,147,145,145,145,149,149,149, - 149,148,148,151,150,150,154,153,155,162, - 157,69,69,69,69,188,259,254,257,254, - 213,128,177,163,311,276,306,276,128,179, - 167,254,213,215,159,224,127,3,128,167, - 206,3,299,168,152,261,188,128,179,167, - 73,3,3,3,3,126,125,71,167,6, - 127,167,231,126,125,128,124,163,128,167, - 48,228,229,146,230,127,167,48,184,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,179,163,127, - 179,188,158,70,224,199,187,182,128,3, - 127,71,228,188,158,263,266,64,180,4, - 124,126,220,220,6,185,167,163,227,56, - 48,279,281,127,3,182,232,232,127,127, - 188,127,277,124,278,127,70,70,3,179, - 167,199,127,213,158,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,179,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,179,61,158, - 127,127,163,269,248,280,39,70,128,71, - 69,56,231,231,283,127,71,179,3,179, - 128,128,3,127,127,3,70,71,158,128, - 179,127,70,70,127,302,80,78,1,162, - 8,86,84,82,81,76,83,85,79,77, - 60,75,220,179,179,321,222,237,152,163, - 252,179,227,296,284,119,8,73,215,73, - 3,3,3,191,3,124,162,124,178,71, - 127,127,163,227,69,3,73,226,168,226, - 304,146,76,226,127,127,40,91,320,168, - 158,199,158,303,127,3,158,284,309,231, - 158,158,127,70,191,161,269,162,190,71, - 70,122,301,158,190,8,158 + 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,144,147, + 146,149,148,152,150,154,153,156,60,158, + 70,3,55,55,55,55,127,3,55,55, + 167,126,63,3,65,66,55,5,183,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,161,183,183,183, + 183,166,219,126,126,126,269,270,252,271, + 243,272,56,273,274,10,127,63,63,126, + 124,157,126,63,3,217,216,135,125,124, + 10,127,63,297,3,187,4,48,127,48, + 219,161,146,146,144,144,144,148,148,148, + 148,147,147,150,149,149,153,152,154,161, + 156,68,68,68,68,187,258,253,256,253, + 212,127,176,162,310,275,305,275,127,178, + 166,253,212,214,158,223,126,3,127,166, + 205,3,298,167,151,260,187,127,178,166, + 72,3,3,3,3,125,124,70,166,6, + 126,166,230,125,124,127,123,162,127,166, + 48,227,228,145,229,126,166,48,183,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,178,162,126, + 178,187,157,69,223,198,186,181,127,3, + 126,70,227,187,157,262,265,63,179,4, + 123,125,219,219,6,184,166,162,226,55, + 48,278,280,126,3,181,231,231,126,126, + 187,126,276,123,277,126,69,69,3,178, + 166,198,126,212,157,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,178,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,178,60,157, + 126,126,162,268,247,279,39,69,127,70, + 68,55,230,230,282,126,70,178,3,178, + 127,127,3,126,126,3,69,70,157,127, + 178,126,69,69,126,301,79,77,1,161, + 8,85,83,81,80,75,82,84,78,76, + 59,74,219,178,178,320,221,236,151,162, + 251,178,226,295,283,118,8,72,214,72, + 3,3,3,190,3,123,161,123,177,70, + 126,126,162,226,68,3,72,225,167,225, + 303,145,75,225,126,126,40,90,319,167, + 157,198,157,302,126,3,157,283,308,230, + 157,157,126,69,190,160,268,161,189,70, + 69,121,300,157,189,8,157 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2523,7 +2514,6 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "SemiColon", "LeftBrace", "ERROR_TOKEN", - "0", "EOF_TOKEN", "no_sizeof_type_name_start", "]", @@ -2657,7 +2647,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 62, + ERROR_SYMBOL = 61, SCOPE_UBOUND = 114, SCOPE_SIZE = 115, MAX_NAME_LENGTH = 37; @@ -2669,19 +2659,19 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static int NUM_STATES = 537, - NT_OFFSET = 123, - LA_STATE_OFFSET = 5935, + NT_OFFSET = 122, + LA_STATE_OFFSET = 5933, MAX_LA = 2147483647, - NUM_RULES = 535, + NUM_RULES = 534, NUM_NONTERMINALS = 202, - NUM_SYMBOLS = 325, + NUM_SYMBOLS = 324, SEGMENT_SIZE = 8192, - START_STATE = 1087, + START_STATE = 1086, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 121, - EOLT_SYMBOL = 121, - ACCEPT_ACTION = 5035, - ERROR_ACTION = 5400; + EOFT_SYMBOL = 120, + EOLT_SYMBOL = 120, + ACCEPT_ACTION = 5034, + ERROR_ACTION = 5399; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java index 157abfae657..cd49ee14c8d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java @@ -15,69 +15,69 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPSizeofExpressionParsersym { 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 CPPSizeofExpressionParsersym { 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 CPPSizeofExpressionParsersym { 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 CPPSizeofExpressionParsersym { "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/CPPTemplateTypeParameterParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java index 8849971b658..d138047ed64 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java @@ -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 CPPTemplateTypeParameterParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { @@ -173,7 +174,7 @@ public CPPTemplateTypeParameterParser() { // 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, CPPTemplateTypeParameterParsersym.TK_EOF_TOKEN)); } -public CPPTemplateTypeParameterParser(String[] mapFrom) { // constructor - tokenMap = new TokenMap(CPPTemplateTypeParameterParsersym.orderedTerminalSymbols, mapFrom); +public CPPTemplateTypeParameterParser(IParserActionTokenProvider parser) { // constructor + tokenMap = new TokenMap(CPPTemplateTypeParameterParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } @@ -271,1713 +272,1707 @@ public CPPTemplateTypeParameterParser(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: type_parameter_start ::= ERROR_TOKEN + // Rule 536: type_parameter_start ::= ERROR_TOKEN // - case 537: { action. consumeDeclarationProblem(); break; + case 536: { action. consumeDeclarationProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java index 2f6b20d5bf9..b153907df19 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java @@ -29,7 +29,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 0,0,0,0,0,0,0,0,0,0, 0,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,498 +39,497 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 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,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,-126,0,0, - 0,-2,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,-3,0,-7, - 0,0,0,0,0,-4,0,0,0,0, - -8,-132,0,0,0,-22,0,0,0,0, - 0,0,0,0,-433,-149,0,0,0,0, + 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,-126,0,0,0, + -2,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,-3,0,-7,0, + 0,0,0,0,-4,0,0,0,0,-8, + -132,0,0,0,-22,0,0,0,0,0, + 0,0,0,-433,-149,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-12,0,0, - 0,0,0,0,0,0,0,-425,0,0, - 0,-140,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-12,0,0,0, + 0,0,0,0,0,0,-425,0,0,0, + -140,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-16,0,0,0,0,0,0, - 0,0,-91,-323,0,0,0,-261,0,-133, + 0,0,-16,0,0,0,0,0,0,0, + 0,-91,-323,0,0,0,-261,0,-133,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-170, 0,0,0,0,0,0,0,0,0,0, - -170,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-19,0,-55,0,0,0,0,0, - -20,0,0,-176,-326,0,-34,-26,0,0, - 0,0,-271,0,0,0,-171,0,0,0, + 0,-19,0,-55,0,0,0,0,0,-20, + 0,0,-176,-326,0,-34,-26,0,0,0, + 0,-271,0,0,0,-171,0,0,0,0, 0,0,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,-388,0,0,0,0,0, - 0,0,-355,0,0,-45,0,0,0,0, - 0,0,-373,0,-195,0,0,0,0,0, - 0,0,0,0,0,0,0,-400,0,-5, - 0,0,0,0,0,-128,0,-175,0,0, + 0,0,0,0,0,-6,0,0,0,0, + 0,0,0,-388,0,0,0,0,0,0, + 0,-355,0,0,-45,0,0,0,0,0, + 0,-373,0,-195,0,0,0,0,0,0, + 0,0,0,0,0,0,-400,0,-5,0, + 0,0,0,0,-128,0,-175,0,0,0, 0,0,0,0,0,0,0,0,0,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,-279,0,0,0,0, - 0,0,0,-532,0,-85,-47,0,0,0, - 0,0,0,-293,0,0,0,0,0,0, + -23,0,0,0,-279,0,0,0,0,0, + 0,0,-532,0,-85,-47,0,0,0,0, + 0,0,-293,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-213,0,0,0,0,0,0, - 0,-210,0,0,0,0,0,0,0,0, - 0,-49,0,0,0,0,0,0,0,-27, - 0,-216,0,0,0,-186,0,0,0,0, + 0,0,-213,0,0,0,0,0,0,0, + -210,0,0,0,0,0,0,0,0,0, + -49,0,0,0,0,0,0,0,-27,0, + -216,0,0,0,-186,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-511,0,0,0,0,0,0,0, + 0,-511,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-310,0,0,0,0,0, - 0,0,-28,0,-30,0,0,0,0,0, - 0,-44,0,0,0,-533,0,0,0,-50, + 0,0,0,-310,0,0,0,0,0,0, + 0,-28,0,-30,0,0,0,0,0,0, + -44,0,0,0,-533,0,0,0,-50,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-368,0,0, - 0,0,0,0,0,0,0,-395,0,0, - 0,0,0,-51,-472,0,0,0,-109,0, - -345,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-368,0,0,0, + 0,0,0,0,0,0,-395,0,0,0, + 0,0,-51,-472,0,0,0,-109,0,-345, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -381,0,-405,0,0,0,0,0,0,0, - -37,0,0,-83,0,0,-450,0,0,0, + 0,0,0,0,0,0,0,0,0,-381, + 0,-405,0,0,0,0,0,0,0,-37, + 0,0,-83,0,0,-450,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-202,0, - 0,0,0,0,0,0,-39,0,-182,0, + 0,0,0,0,0,0,0,-202,0,0, + 0,0,0,0,0,-39,0,-182,0,0, + 0,0,0,0,0,0,0,0,0,-467, + 0,0,0,-18,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -467,0,0,0,-18,0,0,0,0,0, + 0,0,0,0,0,-52,0,0,0,0, + 0,0,0,-53,0,0,0,-406,0,0, + 0,0,0,-54,0,0,-81,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,0,0,0,-52,0,0,0, - 0,0,0,0,-53,0,0,0,-406,0, - 0,0,0,0,-54,0,0,-81,0,0, - 0,-24,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-56,0, + -68,0,0,0,0,0,-69,0,0,0, + -342,-82,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-56, - 0,-68,0,0,0,0,0,-69,0,0, - 0,-342,-82,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-70,0,-347,0,0,0,0,0,-404, + -256,0,0,0,-204,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-70,0,-347,0,0,0,0,0, - -404,-256,0,0,0,-204,0,0,0,0, + 0,0,0,0,0,0,-71,0,0,0, + 0,0,0,0,0,0,-72,0,0,0, + 0,0,0,0,0,0,0,-21,0,0, + 0,-386,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,-214,0,-74, + 0,0,0,0,0,-79,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-71,0,0, - 0,0,0,0,0,0,0,-72,0,0, - 0,0,0,0,0,0,0,0,-21,0, - 0,0,-386,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,-214,0, - -74,0,0,0,0,0,-79,0,0,0, + 0,0,0,0,0,0,0,-25,0,0, + 0,0,0,-454,0,0,0,0,-75,0, + 0,-481,0,0,-32,0,0,0,-76,0, + 0,0,0,0,0,-155,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-77,0,0, + 0,0,0,0,0,-78,0,-537,0,-286, + 0,0,0,0,0,-80,0,0,-156,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,-454,0,0,0,0,-75, - 0,0,-481,0,0,-32,0,0,0,-76, - 0,0,0,0,0,0,-155,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-77,0, - 0,0,0,0,0,0,-78,0,-537,0, - -286,0,0,0,0,0,-80,0,0,-156, + 0,0,0,0,0,0,0,0,-86,0, + 0,0,0,0,0,0,-84,0,-87,0, + 0,-157,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-88,0,0,0,0,0,0, + 0,-89,0,-94,0,0,0,0,0,-471, + 0,-95,0,0,-158,0,0,0,-522,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-86, - 0,0,0,0,0,0,0,-84,0,-87, - 0,0,-157,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-98,0,0,0, + 0,0,0,0,-90,0,-105,0,0,0, + 0,0,-113,-116,-131,0,0,-159,0,0, + 0,-179,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-88,0,0,0,0,0, - 0,0,-89,0,-94,0,0,0,0,0, - -471,0,-95,0,0,-158,0,0,0,-522, + 0,0,0,0,0,0,0,-96,0,-180, + 0,0,0,0,0,-188,0,-198,0,0, + -160,0,0,0,-199,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-98,0,0, - 0,0,0,0,0,-90,0,-105,0,0, - 0,0,0,-113,-116,-131,0,0,-159,0, - 0,0,-179,0,0,0,0,0,0,0, + 0,0,-200,0,0,0,0,0,0,0, + -106,0,0,0,0,0,0,0,-201,-206, + -207,0,0,-161,0,0,0,-208,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-96,0, - -180,0,0,0,0,0,-188,0,-198,0, - 0,-160,0,0,0,-199,0,0,0,0, + 0,0,0,0,0,-209,0,0,0,0, + 0,0,0,-221,0,-222,0,-108,0,0, + 0,-223,0,-224,0,0,-162,0,0,0, + -225,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-226,0, + 0,0,0,0,0,0,-227,0,-228,0, + -110,0,0,0,-229,0,-230,0,0,-163, + 0,0,0,-231,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-200,0,0,0,0,0,0, - 0,-106,0,0,0,0,0,0,0,-201, - -206,-207,0,0,-161,0,0,0,-208,0, + 0,-232,0,0,0,0,0,0,0,-183, + 0,-233,0,0,0,0,0,-234,-235,-236, + 0,0,-164,0,0,0,-237,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-209,0,0,0, - 0,0,0,0,-221,0,-222,0,-108,0, - 0,0,-223,0,-224,0,0,-162,0,0, - 0,-225,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-226, - 0,0,0,0,0,0,0,-227,0,-228, - 0,-110,0,0,0,-229,0,-230,0,0, - -163,0,0,0,-231,0,0,0,0,0, + 0,0,0,0,-238,0,0,0,0,0, + 0,0,-191,0,-239,0,0,0,0,0, + -242,-243,-244,0,0,-165,0,0,0,-246, 0,0,0,0,0,0,0,0,0,0, - 0,0,-232,0,0,0,0,0,0,0, - -183,0,-233,0,0,0,0,0,-234,-235, - -236,0,0,-164,0,0,0,-237,0,0, + 0,0,0,0,0,0,0,-247,0,0, + 0,0,0,0,0,-249,0,-252,0,0, + 0,0,0,-257,-259,-260,0,0,-280,0, + 0,0,-274,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-238,0,0,0,0, - 0,0,0,-191,0,-239,0,0,0,0, - 0,-242,-243,-244,0,0,-165,0,0,0, - -246,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-247,0, - 0,0,0,0,0,0,-249,0,-252,0, - 0,0,0,0,-257,-259,-260,0,0,-280, - 0,0,0,-274,0,0,0,0,0,0, + -275,0,0,0,0,0,0,0,-266,0, + -276,0,0,0,0,0,-277,-301,-302,0, + 0,-290,0,0,0,-307,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-275,0,0,0,0,0,0,0,-266, - 0,-276,0,0,0,0,0,-277,-301,-302, - 0,0,-290,0,0,0,-307,0,0,0, + 0,0,0,-315,0,0,0,0,0,0, + 0,-267,0,-316,0,0,0,0,0,-321, + -322,-328,0,0,-527,0,0,0,-346,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-315,0,0,0,0,0, - 0,0,-267,0,-316,0,0,0,0,0, - -321,-322,-328,0,0,-527,0,0,0,-346, + 0,0,0,0,0,0,-348,0,0,0, + 0,0,0,0,-269,0,-92,0,0,0, + 0,0,-193,0,0,0,0,-354,0,0, + 0,-344,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-99, + 0,0,0,0,0,0,0,-408,0,-365, + 0,0,0,0,0,-390,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-348,0,0, - 0,0,0,0,0,-269,0,-92,0,0, - 0,0,0,-193,0,0,0,0,-354,0, - 0,0,-344,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -99,0,0,0,0,0,0,0,-408,0, - -365,0,0,0,0,0,-390,0,0,0, + 0,0,0,0,0,-369,0,0,0,0, + 0,0,0,-177,0,0,0,-190,-370,0, + 0,0,0,0,0,-391,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-129,0,0, + 0,0,0,0,0,-449,0,0,0,0, + 0,0,0,-402,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-369,0,0,0, - 0,0,0,0,-177,0,0,0,-190,-370, - 0,0,0,0,0,0,-391,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-129,0, - 0,0,0,0,0,0,-449,0,0,0, - 0,0,0,0,-402,0,0,0,0,0, + 0,0,0,-285,0,-376,0,0,0,0, + 0,-335,0,0,0,-300,-254,0,0,0, + 0,0,0,-458,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-282,0,0,0,0, + 0,0,0,-291,0,0,0,0,0,0, + 0,-167,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-285,0,-376,0,0,0, - 0,0,-335,0,0,0,-300,-254,0,0, - 0,0,0,0,-458,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-282,0,0,0, - 0,0,0,0,-291,0,0,0,0,0, - 0,0,-167,0,0,0,0,0,0,0, + 0,-292,0,-524,0,0,0,-218,0,0, + 0,-379,0,0,0,0,0,0,0,0, + 0,-154,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-292,0,-524,0,0,0,-218,0, - 0,0,-379,0,0,0,0,0,0,0, - 0,0,-154,0,0,0,0,0,0,0, + 0,-173,0,-93,0,-152,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-311,0,0, + 0,0,0,0,0,0,0,-153,0,0, + 0,-393,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-399, + 0,0,0,0,0,0,0,-409,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-173,0,-93,0,-152,0,0,0, + -185,0,0,0,0,-13,0,0,0,0, + 0,0,0,0,0,0,0,0,-289,-298, + -36,-114,-442,0,0,0,0,-33,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-311,0, - 0,0,0,0,0,0,0,0,-153,0, - 0,0,-393,0,0,0,0,0,0,0, + -10,0,-100,-314,0,0,0,0,0,-525, + 0,0,-194,0,0,0,0,0,0,0, + -407,-410,0,0,0,0,0,-353,0,0, + -444,0,0,0,0,0,-411,0,-41,0, 0,0,0,0,0,0,0,0,0,0, - -399,0,0,0,0,0,0,0,-409,0, + 0,0,-441,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-185,0,0,0,0,-13,0,0,0, - 0,0,0,0,0,0,0,0,0,-289, - -298,-36,-114,-442,0,0,0,0,-33,0, + 0,0,0,0,0,0,0,0,-414,-418, + 0,0,0,0,-272,0,0,0,0,-385, 0,0,0,0,0,0,0,0,0,0, - 0,-10,0,-100,-314,0,0,0,0,0, - -525,0,0,-194,0,0,0,0,0,0, - 0,-407,-410,0,0,0,0,0,-353,0, - 0,-444,0,0,0,0,0,-411,0,-41, + -150,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-441,0,0,0,0,0,0, + 0,0,-187,0,0,0,0,0,-151,0, + 0,0,-264,0,0,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, - -418,0,0,0,0,-272,0,0,0,0, - -385,0,0,0,0,0,0,0,0,0, - 0,-150,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,0,0,-143, + 0,0,0,-374,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-187,0,0,0,0,0,-151, - 0,0,0,-264,0,0,0,0,0,0, + 0,0,0,0,0,0,-58,0,0,0, + -420,-101,-288,0,0,0,-278,0,0,0, + 0,0,-434,-303,0,0,0,0,0,0, + 0,0,0,0,0,-296,-268,0,0,0, + 0,0,0,0,-135,-457,0,-459,0,0, + 0,0,-144,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,0,-145, 0,0,0,0,0,0,0,0,0,0, - -143,0,0,0,-374,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-58,0,0, - 0,-420,-101,-288,0,0,0,-278,0,0, - 0,0,0,-434,-303,0,0,0,0,0, - 0,0,0,0,0,0,-296,-268,0,0, - 0,0,0,0,0,-135,-457,0,-459,0, - 0,0,0,-144,0,0,0,0,0,0, + 0,0,0,0,0,0,-138,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,0,0,0,0,0, + 0,0,0,0,-451,0,0,0,0,0, + 0,0,0,0,0,0,0,-31,0,0, + 0,-146,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-138,0,0, + 0,0,0,-124,0,0,0,0,-440,-125, + -178,0,0,-468,-172,-415,-461,0,-196,0, + 0,0,-174,0,0,0,-462,0,0,-463, + 0,-197,-529,-417,0,0,0,0,0,-375, + 0,0,0,0,-464,-456,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-466,-15,0,0,-166, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-451,0,0,0,0, - 0,0,0,0,0,0,0,0,-31,0, - 0,0,-146,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-484,-485,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-124,0,0,0,0,-440, - -125,-178,0,0,-468,-172,-415,-461,0,-196, - 0,0,0,-174,0,0,0,-462,0,0, - -463,0,-197,-529,-417,0,0,0,0,0, - -375,0,0,0,0,-464,-456,0,0,0, + 0,0,-38,-123,0,0,0,0,0,-270, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-466,-15,0,0, - -166,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-484,-485,0, + -526,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-487,-14,0,0,0,-40, + 0,0,-492,-496,-103,0,0,0,0,0, + 0,0,0,0,0,0,0,-508,-394,0, + 0,0,0,0,0,-516,-29,0,-212,0, + 0,-102,-253,-528,-48,0,0,-245,0,0, + 0,0,0,0,0,-203,-538,0,0,0, + 0,0,-413,0,-412,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-220, + 0,0,-364,0,0,0,0,0,-387,0, + -215,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-38,-123,0,0,0,0,0, - -270,0,0,0,0,0,0,0,0,0, - 0,-526,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-487,-14,0,0,0, - -40,0,0,-492,-496,-103,0,0,0,0, - 0,0,0,0,0,0,0,0,-508,-394, - 0,0,0,0,0,0,-516,-29,0,-212, - 0,0,-102,-253,-528,-48,0,0,-245,0, - 0,0,0,0,0,0,-203,-538,0,0, - 0,0,0,-413,0,-412,0,0,0,0, + 0,-258,0,0,0,-97,0,0,0,0, + -265,0,0,0,0,0,0,0,0,0, + -350,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -220,0,0,-364,0,0,0,0,0,-387, - 0,-215,0,0,0,0,0,0,0,0, + -42,0,0,0,0,0,0,0,-147,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-258,0,0,0,-97,0,0,0, - 0,-265,0,0,0,0,0,0,0,0, - 0,-350,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-42,0,0,0,0,0,0,0,-147, + -403,0,0,0,-148,0,0,0,-295,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-465,0,0,0, + 0,-423,0,0,0,0,0,-107,0,0, + 0,-1,-428,0,-297,0,0,-17,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-403,0,0,0,-148,0,0,0,-295, + 0,0,0,-486,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-465,0,0, - 0,0,-423,0,0,0,0,0,-107,0, - 0,0,-1,-428,0,-297,0,0,-17,0, + 0,0,0,0,0,0,-313,0,-474,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-486,0,0,0,0,0, + 0,0,0,0,-477,0,0,0,0,0, + 0,0,0,0,0,0,0,-488,-219,0, + -250,0,0,-349,0,0,-168,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-313,0,-474, + -240,-352,0,0,0,0,0,0,0,0, + 0,-294,-351,0,-502,0,0,0,0,0, + -432,-452,-498,0,0,0,0,0,0,0, + 0,0,0,0,-9,-384,0,0,0,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,-477,0,0,0,0, - 0,0,0,0,0,0,0,0,-488,-219, - 0,-250,0,0,-349,0,0,-168,0,0, + 0,0,0,0,0,0,0,0,-515,0, + 0,0,0,0,-299,0,0,0,0,0, + 0,-241,0,0,0,0,0,0,0,0, + 0,0,0,0,-475,0,0,0,0,0, + 0,0,0,0,0,-517,0,0,0,0, + -380,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-240,-352,0,0,0,0,0,0,0, - 0,0,-294,-351,0,-502,0,0,0,0, - 0,-432,-452,-498,0,0,0,0,0,0, - 0,0,0,0,0,-9,-384,0,0,0, - 0,0,0,-35,0,0,0,0,0,0, + 0,0,0,-426,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-515, - 0,0,0,0,0,-299,0,0,0,0, - 0,0,-241,0,0,0,0,0,0,0, - 0,0,0,0,0,-475,0,0,0,0, - 0,0,0,0,0,0,-517,0,0,0, - 0,-380,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-426,0,0,0,0,0, + 0,0,-312,0,0,0,-304,0,0,0, + 0,0,-460,0,0,0,0,0,0,0, + -519,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-262,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-169, + 0,-469,-521,0,0,-455,0,-324,0,0, + 0,0,0,-104,0,0,0,-329,0,0, + 0,0,0,0,0,-112,0,0,0,0, + 0,0,0,0,0,-111,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-312,0,0,0,-304,0,0, - 0,0,0,-460,0,0,0,0,0,0, - 0,-519,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-262,0,0,0,0, + -331,-134,-534,-332,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-480,0,0, + -330,0,0,0,0,-362,0,0,0,-251, + 0,0,0,-308,0,0,0,0,0,-539, + 0,0,0,0,0,0,0,-510,0,0, 0,0,0,0,0,0,0,0,0,0, - -169,0,-469,-521,0,0,-455,0,-324,0, - 0,0,0,0,-104,0,0,0,-329,0, - 0,0,0,0,0,0,-112,0,0,0, - 0,0,0,0,0,0,-111,0,0,0, + 0,0,0,0,-287,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -309,0,0,0,0,0,0,0,0,0, + 0,0,0,-333,0,0,0,0,0,0, + 0,0,0,0,-325,0,0,0,0,0, + 0,0,0,0,-139,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-331,-134,-534,-332,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-480,0, - 0,-330,0,0,0,0,-362,0,0,0, - -251,0,0,0,-308,0,0,0,0,0, - -539,0,0,0,0,0,0,0,-510,0, + 0,0,0,0,0,0,0,0,0,-141, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-287,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-309,0,0,0,0,0,0,0,0, - 0,0,0,0,-333,0,0,0,0,0, - 0,0,0,0,0,-325,0,0,0,0, - 0,0,0,0,0,-139,0,0,0,0, + 0,0,0,-142,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-336,0,-337,-491,0, + -356,0,0,0,-11,-383,-334,-421,0,0, + -360,-339,0,0,0,0,0,0,0,-341, + 0,-363,-416,0,0,0,0,0,0,-371, + 0,-317,0,0,-357,0,0,0,0,-358, 0,0,0,0,0,0,0,0,0,0, - -141,0,0,0,0,0,0,0,0,0, + -470,0,0,0,0,0,0,0,0,0, + -327,0,0,-372,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-142,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-336,0,-337,-491, - 0,-356,0,0,0,-11,-383,-334,-421,0, - 0,-360,-339,0,0,0,0,0,0,0, - -341,0,-363,-416,0,0,0,0,0,0, - -371,0,-317,0,0,-357,0,0,0,0, - -358,0,0,0,0,0,0,0,0,0, - 0,-470,0,0,0,0,0,0,0,0, - 0,-327,0,0,-372,0,0,0,0,0, + 0,0,-389,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-424,0, + 0,-448,0,0,0,0,-523,-431,0,-436, + 0,0,0,-439,0,0,0,0,-482,-60, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-389,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-424, - 0,0,-448,0,0,0,0,-523,-431,0, - -436,0,0,0,-439,0,0,0,0,-482, - -60,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-359,0,0,0,0,0, + 0,0,0,0,0,-479,0,-497,0,0, + -499,0,-507,-514,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-494,0,0, + 0,0,0,0,0,0,0,0,-61,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-359,0,0,0,0, - 0,0,0,0,0,0,-479,0,-497,0, - 0,-499,0,-507,-514,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-494,0, - 0,0,0,0,0,0,0,0,0,-61, 0,0,0,0,0,0,0,0,0,0, + -397,-248,0,0,0,0,0,0,0,-62, 0,0,0,0,0,0,0,0,0,0, - 0,-397,-248,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, - 0,0,0,0,0,-398,0,0,0,0, - 0,-63,0,0,0,0,0,0,0,0, + 0,0,0,0,-398,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,-64,0,0,0,0,0,0, + 0,0,-64,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-65,0,0,0,0, + 0,0,0,0,-65,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-66,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,0,0,0,-67, + 0,0,0,0,0,0,0,0,-67,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-127,0,0,0,0,0,0,0,0, + -127,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-136,0,0,0,0,0,0, + 0,0,-136,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-137,0,0,0,0, + 0,0,0,0,-137,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-205,0,0, + 0,0,0,0,0,0,-205,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-283, + 0,0,0,0,0,0,0,0,-283,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-59,0,0,0,-427,0,0,0,0, + -59,0,0,0,-427,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-338,-435,-447,-495,0,-473,-478,-500, - -503,-118,-377,-505,-509,0,0,0,0,0, - 0,0,-382,0,0,-512,0,0,0,0, - 0,0,0,0,0,0,0,-318,0,0, + 0,-338,-435,-447,-495,0,-473,-478,-500,-503, + -118,-377,-505,-509,0,0,0,0,0,0, + 0,-382,0,0,-512,0,0,0,0,0, + 0,0,0,0,0,0,-318,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-518,0, - 0,0,0,0,0,-513,0,0,0,0, - 0,0,0,0,0,-530,0,0,0,0, - 0,0,0,0,0,-430,0,0,0,0, - -319,-531,-535,0,0,-438,0,0,0,0, - -320,0,-536,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-518,0,0, + 0,0,0,0,-513,0,0,0,0,0, + 0,0,0,0,-530,0,0,0,0,0, + 0,0,0,0,-430,0,0,0,0,-319, + -531,-535,0,0,-438,0,0,0,0,-320, + 0,-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,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-306, + 0,0,0,0,0,0,0,0,-306,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-343,0,0,0,0,0,0,0, - 0,0,0,0,0,-392,0,0,0,0, + 0,-343,0,0,0,0,0,0,0,0, + 0,0,0,0,-392,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-361,0,0, + 0,0,0,0,0,0,-361,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,0,0,0,0,0,0,0,-504, 0,0,0,0,0,0,0,0,0,0, - -504,0,0,0,0,0,0,0,0,0, - 0,0,0,-43,0,0,0,0,0,0, - 0,0,0,-119,0,0,0,0,-46,0, - 0,0,0,0,0,-184,0,0,0,0, + 0,0,-43,0,0,0,0,0,0,0, + 0,0,-119,0,0,0,0,-46,0,0, + 0,0,0,0,-184,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-115,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, 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,-378,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,0,0,0,0,0,0,-181,0, - 0,0,0,0,-401,0,0,0,0,0, + 0,0,-263,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-181,0,0, + 0,0,0,-401,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-189,0,0,0,-192,0,0, - 0,0,0,-366,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-211, - 0,0,0,-217,0,0,0,0,0,0, - 0,0,0,0,-506,0,0,0,0,0, - 0,0,0,-340,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-396,0, - 0,0,0,0,0,0,0,0,0,-419, + 0,0,-189,0,0,0,-192,0,0,0, + 0,0,-366,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-211,0, + 0,0,-217,0,0,0,0,0,0,0, + 0,0,0,-506,0,0,0,0,0,0, + 0,0,-340,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-396,0,0, + 0,0,0,0,0,0,0,0,-419,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-422,0, + 0,0,0,0,0,0,0,-422,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-437,0,0,0,-445,0, - 0,0,0,0,0,0,-446,0,0,0, - 0,0,0,0,-57,0,0,0,0,0, - 0,0,0,-453,0,0,0,0,0,0, + 0,0,0,-437,0,0,0,-445,0,0, + 0,0,0,0,0,-446,0,0,0,0, + 0,0,0,-57,0,0,0,0,0,0, + 0,0,-453,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-117,0,0,0,0,-130,0, - 0,0,0,0,-443,0,0,0,0,0, + 0,0,-117,0,0,0,0,-130,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,-122,0,0,0,0,0, - 0,-367,0,0,0,0,0,0,0,-255, - 0,0,0,0,-273,0,0,0,0,0, - 0,0,-429,0,0,0,0,0,0,-281, + 0,0,0,-122,0,0,0,0,0,0, + -367,0,0,0,0,0,0,0,-255,0, + 0,0,0,-273,0,0,0,0,0,0, + 0,-429,0,0,0,0,0,0,-281,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-489,-120,0,0, - 0,0,0,0,0,0,-490,0,0,0, - 0,-121,0,0,0,0,-493,0,0,0, - 0,0,0,0,0,-284,0,0,0,0, - -520,0,0,0,0,0,0,0,0,0, - -476,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-489,-120,0,0,0, + 0,0,0,0,0,-490,0,0,0,0, + -121,0,0,0,0,-493,0,0,0,0, + 0,0,0,0,-284,0,0,0,0,-520, + 0,0,0,0,0,0,0,0,0,-476, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -543,7 +542,8 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,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; @@ -555,547 +555,547 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 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,116,116,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, - 29,29,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,30,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,117,117, - 115,115,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,121,121,121,121,121, - 121,119,119,119,153,120,120,183,155,155, - 154,154,123,123,104,79,79,80,81,52, - 47,156,156,53,51,86,86,157,157,146, - 146,124,125,125,126,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,128,46,46,160,184,184, - 129,129,129,129,130,162,186,186,34,34, - 118,131,131,131,131,188,109,108,108,122, - 122,122,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,116,116,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,29, + 29,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,30,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,117,117,115, + 115,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,121,121,121,121,121,121, + 119,119,119,153,120,120,183,155,155,154, + 154,123,123,104,79,79,80,81,52,47, + 156,156,53,51,86,86,157,157,146,146, + 124,125,125,126,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,128,46,46,160,184,184,129, + 129,129,129,130,162,186,186,34,34,118, + 131,131,131,131,188,109,108,108,122,122, + 122,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,133,133,112,112,112, - 112,112,112,3,134,134,132,132,113,113, - 85,78,74,161,161,114,114,197,197,197, - 135,135,127,127,198,198,174,174,1132,36, - 1697,1679,1530,4670,28,31,32,993,995,27, - 29,1672,26,24,51,1222,107,77,78,109, - 2717,1228,1298,1263,1341,1308,1400,1351,248,1439, - 769,1410,274,1447,1457,144,334,36,397,159, - 145,1173,1488,36,940,33,2015,4674,28,31, - 32,993,995,58,29,1929,3077,36,940,33, - 233,2628,28,31,32,993,995,27,29,1220, - 26,24,51,1222,107,77,78,109,1377,1228, - 1298,1263,1341,1308,1783,236,231,232,508,36, - 1002,389,3077,36,940,33,275,2628,28,31, - 32,993,995,27,29,1220,26,24,51,1222, - 107,77,78,109,1382,1713,243,246,249,252, - 1127,355,432,2002,2373,36,278,2806,2010,1091, - 1715,36,940,33,524,4674,28,31,32,993, - 995,57,29,1671,570,3284,2412,2894,2931,3072, - 4494,2278,36,940,33,2927,2628,28,31,32, - 993,995,27,29,1220,26,24,51,1222,107, - 77,78,109,344,1228,1298,1263,1341,1308,1400, - 1351,62,1439,1193,1410,1115,1447,1457,144,3537, - 4835,1397,518,145,1354,2522,2858,1341,508,1525, - 1500,35,3465,508,36,283,519,2278,36,940, - 33,2927,2628,28,31,32,993,995,27,29, - 1220,26,24,51,1222,107,77,78,109,344, - 1228,1298,1263,1341,1308,1400,1351,56,1439,313, - 1410,3276,1447,1457,144,157,36,454,518,145, - 4720,1578,2858,508,1955,333,157,36,280,3923, - 866,3487,519,2621,514,1365,36,940,33,61, - 4855,28,31,32,993,995,27,29,2522,512, - 334,36,397,1842,2645,1843,1794,2936,2278,36, - 940,33,2927,2628,28,31,32,993,995,27, - 29,1220,26,24,51,1222,107,77,78,109, - 344,1228,1298,1263,1341,1308,1400,1351,444,1439, - 514,1410,65,1447,1457,144,508,36,1972,518, - 145,43,1869,2858,230,3004,56,1341,2051,1844, - 3228,1843,3465,519,2489,36,940,33,2927,2628, - 28,31,32,993,995,27,29,1220,26,24, - 51,1222,107,77,78,109,344,1228,1298,1263, - 1341,1308,1400,1351,2163,1439,289,1410,2927,1447, - 1457,144,157,36,280,518,145,4870,581,2858, - 357,1578,334,36,397,333,344,354,532,519, - 683,514,1365,36,940,33,162,4855,28,31, - 32,993,995,60,29,447,2511,2632,3375,1451, - 1851,2051,1843,2626,36,940,33,2413,2628,28, - 31,32,993,995,27,29,1220,26,24,51, - 1222,107,77,78,109,926,1228,1298,1263,1341, - 1308,1400,1351,770,1439,1566,1410,515,1447,1457, - 144,914,1829,3867,380,145,2348,36,940,33, - 246,2628,28,31,32,993,995,27,29,1220, - 26,24,51,1222,107,77,78,109,418,1228, - 1298,1263,1341,1308,1400,1351,382,1439,317,1410, - 1585,1447,1457,144,1918,1815,3867,380,145,1401, - 2099,3077,36,940,33,1920,2628,28,31,32, - 993,995,27,29,1220,26,24,51,1222,107, - 77,78,109,1449,1228,1298,1263,1341,1308,1400, - 1351,2520,1439,2621,1410,2825,1447,1498,165,1834, - 2175,1815,386,3529,1022,391,428,2557,36,940, - 33,3869,2628,28,31,32,993,995,27,29, - 1220,26,24,51,1222,107,77,78,109,2105, - 1228,1298,1263,1341,1308,1400,1351,1231,1439,75, - 1410,1662,1447,1457,144,387,3529,3867,380,145, - 439,508,3889,424,71,2752,36,940,33,3818, - 2628,28,31,32,993,995,27,29,1220,26, - 24,51,1222,107,77,78,109,2021,1228,1298, - 1263,1341,1308,1400,1351,2255,1439,327,1410,2621, - 1447,1457,144,1879,2638,2720,374,145,2752,36, - 940,33,152,2628,28,31,32,993,995,27, - 29,1220,26,24,51,1222,107,77,78,109, - 356,1228,1298,1263,1341,1308,1400,1351,532,1439, - 1491,1410,3292,1447,1457,144,378,3529,592,374, - 145,3810,1013,2752,36,940,33,2645,2628,28, - 31,32,993,995,27,29,1220,26,24,51, - 1222,107,77,78,109,866,1228,1298,1263,1341, - 1308,1400,1351,1230,1439,2546,1410,325,1447,1457, - 144,418,1631,373,374,145,2752,36,940,33, - 1709,2628,28,31,32,993,995,27,29,1220, - 26,24,51,1222,107,77,78,109,239,1228, - 1298,1263,1341,1308,1400,1351,324,1439,2096,1410, - 405,1447,1457,144,532,3139,372,159,145,2695, - 36,940,33,1013,2628,28,31,32,993,995, - 27,29,1220,26,24,51,1222,107,77,78, - 109,856,1228,1298,1263,1341,1308,1400,1351,56, - 1439,491,1410,1276,1447,1498,165,2421,36,940, - 33,370,2628,28,31,32,993,995,27,29, - 1220,26,24,51,1222,107,77,78,109,3576, - 1228,1298,1263,1341,1308,1400,1351,72,1439,2100, - 1410,3010,1447,1457,144,508,36,294,143,145, - 1649,448,328,508,36,294,1706,36,940,33, - 1989,1094,42,31,32,993,995,2752,36,940, - 33,1671,2628,28,31,32,993,995,27,29, - 1220,26,24,51,1222,107,77,78,109,1187, - 1228,1298,1263,1341,1308,1400,1351,42,1439,230, - 1410,2069,1447,1457,144,3762,422,1394,156,145, - 2752,36,940,33,326,2628,28,31,32,993, - 995,27,29,1220,26,24,51,1222,107,77, - 78,109,3724,1228,1298,1263,1341,1308,1400,1351, - 56,1439,448,1410,3451,1447,1457,144,1246,3830, - 2723,155,145,2752,36,940,33,4210,2628,28, - 31,32,993,995,27,29,1220,26,24,51, - 1222,107,77,78,109,1343,1228,1298,1263,1341, - 1308,1400,1351,56,1439,326,1410,691,1447,1457, - 144,508,2935,848,154,145,2752,36,940,33, - 2832,2628,28,31,32,993,995,27,29,1220, - 26,24,51,1222,107,77,78,109,1619,1228, - 1298,1263,1341,1308,1400,1351,56,1439,1251,1410, - 747,1447,1457,144,1844,1665,1462,153,145,2752, - 36,940,33,1842,2628,28,31,32,993,995, - 27,29,1220,26,24,51,1222,107,77,78, - 109,381,1228,1298,1263,1341,1308,1400,1351,56, - 1439,1581,1410,828,1447,1457,144,1512,94,1813, - 152,145,2752,36,940,33,2005,2628,28,31, - 32,993,995,27,29,1220,26,24,51,1222, - 107,77,78,109,2239,1228,1298,1263,1341,1308, - 1400,1351,56,1439,524,1410,4516,1447,1457,144, - 2242,2190,2158,151,145,2752,36,940,33,2243, - 2628,28,31,32,993,995,27,29,1220,26, - 24,51,1222,107,77,78,109,3281,1228,1298, - 1263,1341,1308,1400,1351,413,1439,587,1410,1115, - 1447,1457,144,1528,4644,1718,150,145,2752,36, - 940,33,1898,2628,28,31,32,993,995,27, - 29,1220,26,24,51,1222,107,77,78,109, - 943,1228,1298,1263,1341,1308,1400,1351,1249,1439, - 1565,1410,1115,1447,1457,144,1635,4648,1895,149, - 145,2752,36,940,33,2147,2628,28,31,32, - 993,995,27,29,1220,26,24,51,1222,107, - 77,78,109,2087,1228,1298,1263,1341,1308,1400, - 1351,56,1439,2098,1410,2964,1447,1457,144,2596, - 1264,665,148,145,2752,36,940,33,2312,2628, - 28,31,32,993,995,27,29,1220,26,24, - 51,1222,107,77,78,109,331,1228,1298,1263, - 1341,1308,1400,1351,56,1439,477,1410,2901,1447, - 1457,144,2309,2305,2339,147,145,2752,36,940, - 33,2380,2628,28,31,32,993,995,27,29, - 1220,26,24,51,1222,107,77,78,109,2342, - 1228,1298,1263,1341,1308,1400,1351,56,1439,2180, - 1410,3110,1447,1457,144,679,2726,2407,146,145, - 2752,36,940,33,2482,2628,28,31,32,993, - 995,27,29,1220,26,24,51,1222,107,77, - 78,109,2513,1228,1298,1263,1341,1308,1400,1351, - 56,1439,2514,1410,985,1447,1457,144,2544,2480, - 2729,160,145,2752,36,940,33,2579,2628,28, - 31,32,993,995,27,29,1220,26,24,51, - 1222,107,77,78,109,2263,1228,1298,1263,1341, - 1308,1400,1351,56,1439,2518,1410,2339,1447,1457, - 144,2581,2585,2587,141,145,2957,36,940,33, - 2450,2628,28,31,32,993,995,27,29,1220, - 26,24,51,1222,107,77,78,109,1411,1228, - 1298,1263,1341,1308,1400,1351,56,1439,1022,1410, - 3188,1447,1457,144,1472,36,278,190,145,3077, - 36,940,33,2381,2628,28,31,32,993,995, - 27,29,1220,26,24,51,1222,107,77,78, - 109,1116,1228,1298,1263,1341,1308,1400,1351,2173, - 1439,2548,1410,4306,1447,1498,165,3077,36,940, - 33,403,2628,28,31,32,993,995,27,29, - 1220,26,24,51,1222,107,77,78,109,2516, - 1228,1298,1263,1341,1308,1400,1351,2791,1439,3819, - 1410,499,1447,1498,165,1970,36,940,33,1815, - 2618,41,31,32,993,995,2095,3077,36,940, - 33,293,2628,28,31,32,993,995,27,29, - 1220,26,24,51,1222,107,77,78,109,2196, - 1228,1298,1263,1341,1308,1400,1351,56,1439,2006, - 1410,1276,1447,1498,165,3077,36,940,33,423, - 2628,28,31,32,993,995,27,29,1220,26, - 24,51,1222,107,77,78,109,4209,1228,1298, - 1263,1341,1308,1400,1351,56,1439,2620,1410,735, - 1447,1498,165,1970,36,940,33,1815,2409,2605, - 31,32,993,995,2095,3134,36,940,33,426, - 2628,28,31,32,993,995,27,29,1220,26, - 24,51,1222,107,77,78,109,2302,1228,1298, - 1263,1341,1308,1400,1351,56,1439,3699,1410,3512, - 1447,1498,165,3077,36,940,33,3144,2628,28, - 31,32,993,995,27,29,1220,26,24,51, - 1222,107,77,78,109,390,1228,1298,1263,1341, - 1308,1400,1351,56,1439,1815,1410,3515,1836,2012, - 36,940,33,2649,4855,28,31,32,993,995, - 59,29,2095,3077,36,940,33,2926,2628,28, - 31,32,993,995,27,29,1220,26,24,51, - 1222,107,77,78,109,2825,1228,1298,1263,1341, - 1308,1400,1351,1022,1439,2101,1808,3077,36,940, - 33,526,2628,28,31,32,993,995,27,29, - 1220,26,24,51,1222,107,77,78,109,926, - 1228,1298,1263,1341,1308,1400,1351,498,1800,3077, - 36,940,33,2553,2628,28,31,32,993,995, - 27,29,1220,26,24,51,1222,107,77,78, - 109,2650,1228,1298,1263,1341,1308,1400,1801,1518, - 36,940,33,3225,4599,28,31,32,993,995, - 340,29,508,36,3042,2564,461,1657,36,940, - 33,737,2769,28,31,32,993,995,340,29, - 2336,2196,1247,1383,508,36,1002,389,3465,1737, - 36,940,33,2963,2769,28,31,32,993,995, - 340,29,56,1578,2101,2409,2927,333,320,1389, - 322,1815,315,1192,508,36,1500,277,453,392, - 428,352,2654,2785,344,314,320,1389,322,2409, - 315,1192,508,36,1002,389,351,1578,2623,4403, - 70,334,353,731,233,2095,2183,2858,320,1389, - 322,2825,315,1192,853,36,454,510,353,4720, - 345,586,862,350,353,2633,435,525,723,245, - 231,232,285,307,311,595,347,586,862,350, - 1743,2648,345,586,862,350,508,36,1500,279, - 2434,1970,36,940,33,3262,286,2807,31,32, - 993,995,3077,36,940,33,2644,2628,28,31, - 32,993,995,27,29,1220,26,24,51,1222, - 107,77,78,109,1997,1228,1298,1263,1341,1793, - 3077,36,940,33,162,2628,28,31,32,993, - 995,27,29,1220,26,24,51,1222,107,77, - 78,109,367,1228,1298,1263,1341,1799,1748,36, - 1998,33,3225,4599,28,31,32,993,995,340, - 29,3077,36,940,33,2454,2628,28,31,32, - 993,995,27,29,1220,26,24,51,1222,107, - 77,78,109,1752,1228,1298,1263,1740,2187,36, - 1002,389,2655,2101,766,36,1002,389,508,36, - 1500,1971,1578,407,2689,1115,333,320,1389,322, - 4694,315,1192,1049,451,2511,2632,56,1472,36, - 281,3708,50,1963,1265,323,56,2734,274,2750, - 1276,1568,2129,3545,3077,36,940,33,4403,2628, - 28,31,32,993,995,27,29,1220,26,24, - 51,1222,107,77,78,109,157,1228,1298,1263, - 1748,3077,36,940,33,3001,2628,28,31,32, - 993,995,27,29,1220,26,24,51,1222,107, - 77,78,109,3404,1228,1298,1263,1750,3077,36, - 940,33,1973,2628,28,31,32,993,995,27, - 29,1220,26,24,51,1222,107,77,78,109, - 73,1228,1705,418,420,1980,1802,36,940,33, - 3225,2769,28,31,32,993,995,340,29,594, - 36,1002,389,3077,36,940,33,2023,2628,28, - 31,32,993,995,27,29,1220,26,24,51, - 1222,107,77,78,109,2101,1228,1298,1263,1756, - 262,2101,2101,50,538,2590,1341,2454,88,1276, - 2101,3465,1568,2041,1022,320,1389,322,2687,315, - 1192,2718,229,2101,2478,2443,3037,4138,1276,2800, - 157,2409,314,25,1877,157,2722,1,181,3414, - 2825,538,70,201,4206,300,204,216,4567,203, - 213,214,215,217,157,69,170,2818,2979,229, - 1578,56,877,163,333,1276,169,157,184,168, - 171,172,173,174,175,181,3414,2825,2819,175, - 308,311,595,204,216,4567,203,213,214,215, - 217,157,183,170,1261,2379,2969,460,298,1276, - 1826,1027,1955,169,182,185,168,171,172,173, - 174,175,1920,36,940,33,737,2769,28,31, - 32,993,995,340,29,161,2793,3191,36,1002, - 389,1396,4509,353,1399,2830,1476,36,940,33, - 238,4599,28,31,32,993,995,340,29,2828, - 1371,345,586,862,350,4739,233,2847,2774,343, - 1022,274,2927,1826,1645,2197,1336,2927,3465,2059, - 4532,320,1389,322,3465,315,1192,2101,2511,2837, - 344,248,231,232,2409,2397,1115,353,527,233, - 1578,4755,2977,233,334,320,1389,322,352,316, - 1192,1022,4313,663,2614,345,586,862,350,54, - 1815,353,2101,528,236,231,232,1578,251,231, - 232,333,5428,1578,288,275,3146,334,5428,347, - 586,862,350,1401,36,294,5428,508,36,1002, - 389,353,2727,4160,88,243,246,249,252,1127, - 2825,297,926,2936,361,2435,1965,5428,1091,345, - 586,862,350,329,336,5428,377,2434,2802,1593, - 1621,274,1515,3316,3284,2412,2894,2931,3072,4494, - 3077,36,940,33,52,2628,28,31,32,993, - 995,27,29,1220,26,24,51,1222,107,77, - 78,109,1022,1228,1298,1758,3077,36,940,33, - 1645,2628,28,31,32,993,995,27,29,1220, - 26,24,51,1222,107,77,78,109,349,1228, - 1298,1765,538,1115,233,341,5428,2187,4759,334, - 36,1627,2554,2776,1022,89,1645,5428,103,1887, - 229,3592,443,2927,457,5428,5428,5428,157,254, - 231,232,394,428,5428,436,181,3414,2825,538, - 375,2397,3146,50,204,216,4567,203,213,214, - 215,217,1568,2392,170,98,5428,229,1027,1955, - 508,36,1002,389,169,157,2934,168,171,172, - 173,174,175,181,3414,2825,2409,5428,3146,3605, - 336,204,216,4567,203,213,214,215,217,523, - 2101,170,2066,538,434,1341,2927,99,1825,5428, - 3465,169,2927,179,168,171,172,173,174,175, - 506,229,2101,1987,2397,335,336,946,4709,157, - 2397,5428,53,2370,926,536,610,181,3414,2825, - 538,505,2454,2454,2409,204,216,4567,203,213, - 214,215,217,305,2225,170,1887,2405,229,1578, - 2927,2927,504,333,3346,169,157,177,168,171, - 172,173,174,175,181,3414,2825,240,2397,2397, - 222,304,204,216,4567,203,213,214,215,217, - 697,288,170,362,538,4416,56,542,3923,361, - 3697,5428,169,2101,178,168,171,172,173,174, - 175,383,229,3242,1593,1621,508,36,1002,389, - 157,5428,2459,1965,5428,2950,233,784,181,3414, - 2825,538,1401,2468,294,2263,204,216,4567,203, - 213,214,215,217,393,428,170,506,506,229, - 433,241,231,232,5428,2614,169,157,188,168, - 171,172,173,174,175,181,3414,2825,505,505, - 45,1869,3316,204,216,4567,203,213,214,215, - 217,5428,5428,170,508,36,1500,282,1634,503, - 503,430,1232,169,2454,2965,168,171,172,173, - 174,175,1625,36,940,33,3225,2769,28,31, - 32,993,995,340,29,2353,1237,36,940,33, - 2588,2769,28,31,32,993,995,340,29,618, - 2510,1825,180,2454,871,2927,2187,2058,538,1636, - 36,1500,277,5428,5428,508,36,1002,389,508, - 2087,1500,75,2397,404,5428,229,508,36,1002, - 389,320,1389,322,157,315,1192,508,36,1002, - 389,199,181,3414,2825,317,1937,322,314,50, - 204,216,4567,203,213,214,215,217,1568,1129, - 170,274,1645,2379,958,1645,90,1276,538,103, - 169,50,193,168,171,172,173,174,175,1815, - 1568,2014,1636,36,1500,2100,229,508,36,1500, - 2371,2154,361,161,157,56,307,311,595,3052, - 5428,1045,181,3414,2825,538,3323,1593,1621,2058, - 204,216,4567,203,213,214,215,217,4296,3872, - 170,523,5428,229,3146,276,2101,3146,5428,2644, - 169,157,187,168,171,172,173,174,175,181, - 3414,2825,56,5428,3408,1879,3254,204,216,4567, - 203,213,214,215,217,56,2095,170,91,803, - 3220,3731,336,5428,3765,336,2101,169,560,195, - 168,171,172,173,174,175,3077,36,940,33, - 5428,2628,28,31,32,993,995,27,29,1220, - 26,24,51,1222,107,77,78,109,3723,1228, - 1707,3077,36,940,33,5428,2628,28,31,32, - 993,995,27,29,1220,26,24,51,1222,107, - 77,78,109,523,1715,3077,36,940,33,5428, - 2628,28,31,32,993,995,27,29,1220,26, - 24,51,1222,107,77,78,109,1583,1722,56, - 2590,2927,2101,3707,538,5428,56,1847,1645,1987, - 2927,2927,2379,56,4709,5428,1276,3277,5428,229, - 1550,56,3874,56,1815,1323,5428,818,344,229, - 157,56,5428,56,68,1083,2101,1276,181,3414, - 5428,2101,161,206,216,4567,205,213,214,215, - 217,2858,2454,206,216,4567,205,213,214,215, - 217,508,1341,157,2825,56,196,3465,67,1179, - 3146,5428,3702,66,207,209,211,295,296,1887, - 377,218,208,210,207,209,211,295,296,1887, - 198,218,208,210,1836,36,1998,33,3225,2769, - 28,31,32,993,995,340,29,331,336,3922, - 1115,2950,2831,1935,4223,4767,1578,2927,2077,56, - 4842,1115,2984,3813,4223,56,4784,5428,5428,3457, - 2454,3077,36,940,33,229,2628,28,31,32, - 993,995,27,29,1220,26,24,51,1222,107, - 77,78,86,320,1389,322,2101,315,1192,206, - 216,4567,205,213,214,215,217,56,303,56, - 1265,3264,56,3559,56,2476,963,431,3422,2912, - 5428,4685,197,5428,3825,874,5428,5428,65,2454, - 207,209,211,295,296,1887,5428,218,208,210, - 3077,1525,940,1586,95,2628,28,31,32,993, - 995,27,29,1220,26,24,51,1222,107,77, - 78,85,2101,508,36,1002,389,202,3206,5428, - 4223,3077,36,940,33,5428,2628,28,31,32, - 993,995,27,29,1220,26,24,51,1222,107, - 77,78,84,5428,56,5428,2101,50,5428,419, - 420,1980,3077,36,940,33,47,2628,28,31, - 32,993,995,27,29,1220,26,24,51,1222, - 107,77,78,83,3077,36,940,33,55,2628, - 28,31,32,993,995,27,29,1220,26,24, - 51,1222,107,77,78,82,3077,36,940,33, - 5428,2628,28,31,32,993,995,27,29,1220, - 26,24,51,1222,107,77,78,81,3077,36, - 940,33,5428,2628,28,31,32,993,995,27, - 29,1220,26,24,51,1222,107,77,78,80, - 3077,36,940,33,5428,2628,28,31,32,993, - 995,27,29,1220,26,24,51,1222,107,77, - 78,79,2892,36,940,33,5428,2628,28,31, - 32,993,995,27,29,1220,26,24,51,1222, - 107,77,78,105,3077,36,940,33,5428,2628, - 28,31,32,993,995,27,29,1220,26,24, - 51,1222,107,77,78,111,3077,36,940,33, - 5428,2628,28,31,32,993,995,27,29,1220, - 26,24,51,1222,107,77,78,110,3077,36, - 940,33,5428,2628,28,31,32,993,995,27, - 29,1220,26,24,51,1222,107,77,78,108, - 3077,36,940,33,5428,2628,28,31,32,993, - 995,27,29,1220,26,24,51,1222,107,77, - 78,106,3020,36,940,33,2101,2628,28,31, - 32,993,995,27,29,1220,26,24,51,1222, - 87,77,78,2023,2101,1725,2454,2927,2101,2101, - 2454,2101,56,1671,2101,2101,2927,2927,102,5428, - 5428,5428,5428,1759,5428,229,2101,2927,5428,5428, - 5428,5428,5428,5428,344,229,3263,530,56,5428, - 452,379,1276,3310,200,229,3347,3454,299,206, - 216,4567,205,213,214,215,217,2858,2265,206, - 216,4567,205,213,214,215,217,1629,157,206, - 216,4567,205,213,214,215,217,3736,5428,2454, - 207,209,211,295,296,1887,2101,521,208,210, - 207,209,211,295,296,1887,2454,520,208,210, - 207,209,211,295,296,1887,2111,219,208,210, - 2927,56,2101,2101,5428,1276,2199,2824,2441,5428, - 2927,56,5428,2454,5428,1276,5428,5428,229,5428, - 5428,5428,5428,5428,223,5428,5428,5428,229,5428, - 5428,157,5428,5428,4323,3551,5428,5428,5428,5428, - 3741,157,206,216,4567,205,213,214,215,217, - 3856,194,206,216,4567,205,213,214,215,217, - 1802,36,940,33,3225,2769,28,31,32,993, - 995,340,29,207,209,211,295,296,1887,5428, - 306,208,210,207,209,211,295,296,1887,5428, - 500,208,210,1889,36,940,33,5428,4599,28, - 31,32,993,995,340,29,1889,36,940,33, - 5428,4599,28,31,32,993,995,340,29,320, - 1389,322,5428,315,1192,5428,5428,5428,2379,5428, - 5428,5428,1276,5428,5428,5428,2633,5428,5428,5428, - 5428,5428,5428,5428,5428,5428,2824,1578,5428,5428, - 2927,334,320,1389,322,5428,318,1192,161,5428, - 1578,5428,5428,5428,334,320,1389,322,344,316, - 1192,1802,36,940,33,3225,2769,28,31,32, - 993,995,340,29,3241,36,1002,389,5428,4509, - 5428,3875,5428,5428,56,5428,5428,239,2927,594, - 36,1002,389,5428,5428,5428,1195,5428,5428,5428, - 2927,4850,5428,5428,5428,5428,344,5428,274,5428, - 5428,5428,1826,5428,5428,3956,2927,3465,229,5428, - 320,1389,322,50,315,1192,5428,5428,5428,2858, - 5428,5428,1568,1584,2397,5428,233,2957,5428,1636, - 5428,5428,1272,408,3436,5428,3477,1978,36,940, - 33,2379,2769,28,31,32,993,995,340,29, - 5428,237,231,232,1301,5428,1578,5428,2927,4850, - 333,5428,275,409,410,411,295,296,1887,594, - 36,1002,389,5428,5428,2379,229,5428,5428,1276, - 5428,5428,244,247,250,253,1127,5428,1885,5428, - 5428,5428,2413,361,5428,1091,317,1937,322,5428, - 1272,408,3436,50,5428,161,5428,2802,1593,1621, - 5428,5428,1568,3541,940,36,1002,389,594,36, - 1002,389,5428,4286,56,5428,3037,5428,1276,5428, - 5428,409,410,411,295,296,1887,5428,5428,5428, - 2234,36,1002,389,940,36,1002,389,50,412, - 414,5428,50,5428,157,2659,1885,1568,48,538, - 5428,1568,48,3102,940,36,1002,389,5428,5428, - 5428,2658,4186,2188,50,743,4584,344,50,594, - 36,1002,389,1568,2217,157,5428,1568,2410,5428, - 594,36,1002,389,189,3408,5428,3477,50,5428, - 4481,2634,5428,5428,5428,5428,5428,1568,48,594, - 36,1002,389,50,5428,5428,5428,412,415,5428, - 5428,2521,1568,48,50,1901,36,1002,389,594, - 36,1002,389,1568,48,5428,628,594,36,1002, - 389,5428,5428,50,5428,56,5428,2414,5428,538, - 5428,5428,1568,48,1913,36,1002,389,191,50, - 5428,5428,5428,50,5428,5428,2462,344,1568,48, - 5428,50,1568,48,56,157,5428,5428,538,56, - 1568,48,1395,538,2801,2379,3190,5428,50,1276, - 2858,5428,5428,5428,3336,5428,344,1568,48,5428, - 2795,344,5428,5428,157,508,36,1002,389,157, - 5428,1403,2093,2823,5428,161,5428,3465,2801,2858, - 508,36,1002,389,2858,508,36,1002,389,2810, - 5428,5428,5428,2447,3012,4279,5428,2927,5428,50, - 508,36,1002,389,5428,5428,5428,5428,1568,1119, - 5428,5428,5428,5428,50,344,5428,56,56,50, - 5428,538,2927,1568,2411,531,1578,56,1568,2129, - 4842,538,56,5428,50,5428,2927,56,2858,344, - 344,538,4208,1568,664,5428,56,157,534,344, - 2927,56,5428,5428,344,1276,189,157,5428,344, - 5428,56,4481,2858,5428,2927,189,157,344,5428, - 5428,5428,4481,1654,5428,5428,189,2858,5428,5428, - 5428,157,4481,344,5428,5428,5428,1670,5428,5428, - 4312,2858,5428,5428,5428,5428,5428,5428,5428,5428, - 5428,3616,5428,5428,5428,5428,2858,5428,5428,5428, - 5428,5428,5428,5428,97,5428,535,5428,5428,5428, - 4211,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 4214,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 4215,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,5428,5428, - 5428,4205,5428,0,576,1,0,820,1,0, - 40,1,5443,0,40,1,5442,0,1406,1, - 0,40,5443,0,40,5442,0,1490,319,0, - 1533,30,0,441,1576,0,455,1619,0,5443, - 49,0,5442,49,0,39,738,0,39,5443, - 0,39,5442,0,5434,1,0,5433,1,0, - 284,395,0,284,287,0,5663,242,0,5662, - 242,0,5767,242,0,5766,242,0,5690,242, - 0,5689,242,0,5688,242,0,5687,242,0, - 5686,242,0,5685,242,0,5684,242,0,5683, - 242,0,5701,242,0,5700,242,0,5699,242, - 0,5698,242,0,5697,242,0,5696,242,0, - 5695,242,0,5694,242,0,5693,242,0,5692, - 242,0,5691,242,0,40,242,5443,0,40, - 242,5442,0,5467,242,0,1533,388,0,2701, - 127,0,36,34,0,1,445,0,459,2313, - 0,458,2814,0,48,38,0,5467,1,0, - 40,1,0,1349,92,0,33,35,0,40, - 738,0,1,725,0,1,5701,0,1,5700, - 0,1,5699,0,1,5698,0,1,5697,0, - 1,5696,0,1,5695,0,1,5694,0,1, - 5693,0,1,5692,0,1,5691,0,44,5465, - 0,44,38,0,502,1886,0,5467,1,230, - 0,40,1,230,0,230,417,0,5443,38, - 0,5442,38,0,238,2895,0,389,33,0, - 388,30,0,2701,129,0,2701,128,0,332, - 446,0,5438,406,0,5437,406,0,1,4370, - 0,1,2958,0,1,738,0,230,416,0, - 1,93,0,5465,46,0,38,46,0,1, - 332,0,2,5443,38,0,2,5442,38,0, - 5443,37,0,5442,37,0,502,4213,0,1, - 230,0,230,221,0,332,96,0,36,74, - 0,230,220,0,279,3712,0,5440,1,0, - 5436,1,0,1,230,2669,0,5437,230,0, - 2808,230,0,5440,384,0,5439,384,0,2879, - 230,0,10,12,0,8,10,12,0,186, - 3514,0,2978,384,0,8,12,0 + 196,196,196,196,196,196,196,196,196,77, + 82,82,173,173,133,133,112,112,112,112, + 112,112,3,134,134,132,132,113,113,85, + 78,74,161,161,114,114,197,197,197,135, + 135,127,127,198,198,174,174,1119,35,1696, + 1678,1101,4669,27,30,31,992,994,26,28, + 1671,25,23,50,1221,106,76,77,108,2517, + 1227,1297,1262,1340,1307,1399,1350,245,1438,675, + 1409,273,1446,1456,143,415,35,396,158,144, + 761,1472,35,939,32,2074,4673,27,30,31, + 992,994,57,28,1725,3070,35,939,32,232, + 2627,27,30,31,992,994,26,28,1219,25, + 23,50,1221,106,76,77,108,1174,1227,1297, + 1262,1340,1307,1782,235,230,231,502,35,1001, + 388,3070,35,939,32,274,2627,27,30,31, + 992,994,26,28,1219,25,23,50,1221,106, + 76,77,108,1392,1712,242,245,248,251,1126, + 354,431,1350,2311,35,277,2805,64,1090,1783, + 35,939,32,523,4673,27,30,31,992,994, + 56,28,1670,569,3283,2411,2893,2930,3071,4493, + 2253,35,939,32,2926,2627,27,30,31,992, + 994,26,28,1219,25,23,50,1221,106,76, + 77,108,343,1227,1297,1262,1340,1307,1399,1350, + 61,1438,1160,1409,1102,1446,1456,143,3536,4834, + 1178,517,144,1648,2523,2857,1326,502,1524,1499, + 34,3464,502,35,282,518,2253,35,939,32, + 2926,2627,27,30,31,992,994,26,28,1219, + 25,23,50,1221,106,76,77,108,343,1227, + 1297,1262,1340,1307,1399,1350,150,1438,312,1409, + 3275,1446,1456,143,155,35,453,517,144,4719, + 1577,2857,502,1954,332,155,35,279,3922,865, + 3486,518,2559,513,1979,35,939,32,60,4854, + 27,30,31,992,994,26,28,2523,511,415, + 35,396,1841,2644,1842,1775,2935,2253,35,939, + 32,2926,2627,27,30,31,992,994,26,28, + 1219,25,23,50,1221,106,76,77,108,343, + 1227,1297,1262,1340,1307,1399,1350,443,1438,513, + 1409,2086,1446,1456,143,502,35,1971,517,144, + 42,1868,2857,494,3003,150,1326,2050,1843,3227, + 1842,3464,518,2461,35,939,32,2926,2627,27, + 30,31,992,994,26,28,1219,25,23,50, + 1221,106,76,77,108,343,1227,1297,1262,1340, + 1307,1399,1350,2419,1438,288,1409,2926,1446,1456, + 143,155,35,279,517,144,4869,580,2857,356, + 1577,415,35,396,332,343,353,531,518,1635, + 513,1979,35,939,32,413,4854,27,30,31, + 992,994,59,28,446,2510,2631,3374,1450,1850, + 2050,1842,2596,35,939,32,2412,2627,27,30, + 31,992,994,26,28,1219,25,23,50,1221, + 106,76,77,108,2081,1227,1297,1262,1340,1307, + 1399,1350,1809,1438,1895,1409,514,1446,1456,143, + 913,2070,3866,379,144,2322,35,939,32,243, + 2627,27,30,31,992,994,26,28,1219,25, + 23,50,1221,106,76,77,108,322,1227,1297, + 1262,1340,1307,1399,1350,381,1438,228,1409,1584, + 1446,1456,143,2363,1795,3866,379,144,2159,2098, + 3070,35,939,32,1919,2627,27,30,31,992, + 994,26,28,1219,25,23,50,1221,106,76, + 77,108,1448,1227,1297,1262,1340,1307,1399,1350, + 2220,1438,2559,1409,2824,1446,1497,164,1833,2174, + 1795,385,3528,1010,390,427,2528,35,939,32, + 3868,2627,27,30,31,992,994,26,28,1219, + 25,23,50,1221,106,76,77,108,2171,1227, + 1297,1262,1340,1307,1399,1350,1908,1438,386,1409, + 1661,1446,1456,143,386,3528,3866,379,144,438, + 502,3888,423,70,2836,35,939,32,3817,2627, + 27,30,31,992,994,26,28,1219,25,23, + 50,1221,106,76,77,108,2428,1227,1297,1262, + 1340,1307,1399,1350,2435,1438,326,1409,2559,1446, + 1456,143,1878,2637,2469,373,144,2836,35,939, + 32,2222,2627,27,30,31,992,994,26,28, + 1219,25,23,50,1221,106,76,77,108,355, + 1227,1297,1262,1340,1307,1399,1350,531,1438,1475, + 1409,2624,1446,1456,143,377,3528,585,373,144, + 3809,2320,2836,35,939,32,2644,2627,27,30, + 31,992,994,26,28,1219,25,23,50,1221, + 106,76,77,108,865,1227,1297,1262,1340,1307, + 1399,1350,2247,1438,2492,1409,324,1446,1456,143, + 322,2126,372,373,144,2836,35,939,32,1708, + 2627,27,30,31,992,994,26,28,1219,25, + 23,50,1221,106,76,77,108,236,1227,1297, + 1262,1340,1307,1399,1350,323,1438,2075,1409,404, + 1446,1456,143,531,3138,371,158,144,2664,35, + 939,32,2320,2627,27,30,31,992,994,26, + 28,1219,25,23,50,1221,106,76,77,108, + 846,1227,1297,1262,1340,1307,1399,1350,150,1438, + 1236,1409,1275,1446,1497,164,2394,35,939,32, + 369,2627,27,30,31,992,994,26,28,1219, + 25,23,50,1221,106,76,77,108,3575,1227, + 1297,1262,1340,1307,1399,1350,71,1438,2154,1409, + 3009,1446,1456,143,502,35,293,142,144,1360, + 447,327,502,35,293,2078,35,939,32,142, + 1093,41,30,31,992,994,2836,35,939,32, + 1670,2627,27,30,31,992,994,26,28,1219, + 25,23,50,1221,106,76,77,108,1251,1227, + 1297,1262,1340,1307,1399,1350,214,1438,494,1409, + 2047,1446,1456,143,3761,421,1379,155,144,2836, + 35,939,32,325,2627,27,30,31,992,994, + 26,28,1219,25,23,50,1221,106,76,77, + 108,3723,1227,1297,1262,1340,1307,1399,1350,150, + 1438,447,1409,3450,1446,1456,143,1500,3829,2495, + 154,144,2836,35,939,32,4209,2627,27,30, + 31,992,994,26,28,1219,25,23,50,1221, + 106,76,77,108,1328,1227,1297,1262,1340,1307, + 1399,1350,150,1438,2287,1409,690,1446,1456,143, + 502,2934,2388,153,144,2836,35,939,32,2658, + 2627,27,30,31,992,994,26,28,1219,25, + 23,50,1221,106,76,77,108,1789,1227,1297, + 1262,1340,1307,1399,1350,150,1438,1627,1409,746, + 1446,1456,143,1333,1271,1446,152,144,2836,35, + 939,32,2052,2627,27,30,31,992,994,26, + 28,1219,25,23,50,1221,106,76,77,108, + 380,1227,1297,1262,1340,1307,1399,1350,150,1438, + 1716,1409,827,1446,1456,143,1377,93,418,151, + 144,2836,35,939,32,590,2627,27,30,31, + 992,994,26,28,1219,25,23,50,1221,106, + 76,77,108,848,1227,1297,1262,1340,1307,1399, + 1350,150,1438,523,1409,4515,1446,1456,143,1822, + 1907,2249,150,144,2836,35,939,32,3343,2627, + 27,30,31,992,994,26,28,1219,25,23, + 50,1221,106,76,77,108,3269,1227,1297,1262, + 1340,1307,1399,1350,408,1438,580,1409,1102,1446, + 1456,143,1459,4643,1791,149,144,2836,35,939, + 32,1863,2627,27,30,31,992,994,26,28, + 1219,25,23,50,1221,106,76,77,108,932, + 1227,1297,1262,1340,1307,1399,1350,1616,1438,1881, + 1409,1102,1446,1456,143,1911,4647,2280,148,144, + 2836,35,939,32,2344,2627,27,30,31,992, + 994,26,28,1219,25,23,50,1221,106,76, + 77,108,2044,1227,1297,1262,1340,1307,1399,1350, + 150,1438,2156,1409,2963,1446,1456,143,2696,1355, + 1502,147,144,2836,35,939,32,400,2627,27, + 30,31,992,994,26,28,1219,25,23,50, + 1221,106,76,77,108,56,1227,1297,1262,1340, + 1307,1399,1350,150,1438,472,1409,2900,1446,1456, + 143,1825,1975,2168,146,144,2836,35,939,32, + 2381,2627,27,30,31,992,994,26,28,1219, + 25,23,50,1221,106,76,77,108,2124,1227, + 1297,1262,1340,1307,1399,1350,150,1438,2420,1409, + 3109,1446,1456,143,1002,2500,2082,145,144,2836, + 35,939,32,2454,2627,27,30,31,992,994, + 26,28,1219,25,23,50,1221,106,76,77, + 108,2484,1227,1297,1262,1340,1307,1399,1350,150, + 1438,2485,1409,984,1446,1456,143,2491,2452,2567, + 159,144,2836,35,939,32,2516,2627,27,30, + 31,992,994,26,28,1219,25,23,50,1221, + 106,76,77,108,2387,1227,1297,1262,1340,1307, + 1399,1350,150,1438,2423,1409,2338,1446,1456,143, + 2518,2551,2347,140,144,2953,35,939,32,2486, + 2627,27,30,31,992,994,26,28,1219,25, + 23,50,1221,106,76,77,108,1323,1227,1297, + 1262,1340,1307,1399,1350,150,1438,1010,1409,3187, + 1446,1456,143,1995,35,277,189,144,3070,35, + 939,32,1621,2627,27,30,31,992,994,26, + 28,1219,25,23,50,1221,106,76,77,108, + 1103,1227,1297,1262,1340,1307,1399,1350,1897,1438, + 2525,1409,4305,1446,1497,164,3070,35,939,32, + 402,2627,27,30,31,992,994,26,28,1219, + 25,23,50,1221,106,76,77,108,2515,1227, + 1297,1262,1340,1307,1399,1350,2637,1438,3818,1409, + 498,1446,1497,164,2131,35,939,32,1795,2583, + 40,30,31,992,994,2094,3070,35,939,32, + 292,2627,27,30,31,992,994,26,28,1219, + 25,23,50,1221,106,76,77,108,1341,1227, + 1297,1262,1340,1307,1399,1350,150,1438,2005,1409, + 1275,1446,1497,164,3070,35,939,32,422,2627, + 27,30,31,992,994,26,28,1219,25,23, + 50,1221,106,76,77,108,4208,1227,1297,1262, + 1340,1307,1399,1350,150,1438,1179,1409,734,1446, + 1497,164,2131,35,939,32,1795,2064,2604,30, + 31,992,994,2094,3125,35,939,32,425,2627, + 27,30,31,992,994,26,28,1219,25,23, + 50,1221,106,76,77,108,2276,1227,1297,1262, + 1340,1307,1399,1350,150,1438,3698,1409,3511,1446, + 1497,164,3070,35,939,32,3143,2627,27,30, + 31,992,994,26,28,1219,25,23,50,1221, + 106,76,77,108,389,1227,1297,1262,1340,1307, + 1399,1350,150,1438,1795,1409,3514,1835,1987,35, + 939,32,2590,4854,27,30,31,992,994,58, + 28,2094,3070,35,939,32,2925,2627,27,30, + 31,992,994,26,28,1219,25,23,50,1221, + 106,76,77,108,2824,1227,1297,1262,1340,1307, + 1399,1350,1010,1438,1982,1807,3070,35,939,32, + 525,2627,27,30,31,992,994,26,28,1219, + 25,23,50,1221,106,76,77,108,2081,1227, + 1297,1262,1340,1307,1399,1350,497,1799,3070,35, + 939,32,2560,2627,27,30,31,992,994,26, + 28,1219,25,23,50,1221,106,76,77,108, + 2591,1227,1297,1262,1340,1307,1399,1800,1608,35, + 939,32,3224,4598,27,30,31,992,994,339, + 28,502,35,3041,2563,460,1638,35,939,32, + 736,2768,27,30,31,992,994,339,28,2243, + 1341,1232,1367,502,35,1001,388,3464,1719,35, + 939,32,2962,2768,27,30,31,992,994,339, + 28,150,1577,1982,2064,2926,332,319,1388,321, + 1795,314,1191,502,35,1499,276,452,391,427, + 351,2618,2552,343,313,319,1388,321,2064,314, + 1191,502,35,1001,388,350,1577,2584,4402,69, + 333,352,730,232,2094,2182,2857,319,1388,321, + 2824,314,1191,843,35,453,509,352,4719,344, + 585,861,349,352,2632,434,524,722,244,230, + 231,284,306,310,594,346,585,861,349,1564, + 2585,344,585,861,349,502,35,1499,278,2433, + 2131,35,939,32,3261,285,2806,30,31,992, + 994,3070,35,939,32,2643,2627,27,30,31, + 992,994,26,28,1219,25,23,50,1221,106, + 76,77,108,2050,1227,1297,1262,1340,1792,3070, + 35,939,32,413,2627,27,30,31,992,994, + 26,28,1219,25,23,50,1221,106,76,77, + 108,366,1227,1297,1262,1340,1798,1729,35,1997, + 32,3224,4598,27,30,31,992,994,339,28, + 3070,35,939,32,2353,2627,27,30,31,992, + 994,26,28,1219,25,23,50,1221,106,76, + 77,108,1751,1227,1297,1262,1739,1216,35,1001, + 388,2623,1982,757,35,1001,388,502,35,1499, + 1970,1577,406,2619,1102,332,319,1388,321,4693, + 314,1191,1048,450,2510,2631,150,1995,35,280, + 3707,49,1962,1264,322,150,2625,273,2654,1275, + 1567,2128,3544,3070,35,939,32,4402,2627,27, + 30,31,992,994,26,28,1219,25,23,50, + 1221,106,76,77,108,156,1227,1297,1262,1747, + 3070,35,939,32,3000,2627,27,30,31,992, + 994,26,28,1219,25,23,50,1221,106,76, + 77,108,3403,1227,1297,1262,1749,3070,35,939, + 32,1972,2627,27,30,31,992,994,26,28, + 1219,25,23,50,1221,106,76,77,108,72, + 1227,1704,417,419,1979,1503,35,939,32,3224, + 2768,27,30,31,992,994,339,28,587,35, + 1001,388,3070,35,939,32,2022,2627,27,30, + 31,992,994,26,28,1219,25,23,50,1221, + 106,76,77,108,1982,1227,1297,1262,1755,259, + 1982,1982,49,537,2377,1326,2353,87,1275,1982, + 3464,1567,2040,1010,319,1388,321,2656,314,1191, + 2730,228,1982,2416,2346,3036,4137,1275,2799,156, + 2064,313,24,1876,156,2735,1,180,3413,2824, + 537,69,200,4205,299,203,215,4566,202,212, + 213,214,216,156,68,169,2736,2155,228,1577, + 150,876,162,332,1275,168,156,183,167,170, + 171,172,173,174,180,3413,2824,2737,173,307, + 310,594,203,215,4566,202,212,213,214,216, + 156,182,169,1246,2213,2968,459,297,1275,1825, + 1015,1954,168,181,184,167,170,171,172,173, + 174,1899,35,939,32,736,2768,27,30,31, + 992,994,339,28,160,2688,3180,35,1001,388, + 1380,4508,352,1892,2629,1460,35,939,32,237, + 4598,27,30,31,992,994,339,28,2744,2723, + 344,585,861,349,4738,232,2651,2719,342,1010, + 273,2926,1806,1338,1375,1321,2926,3464,2037,4531, + 319,1388,321,3464,314,1191,1982,2382,2836,343, + 247,230,231,2064,2396,1102,352,526,232,1577, + 4754,2976,232,333,319,1388,321,351,315,1191, + 1010,4312,662,2553,344,585,861,349,53,1795, + 352,1982,527,235,230,231,1577,250,230,231, + 332,5427,1577,287,274,3145,333,5427,346,585, + 861,349,2159,35,293,5427,502,35,1001,388, + 352,2502,4159,87,242,245,248,251,1126,2824, + 296,2081,2935,360,2434,1964,5427,1090,344,585, + 861,349,328,335,5427,376,2433,2801,1592,1620, + 273,1498,3315,3283,2411,2893,2930,3071,4493,3070, + 35,939,32,51,2627,27,30,31,992,994, + 26,28,1219,25,23,50,1221,106,76,77, + 108,1010,1227,1297,1757,3070,35,939,32,1338, + 2627,27,30,31,992,994,26,28,1219,25, + 23,50,1221,106,76,77,108,345,1227,1297, + 1764,537,1102,232,340,5427,2186,4758,415,35, + 1626,2553,2693,1010,88,1338,5427,102,1458,228, + 3591,442,2926,456,5427,5427,5427,156,253,230, + 231,393,427,5427,431,180,3413,2824,537,374, + 2396,3145,49,203,215,4566,202,212,213,214, + 216,1567,2391,169,97,5427,228,1015,1954,502, + 35,1001,388,168,156,2933,167,170,171,172, + 173,174,180,3413,2824,2064,5427,3145,3604,335, + 203,215,4566,202,212,213,214,216,517,1982, + 169,2139,537,433,1326,2926,98,1249,5427,3464, + 168,2926,178,167,170,171,172,173,174,505, + 228,1982,2062,2396,334,335,945,4708,156,2396, + 5427,52,2308,2081,535,603,180,3413,2824,537, + 504,2353,2353,2064,203,215,4566,202,212,213, + 214,216,304,2224,169,1458,2345,228,1577,2926, + 2926,503,332,3381,168,156,176,167,170,171, + 172,173,174,180,3413,2824,239,2396,2396,221, + 303,203,215,4566,202,212,213,214,216,689, + 287,169,361,537,4415,150,541,3922,360,3696, + 5427,168,1982,177,167,170,171,172,173,174, + 382,228,3241,1592,1620,502,35,1001,388,156, + 5427,2458,1964,5427,2949,232,775,180,3413,2824, + 537,2159,2467,293,2262,203,215,4566,202,212, + 213,214,216,392,427,169,505,505,228,432, + 240,230,231,5427,2553,168,156,187,167,170, + 171,172,173,174,180,3413,2824,504,504,44, + 1868,3315,203,215,4566,202,212,213,214,216, + 5427,5427,169,502,35,1499,281,1631,502,502, + 429,1231,168,2353,2964,167,170,171,172,173, + 174,1869,35,939,32,3224,2768,27,30,31, + 992,994,339,28,2352,1223,35,939,32,2587, + 2768,27,30,31,992,994,339,28,617,2509, + 1249,179,2353,861,2926,2186,42,537,1233,35, + 1499,276,5427,5427,502,35,1001,388,502,2086, + 1499,74,2396,403,5427,228,502,35,1001,388, + 319,1388,321,156,314,1191,502,35,1001,388, + 198,180,3413,2824,316,1936,321,313,49,203, + 215,4566,202,212,213,214,216,1567,1128,169, + 273,1338,2213,947,1338,89,1275,537,102,168, + 49,192,167,170,171,172,173,174,1795,1567, + 2013,1233,35,1499,2099,228,502,35,1499,2370, + 2240,360,160,156,150,306,310,594,3051,5427, + 1033,180,3413,2824,537,3322,1592,1620,42,203, + 215,4566,202,212,213,214,216,4295,3871,169, + 522,5427,228,3145,275,1982,3145,5427,2643,168, + 156,186,167,170,171,172,173,174,180,3413, + 2824,150,5427,3407,1878,3253,203,215,4566,202, + 212,213,214,216,150,2094,169,90,802,3219, + 3730,335,5427,3764,335,1982,168,559,194,167, + 170,171,172,173,174,3070,35,939,32,5427, + 2627,27,30,31,992,994,26,28,1219,25, + 23,50,1221,106,76,77,108,3722,1227,1706, + 3070,35,939,32,5427,2627,27,30,31,992, + 994,26,28,1219,25,23,50,1221,106,76, + 77,108,522,1714,3070,35,939,32,5427,2627, + 27,30,31,992,994,26,28,1219,25,23, + 50,1221,106,76,77,108,1566,1721,150,2377, + 2926,1982,3706,537,5427,150,1827,1338,2062,2926, + 2926,2213,150,4708,5427,1275,3276,5427,228,1549, + 150,3873,150,1795,1322,5427,817,343,228,156, + 150,5427,150,67,1082,1982,1275,180,3413,5427, + 1982,160,205,215,4566,204,212,213,214,216, + 2857,2353,205,215,4566,204,212,213,214,216, + 507,1326,156,2824,150,195,3464,66,1178,3145, + 5427,3701,65,206,208,210,294,295,1886,376, + 217,207,209,206,208,210,294,295,1886,197, + 217,207,209,1816,35,1997,32,3224,2768,27, + 30,31,992,994,339,28,330,335,3921,1102, + 2949,2830,1914,4222,4766,1577,2926,1706,150,4841, + 1102,2983,3812,4222,150,4783,5427,5427,3456,2353, + 3070,35,939,32,228,2627,27,30,31,992, + 994,26,28,1219,25,23,50,1221,106,76, + 77,85,319,1388,321,1982,314,1191,205,215, + 4566,204,212,213,214,216,150,302,150,1264, + 3263,150,3558,150,2348,962,430,3421,2911,5427, + 4684,196,5427,3824,873,5427,5427,64,2353,206, + 208,210,294,295,1886,5427,217,207,209,3070, + 1524,939,1585,94,2627,27,30,31,992,994, + 26,28,1219,25,23,50,1221,106,76,77, + 84,1982,502,35,1001,388,201,3205,5427,4222, + 3070,35,939,32,5427,2627,27,30,31,992, + 994,26,28,1219,25,23,50,1221,106,76, + 77,83,5427,55,5427,1982,49,5427,418,419, + 1979,3070,35,939,32,46,2627,27,30,31, + 992,994,26,28,1219,25,23,50,1221,106, + 76,77,82,3070,35,939,32,54,2627,27, + 30,31,992,994,26,28,1219,25,23,50, + 1221,106,76,77,81,3070,35,939,32,5427, + 2627,27,30,31,992,994,26,28,1219,25, + 23,50,1221,106,76,77,80,3070,35,939, + 32,5427,2627,27,30,31,992,994,26,28, + 1219,25,23,50,1221,106,76,77,79,3070, + 35,939,32,5427,2627,27,30,31,992,994, + 26,28,1219,25,23,50,1221,106,76,77, + 78,2898,35,939,32,5427,2627,27,30,31, + 992,994,26,28,1219,25,23,50,1221,106, + 76,77,104,3070,35,939,32,5427,2627,27, + 30,31,992,994,26,28,1219,25,23,50, + 1221,106,76,77,110,3070,35,939,32,5427, + 2627,27,30,31,992,994,26,28,1219,25, + 23,50,1221,106,76,77,109,3070,35,939, + 32,5427,2627,27,30,31,992,994,26,28, + 1219,25,23,50,1221,106,76,77,107,3070, + 35,939,32,5427,2627,27,30,31,992,994, + 26,28,1219,25,23,50,1221,106,76,77, + 105,3015,35,939,32,1982,2627,27,30,31, + 992,994,26,28,1219,25,23,50,1221,86, + 76,77,2001,1982,1805,2353,2926,1982,1982,2353, + 1982,150,1653,1982,1982,2926,2926,101,5427,5427, + 5427,5427,1740,5427,228,1982,2926,5427,5427,5427, + 5427,5427,5427,343,228,3262,529,150,5427,451, + 378,1275,3309,199,228,3346,3453,298,205,215, + 4566,204,212,213,214,216,2857,2264,205,215, + 4566,204,212,213,214,216,1628,156,205,215, + 4566,204,212,213,214,216,3735,5427,2353,206, + 208,210,294,295,1886,1982,520,207,209,206, + 208,210,294,295,1886,2353,519,207,209,206, + 208,210,294,295,1886,2088,218,207,209,2926, + 150,1982,1982,5427,1275,2175,2823,2440,5427,2926, + 150,5427,2353,5427,1275,5427,5427,228,5427,5427, + 5427,5427,5427,222,5427,5427,5427,228,5427,5427, + 156,5427,5427,4322,3550,5427,5427,5427,5427,3740, + 156,205,215,4566,204,212,213,214,216,3855, + 193,205,215,4566,204,212,213,214,216,1503, + 35,939,32,3224,2768,27,30,31,992,994, + 339,28,206,208,210,294,295,1886,5427,305, + 207,209,206,208,210,294,295,1886,5427,499, + 207,209,1695,35,939,32,5427,4598,27,30, + 31,992,994,339,28,1695,35,939,32,5427, + 4598,27,30,31,992,994,339,28,319,1388, + 321,5427,314,1191,5427,5427,5427,2213,5427,5427, + 5427,1275,5427,5427,5427,2632,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,2562,1577,5427,5427,2926, + 333,319,1388,321,5427,317,1191,160,5427,1577, + 5427,5427,5427,333,319,1388,321,343,315,1191, + 1503,35,939,32,3224,2768,27,30,31,992, + 994,339,28,3229,35,1001,388,5427,4508,5427, + 3874,5427,5427,150,5427,5427,238,2926,587,35, + 1001,388,5427,5427,5427,1181,5427,5427,5427,2926, + 4849,5427,5427,5427,5427,343,5427,273,5427,5427, + 5427,1806,5427,5427,3955,2926,3464,228,5427,319, + 1388,321,49,314,1191,5427,5427,5427,2857,5427, + 5427,1567,1583,2396,5427,232,2956,5427,1635,5427, + 5427,1271,407,3435,5427,3476,1956,35,939,32, + 2378,2768,27,30,31,992,994,339,28,5427, + 236,230,231,1286,5427,1577,5427,2926,4849,332, + 5427,274,408,409,410,294,295,1886,587,35, + 1001,388,5427,5427,2213,228,5427,5427,1275,5427, + 5427,243,246,249,252,1126,5427,1884,5427,5427, + 5427,2412,360,5427,1090,316,1936,321,5427,1271, + 407,3435,49,5427,160,5427,2801,1592,1620,5427, + 5427,1567,3540,929,35,1001,388,587,35,1001, + 388,5427,4285,150,5427,3036,5427,1275,5427,5427, + 408,409,410,294,295,1886,5427,5427,5427,1385, + 35,1001,388,929,35,1001,388,49,411,413, + 5427,49,5427,156,2425,1884,1567,47,537,5427, + 1567,47,3101,929,35,1001,388,5427,5427,5427, + 2657,4185,2187,49,742,4583,343,49,587,35, + 1001,388,1567,2216,156,5427,1567,2409,5427,587, + 35,1001,388,188,3407,5427,3476,49,5427,4480, + 2633,5427,5427,5427,5427,5427,1567,47,587,35, + 1001,388,49,5427,5427,5427,411,414,5427,5427, + 2520,1567,47,49,1602,35,1001,388,587,35, + 1001,388,1567,47,5427,627,587,35,1001,388, + 5427,5427,49,5427,150,5427,2413,5427,537,5427, + 5427,1567,47,1618,35,1001,388,190,49,5427, + 5427,5427,49,5427,5427,2461,343,1567,47,5427, + 49,1567,47,150,156,5427,5427,537,150,1567, + 47,1394,537,2800,2213,3189,5427,49,1275,2857, + 5427,5427,5427,3335,5427,343,1567,47,5427,2794, + 343,5427,5427,156,502,35,1001,388,156,5427, + 1402,2067,2822,5427,160,5427,3464,2800,2857,502, + 35,1001,388,2857,502,35,1001,388,2809,5427, + 5427,5427,2219,3011,4278,5427,2926,5427,49,502, + 35,1001,388,5427,5427,5427,5427,1567,1118,5427, + 5427,5427,5427,49,343,5427,150,150,49,5427, + 537,2926,1567,2410,530,1577,150,1567,2128,4841, + 537,150,5427,49,5427,2926,150,2857,343,343, + 537,4207,1567,663,5427,150,156,533,343,2926, + 150,5427,5427,343,1275,188,156,5427,343,5427, + 150,4480,2857,5427,2926,188,156,343,5427,5427, + 5427,4480,1653,5427,5427,188,2857,5427,5427,5427, + 156,4480,343,5427,5427,5427,1669,5427,5427,4311, + 2857,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 3615,5427,5427,5427,5427,2857,5427,5427,5427,5427, + 5427,5427,5427,96,5427,534,5427,5427,5427,4210, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,4213, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,4214, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 4204,5427,0,575,1,0,819,1,0,39, + 1,5442,0,39,1,5441,0,1405,1,0, + 39,5442,0,39,5441,0,1489,318,0,1532, + 29,0,440,1575,0,454,1618,0,5442,48, + 0,5441,48,0,38,737,0,38,5442,0, + 38,5441,0,5433,1,0,5432,1,0,283, + 394,0,283,286,0,5661,241,0,5660,241, + 0,5765,241,0,5764,241,0,5688,241,0, + 5687,241,0,5686,241,0,5685,241,0,5684, + 241,0,5683,241,0,5682,241,0,5681,241, + 0,5699,241,0,5698,241,0,5697,241,0, + 5696,241,0,5695,241,0,5694,241,0,5693, + 241,0,5692,241,0,5691,241,0,5690,241, + 0,5689,241,0,39,241,5442,0,39,241, + 5441,0,5465,241,0,1532,387,0,2700,126, + 0,35,33,0,1,444,0,458,2312,0, + 457,2813,0,47,37,0,5465,1,0,39, + 1,0,1348,91,0,32,34,0,39,737, + 0,1,724,0,1,5699,0,1,5698,0, + 1,5697,0,1,5696,0,1,5695,0,1, + 5694,0,1,5693,0,1,5692,0,1,5691, + 0,1,5690,0,1,5689,0,43,5463,0, + 43,37,0,501,1885,0,5465,1,229,0, + 39,1,229,0,229,416,0,5442,37,0, + 5441,37,0,237,2894,0,388,32,0,387, + 29,0,2700,128,0,2700,127,0,331,445, + 0,5437,405,0,5436,405,0,1,4369,0, + 1,2957,0,1,737,0,229,415,0,1, + 92,0,5463,45,0,37,45,0,1,331, + 0,2,5442,37,0,2,5441,37,0,5442, + 36,0,5441,36,0,501,4212,0,1,229, + 0,229,220,0,331,95,0,35,73,0, + 229,219,0,278,3711,0,5439,1,0,5435, + 1,0,1,229,2668,0,5436,229,0,2807, + 229,0,5439,383,0,5438,383,0,2878,229, + 0,10,12,0,8,10,12,0,185,3513, + 0,2977,383,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1111,347 +1111,351 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 30,31,32,33,34,35,36,37,38,39, 40,0,42,43,44,45,46,47,48,49, 50,51,52,53,54,0,56,57,58,59, - 60,61,62,63,0,65,66,67,68,0, - 1,2,72,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,64,42, - 43,44,45,46,47,48,49,50,51,52, - 53,54,101,56,57,58,59,60,61,62, - 63,0,65,66,67,68,0,1,2,72, - 4,0,75,76,77,78,79,80,81,82, - 83,84,85,86,0,1,2,3,4,5, + 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,72,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,0,56,57,58,59,60,61,62,0, + 64,65,66,67,0,1,2,71,4,118, + 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,0,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,56,57, + 58,59,60,61,62,0,64,65,66,67, + 99,6,0,71,0,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,55, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,100,56,57,58,59,60,61, + 62,0,64,65,66,67,5,92,93,102, + 103,104,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,64,42,43,44,45, + 36,37,38,39,40,0,42,43,44,45, 46,47,48,49,50,51,52,53,54,0, - 56,57,58,59,60,61,62,63,0,65, - 66,67,68,0,6,0,72,0,3,75, + 56,57,58,59,60,61,62,0,64,65, + 66,67,0,6,0,1,2,0,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,55,42,43,44,45,46,47,48, - 49,50,51,52,53,54,0,56,57,58, - 59,60,61,62,63,0,65,66,67,68, - 0,93,94,0,1,2,75,76,77,78, - 79,80,81,82,83,84,85,86,0,1, + 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,0,42,43,44,45,46,47,48,49, + 50,51,52,53,54,68,56,57,58,59, + 60,61,62,0,64,65,66,67,99,92, + 93,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,0,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,100,56,57,58,59,60,61,62,0, + 64,65,66,67,0,6,0,1,2,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,0,42,43,44,45,46,47, + 48,49,50,51,52,53,54,68,56,57, + 58,59,60,61,62,0,64,65,66,67, + 0,92,93,89,0,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,64, + 32,33,34,35,36,37,38,39,40,0, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,73,56,57,58,59,60,61, - 62,63,0,65,66,67,68,0,6,103, - 104,105,5,75,76,77,78,79,80,81, - 82,83,84,85,86,0,1,2,3,4, + 52,53,54,69,56,57,58,59,60,61, + 62,0,64,65,66,67,0,1,2,0, + 0,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,0,42,43,44,45, + 46,47,48,49,50,51,52,53,54,69, + 56,57,58,59,60,61,62,0,64,65, + 66,67,0,1,2,0,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,0,42,43,44,45,46,47,48,49, + 50,51,52,53,54,68,56,57,58,59, + 60,61,62,0,64,65,66,67,0,1, + 2,0,87,88,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,0,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,0,56,57,58,59,60,61,62,0, + 64,65,66,67,0,1,2,8,87,88, + 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,72,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,56,57, + 58,59,60,61,62,0,64,65,66,67, + 0,0,0,1,2,4,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,41,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,0, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,0,56,57,58,0,0,61, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,0,1,2,40,39, + 120,41,0,1,2,3,4,5,69,7, + 8,0,0,1,2,0,56,57,58,59, + 60,68,62,70,9,0,69,25,0,0, + 0,71,72,22,23,24,8,26,27,28, + 29,30,31,32,33,34,86,22,23,24, + 0,26,27,28,29,30,31,32,33,34, + 65,66,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, 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,0,42,43,44, - 45,46,47,48,49,50,51,52,53,54, - 0,56,57,58,59,60,61,62,63,9, - 65,66,67,68,0,93,94,0,1,2, - 75,76,77,78,79,80,81,82,83,84, - 85,86,0,1,2,3,4,5,6,7, + 0,73,0,3,39,0,41,0,8,4, + 3,6,0,6,9,8,9,0,90,69, + 0,56,57,58,59,60,0,62,98,0, + 1,2,25,4,0,6,71,72,9,0, + 23,24,35,36,37,38,0,1,2,3, + 4,86,6,41,0,9,0,55,0,0, + 4,41,55,63,0,1,2,102,103,104, + 63,0,0,73,72,68,69,70,71,72, + 73,22,23,24,0,26,27,28,29,30, + 31,32,33,34,87,88,89,90,91,92, + 93,94,95,96,97,98,99,100,101,63, + 39,55,105,106,107,108,109,110,111,112, + 113,114,115,116,117,0,119,69,3,65, + 66,6,98,8,9,96,97,0,0,0, + 1,2,3,4,5,6,7,10,9,0, + 25,0,1,2,0,4,5,3,7,101, + 35,36,37,38,106,107,108,109,110,111, + 112,113,114,115,116,121,39,0,41,0, + 55,0,0,1,2,3,4,5,63,7, + 9,0,41,68,69,70,71,72,73,22, + 23,24,63,26,27,28,29,30,31,32, + 33,34,87,88,89,90,91,92,93,94, + 95,96,97,98,99,100,101,89,0,91, + 105,106,107,108,109,110,111,112,113,114, + 115,116,117,0,119,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, + 101,0,1,2,39,106,41,0,1,2, + 3,4,5,6,7,0,9,0,1,2, + 0,56,57,58,59,60,0,62,8,64, + 0,68,6,70,0,9,71,0,1,2, + 3,4,5,6,7,25,9,0,1,2, + 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,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,0,42,43,44,45,46,47, - 48,49,50,51,52,53,54,101,56,57, - 58,59,60,61,62,63,0,65,66,67, - 68,0,6,0,1,2,0,75,76,77, - 78,79,80,81,82,83,84,85,86,0, + 28,29,30,31,32,33,34,0,41,55, + 70,39,0,41,0,1,2,3,4,5, + 63,7,87,88,74,0,69,55,56,57, + 58,59,60,8,62,0,64,0,0,1, + 2,3,4,5,0,7,8,3,0,1, + 2,3,4,5,6,7,0,9,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, - 0,42,43,44,45,46,47,48,49,50, - 51,52,53,54,0,56,57,58,59,60, - 61,62,63,9,65,66,67,68,0,93, - 94,90,0,92,75,76,77,78,79,80, - 81,82,83,84,85,86,0,1,2,3, + 31,32,33,34,0,70,71,3,39,0, + 41,63,0,1,2,70,4,5,0,7, + 0,73,4,69,0,56,57,58,59,60, + 72,62,8,64,0,0,1,2,0,4, + 71,6,8,8,9,0,1,2,3,4, + 5,0,7,41,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,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,55,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,73,56,57,58,59,60,61,62,63, - 0,65,66,67,68,0,1,2,0,0, - 5,75,76,77,78,79,80,81,82,83, - 84,85,86,0,1,2,3,4,5,6, + 34,67,0,55,0,39,0,41,0,1, + 2,3,4,5,70,7,8,73,73,89, + 0,91,56,57,58,59,60,72,62,68, + 64,0,68,25,0,90,0,71,0,1, + 2,3,4,5,8,7,0,0,1,2, + 0,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,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,55,42,43,44,45,46, - 47,48,49,50,51,52,53,54,70,56, - 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, + 27,28,29,30,31,32,33,34,41,55, + 0,89,39,91,41,0,1,2,3,4, + 5,63,7,67,0,0,75,87,88,56, + 57,58,59,60,0,62,70,64,0,1, + 2,0,4,5,71,7,0,1,2,8, + 4,5,0,7,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,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,64,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,56,57,58,59, - 60,61,62,63,0,65,66,67,68,0, - 1,2,0,88,89,75,76,77,78,79, - 80,81,82,83,84,85,86,0,1,2, + 30,31,32,33,34,41,0,1,2,39, + 4,41,6,0,70,9,0,1,2,0, + 4,0,6,4,73,9,56,57,58,59, + 60,0,62,0,64,4,0,1,2,0, + 4,8,6,0,0,9,3,0,1,2, + 0,0,5,22,7,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,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,73,42, - 43,44,45,46,47,48,49,50,51,52, - 53,54,0,56,57,58,59,60,61,62, - 63,0,65,66,67,68,0,1,2,8, - 88,89,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,73,42,43,44,45, - 46,47,48,49,50,51,52,53,54,0, - 56,57,58,59,60,61,62,63,0,65, - 66,67,68,0,0,0,1,2,4,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,41,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,0,42,43,44,45,46,47,48, - 49,50,51,52,53,54,0,56,57,58, - 59,0,0,62,0,1,2,3,4,5, + 33,34,41,0,55,0,39,4,41,55, + 0,1,2,8,71,5,63,7,0,96, + 97,90,68,56,57,58,59,60,63,62, + 25,64,72,0,0,0,3,3,0,1, + 2,0,8,102,103,104,8,0,94,95, + 0,1,2,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,0, - 0,1,2,39,4,41,0,1,2,3, - 4,5,70,7,8,0,0,0,0,0, - 0,57,58,59,60,61,6,63,0,9, - 0,25,70,0,35,36,72,73,22,23, - 24,41,26,27,28,29,30,31,32,33, - 34,87,22,23,24,99,26,27,28,29, - 30,31,32,33,34,0,0,103,104,105, - 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,0,88,89,3,39, - 0,41,0,8,4,3,6,102,6,9, - 8,9,107,0,1,2,0,57,58,59, - 60,61,99,63,0,1,2,25,4,5, - 0,7,72,73,4,0,0,35,36,37, - 38,0,0,1,2,3,4,87,6,0, - 0,9,22,0,41,0,0,55,0,64, - 0,1,2,103,104,105,64,0,8,74, - 0,69,70,71,72,73,74,22,23,24, - 39,26,27,28,29,30,31,32,33,34, - 88,89,90,91,92,93,94,95,96,97, - 98,99,100,101,102,69,64,71,106,107, - 108,109,110,111,112,113,114,115,116,117, - 118,0,120,70,3,55,70,6,68,8, - 9,0,1,2,76,0,1,2,3,4, - 5,6,7,73,9,0,25,0,1,2, - 0,4,5,3,7,102,35,36,37,38, - 107,108,109,110,111,112,113,114,115,116, - 117,0,41,0,0,4,55,0,1,2, - 3,4,5,6,7,64,9,0,41,0, - 69,70,71,72,73,74,22,23,24,64, - 26,27,28,29,30,31,32,33,34,88, - 89,90,91,92,93,94,95,96,97,98, - 99,100,101,102,0,0,55,106,107,108, - 109,110,111,112,113,114,115,116,117,118, - 0,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,25,26,27, - 28,29,30,31,32,33,34,90,0,92, - 55,39,4,41,0,1,2,3,4,5, - 0,7,8,0,0,0,1,2,8,57, - 58,59,60,61,0,63,0,65,0,25, - 121,71,88,89,72,25,0,1,2,3, - 4,5,6,7,0,9,0,23,24,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,25,26,27,28,29, - 30,31,32,33,34,0,1,2,75,39, - 5,41,7,0,0,1,2,0,4,5, - 64,7,88,89,0,55,70,57,58,59, - 60,61,8,63,70,65,0,1,2,3, - 4,5,0,7,8,97,98,0,1,2, - 3,4,5,6,7,41,9,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,25,26,27,28,29,30,31, - 32,33,34,0,0,71,3,39,74,41, - 64,0,1,2,3,4,5,90,7,92, - 74,69,0,71,0,57,58,59,60,61, - 73,63,8,65,0,0,1,2,0,4, - 72,6,8,8,9,0,1,2,3,4, - 5,0,7,0,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,25,26,27,28,29,30,31,32,33, - 34,69,68,55,41,39,0,41,0,1, - 2,3,4,5,0,7,10,0,74,74, - 0,1,2,57,58,59,60,61,73,63, - 0,65,0,1,2,91,91,0,72,0, - 1,2,3,4,5,39,7,41,0,35, - 36,3,91,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,25, - 26,27,28,29,30,31,32,33,34,0, - 1,2,55,39,5,41,7,0,1,2, - 3,4,5,64,7,0,0,90,0,92, - 4,57,58,59,60,61,0,63,70,65, - 4,0,1,2,0,4,72,6,22,0, - 9,0,1,2,0,4,5,3,7,10, - 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,25,26,27, - 28,29,30,31,32,33,34,0,0,1, - 2,39,4,41,6,0,0,9,0,1, - 2,0,4,69,6,55,0,9,64,57, - 58,59,60,61,8,63,0,65,100,103, - 104,105,0,1,2,0,4,0,6,0, - 0,9,3,0,0,1,2,4,8,87, - 0,1,2,3,4,5,6,7,8,9, + 55,41,0,39,0,41,63,63,0,0, + 8,0,68,68,70,67,8,73,90,10, + 56,57,58,59,60,68,62,0,64,0, + 1,2,0,1,2,6,0,5,0,94, + 95,3,0,1,2,3,4,5,6,7, + 86,9,10,11,12,13,14,15,16,17, + 18,19,20,21,120,0,1,2,59,0, + 41,35,36,41,63,73,0,35,36,37, + 38,73,40,0,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,1,2, + 0,1,2,61,35,36,41,65,66,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,0,0,0,0,41,63, + 4,41,0,8,10,8,35,36,37,38, + 8,40,0,42,43,44,45,46,47,48, + 49,50,51,52,53,54,0,25,35,36, + 0,0,61,39,8,41,0,0,67,8, + 0,72,71,0,1,2,3,4,5,6, + 7,25,9,10,11,12,13,14,15,16, + 17,18,19,20,21,0,71,55,0,0, + 73,3,0,8,0,6,0,0,35,36, + 37,38,8,40,0,42,43,44,45,46, + 47,48,49,50,51,52,53,54,68,25, + 63,0,71,0,61,69,3,0,65,66, + 0,1,2,3,4,5,6,7,0,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,41,0,71,72,39, - 55,41,55,0,1,2,91,0,55,6, - 3,0,0,64,69,3,69,57,58,59, - 60,61,0,63,74,65,119,0,0,0, - 8,35,36,97,98,6,0,1,2,0, - 95,96,95,96,41,0,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,25,26,27,28,29,30,31, - 32,33,34,0,1,2,41,39,0,41, - 68,0,0,1,2,3,4,5,6,7, - 8,9,66,67,0,57,58,59,60,61, - 71,63,0,65,22,23,24,25,26,27, - 28,29,30,31,32,33,34,0,1,2, - 3,4,5,6,7,87,9,10,11,12, - 13,14,15,16,17,18,19,20,21,66, - 67,0,1,2,0,0,64,69,0,55, - 69,0,35,36,37,38,74,40,122,42, - 43,44,45,46,47,48,49,50,51,52, - 53,54,70,56,0,0,1,2,0,62, - 5,0,41,66,67,4,69,0,1,2, + 20,21,55,0,0,0,3,3,73,55, + 0,0,70,3,0,35,36,37,38,0, + 40,0,42,43,44,45,46,47,48,49, + 50,51,52,53,54,0,0,0,3,68, + 3,61,0,55,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,0, - 1,2,0,1,2,71,41,69,0,0, - 0,0,35,36,37,38,8,40,8,42, + 13,14,15,16,17,18,19,20,21,55, + 0,0,0,3,55,3,55,72,0,0, + 69,0,35,36,37,38,0,40,0,42, 43,44,45,46,47,48,49,50,51,52, - 53,54,0,56,0,25,0,69,0,62, - 41,100,0,41,10,68,8,0,0,72, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,0,39,0,41,0,41,69,0, - 8,71,74,0,8,35,36,37,38,0, - 40,8,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,56,0,25,0, - 72,0,62,8,3,8,66,67,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,0,72,3,3,0,8,0, - 74,0,73,35,36,37,38,0,40,10, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,0,56,0,3,0,69,74, - 62,74,0,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,0,60, - 0,3,72,3,0,64,0,3,71,0, - 4,35,36,37,38,0,40,8,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,64,56,0,25,70,3,0,62,0, - 0,4,0,71,68,0,1,2,3,4, + 53,54,0,0,0,63,4,63,61,0, + 0,40,3,3,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,61, + 3,55,0,0,0,3,3,0,0,70, + 35,36,37,38,118,40,0,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 0,90,69,0,70,0,61,0,3,0, + 37,38,67,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,0,63,0,70,4, + 0,55,0,0,4,0,72,69,35,36, + 37,38,10,40,0,42,43,44,45,46, + 47,48,49,50,51,52,53,54,0,69, + 0,3,0,5,6,72,4,9,105,0, + 0,39,3,41,0,0,0,3,3,3, + 55,0,119,0,22,55,3,0,55,0, + 55,0,60,35,36,37,38,0,0,72, + 42,0,0,68,0,0,0,0,0,0, + 40,0,0,55,0,118,0,0,0,0, + 117,63,0,65,66,0,68,69,70,94, + 95,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,87,88,89,0,0, + 92,93,94,95,96,97,98,99,100,101, + 0,0,0,105,0,107,108,109,110,111, + 112,113,114,115,116,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, - 55,3,3,0,0,0,3,3,0,40, - 35,36,37,38,69,40,8,42,43,44, + 0,0,0,0,0,0,0,0,0,0, + 35,36,37,38,0,40,0,42,43,44, 45,46,47,48,49,50,51,52,53,54, - 0,56,62,25,4,0,0,62,0,3, - 95,96,70,68,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,0,0,71,0, - 3,0,0,0,3,0,0,0,0,35, - 36,37,38,0,40,55,42,43,44,45, + 0,0,0,0,0,0,61,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,0,0,0,0,0,0,0,0, + 0,0,35,36,37,38,0,40,0,42, + 43,44,45,46,47,48,49,50,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,0,0,0, + 0,0,0,0,0,0,0,35,36,37, + 38,0,40,0,42,43,44,45,46,47, + 48,49,50,51,52,53,54,0,0,0, + 0,0,0,61,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,0, + 0,0,0,0,0,0,0,0,0,35, + 36,37,38,0,40,0,42,43,44,45, 46,47,48,49,50,51,52,53,54,0, - 56,0,1,2,3,4,5,6,7,71, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,55,0,3,55,5,6, - 55,55,9,55,0,10,35,36,37,38, - 0,40,0,42,43,44,45,46,47,48, - 49,50,51,52,53,54,73,56,35,36, - 37,38,118,62,39,42,41,0,0,0, - 3,3,73,0,40,0,0,0,55,0, - 3,0,0,0,0,119,61,64,0,66, - 67,0,69,70,71,55,0,0,0,0, - 0,0,0,0,0,0,0,0,0,40, - 0,88,89,90,0,73,93,94,95,96, - 97,98,99,100,101,102,0,0,0,106, - 55,108,109,110,111,112,113,114,115,116, - 117,0,1,2,3,4,5,6,7,70, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,91,0,70,0,0,0, - 0,0,0,0,0,0,35,36,37,38, - 0,40,0,42,43,44,45,46,47,48, - 49,50,51,52,53,54,0,56,0,0, - 119,0,0,0,0,64,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,3,0,0,0,0,8,0,0,0, - 0,35,36,37,38,0,40,0,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,0,56,0,0,0,0,0,62,0, 1,2,3,4,5,6,7,0,9,10, 11,12,13,14,15,16,17,18,19,20, - 21,0,64,0,0,0,0,69,0,71, - 0,0,74,0,35,36,37,38,0,40, + 21,0,0,0,0,0,0,0,0,0, + 0,0,0,0,35,36,37,38,0,40, 0,42,43,44,45,46,47,48,49,50, - 51,52,53,54,0,56,0,1,2,3, - 4,5,6,7,0,9,10,11,12,13, - 14,15,16,17,18,19,20,21,0,121, + 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,0, + 0,0,0,0,0,0,0,0,0,35, + 36,37,38,0,40,0,42,43,44,45, + 46,47,48,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,26,27,28,29,30, + 31,32,33,34,0,0,0,0,39,0, + 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,26,27,28,29,30,31, + 32,33,34,0,0,0,0,39,0,1, + 2,3,4,5,6,7,8,9,0,0, + 0,0,0,0,56,57,58,0,0,0, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,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, + 0,63,0,0,0,0,0,0,0,0, + 0,73,0,1,2,3,4,5,6,7, + 8,9,0,0,0,0,0,0,0,0, + 0,0,0,0,22,23,24,25,26,27, + 28,29,30,31,32,33,34,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,63,26,27,28,29, + 30,31,32,33,34,73,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,35,36,37,38,0,40,0,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,0,56,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,0,0, - 0,0,0,0,0,0,0,0,35,36, - 37,38,0,40,0,42,43,44,45,46, - 47,48,49,50,51,52,53,54,0,56, - 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,26,27,28,29, - 30,31,32,33,34,0,0,0,0,39, 0,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,26,27,28,29, - 30,31,32,33,34,0,0,0,0,39, - 0,1,2,3,4,5,6,7,8,9, - 0,0,0,0,3,0,0,57,58,59, - 0,0,22,23,24,25,26,27,28,29, - 30,31,32,33,34,0,0,0,0,0, - 0,0,0,0,0,0,0,0,37,38, - 0,0,0,0,0,55,0,0,0,0, - 0,0,0,0,64,0,0,0,0,0, - 0,0,0,0,74,64,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 0,26,27,28,29,30,31,32,33,34, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,120,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,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; @@ -1459,348 +1463,348 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TermAction { public final static char termAction[] = {0, - 5428,5393,5369,5369,5369,5369,5369,5369,5409,5369, + 5427,5392,5368,5368,5368,5368,5368,5368,5408,5368, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5397,1,1,1,1, + 1,1,1,1,1,5396,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,138,1,1,1,1,1,1,1,1, + 1,5427,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5427,1,1,1,1540, + 5602,1,1080,301,2272,1,1,5438,286,5122, + 5122,5434,283,5727,1044,2856,3751,2194,3452,2666, + 3127,2835,1140,2820,2804,2817,10,5411,5411,5411, + 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, + 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, + 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, + 5411,5411,5411,5411,5411,5411,5411,1932,5411,5411, + 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, + 5411,135,5411,5411,5411,5411,5411,5411,5411,1, + 5411,5411,5411,5411,5427,5083,5080,5411,5465,2877, + 5411,5411,5411,5411,5411,5411,5411,5411,5411,5411, + 5411,5411,8,5414,5414,5414,5414,5414,5414,5414, + 5414,5414,5414,5414,5414,5414,5414,5414,5414,5414, + 5414,5414,5414,5414,5414,5414,5414,5414,5414,5414, + 5414,5414,5414,5414,5414,5414,5414,5414,5414,5414, + 5414,5414,5414,137,5414,5414,5414,5414,5414,5414, + 5414,5414,5414,5414,5414,5414,5414,439,5414,5414, + 5414,5414,5414,5414,5414,115,5414,5414,5414,5414, + 2316,3674,5427,5414,5427,4803,5414,5414,5414,5414, + 5414,5414,5414,5414,5414,5414,5414,5414,5427,5392, + 5368,5368,5368,5368,5368,5368,5399,5368,1,1, 1,1,1,1,1,1,1,1,1,1, - 1541,5604,1,1081,349,2273,1,1,5439,287, - 5123,5123,5435,284,332,1045,2857,3752,2195,3453, - 2667,3128,2836,1141,2821,2805,2818,10,5412,5412, - 5412,5412,5412,5412,5412,5412,5412,5412,5412,5412, - 5412,5412,5412,5412,5412,5412,5412,5412,5412,5412, - 5412,5412,5412,5412,5412,5412,5412,5412,5412,5412, - 5412,5412,5412,5412,5412,5412,5412,5412,1319,5412, - 5412,5412,5412,5412,5412,5412,5412,5412,5412,5412, - 5412,5412,2283,5412,5412,5412,5412,5412,5412,5412, - 5412,321,5412,5412,5412,5412,5428,5084,5081,5412, - 5467,396,5412,5412,5412,5412,5412,5412,5412,5412, - 5412,5412,5412,5412,8,5415,5415,5415,5415,5415, - 5415,5415,5415,5415,5415,5415,5415,5415,5415,5415, - 5415,5415,5415,5415,5415,5415,5415,5415,5415,5415, - 5415,5415,5415,5415,5415,5415,5415,5415,5415,5415, - 5415,5415,5415,5415,5415,1319,5415,5415,5415,5415, - 5415,5415,5415,5415,5415,5415,5415,5415,5415,385, - 5415,5415,5415,5415,5415,5415,5415,5415,116,5415, - 5415,5415,5415,5428,3675,5428,5415,5428,4804,5415, - 5415,5415,5415,5415,5415,5415,5415,5415,5415,5415, - 5415,5428,5393,5369,5369,5369,5369,5369,5369,5400, - 5369,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5397,1,1,1, + 1,1,1,5396,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,776, 1,1,1,1,1,1,1,1,1,1, - 1,1,777,1,1,1,1,1,1,1, - 1,1,1,1,1,1,440,1,1,1, - 1,1541,5604,1,1081,459,2273,1,1,5439, - 5428,3651,632,398,5442,5443,1045,2857,3752,2195, - 3453,2667,3128,2836,1141,2821,2805,2818,5428,5393, - 5369,5369,5369,5369,5369,5369,5400,5369,1,1, + 1,1,1,2282,1,1,1,1540,5602,1, + 1080,5427,2272,1,1,5438,3468,3650,631,5862, + 5863,5864,1044,2856,3751,2194,3452,2666,3127,2835, + 1140,2820,2804,2817,5427,5392,5368,5368,5368,5368, + 5368,5368,5399,5368,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5396, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5397,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5218, + 1,1,1,1,1,331,1,1,1,1, + 1,1,1,1,1,1,1,1,1,136, + 1,1,1,1540,5602,1,1080,117,2272,1, + 1,5438,395,3674,397,5441,5442,5427,1044,2856, + 3751,2194,3452,2666,3127,2835,1140,2820,2804,2817, + 5427,5392,5368,5368,5368,5368,5368,5368,5399,5368, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1933,1,1,1,1,1541,5604, - 1,1081,118,2273,1,1,5439,5428,3675,5864, - 5865,5866,3469,1045,2857,3752,2195,3453,2667,3128, - 2836,1141,2821,2805,2818,5428,5393,5369,5369,5369, - 5369,5369,5369,5400,5369,1,1,1,1,1, + 1,1,1,1,1,5396,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5397,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,139,1,1,1, + 1,138,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1893,1,1,1,1540, + 5602,1,1080,384,2272,1,1,5438,2316,3650, + 631,5427,5441,5442,1044,2856,3751,2194,3452,2666, + 3127,2835,1140,2820,2804,2817,5427,5392,5368,5368, + 5368,5368,5368,5368,5399,5368,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 132,1,1,1,1,1541,5604,1,1081,596, - 2273,1,1,5439,5428,3651,632,5428,5442,5443, - 1045,2857,3752,2195,3453,2667,3128,2836,1141,2821, - 2805,2818,5428,5393,5369,5369,5369,5369,5369,5369, - 5400,5369,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5397,1,1, + 1,5396,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5427,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5428,1,1,1,1,1,1, - 1,1,1,1,1,1,1,2283,1,1, - 1,1,1541,5604,1,1081,117,2273,1,1, - 5439,112,3675,5428,5102,5099,5428,1045,2857,3752, - 2195,3453,2667,3128,2836,1141,2821,2805,2818,5428, - 5393,5369,5369,5369,5369,5369,5369,5400,5369,1, + 1,2282,1,1,1,1540,5602,1,1080,116, + 2272,1,1,5438,111,3674,5427,5101,5098,5427, + 1044,2856,3751,2194,3452,2666,3127,2835,1140,2820, + 2804,2817,5427,5392,5368,5368,5368,5368,5368,5368, + 5399,5368,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5396,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5397,1,1,1,1,1, + 1,1,1,5427,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1911,1,1, + 1,1540,5602,1,1080,5427,2272,1,1,5438, + 5427,3650,631,4093,508,4115,1044,2856,3751,2194, + 3452,2666,3127,2835,1140,2820,2804,2817,5427,5392, + 5368,5368,5368,5368,5368,5368,5399,5368,1,1, 1,1,1,1,1,1,1,1,1,1, - 5428,1,1,1,1,1,1,1,1,1, - 1,1,1,1,133,1,1,1,1,1541, - 5604,1,1081,596,2273,1,1,5439,5428,3651, - 632,4094,30,4116,1045,2857,3752,2195,3453,2667, - 3128,2836,1141,2821,2805,2818,5428,5393,5369,5369, - 5369,5369,5369,5369,5400,5369,1,1,1,1, + 1,1,1,5396,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5427, 1,1,1,1,1,1,1,1,1,1, - 1,5397,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5090,1,1, + 1,1,1,2431,1,1,1,1540,5602,1, + 1080,5427,2272,1,1,5438,5427,5441,5442,5427, + 506,3468,1044,2856,3751,2194,3452,2666,3127,2835, + 1140,2820,2804,2817,5427,5392,5368,5368,5368,5368, + 5368,5368,5399,5368,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5396, 1,1,1,1,1,1,1,1,1,1, - 1,5830,1,1,1,1,1541,5604,1,1081, - 5428,2273,1,1,5439,5428,5442,5443,509,441, - 3469,1045,2857,3752,2195,3453,2667,3128,2836,1141, - 2821,2805,2818,5428,5393,5369,5369,5369,5369,5369, - 5369,5400,5369,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5397,1, + 1,1,1,1,1,5427,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3705, + 1,1,1,1540,5602,1,1080,5427,2272,1, + 1,5438,5427,5083,5080,121,5465,5427,1044,2856, + 3751,2194,3452,2666,3127,2835,1140,2820,2804,2817, + 5427,5392,5368,5368,5368,5368,5368,5368,5399,5368, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5093,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2432,1, - 1,1,1,1541,5604,1,1081,458,2273,1, - 1,5439,5428,5084,5081,122,5467,5428,1045,2857, - 3752,2195,3453,2667,3128,2836,1141,2821,2805,2818, - 5428,5393,5369,5369,5369,5369,5369,5369,5400,5369, + 1,1,1,1,1,5396,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5397,1,1,1,1, + 1,5427,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1921,1,1,1,1540, + 5602,1,1080,5427,2272,1,1,5438,48,5101, + 5098,125,3079,3105,1044,2856,3751,2194,3452,2666, + 3127,2835,1140,2820,2804,2817,5427,5392,5368,5368, + 5368,5368,5368,5368,5399,5368,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5221,1,1,1,1,1,1,1,1, - 1,1,1,1,1,429,1,1,1,1, - 1541,5604,1,1081,5428,2273,1,1,5439,49, - 5102,5099,126,3080,3106,1045,2857,3752,2195,3453, - 2667,3128,2836,1141,2821,2805,2818,5428,5393,5369, - 5369,5369,5369,5369,5369,5400,5369,1,1,1, + 1,5396,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5427,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5397,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3243,1, + 1,5427,1,1,1,1540,5602,1,1080,5427, + 2272,1,1,5438,290,5441,5442,5431,3079,3105, + 1044,2856,3751,2194,3452,2666,3127,2835,1140,2820, + 2804,2817,5427,2668,1,1,1,1,1,1, + 2807,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5436,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,449,1,1,1,1,1541,5604,1, - 1081,5428,2273,1,1,5439,291,5442,5443,5432, - 3080,3106,1045,2857,3752,2195,3453,2667,3128,2836, - 1141,2821,2805,2818,5428,2669,1,1,1,1, - 1,1,2808,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5437, + 1,1,1,5828,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5427,1,1, + 1,1540,5602,1,1080,5427,2272,1,1,5438, + 5427,39,37,5223,5223,5465,1044,2856,3751,2194, + 3452,2666,3127,2835,1140,2820,2804,2817,39,5083, + 5080,4774,1405,3899,3983,2957,5430,4005,921,5691, + 5689,5698,5697,5693,5694,5692,5695,5696,5699,5690, + 5687,5764,5765,5463,5681,5688,5684,5660,5686,5685, + 5682,5683,5661,3961,3930,4049,4027,5825,5446,370, + 3830,1043,1184,5448,1166,4181,1174,5449,5447,1009, + 5443,5444,5445,5427,2469,5826,5827,368,5427,1356, + 5427,5290,5290,229,5286,229,229,229,5294,229, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,785,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5428, - 1,1,1,1,1541,5604,1,1081,5428,2273, - 1,1,5439,5428,40,38,5224,5224,5467,1045, - 2857,3752,2195,3453,2667,3128,2836,1141,2821,2805, - 2818,40,5084,5081,4775,1406,3900,3984,2958,5431, - 4006,922,5693,5691,5700,5699,5695,5696,5694,5697, - 5698,5701,5692,5689,5766,5767,5465,5683,5690,5686, - 5662,5688,5687,5684,5685,5663,3962,3931,4050,4028, - 5827,5448,507,3831,1044,1185,5450,1167,4182,1175, - 5451,5449,1010,5444,5446,5447,134,5445,2470,5828, - 5829,5428,371,1357,5428,5291,5291,230,5287,230, - 230,230,5295,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,230, - 1,1,1,1,1,1,1,1,1,119, - 395,5120,5120,1,284,5284,1,5074,5070,5328, - 5078,5334,3706,5331,5438,140,225,5428,125,5428, - 5428,1,1,1,3033,5841,1791,668,5428,5758, - 226,5437,1188,135,3626,2728,417,230,5689,5766, - 5767,284,5683,5690,5686,5662,5688,5687,5684,5685, - 5663,5929,5689,5766,5767,2349,5683,5690,5686,5662, - 5688,5687,5684,5685,5663,5428,5428,5864,5865,5866, - 5428,5291,5291,230,5287,230,230,230,5337,230, + 1,1,1,1,1,229,1,1,1,1, + 1,1,1,1,1,5427,5441,5442,2048,1, + 5062,5283,1,5073,5069,5327,5077,5333,1187,5330, + 5437,224,36,5362,5359,131,1,1,1,3032, + 5839,653,667,3148,595,225,1232,5436,1,5427, + 133,416,229,5687,5764,5765,363,5681,5688,5684, + 5660,5686,5685,5682,5683,5661,5927,5687,5764,5765, + 510,5681,5688,5684,5660,5686,5685,5682,5683,5661, + 4071,825,5862,5863,5864,5427,5290,5290,229,5286, + 229,229,229,5336,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,230,1,1,1,1, - 1,1,1,1,1,1,3080,3106,2966,1, - 40,5284,34,5114,5467,5212,332,2233,5212,332, - 5212,5212,2861,44,5281,5281,5428,1,1,1, - 3033,5841,2349,668,5428,5084,5081,5212,1406,738, - 40,2958,416,230,5467,5428,5428,5212,5212,5212, - 5212,5428,346,40,40,2966,5467,5929,332,5428, - 5428,332,3133,140,5278,227,369,5212,5428,1319, - 5428,5442,5443,5864,5865,5866,5212,5428,5440,5117, - 30,5212,5212,5212,5212,5212,5212,5689,5766,5767, - 932,5683,5690,5686,5662,5688,5687,5684,5685,5663, - 5212,5212,5212,5212,5212,5212,5212,5212,5212,5212, - 5212,5212,5212,5212,5212,654,1319,3149,5212,5212, - 5212,5212,5212,5212,5212,5212,5212,5212,5212,5212, - 5212,5428,5212,1847,5236,1533,1233,5236,5439,5236, - 5236,5428,5301,5298,2949,346,5084,5081,2419,1406, - 738,332,2958,425,332,5428,5236,5428,5084,5081, - 5428,1406,5239,2895,2958,2233,5236,5236,5236,5236, - 2861,1804,1761,1718,1675,1632,1589,1546,1503,1460, - 1417,397,5465,5428,228,388,5236,310,5074,5070, - 4370,5078,738,5349,2958,5236,5349,115,942,5428, - 5236,5236,5236,5236,5236,5236,5689,5766,5767,1319, - 5683,5690,5686,5662,5688,5687,5684,5685,5663,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,124,455,1533,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 363,5236,5428,5369,5369,230,5369,230,230,230, - 5372,230,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,230,1,1, - 8785,1,1,1,1,1,1,4094,5428,4116, - 5096,1,734,5366,1,5074,5070,4370,5078,738, - 406,2958,310,1,123,37,5363,5360,5322,1, - 1,1,3352,5640,337,1081,5428,2273,130,310, - 5063,3222,3080,3106,221,5325,368,5074,5070,2419, - 5078,738,1,2958,511,1,5428,5766,5767,5929, - 5428,5369,5369,230,5369,230,230,230,230,230, + 229,1,1,1,1,1,1,1,1,1, + 1,363,29,2965,1,39,5283,33,5113,5465, + 5211,331,47,5211,331,5211,5211,336,363,804, + 37,1,1,1,3032,5839,5427,667,2348,444, + 1,1,5211,1,134,5214,415,229,5214,129, + 5764,5765,5211,5211,5211,5211,345,39,39,2965, + 5465,5927,331,2443,185,331,396,1532,139,226, + 387,5463,5211,1318,5427,5101,5098,5862,5863,5864, + 5211,5427,5427,5116,424,5211,5211,5211,5211,5211, + 5211,5687,5764,5765,5427,5681,5688,5684,5660,5686, + 5685,5682,5683,5661,5211,5211,5211,5211,5211,5211, + 5211,5211,5211,5211,5211,5211,5211,5211,5211,1318, + 931,1532,5211,5211,5211,5211,5211,5211,5211,5211, + 5211,5211,5211,5211,5211,5427,5211,1846,5235,4071, + 825,5235,2348,5235,5235,2559,2531,1,114,345, + 5083,5080,2418,1405,737,331,2957,5063,331,5427, + 5235,5427,5083,5080,5427,1405,5238,2894,2957,2232, + 5235,5235,5235,5235,2860,1803,1760,1717,1674,1631, + 1588,1545,1502,1459,1416,5418,5066,227,567,139, + 5235,132,1,5073,5069,4369,5077,737,5235,2957, + 595,5427,941,5235,5235,5235,5235,5235,5235,5687, + 5764,5765,1318,5681,5688,5684,5660,5686,5685,5682, + 5683,5661,5235,5235,5235,5235,5235,5235,5235,5235, + 5235,5235,5235,5235,5235,5235,5235,4093,5427,4115, + 5235,5235,5235,5235,5235,5235,5235,5235,5235,5235, + 5235,5235,5235,5427,5235,5427,5368,5368,229,5368, + 229,229,229,5371,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,230,1,1,8785,1, - 1,1,1,1,1,39,5111,5108,3721,1, - 5105,5366,2958,5428,5428,5084,5081,114,1406,5239, - 1319,2958,3080,3106,5428,1929,1145,1,1,1, - 3352,5640,5434,1081,805,2273,1,5074,5070,2419, - 5078,738,5428,2958,5114,2560,2532,5428,5074,5070, - 4370,5078,738,5349,2958,2269,5349,5929,5428,5369, - 5369,230,5369,230,230,230,5381,230,1,1, + 229,1,1,8694,1,1,1,1,1,1, + 2232,5427,8654,8649,1,2860,5365,309,5073,5069, + 4369,5077,737,5348,2957,124,5348,5427,8654,8649, + 5427,1,1,1,3351,5638,5427,1080,5437,2272, + 1,4315,1790,3148,29,5756,220,367,5073,5069, + 2418,5077,737,1,2957,5436,1,43,5280,5280, + 5427,5927,5427,5368,5368,229,5368,229,229,229, + 229,229,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,229,1,1, + 8694,1,1,1,1,1,1,5427,5277,5089, + 3793,1,5427,5365,331,5083,5080,4369,1405,737, + 1318,2957,3079,3105,3720,5427,1144,1928,1,1, + 1,3351,5638,5435,1080,362,2272,5427,1,5073, + 5069,2418,5077,737,311,2957,5113,2136,5427,5073, + 5069,4369,5077,737,5348,2957,5427,5348,5927,5427, + 5368,5368,229,5368,229,229,229,5380,229,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,230,1,1,8785,1,1,1, - 1,1,1,92,5428,4931,5233,1,5433,5366, - 1319,1,5074,5070,4370,5078,738,4094,2958,4116, - 5117,4316,5428,3149,5428,1,1,1,3352,5640, - 1051,1081,5440,2273,1,1,5230,5230,388,5227, - 220,332,364,364,332,1,5074,5070,4370,5078, - 738,359,2958,48,5428,5929,5428,5369,5369,230, - 5369,230,230,230,5372,230,1,1,1,1, + 1,1,1,1,229,1,1,8694,1,1, + 1,1,1,1,91,1005,5434,5232,1,5427, + 5365,1318,5427,5083,5080,3221,1405,5238,5427,2957, + 113,5116,733,1096,5427,1,1,1,3351,5638, + 1050,1080,5439,2272,5427,1,5229,5229,440,5226, + 219,331,5433,363,331,1,5073,5069,4369,5077, + 737,5427,2957,2268,5427,5927,5427,5368,5368,229, + 5368,229,229,229,5371,229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,230,1,1,8785,1,1,1,1,1, - 1,1894,5439,5206,2444,1,1,5366,332,5084, - 5081,4370,1406,738,121,2958,5064,113,364,364, - 5428,8646,8069,1,1,1,3352,5640,1051,1081, - 5428,2273,5428,8646,8069,364,364,5428,221,1, - 5074,5070,2419,5078,738,5067,2958,568,312,3626, - 2728,2137,5786,5929,5428,5369,5369,230,5369,230, - 230,230,5372,230,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,230, - 1,1,8785,1,1,1,1,1,1,5428, - 5442,5443,4212,1,738,5366,2958,1,5074,5070, - 5328,5078,5334,1319,5331,5428,40,4094,136,4116, - 5467,1,1,1,3352,5640,396,1081,1097,2273, - 389,445,1,1,5428,1,221,5215,1038,302, - 5215,5428,5084,5081,348,1406,738,876,2958,5729, - 5428,5929,5428,5369,5369,230,5369,230,230,230, - 230,230,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,230,1,1, - 8785,1,1,1,1,1,1,5428,446,40, - 40,1,5467,5366,5319,1,5428,5319,93,1, - 1,5428,1,1912,5340,4504,5428,5340,1319,1, - 1,1,3352,5640,5436,1081,131,2273,2317,5864, - 5865,5866,96,40,40,127,5467,129,5375,319, - 5428,5375,5087,49,5428,8791,8791,5443,5434,5929, - 5428,5369,5369,230,5369,230,230,230,230,230, + 1,229,1,1,8694,1,1,1,1,1, + 1,5438,112,5092,5427,1,5427,5365,1,5073, + 5069,4369,5077,737,4930,2957,309,5432,363,4093, + 123,4115,1,1,1,3351,5638,1050,1080,1927, + 2272,5427,5939,309,454,363,1,220,1,5073, + 5069,2418,5077,737,5386,2957,157,394,5119,5119, + 122,283,5927,5427,5368,5368,229,5368,229,229, + 229,5371,229,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,229,1, + 1,8694,1,1,1,1,1,1,283,5095, + 5427,4093,1,4115,5365,1,5073,5069,5327,5077, + 5333,1318,5330,5438,5427,5427,2948,3079,3105,1, + 1,1,3351,5638,515,1080,1889,2272,5427,5083, + 5080,5427,1405,737,220,2957,5427,5083,5080,5433, + 1405,737,5427,2957,5427,5300,5297,3079,3105,5927, + 5427,5368,5368,229,5368,229,229,229,229,229, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,230,1,1,8785,1, - 1,1,1,1,1,5465,120,1006,5435,1, - 2773,5366,2773,38,5224,5224,5788,238,5443,332, - 5304,5428,1,1319,5209,4916,5313,1,1,1, - 3352,5640,1,1081,5433,2273,2878,5428,5428,5428, - 5387,3626,2728,2560,2532,2657,5428,5442,5443,158, - 2674,2601,2674,2601,5465,38,186,5929,5428,5369, - 5369,230,5369,230,230,230,230,230,1,1, + 1,1,1,1,1,229,1,1,8694,1, + 1,1,1,1,1,5463,445,39,39,1, + 5465,5365,5318,130,883,5318,92,1,1,395, + 1,358,5339,388,5432,5339,1,1,1,3351, + 5638,39,1080,5427,2272,5465,95,39,39,387, + 5465,5435,5374,347,126,5374,875,38,5110,5107, + 428,5427,5104,1037,2957,348,5927,5427,5368,5368, + 229,5368,229,229,229,229,229,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,230,1,1,8785,1,1,1, - 1,1,1,5428,5102,5099,5465,1,5428,5366, - 5439,5428,33,389,389,5307,389,389,5307,389, - 5307,5307,4072,826,5428,1,1,1,3352,5640, - 1890,1081,292,2273,389,389,389,5307,389,389, - 389,389,389,389,389,389,389,1,5074,5070, - 4775,5078,3900,3984,2958,5929,4006,5242,5269,5275, - 5248,5251,5263,5260,5266,5257,5254,5245,5272,4072, - 826,38,5224,5224,516,5428,5307,1922,5428,4888, - 1928,137,3962,3931,4050,4028,5307,5448,5419,3831, - 1044,1185,5450,1167,4182,1175,5451,5449,1010,5444, - 5446,5447,2019,5445,5428,38,5224,5224,5428,1357, - 5224,5428,3459,40,40,3253,517,40,5084,5081, - 4775,1406,3900,3984,2958,5422,4006,725,5693,5691, - 5700,5699,5695,5696,5694,5697,5698,5701,5692,46, - 5346,5346,5428,5356,5352,884,3532,5941,1,5428, - 5428,5428,3962,3931,4050,4028,162,5448,5438,3831, - 1044,1185,5450,1167,4182,1175,5451,5449,1010,5444, - 5446,5447,5428,5445,1,5437,5428,5870,5428,1357, - 5343,2317,5428,5465,5064,5406,5436,5428,5428,5435, - 142,5084,5081,4775,1406,3900,3984,2958,5428,4006, - 725,5693,5691,5700,5699,5695,5696,5694,5697,5698, - 5701,5692,1,5067,5428,568,1,1930,5884,5428, - 5390,3794,162,5428,5434,3962,3931,4050,4028,5428, - 5448,5438,3831,1044,1185,5450,1167,4182,1175,5451, - 5449,1010,5444,5446,5447,1,5445,1,5437,5428, - 5435,5428,1357,529,3733,164,40,40,1,5074, - 5070,4775,5078,3900,3984,2958,5428,4006,5242,5269, - 5275,5248,5251,5263,5260,5266,5257,5254,5245,5272, - 8,5428,5428,5428,5435,4238,4311,290,5425,302, - 5433,101,2057,3962,3931,4050,4028,5428,5448,5729, - 3831,1044,1185,5450,1167,4182,1175,5451,5449,1010, - 5444,5446,5447,5428,5445,421,4321,100,4203,529, - 1357,164,427,5428,40,40,40,5084,5081,4775, - 1406,3900,3984,2958,5403,4006,725,5693,5691,5700, - 5699,5695,5696,5694,5697,5698,5701,5692,5428,2986, - 5428,1490,5425,3712,5428,4654,5428,4438,793,1, - 1028,3962,3931,4050,4028,128,5448,5438,3831,1044, - 1185,5450,1167,4182,1175,5451,5449,1010,5444,5446, - 5447,2145,5445,104,5437,2107,4605,5428,1357,5428, - 533,1271,36,3709,5406,40,5084,5081,4775,1406, - 3900,3984,2958,5403,4006,725,5693,5691,5700,5699, - 5695,5696,5694,5697,5698,5701,5692,450,5428,279, - 2773,2453,5384,5428,5428,5428,4863,4815,1,2049, - 3962,3931,4050,4028,5316,5448,192,3831,1044,1185, - 5450,1167,4182,1175,5451,5449,1010,5444,5446,5447, - 49,5445,2452,192,5442,5428,5428,1357,309,4887, - 2674,2601,3821,5406,40,5084,5081,4775,1406,3900, - 3984,2958,5432,4006,725,5693,5691,5700,5699,5695, - 5696,5694,5697,5698,5701,5692,376,5428,2484,5428, - 4897,5428,5428,5428,3700,5428,396,5428,5428,3962, - 3931,4050,4028,5428,5448,5442,3831,1044,1185,5450, - 1167,4182,1175,5451,5449,1010,5444,5446,5447,5428, - 5445,40,5084,5081,4775,1406,3900,3984,2958,2756, - 4006,725,5693,5691,5700,5699,5695,5696,5694,5697, - 5698,5701,5692,1,4902,5428,2315,1533,5898,5892, - 1929,1533,5896,3713,5428,576,3962,3931,4050,4028, - 74,5448,5428,3831,1044,1185,5450,1167,4182,1175, - 5451,5449,1010,5444,5446,5447,3165,5445,5890,5891, - 5921,5922,5431,1357,820,5899,568,5428,5428,1, - 4907,4456,3219,1,4204,2,5428,5428,5901,5428, - 4921,522,5428,5428,5428,2878,5965,2008,5428,1535, - 1543,5428,5902,5900,5923,5378,5428,5428,5428,5428, - 5428,5428,5428,5428,5428,5428,5428,5428,5428,2177, - 5428,5912,5911,5924,5428,3256,5893,5894,5917,5918, - 5915,5916,5895,5897,5919,5920,5428,5428,5428,5925, - 38,5905,5906,5907,5903,5904,5913,5914,5909,5908, - 5910,40,5084,5081,4775,1406,3900,3984,2958,3821, - 4006,725,5693,5691,5700,5699,5695,5696,5694,5697, - 5698,5701,5692,5428,4226,5428,1976,5428,5428,5428, - 5428,5428,5428,5428,5428,5428,3962,3931,4050,4028, - 5428,5448,5428,3831,1044,1185,5450,1167,4182,1175, - 5451,5449,1010,5444,5446,5447,5428,5445,5428,5428, - 2878,5428,5428,5428,5428,2960,40,5084,5081,4775, - 1406,3900,3984,2958,5428,4006,725,5693,5691,5700, - 5699,5695,5696,5694,5697,5698,5701,5692,1,5428, - 5428,2966,5428,5428,5428,5428,342,5428,5428,5428, - 5428,3962,3931,4050,4028,5428,5448,5428,3831,1044, - 1185,5450,1167,4182,1175,5451,5449,1010,5444,5446, - 5447,5428,5445,5428,5428,5428,5428,5428,1357,40, - 5084,5081,4809,1406,3900,3984,2958,5428,4006,725, - 5693,5691,5700,5699,5695,5696,5694,5697,5698,5701, - 5692,5428,1319,5428,5428,5428,5428,342,5428,342, - 5428,5428,342,5428,3962,3931,4050,4028,5428,5448, - 5428,3831,1044,1185,5450,1167,4182,1175,5451,5449, - 1010,5444,5446,5447,5428,5445,40,5084,5081,4775, - 1406,3900,3984,2958,5428,4006,725,5693,5691,5700, - 5699,5695,5696,5694,5697,5698,5701,5692,5428,342, - 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 5428,3962,3931,4050,4028,5428,5448,5428,3831,1044, - 1185,5450,1167,4182,1175,5451,5449,1010,5444,5446, - 5447,5428,5445,40,5084,5081,4775,1406,3900,3984, - 2958,5428,4006,725,5693,5691,5700,5699,5695,5696, - 5694,5697,5698,5701,5692,5428,5428,5428,5428,5428, - 5428,5428,5428,5428,5428,5428,5428,5428,3962,3931, - 4050,4028,5428,5448,5428,3831,1044,1185,5450,1167, - 4182,1175,5451,5449,1010,5444,5446,5447,5428,5445, - 5428,5084,5081,5428,5467,5428,5428,5428,5428,5428, - 796,5693,5691,5700,5699,5695,5696,5694,5697,5698, - 5701,5692,5689,5766,5767,5428,5683,5690,5686,5662, - 5688,5687,5684,5685,5663,5428,5428,5428,5428,5827, - 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 242,5199,5195,5428,5203,5428,5428,2470,5828,5829, - 796,5186,5192,5165,5168,5180,5177,5183,5174,5171, - 5162,5189,5141,5135,5132,5428,5159,5138,5150,5129, - 5144,5147,5156,5153,5126,5428,5428,5428,5428,5827, - 30,388,388,5310,388,388,5310,388,5310,5310, - 5428,76,5428,5428,3513,5428,5428,2470,5828,5829, - 5428,5428,388,388,388,5310,388,388,388,388, - 388,388,388,388,388,5428,5428,5428,5428,5428, - 5428,5428,5428,5428,5428,5428,5428,5428,5491,5492, - 5428,5428,5428,5428,5428,5090,5428,5428,5428,5428, - 5428,5428,5428,5428,5310,224,5428,5428,5428,5428, - 5428,5428,5428,5428,5310,2666,5693,5691,5700,5699, - 5695,5696,5694,5697,5698,5701,5692,5689,5766,5767, - 5428,5683,5690,5686,5662,5688,5687,5684,5685,5663, - 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 5428,5428,5428,5428,5428,5428,5428,582,5428,5428, - 5428,5428,5428,5428,5428,5428,5428,5428,5428,5428, - 5428,670 + 1,1,229,1,1,8694,1,1,1,1, + 1,1,1929,5427,5205,405,1,3252,5365,2772, + 5427,5441,5442,5321,5434,737,1318,2957,1,2559, + 2531,5784,5208,1,1,1,3351,5638,1318,1080, + 5324,2272,3242,318,1,128,5086,2965,5427,5441, + 5442,5427,341,5862,5863,5864,5439,5427,2673,2600, + 5427,8657,8657,5927,5427,5368,5368,229,5368,229, + 229,229,229,229,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,229, + 1,1,8694,1,1,1,1,1,1,5427, + 2772,5463,1,1,5427,5365,1318,1318,1,301, + 161,320,341,5312,341,5438,5433,341,5786,5727, + 1,1,1,3351,5638,5868,1080,5427,2272,37, + 5223,5223,37,5223,5223,331,118,5223,237,2673, + 2600,5303,1,5073,5069,4774,5077,3899,3983,2957, + 5927,4005,5241,5268,5274,5247,5250,5262,5259,5265, + 5256,5253,5244,5271,341,37,5223,5223,2985,120, + 5463,3625,2727,3531,1318,161,458,3961,3930,4049, + 4027,5432,5446,5427,3830,1043,1184,5448,1166,4181, + 1174,5449,5447,1009,5443,5444,5445,45,5345,5345, + 5427,5355,5351,1356,3625,2727,3458,39,39,448, + 516,39,5083,5080,4774,1405,3899,3983,2957,5421, + 4005,724,5691,5689,5698,5697,5693,5694,5692,5695, + 5696,5699,5690,119,1,1,5427,1,5342,5217, + 1027,5463,5427,5389,5063,528,3961,3930,4049,4027, + 5437,5446,5427,3830,1043,1184,5448,1166,4181,1174, + 5449,5447,1009,5443,5444,5445,1,5436,3625,2727, + 5427,8,1356,5066,5437,567,291,457,5405,5424, + 5427,784,5434,141,5083,5080,4774,1405,3899,3983, + 2957,5436,4005,724,5691,5689,5698,5697,5693,5694, + 5692,5695,5696,5699,5690,1,5434,4211,1,5427, + 528,4915,289,163,1,2656,5427,5427,3961,3930, + 4049,4027,191,5446,5427,3830,1043,1184,5448,1166, + 4181,1174,5449,5447,1009,5443,5444,5445,5882,191, + 5220,5427,5424,5427,1356,2018,3732,5427,39,39, + 1,5073,5069,4774,5077,3899,3983,2957,5427,4005, + 5241,5268,5274,5247,5250,5262,5259,5265,5256,5253, + 5244,5271,4503,5427,5427,5427,4237,4310,163,4887, + 5427,420,792,4320,5427,3961,3930,4049,4027,5427, + 5446,395,3830,1043,1184,5448,1166,4181,1174,5449, + 5447,1009,5443,5444,5445,5427,375,5427,1489,4202, + 3711,1356,100,4901,99,39,39,39,5083,5080, + 4774,1405,3899,3983,2957,5402,4005,724,5691,5689, + 5698,5697,5693,5694,5692,5695,5696,5699,5690,1532, + 5427,5427,103,4437,1928,4604,1532,2056,532,426, + 2106,1,3961,3930,4049,4027,5427,5446,5427,3830, + 1043,1184,5448,1166,4181,1174,5449,5447,1009,5443, + 5444,5445,5427,35,449,4653,1270,2144,1356,5427, + 278,4203,2452,5383,5405,39,5083,5080,4774,1405, + 3899,3983,2957,5402,4005,724,5691,5689,5698,5697, + 5693,5694,5692,5695,5696,5699,5690,5427,308,2451, + 4862,3712,5427,75,5427,4814,3512,5427,5427,3708, + 3961,3930,4049,4027,2877,5446,73,3830,1043,1184, + 5448,1166,4181,1174,5449,5447,1009,5443,5444,5445, + 5427,4225,3820,5427,2483,5427,1356,521,4886,5427, + 5489,5490,5405,39,5083,5080,4774,1405,3899,3983, + 2957,5431,4005,724,5691,5689,5698,5697,5693,5694, + 5692,5695,5696,5699,5690,48,2665,5427,2755,5442, + 48,5377,5427,2,5441,127,3164,3820,3961,3930, + 4049,4027,575,5446,5427,3830,1043,1184,5448,1166, + 4181,1174,5449,5447,1009,5443,5444,5445,1,1975, + 5427,2314,39,5896,5890,3218,5465,5894,581,5427, + 1,819,4896,567,5427,5427,5427,3699,4906,4455, + 5442,5427,669,5427,3132,5441,4920,5427,37,5427, + 2772,5427,5963,5888,5889,5919,5920,5427,5427,3255, + 5897,5427,5427,5315,5427,5427,5427,5427,5427,5427, + 2176,5427,5427,5899,5427,2877,5427,5427,5427,5427, + 5430,2007,5427,1534,1542,5427,5900,5898,5921,2673, + 2600,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5910,5909,5922,5427,5427, + 5891,5892,5915,5916,5913,5914,5893,5895,5917,5918, + 5427,5427,5427,5923,5427,5903,5904,5905,5901,5902, + 5911,5912,5907,5906,5908,39,5083,5080,4774,1405, + 3899,3983,2957,5427,4005,724,5691,5689,5698,5697, + 5693,5694,5692,5695,5696,5699,5690,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 3961,3930,4049,4027,5427,5446,5427,3830,1043,1184, + 5448,1166,4181,1174,5449,5447,1009,5443,5444,5445, + 5427,5427,5427,5427,5427,5427,1356,39,5083,5080, + 4774,1405,3899,3983,2957,5427,4005,724,5691,5689, + 5698,5697,5693,5694,5692,5695,5696,5699,5690,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,3961,3930,4049,4027,5427,5446,5427,3830, + 1043,1184,5448,1166,4181,1174,5449,5447,1009,5443, + 5444,5445,39,5083,5080,4774,1405,3899,3983,2957, + 2959,4005,724,5691,5689,5698,5697,5693,5694,5692, + 5695,5696,5699,5690,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,3961,3930,4049, + 4027,5427,5446,5427,3830,1043,1184,5448,1166,4181, + 1174,5449,5447,1009,5443,5444,5445,5427,5427,5427, + 5427,5427,5427,1356,39,5083,5080,4808,1405,3899, + 3983,2957,5427,4005,724,5691,5689,5698,5697,5693, + 5694,5692,5695,5696,5699,5690,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,3961, + 3930,4049,4027,5427,5446,5427,3830,1043,1184,5448, + 1166,4181,1174,5449,5447,1009,5443,5444,5445,39, + 5083,5080,4774,1405,3899,3983,2957,5427,4005,724, + 5691,5689,5698,5697,5693,5694,5692,5695,5696,5699, + 5690,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,3961,3930,4049,4027,5427,5446, + 5427,3830,1043,1184,5448,1166,4181,1174,5449,5447, + 1009,5443,5444,5445,39,5083,5080,4774,1405,3899, + 3983,2957,5427,4005,724,5691,5689,5698,5697,5693, + 5694,5692,5695,5696,5699,5690,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,3961, + 3930,4049,4027,5427,5446,5427,3830,1043,1184,5448, + 1166,4181,1174,5449,5447,1009,5443,5444,5445,5427, + 5083,5080,5427,5465,5427,5427,5427,5427,5427,795, + 5691,5689,5698,5697,5693,5694,5692,5695,5696,5699, + 5690,5687,5764,5765,5427,5681,5688,5684,5660,5686, + 5685,5682,5683,5661,5427,5427,5427,5427,5825,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,241,5198, + 5194,5427,5202,5427,5427,2469,5826,5827,795,5185, + 5191,5164,5167,5179,5176,5182,5173,5170,5161,5188, + 5140,5134,5131,5427,5158,5137,5149,5128,5143,5146, + 5155,5152,5125,5427,5427,5427,5427,5825,29,387, + 387,5309,387,387,5309,387,5309,5309,5427,5427, + 5427,5427,5427,5427,2469,5826,5827,5427,5427,5427, + 387,387,387,5309,387,387,387,387,387,387, + 387,387,387,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5089,5427,5427,5427,5427,5427,5427, + 5427,5309,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5309,32,388,388,5306,388,388,5306,388, + 5306,5306,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5427,5427,5427,388,388,388,5306,388,388, + 388,388,388,388,388,388,388,5427,5427,5427, + 223,5427,5427,5427,5427,5427,5427,5427,5427,5427, + 5427,5691,5689,5698,5697,5693,5694,5692,5695,5696, + 5699,5690,5687,5764,5765,5306,5681,5688,5684,5660, + 5686,5685,5682,5683,5661,5306 }; }; public final static char termAction[] = TermAction.termAction; @@ -1808,60 +1812,60 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asb { public final static char asb[] = {0, - 758,486,378,88,88,396,483,483,396,726, - 726,636,558,726,626,613,396,45,567,567, - 172,95,96,159,159,85,771,771,686,771, - 85,144,574,1088,1016,1027,551,1027,151,1027, - 615,1027,1011,1027,1090,85,1088,576,88,470, - 378,378,378,378,1090,470,29,146,46,46, - 46,46,46,46,46,46,46,774,780,785, - 782,789,787,794,792,796,795,797,216,798, - 45,45,213,812,580,580,378,771,314,314, - 768,213,681,771,771,314,85,1092,1005,681, - 681,578,558,85,265,380,153,424,154,1090, - 85,85,425,626,578,483,29,726,726,726, - 726,85,639,681,681,29,922,725,1005,29, - 774,901,901,639,45,46,46,46,46,46, + 752,481,373,87,87,391,478,478,391,720, + 720,631,553,720,621,608,391,45,562,562, + 170,94,95,157,157,84,765,765,680,765, + 84,142,569,1081,1009,1020,546,1020,149,1020, + 610,1020,1004,1020,1083,84,1081,571,87,465, + 373,373,373,373,1083,465,29,144,46,46, + 46,46,46,46,46,46,46,768,774,779, + 776,783,781,788,786,790,789,791,213,792, + 45,45,210,806,575,575,373,765,310,310, + 762,210,675,765,765,310,84,1085,998,675, + 675,573,553,84,261,375,151,419,152,1083, + 84,84,420,621,573,478,29,720,720,720, + 720,84,634,675,675,29,916,719,998,29, + 768,895,895,634,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,580,580,314, - 314,1088,213,213,314,1004,83,681,101,569, - 85,266,764,380,85,550,621,374,425,551, - 472,85,425,85,82,681,681,637,637,637, - 637,425,681,45,46,429,436,1034,1034,1090, - 146,213,725,45,681,82,84,82,681,213, - 782,782,780,780,780,787,787,787,787,785, - 785,792,789,789,795,794,796,918,797,681, - 681,637,636,637,768,637,1092,85,477,821, - 1004,266,764,490,85,380,918,154,378,427, - 367,908,380,550,375,550,550,425,472,472, - 85,85,85,470,470,470,470,85,85,45, - 85,1005,46,726,778,268,681,84,1005,45, - 477,539,29,1004,477,764,763,1005,862,551, - 637,378,82,549,910,79,470,550,550,550, - 550,85,472,490,488,489,45,45,45,45, - 470,470,425,83,681,778,1088,1092,85,83, - 477,539,479,764,83,862,862,494,396,83, - 550,550,79,817,46,918,309,305,1088,550, - 550,854,490,46,85,681,681,681,681,639, - 639,85,778,779,778,45,268,372,774,1092, - 479,541,479,818,490,963,965,257,470,154, - 531,862,862,396,83,550,551,1090,910,46, - 46,79,554,753,855,85,681,681,1069,778, - 639,46,213,372,479,541,470,493,257,963, - 168,1090,490,636,818,551,9,554,85,470, - 854,85,1090,1090,85,779,681,213,581,494, - 862,818,308,817,681,1090,85,494,920,10, - 1090,85,639,85,85,85,570,862,45,106, - 79,818,85,85,920,9,918,46,918,818, - 8,470,470,470,10,470,85,223,818,818, - 85,551,681,85,85,726,490,681,490,551, - 85,818,1,470,1,10,918,10,29,29, - 27,684,29,818,818,312,920,490,106,818, - 821,10,681,79,681,27,257,470,681,920, - 106,681,681,1082,10,312,10,818,257,45, - 10,7,489,551,551,1084,45,8,639,818, - 681,816,105,10,681,818,816,816,10 + 45,45,45,45,45,45,46,575,575,310, + 310,1081,210,210,310,997,82,675,100,564, + 84,262,758,375,84,545,616,369,420,546, + 467,84,420,84,81,675,675,632,632,632, + 632,420,675,45,46,424,431,1027,1027,1083, + 144,210,719,45,675,81,83,81,675,210, + 776,776,774,774,774,781,781,781,781,779, + 779,786,783,783,789,788,790,912,791,675, + 675,632,631,632,762,632,1085,84,472,815, + 997,262,758,485,84,375,912,152,373,422, + 362,902,375,545,370,545,545,420,467,467, + 84,84,84,465,465,465,465,84,84,45, + 84,998,46,720,772,264,675,83,998,45, + 472,534,29,997,472,758,757,998,856,546, + 632,373,81,544,904,78,465,545,545,545, + 545,84,467,485,483,484,45,45,45,45, + 465,465,420,82,675,772,1081,1085,84,82, + 472,534,474,758,82,856,856,489,391,82, + 545,545,78,811,46,912,305,301,1081,545, + 545,848,485,46,84,675,675,675,675,634, + 634,84,772,773,772,45,264,367,768,1085, + 474,536,474,812,485,956,958,253,465,152, + 526,856,856,391,82,545,546,1083,904,46, + 46,78,549,747,849,84,675,675,1062,772, + 634,46,210,367,474,536,465,488,253,956, + 166,1083,485,631,812,546,9,549,84,465, + 848,84,1083,1083,84,773,675,210,576,489, + 856,812,304,811,675,1083,84,489,914,10, + 1083,84,634,84,84,84,565,856,45,105, + 78,812,84,84,914,9,912,46,912,812, + 8,465,465,465,10,465,84,220,812,812, + 84,546,675,84,84,720,485,675,485,546, + 84,812,1,465,1,10,912,10,29,29, + 27,678,29,812,812,308,914,485,105,812, + 815,10,675,78,675,27,253,465,675,914, + 105,675,675,1075,10,308,10,812,253,45, + 10,7,484,546,546,1077,45,8,634,812, + 675,810,104,10,675,812,810,810,10 }; }; public final static char asb[] = Asb.asb; @@ -1869,116 +1873,115 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asr { public final static byte asr[] = {0, - 87,103,104,105,41,73,119,122,72,61, - 75,63,60,65,77,79,85,83,76,81, - 82,84,86,68,78,80,25,8,26,39, - 23,57,27,28,29,30,31,32,33,58, - 34,59,22,24,62,66,67,10,44,48, + 86,102,103,104,41,72,118,121,71,60, + 74,62,59,64,76,78,84,82,75,80, + 81,83,85,67,77,79,25,8,26,39, + 23,56,27,28,29,30,31,32,33,57, + 34,58,22,24,61,65,66,10,44,48, 46,43,51,12,21,11,17,15,16,18, - 19,14,13,20,52,56,53,54,40,50, - 45,49,37,38,35,36,42,47,9,6, - 3,4,7,5,1,2,0,69,70,71, - 121,1,2,0,3,69,70,71,121,64, - 8,74,91,0,72,62,37,38,9,6, - 35,36,42,47,3,4,52,56,53,54, - 40,50,45,49,12,21,11,17,15,16, - 18,19,14,13,20,10,44,48,46,43, - 51,68,8,7,5,1,2,67,66,0, - 41,4,73,1,2,68,8,0,75,3, - 69,73,91,71,74,25,64,8,68,70, - 0,66,67,3,10,44,48,46,43,51, - 12,21,11,17,15,16,18,19,14,13, - 20,52,56,53,54,40,50,45,49,5, - 7,4,37,38,9,6,35,36,42,47, - 1,2,118,8,0,69,73,91,71,118, - 74,72,11,12,43,66,13,44,45,14, - 15,16,67,46,17,18,47,48,49,62, - 50,51,10,19,20,21,52,53,54,40, - 37,38,35,36,42,56,8,25,5,7, - 1,2,4,3,9,6,0,92,90,35, - 36,93,94,88,89,69,95,96,97,98, - 99,100,101,102,107,91,108,109,110,111, - 112,113,114,115,116,117,118,74,72,1, - 2,4,9,6,73,64,55,3,8,71, - 25,70,0,26,11,12,39,23,43,66, - 13,44,57,27,28,45,14,29,30,15, - 16,31,67,32,46,17,18,47,33,48, - 58,49,62,50,34,51,59,19,22,20, - 24,21,52,53,54,40,3,37,38,9, - 6,35,36,42,69,56,7,1,2,4, - 10,5,0,4,8,73,68,55,0,87, - 60,7,103,104,105,63,8,3,9,6, - 5,73,72,25,61,26,11,12,39,23, - 13,57,27,28,14,29,30,15,16,31, - 32,17,18,33,58,34,10,59,19,22, - 20,24,21,4,1,2,41,0,8,73, - 118,74,25,71,0,26,11,12,23,13, - 27,28,14,29,30,15,16,31,7,32, - 17,18,33,34,19,22,20,24,21,1, - 2,8,64,9,6,5,4,74,25,3, - 0,1,2,8,72,0,23,24,62,8, - 91,74,69,71,70,121,0,70,71,72, - 8,0,68,39,23,13,57,27,14,29, - 30,15,16,31,32,17,18,33,58,34, - 59,19,22,20,24,21,12,11,26,8, - 3,9,6,25,63,65,87,28,61,41, - 7,1,2,5,4,10,60,0,23,24, - 62,3,69,91,70,71,74,25,75,73, - 68,8,0,8,68,71,0,9,6,3, - 7,5,64,4,1,2,69,70,91,74, - 8,71,0,5,7,3,64,6,9,91, - 26,11,12,23,13,57,27,28,14,29, - 30,15,16,31,32,17,18,33,58,34, - 10,59,19,22,20,24,21,1,2,4, - 74,8,39,0,4,8,68,1,2,0, - 4,8,73,68,0,8,74,121,1,2, - 9,6,4,3,64,71,69,0,11,12, - 43,66,13,44,45,14,15,16,67,7, - 46,17,18,47,48,49,62,50,51,10, - 19,20,21,52,53,54,40,1,2,3, - 37,38,9,6,35,36,5,42,4,56, - 74,8,0,76,0,67,66,35,36,6, - 93,94,99,9,100,5,42,70,55,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,26,11,12,39,23, - 13,57,27,28,14,29,30,15,16,31, - 32,17,18,33,58,34,10,59,19,20, - 24,21,1,2,4,22,0,39,10,41, - 61,0,62,23,7,24,5,1,2,4, - 75,68,121,120,106,37,38,64,3,92, - 90,6,93,94,35,36,89,88,55,95, - 96,97,98,9,99,100,101,69,91,74, - 70,108,109,110,111,112,113,114,115,116, - 117,73,118,102,107,72,71,25,8,0, - 26,11,12,39,23,13,57,27,28,14, - 29,30,15,16,31,32,17,18,33,58, - 34,10,59,19,22,20,24,21,1,2, - 4,91,0,22,1,2,4,103,104,105, - 0,65,26,11,12,39,23,13,57,27, - 87,28,14,29,30,15,16,31,60,32, - 17,18,33,58,34,10,59,19,63,22, - 20,24,21,8,3,9,6,72,25,61, - 7,4,41,5,1,2,0,25,8,3, - 7,5,9,6,4,1,2,73,0,119, - 0,66,67,37,38,9,6,35,36,5, - 42,47,3,4,7,52,56,53,54,50, + 19,14,13,20,52,53,54,40,50,45, + 49,37,38,35,36,42,47,9,6,3, + 4,7,5,1,2,0,68,69,70,120, + 1,2,0,3,68,69,70,120,63,8, + 73,90,0,71,61,37,38,9,6,35, + 36,42,47,3,4,52,53,54,40,50, 45,49,12,21,11,17,15,16,18,19, - 14,13,20,10,44,48,46,43,51,64, - 1,2,40,0,39,23,13,57,27,14, - 29,30,15,16,31,32,17,18,33,58, - 34,10,59,19,22,20,24,21,12,11, - 26,8,3,9,25,63,60,65,87,28, - 61,55,4,6,7,5,41,1,2,0, - 10,57,39,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,35, - 36,93,94,88,89,55,69,95,96,97, - 98,99,100,101,102,107,70,108,109,110, - 111,112,113,114,115,116,117,71,26,23, - 27,28,29,30,31,32,33,34,22,24, - 25,8,74,3,64,7,5,9,6,1, - 2,4,0 + 14,13,20,10,44,48,46,43,51,67, + 8,7,5,1,2,66,65,0,41,4, + 72,1,2,67,8,0,74,3,68,72, + 90,70,73,25,63,8,67,69,0,65, + 66,3,10,44,48,46,43,51,12,21, + 11,17,15,16,18,19,14,13,20,52, + 53,54,40,50,45,49,5,7,4,37, + 38,9,6,35,36,42,47,1,2,117, + 8,0,68,72,90,70,117,73,71,11, + 12,43,65,13,44,45,14,15,16,66, + 46,17,18,47,48,49,61,50,51,10, + 19,20,21,52,53,54,40,37,38,35, + 36,42,8,25,5,7,1,2,4,3, + 9,6,0,91,89,35,36,92,93,87, + 88,68,94,95,96,97,98,99,100,101, + 106,90,107,108,109,110,111,112,113,114, + 115,116,117,73,71,1,2,4,9,6, + 72,63,55,3,8,70,25,69,0,26, + 11,12,39,23,43,65,13,44,56,27, + 28,45,14,29,30,15,16,31,66,32, + 46,17,18,47,33,48,57,49,61,50, + 34,51,58,19,22,20,24,21,52,53, + 54,40,3,37,38,9,6,35,36,42, + 68,7,1,2,4,10,5,0,4,8, + 72,67,55,0,86,59,7,102,103,104, + 62,8,3,9,6,5,72,71,25,60, + 26,11,12,39,23,13,56,27,28,14, + 29,30,15,16,31,32,17,18,33,57, + 34,10,58,19,22,20,24,21,4,1, + 2,41,0,8,72,117,73,25,70,0, + 26,11,12,23,13,27,28,14,29,30, + 15,16,31,7,32,17,18,33,34,19, + 22,20,24,21,1,2,8,63,9,6, + 5,4,73,25,3,0,1,2,8,71, + 0,23,24,61,8,90,73,68,70,69, + 120,0,69,70,71,8,0,67,39,23, + 13,56,27,14,29,30,15,16,31,32, + 17,18,33,57,34,58,19,22,20,24, + 21,12,11,26,8,3,9,6,25,62, + 64,86,28,60,41,7,1,2,5,4, + 10,59,0,23,24,61,3,68,90,69, + 70,73,25,74,72,67,8,0,8,67, + 70,0,9,6,3,7,5,63,4,1, + 2,68,69,90,73,8,70,0,5,7, + 3,63,6,9,90,26,11,12,23,13, + 56,27,28,14,29,30,15,16,31,32, + 17,18,33,57,34,10,58,19,22,20, + 24,21,1,2,4,73,8,39,0,4, + 8,67,1,2,0,4,8,72,67,0, + 8,73,120,1,2,9,6,4,3,63, + 70,68,0,11,12,43,65,13,44,45, + 14,15,16,66,7,46,17,18,47,48, + 49,61,50,51,10,19,20,21,52,53, + 54,40,1,2,3,37,38,9,6,35, + 36,5,42,4,73,8,0,75,0,66, + 65,35,36,6,92,93,98,9,99,5, + 42,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,26, + 11,12,39,23,13,56,27,28,14,29, + 30,15,16,31,32,17,18,33,57,34, + 10,58,19,20,24,21,1,2,4,22, + 0,39,10,41,60,0,61,23,7,24, + 5,1,2,4,74,67,120,119,105,37, + 38,63,3,91,89,6,92,93,35,36, + 88,87,55,94,95,96,97,9,98,99, + 100,68,90,73,69,107,108,109,110,111, + 112,113,114,115,116,72,117,101,106,71, + 70,25,8,0,26,11,12,39,23,13, + 56,27,28,14,29,30,15,16,31,32, + 17,18,33,57,34,10,58,19,22,20, + 24,21,1,2,4,90,0,22,1,2, + 4,102,103,104,0,64,26,11,12,39, + 23,13,56,27,86,28,14,29,30,15, + 16,31,59,32,17,18,33,57,34,10, + 58,19,62,22,20,24,21,8,3,9, + 6,71,25,60,7,4,41,5,1,2, + 0,25,8,3,7,5,9,6,4,1, + 2,72,0,118,0,65,66,37,38,9, + 6,35,36,5,42,47,3,4,7,52, + 53,54,50,45,49,12,21,11,17,15, + 16,18,19,14,13,20,10,44,48,46, + 43,51,63,1,2,40,0,39,23,13, + 56,27,14,29,30,15,16,31,32,17, + 18,33,57,34,10,58,19,22,20,24, + 21,12,11,26,8,3,9,25,62,59, + 64,86,28,60,55,4,6,7,5,41, + 1,2,0,10,56,39,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,35,36,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,26,23,27,28,29,30,31,32,33, + 34,22,24,25,8,73,3,63,7,5, + 9,6,1,2,4,0 }; }; public final static byte asr[] = Asr.asr; @@ -2088,14 +2091,14 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 107,104,54,106,120,47,64,66,70,73, 76,83,89,98,11,12,7,8,53,112, 93,14,55,61,67,84,88,90,94,97, - 99,109,110,111,19,123,63,91,101,77, - 122,95,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,122, + 95,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; @@ -2103,26 +2106,26 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 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,165,152, - 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,0,241,242,0,148,180,190,191,192, - 193,194,196,199,0,200,0,215,218,0, - 220,0,239,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,164,151, + 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,0,240,241,0,147,179,189,190,191, + 192,193,195,198,0,199,0,214,217,0, + 219,0,238,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 }; }; @@ -2188,18 +2191,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,72,74,74,74,74,74,72, - 25,72,72,1,69,1,74,122,68,3, - 74,69,69,69,1,1,25,72,68,72, - 1,1,1,72,1,1,4,69,71,25, - 1,1,69,74,74,74,119,74,1,25, - 1,25,25,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, - 25,74,118,74,5,74,1,41,70,73, - 74,1,41,76,75,25,25,4,4,4, - 4,3,1,68,1,1,3 + 118,73,73,71,73,73,73,73,73,71, + 25,71,71,1,68,1,73,121,67,3, + 73,68,68,68,1,1,25,71,67,71, + 1,1,1,71,1,1,4,68,70,25, + 1,1,68,73,73,73,118,73,1,25, + 1,25,25,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, + 25,73,117,73,5,73,1,41,69,72, + 73,1,41,75,74,25,25,4,4,4, + 4,3,1,67,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2226,71 +2229,71 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeRhs { public final static char scopeRhs[] = {0, - 321,3,62,0,127,0,320,3,119,0, - 127,173,0,127,179,75,0,217,0,255, - 127,55,125,0,20,0,296,127,55,41, - 0,20,53,0,33,133,0,20,53,0, - 0,296,127,55,41,205,0,20,179,0, - 255,127,55,133,0,180,128,0,142,0, - 220,3,295,0,295,0,2,0,127,0, - 255,127,55,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,245,0,137, - 0,0,0,0,136,0,0,0,0,310, - 127,163,254,0,128,0,254,0,130,0, - 0,128,0,309,127,163,253,0,128,0, - 0,44,128,0,0,153,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,238,127,163,40,28, - 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,238,127,163,60, - 0,238,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,245,0,137,0,180,128,276,245,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,47,0,148,0,126,41,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,55,43, - 0,178,55,43,0,20,2,132,127,0, - 162,3,69,178,55,46,0,178,55,46, - 0,162,3,69,178,55,48,0,178,55, - 48,0,162,3,69,178,55,44,0,178, - 55,44,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,61,0,126,0,319,3,118,0, + 126,172,0,126,178,74,0,216,0,254, + 126,55,124,0,20,0,295,126,55,41, + 0,20,53,0,33,132,0,20,53,0, + 0,295,126,55,41,204,0,20,178,0, + 254,126,55,132,0,179,127,0,141,0, + 219,3,294,0,294,0,2,0,126,0, + 254,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,244,0,136, + 0,0,0,0,135,0,0,0,0,309, + 126,162,253,0,127,0,253,0,129,0, + 0,127,0,308,126,162,252,0,127,0, + 0,44,127,0,0,152,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,237,126,162,40,28, + 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,237,126,162,59, + 0,237,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,244,0,136,0,179,127,275,244,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,47,0,147,0,125,41,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,43, + 0,177,55,43,0,20,2,131,126,0, + 161,3,68,177,55,46,0,177,55,46, + 0,161,3,68,177,55,48,0,177,55, + 48,0,161,3,68,177,55,44,0,177, + 55,44,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; @@ -2298,38 +2301,38 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeState { public final static char scopeState[] = {0, - 4685,4907,4897,4887,0,1550,3559,560,3457,0, - 3551,3514,3454,3347,3310,3256,3219,3165,3128,2837, - 2800,3700,0,595,0,2484,785,0,3551,3514, - 2441,2265,3454,3347,3310,3256,3219,3165,1045,3128, - 2837,2800,3724,3010,0,1179,1083,803,0,3375, - 3004,0,3709,3243,0,818,735,0,4567,3436, - 0,4584,4516,0,4584,4516,3813,4316,4306,3707, - 4223,4213,4203,3697,0,4584,4516,3813,4316,4306, - 3707,4223,4213,4203,3697,3551,3514,3454,3347,3310, - 3256,3219,3165,3128,2837,2800,0,3253,734,0, - 670,582,0,826,0,2379,4416,4842,3225,4403, - 3762,2588,2969,2806,4532,2413,2936,2963,877,737, - 0,4784,4767,4759,4755,4739,4720,4709,4694,4870, - 4855,4850,4674,4670,4648,4644,4599,4835,3487,3139, - 3465,2628,4509,2769,0,538,4494,2927,0,4416, - 4567,4403,3436,2936,2912,3422,4481,2756,2379,3794, - 4370,2588,2419,2397,0,3336,3190,4784,4767,4759, - 2462,2414,4755,628,4739,4720,4709,3537,4694,3532, - 3469,3459,3404,2634,4870,2638,4855,2516,4850,3923, - 4674,4670,2444,4648,4644,2392,4599,4835,3477,3487, - 3139,3465,3037,2628,4509,4494,2769,738,2927,2521, - 2183,2095,1406,2912,3422,4481,2756,2379,4416,3794, - 4567,4403,4370,2588,3436,2269,942,805,670,582, - 2936,2419,2397,4182,4160,4138,2233,2283,2349,2317, - 2560,2532,596,3106,3080,2773,2701,2674,2601,3675, - 3651,632,3626,2728,4116,4094,4072,4050,4028,4006, - 3984,3962,3931,3900,3831,1976,2195,2145,2107,2057, - 2019,1051,884,1933,1890,1276,828,747,691,1847, - 1804,1761,1718,1675,1632,1589,1546,1503,1460,1417, - 538,1233,1188,1357,1319,1145,1006,963,1097,0, - 1389,1192,862,586,2413,2936,2912,2966,2419,2858, - 2397,0,3277,3149,3276,3143,0 + 4684,4906,4896,4886,0,1549,3558,559,3456,0, + 3550,3513,3453,3346,3309,3255,3218,3164,3127,2836, + 2799,3699,0,594,0,2483,784,0,3550,3513, + 2440,2264,3453,3346,3309,3255,3218,3164,1044,3127, + 2836,2799,3723,3009,0,1178,1082,802,0,3374, + 3003,0,3708,3242,0,817,734,0,4566,3435, + 0,4583,4515,0,4583,4515,3812,4315,4305,3706, + 4222,4212,4202,3696,0,4583,4515,3812,4315,4305, + 3706,4222,4212,4202,3696,3550,3513,3453,3346,3309, + 3255,3218,3164,3127,2836,2799,0,3252,733,0, + 669,581,0,825,0,2378,4415,4841,3224,4402, + 3761,2587,2968,2805,4531,2412,2935,2962,876,736, + 0,4783,4766,4758,4754,4738,4719,4708,4693,4869, + 4854,4849,4673,4669,4647,4643,4598,4834,3486,3138, + 3464,2627,4508,2768,0,537,4493,2926,0,4415, + 4566,4402,3435,2935,2911,3421,4480,2755,2378,3793, + 4369,2587,2418,2396,0,3335,3189,4783,4766,4758, + 2461,2413,4754,627,4738,4719,4708,3536,4693,3531, + 3468,3458,3403,2633,4869,2637,4854,2515,4849,3922, + 4673,4669,2443,4647,4643,2391,4598,4834,3476,3486, + 3138,3464,3036,2627,4508,4493,2768,737,2926,2520, + 2182,2094,1405,2911,3421,4480,2755,2378,4415,3793, + 4566,4402,4369,2587,3435,2268,941,804,669,581, + 2935,2418,2396,4181,4159,4137,2232,2282,2348,2316, + 2559,2531,595,3105,3079,2772,2700,2673,2600,3674, + 3650,631,3625,2727,4115,4093,4071,4049,4027,4005, + 3983,3961,3930,3899,3830,1975,2194,2144,2106,2056, + 2018,1050,883,1932,1889,1275,827,746,690,1846, + 1803,1760,1717,1674,1631,1588,1545,1502,1459,1416, + 537,1232,1187,1356,1318,1144,1005,962,1096,0, + 1388,1191,861,585,2412,2935,2911,2965,2418,2857, + 2396,0,3276,3148,3275,3142,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2337,60 +2340,60 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface InSymb { public final static char inSymb[] = {0, - 0,297,41,10,39,55,231,231,127,70, - 70,296,145,127,168,69,71,70,224,199, - 64,217,218,187,183,5,125,132,7,133, - 128,4,3,127,270,271,254,272,245,273, - 57,274,275,125,10,128,127,3,39,51, - 43,46,48,44,10,136,3,128,47,42, - 5,36,35,6,9,38,37,140,146,148, - 147,150,149,152,151,156,154,158,62,159, - 70,70,215,159,3,3,125,124,55,55, - 168,64,3,66,67,55,180,166,167,224, - 199,127,213,128,177,163,311,276,306,276, - 128,180,167,213,127,231,3,55,55,55, - 55,128,3,178,162,127,66,67,167,3, - 126,106,120,3,64,90,92,36,35,94, - 93,6,96,95,69,55,88,89,9,98, - 97,100,99,101,117,116,115,114,113,112, - 111,110,109,108,70,107,102,127,127,127, - 127,127,64,64,127,4,188,228,229,230, - 128,167,6,127,167,231,126,125,128,124, - 163,128,167,41,70,178,162,178,178,178, - 178,167,220,127,155,268,136,126,125,10, - 128,64,298,3,178,41,128,41,220,162, - 147,147,146,146,146,149,149,149,149,148, - 148,151,150,150,154,152,156,162,158,228, - 228,255,257,255,213,255,261,188,155,71, - 167,177,127,310,128,169,225,60,41,205, - 63,171,313,126,125,232,232,180,163,127, - 180,188,128,69,69,69,69,188,259,71, - 128,167,206,3,299,168,153,180,167,73, - 155,155,71,4,127,6,185,167,163,227, - 55,41,279,281,127,3,183,232,232,127, - 127,188,127,277,124,278,3,3,3,3, - 126,125,167,41,178,127,127,221,5,41, - 127,127,222,127,188,127,163,69,55,128, - 75,127,213,312,73,290,199,125,127,127, - 127,73,277,70,71,162,162,162,162,3, - 3,188,155,263,266,64,181,4,124,126, - 222,222,127,129,238,28,41,171,65,60, - 63,240,127,127,180,127,282,73,71,73, - 70,213,315,225,22,128,220,220,126,127, - 3,64,162,4,127,127,62,40,127,3, - 124,60,238,296,129,282,163,294,128,295, - 71,128,22,316,180,263,220,215,3,127, - 163,269,249,280,40,70,128,69,283,127, - 71,180,3,180,128,128,321,127,3,70, - 71,155,128,180,127,302,80,78,1,162, - 8,86,84,82,81,76,83,85,79,77, - 60,75,220,180,180,71,238,153,163,253, - 180,227,284,119,8,73,215,73,3,3, - 3,191,3,124,162,124,179,127,163,227, - 3,73,226,168,226,304,145,76,226,127, - 127,91,320,168,155,199,155,303,127,3, - 155,284,309,155,155,127,70,191,161,269, - 162,190,71,122,301,155,190,8,155 + 0,296,41,10,39,55,230,230,126,69, + 69,295,144,126,167,68,70,69,223,198, + 63,216,217,186,182,5,124,131,7,132, + 127,4,3,126,269,270,253,271,244,272, + 56,273,274,124,10,127,126,3,39,51, + 43,46,48,44,10,135,3,127,47,42, + 5,36,35,6,9,38,37,139,145,147, + 146,149,148,151,150,155,153,157,61,158, + 69,69,214,158,3,3,124,123,55,55, + 167,63,3,65,66,55,179,165,166,223, + 198,126,212,127,176,162,310,275,305,275, + 127,179,166,212,126,230,3,55,55,55, + 55,127,3,177,161,126,65,66,166,3, + 125,105,119,3,63,89,91,36,35,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,126,126,126, + 126,126,63,63,126,4,187,227,228,229, + 127,166,6,126,166,230,125,124,127,123, + 162,127,166,41,69,177,161,177,177,177, + 177,166,219,126,154,267,135,125,124,10, + 127,63,297,3,177,41,127,41,219,161, + 146,146,145,145,145,148,148,148,148,147, + 147,150,149,149,153,151,155,161,157,227, + 227,254,256,254,212,254,260,187,154,70, + 166,176,126,309,127,168,224,59,41,204, + 62,170,312,125,124,231,231,179,162,126, + 179,187,127,68,68,68,68,187,258,70, + 127,166,205,3,298,167,152,179,166,72, + 154,154,70,4,126,6,184,166,162,226, + 55,41,278,280,126,3,182,231,231,126, + 126,187,126,276,123,277,3,3,3,3, + 125,124,166,41,177,126,126,220,5,41, + 126,126,221,126,187,126,162,68,55,127, + 74,126,212,311,72,289,198,124,126,126, + 126,72,276,69,70,161,161,161,161,3, + 3,187,154,262,265,63,180,4,123,125, + 221,221,126,128,237,28,41,170,64,59, + 62,239,126,126,179,126,281,72,70,72, + 69,212,314,224,22,127,219,219,125,126, + 3,63,161,4,126,126,61,40,126,3, + 123,59,237,295,128,281,162,293,127,294, + 70,127,22,315,179,262,219,214,3,126, + 162,268,248,279,40,69,127,68,282,126, + 70,179,3,179,127,127,320,126,3,69, + 70,154,127,179,126,301,79,77,1,161, + 8,85,83,81,80,75,82,84,78,76, + 59,74,219,179,179,70,237,152,162,252, + 179,226,283,118,8,72,214,72,3,3, + 3,190,3,123,161,123,178,126,162,226, + 3,72,225,167,225,303,144,75,225,126, + 126,90,319,167,154,198,154,302,126,3, + 154,283,308,154,154,126,69,190,160,268, + 161,189,70,121,300,154,189,8,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2521,7 +2524,6 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par "SemiColon", "LeftBrace", "ERROR_TOKEN", - "0", "EOF_TOKEN", "type_parameter_start", "]", @@ -2655,7 +2657,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 61, + ERROR_SYMBOL = 60, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2667,19 +2669,19 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final static int NUM_STATES = 539, - NT_OFFSET = 123, - LA_STATE_OFFSET = 5965, + NT_OFFSET = 122, + LA_STATE_OFFSET = 5963, MAX_LA = 2147483647, - NUM_RULES = 537, + NUM_RULES = 536, NUM_NONTERMINALS = 202, - NUM_SYMBOLS = 325, + NUM_SYMBOLS = 324, SEGMENT_SIZE = 8192, - START_STATE = 3143, + START_STATE = 3142, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 121, - EOLT_SYMBOL = 121, - ACCEPT_ACTION = 5063, - ERROR_ACTION = 5428; + EOFT_SYMBOL = 120, + EOLT_SYMBOL = 120, + ACCEPT_ACTION = 5062, + ERROR_ACTION = 5427; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java index e5631324a4f..0a69f975ee2 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java @@ -15,69 +15,69 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPTemplateTypeParameterParsersym { public final static int - TK_asm = 65, + TK_asm = 64, TK_auto = 26, 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 = 39, TK_const = 23, TK_const_cast = 43, - 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 = 44, - TK_else = 122, - TK_enum = 57, + TK_else = 121, + TK_enum = 56, TK_explicit = 27, - TK_export = 87, + TK_export = 86, TK_extern = 28, TK_false = 45, TK_float = 14, - TK_for = 82, + TK_for = 81, TK_friend = 29, - TK_goto = 83, - TK_if = 84, + TK_goto = 82, + TK_if = 83, TK_inline = 30, TK_int = 15, TK_long = 16, TK_mutable = 31, - 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 = 32, TK_reinterpret_cast = 46, - TK_return = 85, + TK_return = 84, TK_short = 17, TK_signed = 18, TK_sizeof = 47, TK_static = 33, TK_static_cast = 48, - TK_struct = 58, - TK_switch = 86, + TK_struct = 57, + TK_switch = 85, TK_template = 41, TK_this = 49, - TK_throw = 62, - TK_try = 75, + TK_throw = 61, + TK_try = 74, TK_true = 50, TK_typedef = 34, 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 CPPTemplateTypeParameterParsersym { 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 CPPTemplateTypeParameterParsersym { TK_Minus = 36, TK_Tilde = 5, TK_Bang = 42, - TK_Slash = 93, - TK_Percent = 94, - TK_RightShift = 88, - TK_LeftShift = 89, + TK_Slash = 92, + TK_Percent = 93, + TK_RightShift = 87, + TK_LeftShift = 88, TK_LT = 55, - 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_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 = 25, - TK_LeftBrace = 68, - TK_ERROR_TOKEN = 61, - TK_0 = 56, - TK_EOF_TOKEN = 121; + TK_LeftBrace = 67, + TK_ERROR_TOKEN = 60, + TK_EOF_TOKEN = 120; public final static String orderedTerminalSymbols[] = { "", @@ -196,7 +195,6 @@ public interface CPPTemplateTypeParameterParsersym { "floating", "charconst", "LT", - "0", "enum", "struct", "union", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java index e2518f68754..f294420f5ca 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java @@ -27,8 +27,10 @@ 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; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction; +import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory; public class GCCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { @@ -174,12 +176,12 @@ public GCCParser() { // 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() , GCCSecondaryParserFactory.getDefault() ); action.setParserOptions(options); - gnuAction = new GCCBuildASTParserAction ( CNodeFactory.getDefault() , this, tu, astStack); + gnuAction = new GCCBuildASTParserAction (this, tu, astStack, CNodeFactory.getDefault() ); gnuAction.setParserOptions(options); @@ -241,8 +243,8 @@ public void setTokens(List<IToken> tokens) { addToken(new Token(null, 0, 0, GCCParsersym.TK_EOF_TOKEN)); } -public GCCParser(String[] mapFrom) { // constructor - tokenMap = new TokenMap(GCCParsersym.orderedTerminalSymbols, mapFrom); +public GCCParser(IParserActionTokenProvider parser) { // constructor + tokenMap = new TokenMap(GCCParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } @@ -333,7 +335,7 @@ private GCCBuildASTParserAction gnuAction; } // - // 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; } @@ -393,13 +395,13 @@ private GCCBuildASTParserAction gnuAction; } // - // 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; } @@ -1083,13 +1085,13 @@ private GCCBuildASTParserAction gnuAction; } // - // 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; } @@ -1279,18 +1281,48 @@ private GCCBuildASTParserAction gnuAction; // case 341: { gnuAction.consumeDeclarationASM(); break; } + + // + // Rule 352: unary_expression ::= __alignof__ unary_expression + // + case 352: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; + } + + // + // Rule 353: unary_expression ::= __alignof__ ( type_id ) + // + case 353: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break; + } + + // + // Rule 354: unary_expression ::= typeof unary_expression + // + case 354: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + } + + // + // Rule 355: unary_expression ::= typeof ( type_id ) + // + case 355: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + } // - // Rule 365: designator_base ::= identifier_token : + // Rule 371: field_name_designator ::= identifier_token : // - case 365: { gnuAction.consumeDesignatorField(); break; + case 371: { gnuAction.consumeDesignatorField(); break; } // - // Rule 366: designator_base ::= [ constant_expression ... constant_expression ] + // Rule 372: array_range_designator ::= [ constant_expression ... constant_expression ] // - case 366: { gnuAction.consumeDesignatorArray(); break; + case 372: { gnuAction.consumeDesignatorArray(); break; } + + // + // Rule 373: designated_initializer ::= <openscope-ast> field_name_designator initializer + // + case 373: { action. consumeInitializerDesignated(); break; + } default: diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java index 82c83721e78..8462625a5cb 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java @@ -69,262 +69,264 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym 3,1,3,1,4,0,1,1,1,3, 1,0,4,3,1,2,1,3,4,4, 6,1,0,1,3,1,3,0,1,4, - 5,1,1,2,2,3,2,2,3,1, - 1,1,1,1,2,5,-101,-50,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-2,0,0, - -8,0,0,-7,-156,0,0,0,-225,-10, - 0,0,0,0,0,0,0,0,-5,0, - -28,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-86,0,0,-4,0,-11, - -107,0,0,-12,0,-49,0,0,0,0, - 0,-24,0,0,0,0,0,-25,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-158,0,0,-96,0,-205, - 0,-221,-31,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-140,0, - -115,0,-333,-3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-48,0, - -41,0,0,0,0,0,0,0,0,0, - 0,0,-222,0,0,0,0,0,0,0, - 0,0,-309,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-220,0,0,0, - 0,0,0,0,0,0,0,-53,0,0, - 0,0,0,0,0,0,0,0,0,-47, - 0,0,0,0,0,0,0,0,-283,0, - 0,0,0,0,0,0,0,0,0,-32, - 0,-45,0,0,0,0,0,0,0,0, - 0,0,-66,0,0,-168,-318,0,0,0, - 0,0,0,0,0,0,0,-159,0,0, - 0,0,0,0,0,0,0,-30,0,0, - 0,-214,0,0,0,0,0,0,0,0, - 0,-173,0,0,-54,0,0,0,0,0, - -170,0,0,0,0,0,0,0,0,0, - 0,0,0,-111,0,0,0,0,0,0, - 0,-29,0,0,0,0,0,0,-56,0, - -58,-321,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-177,0,-73,0, - 0,0,0,0,0,0,0,0,0,0, - -244,0,0,0,0,0,0,0,0,-59, - 0,0,-27,-215,0,0,0,0,0,0, - 0,0,0,0,0,-68,0,0,0,0, - 0,-246,0,-79,0,0,0,0,0,0, - 0,0,0,0,-181,0,-180,0,0,0, - 0,0,0,0,-63,0,0,0,-186,0, - 0,0,-46,-67,-334,0,0,0,0,0, + 5,2,4,2,4,1,1,2,2,3, + 2,2,3,1,1,1,1,1,1,1, + 2,5,3,-101,-45,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-2,0,0,0,-47,0,0, + -72,0,-112,0,0,0,-226,-3,0,0, + 0,0,0,0,0,0,0,0,-28,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-5,0,-7,-4,0,-118,-8,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-10,0,0,0,0, + 0,0,0,-48,0,0,0,0,0,0, + 0,0,-253,0,-114,0,0,-175,-227,-46, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-142,-125,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-115,0,0, + 0,0,0,0,0,-11,0,0,0,0, + -224,0,0,0,0,0,0,0,0,0, + 0,-183,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-225,-170,0,0,0, + 0,0,0,0,0,0,-12,0,0,0, + 0,0,0,0,0,0,0,0,0,-24, + -188,0,0,0,0,0,0,-289,0,0, + 0,0,0,0,0,0,0,0,-230,0, + -209,0,0,0,0,0,0,-25,0,0, + 0,0,0,0,-326,0,0,0,0,0, + 0,0,0,0,0,0,0,-86,0,0, + 0,0,0,0,-62,0,0,0,-335,-214, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-31,0,0,-313,0,0,0, + 0,0,0,0,0,0,0,-41,-81,0, + 0,0,0,0,0,0,0,0,0,0, + -111,-53,0,0,-54,-220,0,0,0,0, + 0,0,0,0,0,0,-96,0,-56,-329, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-66,0,0,-73,0,0,0, + 0,0,0,0,0,0,0,-49,-238,0, + -84,0,0,0,0,0,0,0,0,0, + 0,-215,0,0,0,0,0,0,0,0, + 0,0,0,0,-317,0,-58,0,0,0, + 0,-79,-186,0,0,0,0,0,0,0, + 0,0,-32,-109,-59,0,0,0,0,0, + 0,0,0,0,0,0,-172,0,0,0, + 0,0,0,0,0,0,0,-63,0,0, + 0,0,0,0,0,0,0,0,0,0, + -179,-218,0,0,0,0,0,0,0,0, + 0,0,-29,0,-100,0,0,0,-331,0, + 0,0,0,0,0,0,0,0,0,0, + -177,0,0,0,0,0,0,0,0,0, + 0,0,-68,0,0,-343,-67,0,0,0, + 0,0,0,0,0,0,-61,-69,0,0, 0,0,0,0,0,-13,0,0,0,0, - 0,-34,-81,0,-69,0,0,0,0,-308, - -26,0,0,0,0,0,0,-70,0,0, - 0,0,0,0,0,0,0,-216,0,0, - 0,0,0,0,0,0,0,0,0,0, - -83,0,-250,0,0,0,0,0,-249,0, - 0,0,0,-72,0,0,0,0,0,-36, - 0,0,-113,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-62,0,-223, - -183,0,0,0,0,0,0,0,0,0, - 0,0,-43,0,0,0,0,0,0,-100, - 0,-118,0,0,0,0,0,0,0,0, - 0,0,-153,0,0,0,0,0,0,0, - 0,0,-90,0,-332,0,0,0,0,0, - 0,0,0,0,0,0,-84,-185,0,0, - 0,0,0,0,0,0,0,-91,-57,-230, - 0,0,0,0,0,0,0,0,-93,0, - 0,0,-94,0,-97,-37,-108,0,-290,0, - 0,0,0,0,0,0,0,0,0,-279, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-226,-174,0,0,-98, - 0,0,0,0,0,0,0,0,0,-38, - -82,0,0,0,0,0,0,0,0,0, - 0,0,0,-187,-203,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-26,0,0,0,-34,0,-36,-43,0, + -57,0,0,0,0,0,0,0,-216,-254, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-37,0, + 0,0,0,0,-285,0,0,0,0,0, + 0,0,0,-113,0,0,0,0,0,0, + 0,0,0,0,0,0,-70,0,0,0, + 0,0,0,-83,0,0,0,-90,-155,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-91,0, + 0,0,-93,0,0,-108,0,-158,0,0, + 0,-94,-187,-38,0,0,0,0,0,0, + 0,0,0,-182,-234,0,0,0,0,0, + 0,0,0,0,0,0,-97,0,0,-89, + 0,-99,-296,-103,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-105,0,0,0,0,-98,0,0, + 0,0,0,0,0,0,0,0,0,-176, + 0,-116,0,0,0,0,0,0,0,0, + 0,-189,-129,0,0,0,0,0,0,0, + 0,0,-332,0,-50,0,0,0,0,0, + 0,-231,0,0,0,-207,-190,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -82,0,0,0,0,0,-64,0,0,0, + -110,0,0,-191,-208,0,0,0,0,0, 0,0,0,0,0,-87,0,0,0,0, - 0,0,0,0,-231,0,0,0,-188,0, - 0,0,0,0,0,0,0,0,0,0, - -88,-95,0,0,0,0,0,0,0,-247, - 0,0,-99,-189,0,0,0,0,0,0, - 0,0,0,0,0,0,-103,0,0,0, - 0,0,0,0,0,0,0,-291,-190,0, - 0,0,0,0,0,0,0,0,-89,-110, - 0,-204,0,0,0,0,0,0,0,0, - 0,0,0,-191,0,0,0,0,0,0, - 0,0,0,-144,0,0,-152,0,0,0, - 0,0,0,0,-297,0,0,0,-192,0, - 0,0,0,0,0,0,0,0,-227,-154, - 0,-105,0,0,0,0,0,0,0,-320, - 0,0,-340,-193,0,0,0,0,0,0, - 0,0,0,0,-172,0,-116,0,0,0, - 0,0,0,0,0,0,0,-127,-194,0, - 0,0,0,0,0,0,0,0,-128,0, - 0,-235,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-235,-192,0, + 0,0,0,0,0,0,0,0,0,0, + -88,-95,-251,0,0,0,0,0,-250,0, + 0,0,-130,-193,0,0,0,0,0,0, + 0,0,0,0,0,0,-146,0,0,0, + 0,0,0,0,0,0,0,0,-194,0, + 0,0,0,0,0,0,0,0,0,-316, + -154,-156,0,0,0,0,0,0,-258,0, 0,0,0,-195,0,0,0,0,0,0, - 0,0,0,-232,0,0,-284,0,0,0, - 0,0,0,0,-129,0,0,-130,-196,0, - 0,0,0,0,0,0,0,0,-131,-292, - 0,-132,0,0,0,0,0,0,0,-133, - 0,0,-134,-197,0,0,0,0,0,0, - 0,0,0,0,-300,0,-61,0,0,0, - 0,0,0,0,-326,0,0,-135,-242,0, - 0,0,0,0,0,0,0,0,-324,-311, - -329,-136,0,0,0,0,0,0,0,-137, - 0,0,-141,-248,0,0,0,0,0,0, - 0,0,0,0,0,0,-64,0,0,0, - 0,0,0,0,-336,0,0,-252,-145,0, - 0,0,0,0,0,0,0,0,-147,-148, - -149,0,0,0,0,0,0,0,-151,0, - 0,0,-253,0,0,0,0,0,0,0, - 0,0,0,-157,-162,-165,0,0,0,0, - 0,0,0,-282,0,0,-166,-102,0,0, - 0,-167,-104,0,0,0,0,-178,-217,-179, - 0,0,0,0,0,0,0,0,0,-237, - 0,0,0,0,-251,0,-263,0,0,0, - -119,-264,0,0,0,0,0,0,0,0, - 0,0,0,-265,-266,0,-293,-114,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-267,0,0, - -315,-184,0,0,0,0,0,0,0,0, - -268,-269,-270,-138,0,0,0,0,0,0, - 0,0,0,0,-325,-254,0,0,0,0, - 0,0,0,0,0,0,-271,-150,0,0, - 0,0,0,0,0,0,0,0,-337,-272, - 0,0,0,0,0,0,0,0,0,0, - -273,-169,0,0,0,0,0,0,0,0, - 0,0,-341,-274,0,0,0,0,0,0, - 0,0,0,0,-275,-262,0,0,0,0, - 0,0,0,-21,0,0,-276,-171,-182,-277, - -278,-60,0,0,0,0,0,0,-218,-294, - 0,0,0,0,0,0,0,0,0,0, - -234,0,0,0,0,0,0,-303,0,0, - 0,0,-198,-298,0,-304,-199,-233,0,0, - 0,0,0,0,0,0,-313,0,0,0, - 0,-322,0,0,0,-85,0,0,0,0, - -236,0,-125,0,0,0,0,0,0,0, - 0,0,0,0,-285,0,0,0,-323,0, - 0,0,0,-238,0,-160,0,0,0,-299, - -175,0,0,0,0,0,0,0,0,0, - -239,0,0,0,0,0,0,0,0,0, - 0,-243,0,0,0,-92,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-259, - 0,0,0,0,-164,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-14,0,-240,0,-301,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-260,0,0,-261,0,0,-280,-245,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-307, - -312,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-335,0,-319,0,-327, - 0,0,0,0,0,0,0,-342,-305,0, - 0,0,0,0,0,0,0,0,0,-339, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-344,0,0,0,-76,0,0,0, - 0,0,0,-139,0,0,0,0,0,0, - 0,0,0,-219,0,0,0,0,0,0, - 0,0,0,0,0,-228,0,0,0,0, - 0,0,0,-117,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-74,0,0,0,0,0,0,0, - 0,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,-314,0,0,0,-112,0,0,-295, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-310,0,0, + 0,0,0,0,0,0,-174,0,0,0, + 0,0,0,0,0,0,0,-297,-196,0, + 0,0,0,0,0,0,0,0,0,-236, + 0,-239,0,0,0,0,0,0,-268,0, + 0,0,-303,-197,0,0,0,0,0,0, + 0,0,0,0,0,0,-290,-298,0,0, + 0,0,0,-304,0,0,0,0,-198,0, + 0,0,0,0,0,0,0,0,0,-328, + 0,0,0,0,0,0,0,0,-305,0, + 0,0,0,-199,0,0,0,0,0,0, + 0,0,0,0,-306,0,-319,0,0,0, + 0,0,0,-344,0,0,0,-342,-246,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-338,0,0,0,0,0,0,-131,0, + 0,0,-341,-252,0,0,0,0,0,0, + 0,0,0,0,-345,0,-349,0,0,0, + 0,0,0,-132,0,0,0,-256,-133,0, + 0,0,0,0,0,0,0,0,-351,-134, + -135,0,0,0,0,0,0,-136,0,0, + 0,-137,-257,0,0,0,0,0,0,0, + 0,0,0,0,-138,-139,0,0,0,0, + 0,0,-288,0,0,0,-143,0,0,-102, + -291,0,0,0,0,0,0,-219,-147,0, + 0,0,0,0,0,0,0,0,-149,0, + 0,-353,0,-104,0,0,0,0,0,-121, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-150,0,0,-299,-151,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-323, + 0,0,0,0,0,0,0,0,0,0, + -153,-159,-164,-167,0,0,0,0,0,-168, + 0,0,0,-333,-169,0,0,0,0,0, + 0,0,0,0,-180,0,-27,-181,0,0, + 0,0,0,-241,0,0,0,-346,-255,0, + 0,0,0,0,0,0,0,0,-269,0, + -270,-271,0,0,0,0,0,-272,0,0, + 0,-350,-273,0,0,0,0,0,0,0, + 0,0,-274,0,-21,-275,0,0,0,0, + 0,-33,0,0,0,0,0,0,0,-276, + -166,0,0,0,0,0,-277,0,-278,-279, + -280,0,0,0,0,0,0,-221,-281,0, + 0,0,0,0,0,0,0,0,0,-117, + 0,0,-140,0,0,0,0,-152,0,0, + 0,0,-60,0,-282,0,0,0,0,-283, + -171,0,0,0,0,0,0,0,0,0, + -284,0,0,0,0,0,0,0,-300,0, + 0,0,-85,0,0,0,-309,-310,-311,0, + 0,0,0,0,0,0,-173,-184,0,-312, + 0,0,-321,-330,-334,0,0,0,0,0, + 0,0,0,-262,0,0,0,0,0,0, + 0,0,0,0,0,0,-160,0,0,0, + -162,0,0,0,0,0,0,-75,0,-222, 0,0,0,0,0,0,0,0,0,0, - -224,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-52,0,0,-306,0,0,0, - -15,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-210,0,0,0,0,0, + -244,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-200,0,0,0,0,0, + 0,-23,0,0,0,0,0,0,0,0, + 0,0,-178,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-71,0,0,0,0, + 0,-249,0,0,-201,0,0,0,0,0, + -237,0,0,0,0,0,0,0,0,0, + -35,0,0,0,0,0,0,-76,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-92,0,-39,0,0,0,0, + 0,-240,0,0,0,0,0,0,0,0, + 0,0,0,0,-141,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-80,0,0,0,-51,0,0,0, + 0,0,0,0,0,0,0,-242,0,0, + -6,0,0,-243,0,0,-318,0,0,0, + 0,0,-161,0,-232,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-9, - 0,-161,0,-22,0,0,0,0,0,0, + 0,0,-9,0,0,-247,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-263,0,-42,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-163,0,-78,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,-241,0,0, + -119,0,0,0,0,0,0,0,0,0, + 0,-77,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-229,0,0,0,0,0,0,0,0, + 0,0,-301,0,0,0,0,0,0,0, + 0,-106,0,0,0,0,0,0,0,0, + -52,0,0,0,0,0,0,0,-15,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-286,0,0,0,0, - 0,-281,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-288,0,0,0,0, - 0,-126,0,0,0,0,0,0,0,0, + 0,0,0,0,-264,0,0,0,0,0, + 0,0,-265,0,0,0,0,0,-266,0, + 0,0,0,-71,0,0,0,0,0,0, + -30,0,0,0,0,0,0,0,0,0, + 0,-145,0,0,0,0,0,0,0,-80, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-289,0,0,0,0,0,0, + 0,0,0,0,0,0,-163,0,0,0, + 0,0,0,0,0,0,0,0,-202,0, + -267,-286,-315,0,0,0,-165,0,0,0, + 0,0,-320,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-245,0,0,-327,0,0, + -287,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-292,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-330,0,0,-302,0,0, + -336,0,0,0,0,0,0,0,0,0, + 0,0,0,-294,0,0,0,0,0,0, + 0,-348,0,0,0,0,0,0,0,0, + 0,0,0,0,-295,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-287,0,0,0,0,0,0, - 0,0,0,-338,0,0,0,0,0,0, - -19,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-343,0,0,-328,0,0,0,0,0, + 0,0,-339,0,0,0,0,0,-308,0, 0,0,0,0,0,0,0,0,0,0, - -18,0,-23,0,0,0,0,0,0,0, - 0,0,0,0,0,-20,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-33, - 0,0,0,0,-1,0,0,0,0,0, + 0,0,0,-347,0,0,0,0,-120,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -258,0,0,0,0,-40,0,0,0,0, + 0,-352,0,0,-144,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-296,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-211,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-6,0,-44, - -200,0,0,0,0,0,0,-55,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,-155,0, - 0,0,0,0,-123,0,0,0,0,0, + 0,0,0,0,-18,0,0,0,-20,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-1,0,-259,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-212,0, + 0,-127,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-40,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-213,0,0,0,0, - 0,0,0,0,0,0,0,0,-255,-229, - 0,0,0,0,0,0,-257,0,0,0, - 0,0,0,-16,0,0,0,0,0,0, + 0,0,0,-325,0,0,0,0,-74,0, + -157,0,0,0,0,0,0,0,0,0, + 0,0,-223,0,0,0,0,0,0,0, + 0,0,0,-19,0,0,0,0,-22,0, + 0,0,-44,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-17,0,0,0,0,0,-65, + 0,0,-55,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-233,0,0,0,-107,0, 0,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,-121,0,0,0, - 0,0,0,0,-122,0,0,0,0,0, - 0,0,-124,0,0,0,0,0,0,0, - 0,-201,0,0,-146,0,0,0,0,0, - 0,0,-202,0,-207,0,0,0,0,0, - 0,0,0,-75,0,0,0,0,0,0, + 0,0,-217,0,0,0,0,0,0,0, + 0,0,0,0,0,-261,0,0,0,-203, + 0,0,0,0,-14,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-208,0,0,0,0,0,0, - 0,-209,0,0,0,0,0,0,0,0, - 0,-256,0,0,0,0,0,0,0,-142, - 0,0,0,0,-109,-316,0,0,0,-35, + 0,0,0,0,0,0,-16,0,0,0, + -210,0,0,0,-17,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-39,0,0,0,0,-42, - 0,0,0,0,0,0,0,0,-77,0, - 0,0,0,-106,0,-176,0,0,0,0, - 0,0,0,0,0,0,0,0,-143,0, - 0,0,0,-317,0,0,0,-331,0,0, + 0,0,-65,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-122, + 0,0,0,0,0,0,0,-123,0,0, + 0,0,0,0,0,-124,0,0,0,0, + 0,0,0,-126,0,0,0,0,0,0, + 0,-204,0,-205,0,0,-248,0,0,-206, + 0,-228,0,0,0,-148,0,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,-212,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-314,0,0,-213,0,0, + 0,0,0,0,0,-260,0,0,0,0, + 0,0,0,-51,0,0,0,0,0,0, + -78,0,-185,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-302,0, + -128,0,0,0,0,0,0,-324,0,0, + 0,0,0,0,0,-337,0,0,0,0, + 0,0,-293,0,0,-340,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0 + 0,0,0,0,0,0,0,0,0,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; @@ -334,308 +336,310 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface BaseAction { public final static char baseAction[] = { - 118,1,44,44,21,21,50,50,24,24, + 118,1,44,44,20,20,50,50,24,24, 2,2,2,2,3,3,3,4,4,5, - 5,5,5,5,5,5,5,74,74,98, + 5,5,5,5,5,5,5,75,75,98, 98,6,6,6,6,6,6,6,6,6, 6,6,7,7,8,8,8,8,9,9, - 9,14,14,14,15,15,15,15,15,16, - 16,16,17,17,18,18,19,19,20,20, + 9,10,10,10,15,15,15,15,15,16, + 16,16,17,17,18,18,19,19,21,21, 22,22,23,23,26,26,26,26,26,26, - 26,26,26,26,26,26,37,32,25,119, - 119,100,100,59,38,38,38,38,38,38, - 38,39,39,39,33,33,101,101,75,75, - 40,40,41,41,41,67,67,42,42,42, + 26,26,26,26,26,26,37,30,25,119, + 119,100,100,60,38,38,38,38,38,38, + 38,39,39,39,33,33,101,101,76,76, + 40,40,41,41,41,70,70,42,42,42, 42,43,43,43,43,43,53,53,29,29, 29,29,29,54,54,54,89,89,84,84, 84,84,85,85,85,86,86,86,87,87, 87,88,88,88,102,102,90,90,91,55, - 57,57,57,57,57,68,70,70,70,70, - 70,70,70,70,70,70,70,70,79,79, - 27,27,76,76,120,121,80,80,77,77, - 77,92,103,103,104,104,93,93,93,61, - 122,122,105,94,94,94,78,78,123,106, - 106,107,107,95,95,30,31,31,31,56, + 57,57,57,57,57,71,72,72,72,72, + 72,72,72,72,72,72,72,72,80,80, + 27,27,77,77,120,121,81,81,78,78, + 78,92,103,103,104,104,93,93,93,59, + 122,122,105,94,94,94,79,79,123,106, + 106,107,107,95,95,31,32,32,32,56, 51,51,45,45,45,45,34,34,35,46, 46,47,36,36,108,108,48,125,125,124, 124,52,52,52,52,52,52,52,52,52, - 109,60,60,60,60,49,81,81,71,71, - 71,72,72,62,62,126,126,83,83,82, - 82,82,63,63,63,64,65,65,65,66, - 66,66,66,69,69,69,73,127,99,99, + 109,61,61,61,61,49,82,82,73,73, + 73,74,74,63,63,126,126,69,69,83, + 83,83,64,64,64,65,66,66,66,67, + 67,67,67,62,62,62,68,127,99,99, 99,99,96,128,129,129,130,130,131,131, 118,118,132,132,110,110,110,110,133,133, - 111,111,111,112,112,10,10,10,28,28, - 11,11,134,134,113,113,113,114,114,135, - 135,115,115,12,12,136,136,116,116,116, - 13,58,137,137,138,138,117,117,117,97, - 97,97,53,54,91,91,91,105,105,105, - 123,120,121,49,92,130,130,314,647,14, - 19,15,1218,1207,44,1229,1268,353,315,316, - 317,1265,1282,1279,1293,1290,1332,1318,223,1340, - 74,487,127,91,34,411,933,134,215,1703, - 97,14,19,15,1218,42,44,1229,1268,1206, - 821,483,1592,1265,1282,1279,1293,1290,1332,1591, - 87,136,133,135,159,1206,933,1651,1366,2124, - 160,707,489,126,573,138,487,165,353,315, - 316,317,584,142,145,148,151,1752,627,124, - 87,2120,806,2031,2361,2376,1584,1157,134,215, - 199,313,448,226,234,411,933,1406,483,1676, - 1902,933,1703,405,14,19,15,1218,42,44, - 1229,1268,136,133,135,159,1265,1282,1564,1428, - 87,1229,1017,472,378,89,138,1674,165,353, - 315,316,317,311,142,145,148,151,1752,411, - 2704,346,2120,806,2031,2361,2376,1584,104,134, - 215,256,215,1703,194,14,19,15,1218,42, - 44,1229,1268,1550,642,1681,391,1265,1282,1279, - 1293,1290,1575,136,133,135,159,1703,310,14, - 19,15,1218,42,44,1229,1268,138,224,165, - 1669,1265,1282,1279,1551,142,145,148,151,1752, - 1889,1923,779,2120,806,2031,2361,2376,1584,1637, - 533,14,19,15,1218,1207,44,1229,1268,1785, - 393,233,504,1265,1282,1279,1293,1290,1332,1318, - 958,1340,74,411,431,283,706,1659,533,14, - 19,15,1218,1207,44,1229,1268,2620,411,933, - 284,1265,1282,1279,1293,1290,1332,1318,1606,1340, - 74,394,1703,283,14,19,15,1218,42,44, - 1229,1268,791,87,229,966,1265,1488,288,334, - 1691,1791,1369,14,19,15,1218,1207,44,1229, - 1268,1642,1315,294,1229,1265,1282,1279,1293,1290, - 1332,1318,1573,1340,74,289,288,331,820,1374, - 1369,725,1524,533,14,19,15,1218,1207,44, - 1229,1268,182,321,256,215,1265,1282,1279,1293, - 1290,1332,1318,289,1340,74,945,1736,283,413, - 491,14,19,15,1218,1207,44,1229,1268,323, - 1107,833,489,1265,1282,1279,1293,1290,1332,1318, - 610,1340,74,325,1703,1468,14,19,15,1218, - 42,44,1229,1268,335,765,411,2755,1265,1501, - 199,290,1736,241,1580,1369,14,19,15,1218, - 1207,44,1229,1268,898,1439,329,1229,1265,1282, - 1279,1293,1290,1332,1318,947,1340,74,291,1662, - 283,1090,1017,868,1060,1681,1702,14,19,15, - 1218,1207,44,1229,1268,257,215,256,215,1265, - 1282,1279,1293,1290,1332,1318,626,1340,74,257, - 215,283,417,325,194,443,353,315,316,317, - 1896,699,2488,157,1118,1681,1165,1369,854,664, - 730,318,315,316,317,230,134,215,1703,189, - 14,19,15,1218,42,44,1229,1268,853,2024, - 344,525,1502,1706,292,592,226,645,1369,417, - 144,133,135,159,1889,1967,220,783,223,679, - 417,969,2097,1725,901,14,19,15,1218,1207, - 44,1229,1268,257,215,233,1428,1265,1282,1279, - 1293,1290,1332,1318,1190,1340,74,188,1606,1492, - 1703,1229,14,19,15,1218,42,44,1229,1268, - 730,154,558,1879,1265,1282,1279,1293,1587,333, - 1206,1725,1747,368,14,19,15,1218,40,436, - 345,256,215,1703,227,14,19,15,1218,1207, - 44,1229,1268,1211,126,1896,509,1265,1282,1279, - 1293,1290,1332,1318,212,1340,74,1154,1502,91, - 14,19,15,1218,1207,44,1229,1268,1381,1831, - 1619,489,1265,1282,1279,1293,1290,1332,1318,1506, - 1340,74,779,1529,1516,37,1013,411,2796,1791, - 1031,14,19,15,1218,1207,44,1229,1268,1874, - 1889,2027,242,1265,1282,1279,1293,1290,1332,1318, - 1368,1340,74,784,336,331,1578,1206,1789,1193, - 1703,280,14,19,15,1218,42,44,1229,1268, - 417,1253,262,1406,1265,1282,1279,1293,1290,1332, - 1318,197,1340,93,1703,1248,14,19,15,1218, - 1207,44,1229,1268,347,341,1253,190,1265,1282, - 1279,1293,1290,1332,1318,791,1340,74,278,1703, - 85,14,19,15,1218,1207,44,1229,1268,1405, - 123,1253,1253,1265,1282,1279,1293,1290,1332,1318, - 791,1340,74,163,1703,84,14,19,15,1218, - 1207,44,1229,1268,330,122,111,1604,1265,1282, - 1279,1293,1290,1332,1318,285,1340,74,791,1703, - 83,14,19,15,1218,1207,44,1229,1268,417, - 1182,767,1248,1265,1282,1279,1293,1290,1332,1318, - 206,1340,74,23,1703,82,14,19,15,1218, - 1207,44,1229,1268,411,1065,1180,1253,1265,1282, - 1279,1293,1290,1332,1318,791,1340,74,183,1703, - 81,14,19,15,1218,1207,44,1229,1268,1610, - 1253,125,1203,1265,1282,1279,1293,1290,1332,1318, - 791,1340,74,791,1703,80,14,19,15,1218, - 1207,44,1229,1268,121,411,721,1730,1265,1282, - 1279,1293,1290,1332,1318,207,1340,74,1825,1703, - 79,14,19,15,1218,1207,44,1229,1268,782, - 22,277,1253,1265,1282,1279,1293,1290,1332,1318, - 493,1340,74,26,1703,78,14,19,15,1218, - 1207,44,1229,1268,411,579,1665,1253,1265,1282, - 1279,1293,1290,1332,1318,930,1340,74,779,1703, - 77,14,19,15,1218,1207,44,1229,1268,360, - 1861,1988,285,1265,1282,1279,1293,1290,1332,1318, - 702,1340,74,509,1703,76,14,19,15,1218, - 1207,44,1229,1268,196,411,607,706,1265,1282, - 1279,1293,1290,1332,1318,1308,1340,74,1758,1703, - 75,14,19,15,1218,1207,44,1229,1268,417, - 1253,1253,900,1265,1282,1279,1293,1290,1332,1318, - 1118,1340,74,1306,1703,92,14,19,15,1218, - 42,44,1229,1268,2345,117,297,1879,1265,1282, - 1279,1293,1290,1332,1318,417,1340,93,1703,1247, - 14,19,15,1218,1207,44,1229,1268,340,1824, - 1390,387,1265,1282,1279,1293,1290,1332,1318,64, - 1340,74,299,1703,1624,14,19,15,1218,1207, - 44,1229,1268,214,1855,771,1714,1265,1282,1279, - 1293,1290,1332,1318,347,1340,74,489,1832,1680, - 322,1107,575,1844,318,315,316,317,286,1703, - 1881,14,19,15,1218,42,44,1229,1268,1552, - 1612,1418,2780,1503,338,1276,295,1402,592,226, - 231,1703,1575,14,19,15,1218,42,39,221, - 783,223,225,815,1375,1851,276,1703,1294,14, - 19,15,1218,42,44,1229,1268,271,1016,1179, - 274,1265,1282,1279,1293,1290,1332,1318,607,1340, - 93,1703,1294,14,19,15,1218,42,44,1229, - 1268,742,976,1023,1879,1265,1282,1279,1293,1290, - 1332,1318,243,1340,93,1703,1294,14,19,15, - 1218,42,44,1229,1268,232,204,1070,1879,1265, - 1282,1279,1293,1290,1332,1318,245,1340,93,1703, - 1259,14,19,15,1218,42,44,1229,1268,350, - 205,1910,1879,1265,1282,1279,1293,1290,1332,1318, - 244,1340,93,1703,1107,14,19,15,1218,42, - 44,1229,1268,320,1826,1429,1294,1265,1282,1279, - 1293,1290,1332,1318,1428,1340,93,727,1879,1833, - 1551,1774,190,367,353,315,316,317,1838,1703, - 1856,14,19,15,1218,42,44,1229,1268,339, - 236,1849,933,1527,134,215,110,86,1452,1093, - 20,920,1863,1879,1294,95,1802,1879,1879,1082, - 108,94,96,97,98,99,87,1568,137,133, - 135,159,1073,115,2742,109,1,367,16,351, - 352,1879,139,1769,165,14,19,15,1218,33, - 143,146,149,152,1752,1849,933,106,246,1862, - 110,86,2206,1093,1879,920,252,367,1257,95, - 1294,770,489,1082,108,94,96,97,98,99, - 87,1879,3017,1646,3017,2226,314,115,3017,109, - 110,86,1850,1093,352,920,896,933,3017,95, - 199,3017,2254,1082,108,94,96,97,98,99, - 1879,107,3017,325,247,699,2480,3017,3017,109, - 110,86,1330,1093,352,318,315,316,317,95, - 3017,1618,1017,1082,1404,94,96,97,98,99, - 3017,106,496,2024,127,367,402,3017,3017,592, - 226,231,318,315,316,317,318,315,316,317, - 220,783,223,225,195,3017,2097,1754,110,86, - 2390,1093,1879,920,2780,1879,3017,95,1879,715, - 2480,1082,108,94,96,97,98,99,3017,318, - 315,316,317,1626,105,815,21,109,276,275, - 1879,1879,352,3017,3017,154,558,1970,3017,271, - 1016,1179,274,592,226,231,1877,368,1879,107, - 1879,281,1331,3017,220,783,223,225,1294,1703, - 1600,14,19,15,1218,42,44,1229,1268,282, - 1879,2314,3017,1265,1282,1279,1293,1290,1332,1318, - 3017,1340,73,1294,3017,3017,3017,699,2480,3017, - 296,2342,590,3017,474,2580,3017,318,315,316, - 317,3017,298,2446,1703,3017,14,19,15,1218, - 42,44,1229,1268,200,2024,750,2212,1540,3017, - 3017,592,226,231,411,367,3017,366,592,226, - 231,1280,220,783,223,225,3017,279,2097,220, - 783,223,225,1164,489,265,276,3017,3017,87, - 592,226,231,199,3017,3017,1627,269,1016,1179, - 274,220,783,223,225,3017,3017,913,276,3017, - 3017,3017,1874,3017,411,933,266,155,558,269, - 1016,1179,274,1344,2480,2481,3017,927,489,3017, - 715,2480,3017,318,315,316,317,3017,1788,87, - 319,315,316,317,3017,261,1576,1623,1849,933, - 3017,1970,3017,3017,1504,1343,1874,592,226,231, - 263,411,933,3017,592,226,231,3017,220,783, - 223,225,3017,87,1600,220,783,223,225,3017, - 115,1600,3017,3017,699,2480,87,1164,489,261, - 3017,718,3017,1590,319,315,316,317,1504,1343, - 3017,353,315,316,317,1703,3017,14,19,15, - 1218,42,44,1229,1447,1830,1874,2446,592,226, - 231,134,215,3017,2756,3017,841,3017,201,220, - 783,223,225,3017,3017,2158,318,315,316,317, - 3017,3017,3017,3017,3017,147,133,135,159,261, - 3017,1589,3017,841,2780,3017,3017,1059,1828,1343, - 592,226,231,318,315,316,317,318,315,316, - 317,221,783,223,225,815,3017,3017,3017,3017, - 1443,2780,943,933,629,2789,3017,592,226,1380, - 353,315,316,317,318,315,316,317,221,783, - 223,1379,815,3017,3017,3017,110,86,3017,1093, - 134,215,2780,3017,3017,95,990,933,1109,1082, - 103,94,96,97,98,99,3017,3017,318,315, - 316,317,3017,511,141,133,135,159,1037,933, - 110,86,3017,1093,2426,3017,2809,3017,140,95, - 165,3017,3017,1082,101,94,96,97,98,99, - 3017,3017,110,86,3017,1093,1084,933,3017,3017, - 3017,95,1400,489,3017,1082,102,94,96,97, - 98,99,318,315,316,317,1131,933,3017,3017, - 110,86,1769,1093,14,19,15,1218,32,95, - 2780,1874,3017,1082,118,94,96,97,98,99, - 110,86,3017,1093,1178,933,3017,3017,3017,95, - 3017,511,3017,1082,114,94,96,97,98,99, - 3017,3017,1414,3017,261,3017,3017,3017,110,86, - 3017,1093,3017,1810,1343,1225,933,95,1837,489, - 3017,1082,1637,94,96,97,98,99,318,315, - 316,317,3017,3017,411,933,3017,3017,3017,110, - 86,3017,1093,3017,1272,933,2780,1874,95,3017, - 3017,670,1082,113,94,96,97,98,99,87, - 3017,318,315,316,317,3017,1811,511,110,86, - 3017,1093,1319,933,3017,1849,933,95,1756,2775, - 261,1082,120,94,96,97,98,99,3017,1810, - 1343,781,3017,381,2480,3017,110,86,3017,1093, - 87,353,315,316,317,95,844,115,3017,1082, - 119,94,96,97,98,99,353,315,316,317, - 965,134,215,3017,3017,564,428,592,226,231, - 319,315,316,317,3017,3017,134,215,220,783, - 223,225,1850,1030,913,150,133,135,159,306, - 3017,1569,2288,3017,409,3017,841,3017,3017,3017, - 153,133,135,159,3017,3017,318,315,316,317, - 3017,3017,279,3017,986,3017,1436,3017,305,3017, - 3017,3017,3017,352,2780,3017,318,315,316,317, - 448,226,235,1703,3017,14,19,15,1218,42, - 44,1229,1452,276,2814,815,3017,3017,637,428, - 629,1352,2587,3017,269,1016,1179,274,629,3017, - 318,315,316,317,3017,3017,3017,3017,318,315, - 316,317,306,1788,3017,302,304,409,2780,1299, - 367,3017,3017,388,3017,1546,2780,14,19,15, - 1218,42,35,3017,3017,3017,3017,2478,3017,511, - 3017,305,3017,276,87,3017,352,511,920,3017, - 2066,115,3017,3017,269,1016,1179,274,2093,1703, - 3017,14,19,15,1218,42,44,1464,3017,248, - 3017,3017,1611,268,3017,3017,1703,352,14,19, - 15,1218,42,44,1465,3017,1232,3017,3017,1546, - 629,14,19,15,1218,42,35,629,303,304, - 318,315,316,317,392,3017,3017,318,315,316, - 317,3017,3017,3017,318,315,316,317,2780,3017, - 3017,3017,3017,3017,524,2780,3017,3017,3017,3017, - 1062,3017,2760,249,318,315,316,317,3017,511, - 318,315,316,317,3017,3017,511,3017,3017,3017, - 1414,3017,2760,3017,3017,3017,3017,1756,2794,1703, - 3017,14,19,15,1218,42,38,1703,3017,14, - 19,15,1218,42,37,1703,3017,14,19,15, - 1218,42,36,1703,3017,14,19,15,1218,42, - 34,3017,411,367,3017,1703,812,14,19,15, - 1218,42,35,411,367,1703,3017,14,19,15, - 1218,42,47,3017,918,489,870,87,3017,3017, - 3017,199,3017,3017,1627,3017,3017,3017,87,3017, - 3017,3017,199,3017,1703,1627,14,19,15,1218, - 42,46,1703,920,14,19,15,1218,42,45, - 3017,1182,1615,2481,14,19,15,1218,42,43, - 1887,489,3017,3017,2481,1019,1870,308,3017,3017, - 968,3017,352,3017,3017,1720,318,315,316,317, - 319,315,316,317,3017,919,1782,3017,3017,920, - 1012,3017,1428,312,2818,319,315,316,317,1106, - 319,315,316,317,1153,3017,1019,3017,3017,319, - 315,316,317,309,319,315,316,317,352,1156, - 3017,3017,3017,3017,1895,3017,3017,3017,1903,319, - 315,316,317,1428,319,315,316,317,319,315, - 316,317,3017,3017,3017,3017,3017,2750,3017,3017, - 3017,3017,3017,3017,3017,3017,3017,3017,3017,3017, - 211,3017,3017,3017,3017,3017,3017,3017,3017,3017, - 3017,707,1430,3017,3017,3017,3017,3017,3017,3017, - 3017,3017,3017,3017,3017,3017,3017,3017,3017,3017, - 3017,3017,3017,3017,3017,3017,3017,3017,3017,3017, - 3017,211,3017,3017,3017,3017,3017,3017,3017,3017, - 3017,3017,752,1430,3017,0,1,494,0,1, - 400,0,1,430,0,1,434,0,400,128, - 0,430,128,0,434,128,0,400,129,0, - 430,129,0,434,129,0,400,130,0,430, - 130,0,434,130,0,434,187,0,430,187, - 0,400,187,0,187,191,0,434,186,0, - 430,186,0,400,186,0,186,191,0,400, - 131,0,430,131,0,434,131,0,400,132, - 0,430,132,0,434,132,0,179,228,0, - 3024,1,0,225,237,0,1,3256,0,225, - 238,0,7,9,0,179,17,0,178,18, - 0,1,3245,0,112,2285,0 + 111,111,111,112,112,11,11,11,28,28, + 12,12,134,134,113,113,113,114,114,135, + 135,115,115,13,13,136,136,116,116,116, + 14,58,137,137,138,138,117,117,117,97, + 97,97,6,6,6,6,53,54,91,91, + 91,105,105,105,123,120,121,49,92,130, + 130,139,140,96,324,1458,14,19,15,1093, + 1082,44,1193,1414,1389,357,315,316,317,1430, + 1419,1438,1431,1455,350,1442,1456,74,1936,2489, + 91,1936,403,600,498,134,215,1731,944,14, + 19,15,1093,42,44,1193,1414,1389,233,231, + 1683,233,1430,1419,1438,1431,1659,229,136,133, + 135,159,1905,647,902,36,1378,2519,1779,790, + 14,19,15,1093,354,138,165,357,315,316, + 317,142,145,148,151,2605,101,126,1963,886, + 2089,2415,2419,1625,169,1768,261,134,215,313, + 608,226,234,742,1554,794,1673,1467,1162,1731, + 511,14,19,15,1093,42,44,1193,1414,1389, + 136,133,135,159,1430,1419,1438,1685,1393,1542, + 1575,14,19,15,1093,42,35,138,165,357, + 315,316,317,142,145,148,151,2605,970,243, + 1963,886,2089,2415,2419,1625,166,1728,182,134, + 215,1731,230,14,19,15,1093,42,44,1193, + 1414,1389,1019,248,439,435,1430,1419,1650,256, + 215,311,136,133,135,159,1731,750,14,19, + 15,1093,42,44,1193,1414,1389,488,212,138, + 165,1430,1651,257,215,142,145,148,151,2605, + 508,1068,1963,886,2089,2415,2419,1625,1635,765, + 14,19,15,1093,1082,44,1193,1414,1389,1566, + 581,1979,979,1430,1419,1438,1431,1455,539,1442, + 1456,74,257,215,283,1659,765,14,19,15, + 1093,1082,44,1193,1414,1389,89,1013,647,979, + 1430,1419,1438,1431,1455,1218,1442,1456,74,491, + 1731,283,14,19,15,1093,42,44,1193,1599, + 288,278,124,87,399,333,1479,1731,1231,14, + 19,15,1093,42,44,1193,1414,1389,840,396, + 323,1044,1430,1419,1438,1431,1455,288,1442,1456, + 73,970,232,1479,289,940,1731,1230,14,19, + 15,1093,42,44,1193,1414,1626,231,1761,1950, + 1518,765,14,19,15,1093,1082,44,1193,1414, + 1389,289,256,215,1393,1430,1419,1438,1431,1455, + 2181,1442,1456,74,169,2569,283,415,518,14, + 19,15,1093,1082,44,1193,1414,1389,790,1578, + 979,1085,1430,1419,1438,1431,1455,104,1442,1456, + 74,336,1731,475,14,19,15,1093,42,44, + 1193,1601,290,542,87,1568,785,662,1479,115, + 295,241,1574,794,14,19,15,1093,1082,44, + 1193,1414,1389,390,1134,900,345,1430,1419,1438, + 1431,1455,1735,1442,1456,74,291,1875,283,14, + 19,15,1093,1082,44,1193,1414,1389,986,1307, + 2653,1575,1430,1419,1438,1431,1455,245,1442,1456, + 74,1577,1731,331,14,19,15,1093,42,44, + 1193,1414,1389,450,157,647,1641,1613,347,1683, + 1479,14,19,15,1093,1082,44,1193,1414,1389, + 310,1248,498,321,1430,1419,1438,1431,1455,126, + 1442,1456,74,169,784,283,1707,989,14,19, + 15,1093,1082,44,1193,1414,1389,750,1333,211, + 199,1430,1419,1438,1431,1455,591,1442,1456,74, + 821,1578,283,1734,639,294,1183,357,315,316, + 317,373,843,2543,839,370,742,1479,742,1902, + 1080,1293,329,318,315,316,317,134,215,1731, + 1389,14,19,15,1093,42,44,1602,292,227, + 2081,1131,1966,189,1479,188,375,226,685,542, + 144,133,135,159,195,1936,2785,220,480,223, + 699,257,215,2804,1755,2813,14,19,15,1093, + 1082,44,1193,1414,1389,280,867,601,681,1430, + 1419,1438,1431,1455,361,1442,1456,74,1035,1731, + 773,14,19,15,1093,1082,44,1193,1414,1389, + 322,1044,154,682,1430,1419,1438,1431,1455,1230, + 1442,1456,74,1476,1105,91,169,1823,169,979, + 738,1470,1501,515,742,14,19,15,1093,1082, + 44,1193,1414,1389,970,1018,498,464,1430,1419, + 1438,1431,1455,87,1442,1456,74,39,1892,1239, + 742,190,872,1875,1525,14,19,15,1093,1082, + 44,1193,1414,1389,1905,256,215,242,1430,1419, + 1438,1431,1455,1381,1442,1456,74,1232,1731,331, + 14,19,15,1093,42,44,1193,1414,1389,1554, + 647,1842,1854,1430,1419,1438,1431,1455,262,1442, + 1456,93,1731,1900,14,19,15,1093,1082,44, + 1193,1414,1389,742,197,419,920,1430,1419,1438, + 1431,1455,1992,1442,1456,74,1142,1731,85,14, + 19,15,1093,1082,44,1193,1414,1389,1553,127, + 297,698,1430,1419,1438,1431,1455,1902,1442,1456, + 74,721,1024,84,1731,1142,14,19,15,1093, + 1082,44,1193,1414,1389,341,698,340,330,1430, + 1419,1438,1431,1455,277,1442,1456,74,1162,1731, + 83,14,19,15,1093,1082,44,1193,1414,1389, + 123,698,698,1162,1430,1419,1438,1431,1455,1577, + 1442,1456,74,1264,1731,82,14,19,15,1093, + 1082,44,1193,1414,1389,122,111,169,1168,1430, + 1419,1438,1431,1455,23,1442,1456,74,285,1731, + 81,14,19,15,1093,1082,44,1193,1414,1389, + 2035,698,698,206,1430,1419,1438,1431,1455,794, + 1442,1456,74,22,1731,80,14,19,15,1093, + 1082,44,1193,1414,1389,125,121,169,2717,1430, + 1419,1438,1431,1455,1293,1442,1456,74,1162,1731, + 79,14,19,15,1093,1082,44,1193,1414,1389, + 169,588,698,244,1430,1419,1438,1431,1455,794, + 1442,1456,74,1162,1731,78,14,19,15,1093, + 1082,44,1193,1414,1389,1330,1471,698,2011,1430, + 1419,1438,1431,1455,794,1442,1456,74,183,1731, + 77,14,19,15,1093,1082,44,1193,1414,1389, + 1162,1937,196,20,1430,1419,1438,1431,1455,794, + 1442,1456,74,207,1731,76,14,19,15,1093, + 1082,44,1193,1414,1389,169,615,698,246,1430, + 1419,1438,1431,1455,1391,1442,1456,74,296,1731, + 75,14,19,15,1093,1082,44,1193,1414,1389, + 1368,2846,698,247,1430,1419,1438,1431,1455,755, + 1442,1456,74,2035,1731,92,14,19,15,1093, + 42,44,1193,1414,1389,742,117,1162,296,1430, + 1419,1438,1431,1455,1350,1442,1456,93,1731,842, + 14,19,15,1093,1082,44,1193,1414,1389,794, + 917,645,299,1430,1419,1438,1431,1455,741,1442, + 1456,74,1084,1731,1314,14,19,15,1093,1082, + 44,1193,1414,1389,214,368,590,26,1430,1419, + 1438,1431,1455,358,1442,1456,74,1189,1407,1339, + 1883,1578,979,298,318,315,316,317,1731,1404, + 14,19,15,1093,42,44,1193,1414,1389,1952, + 1691,1987,794,1623,1607,284,87,375,226,231, + 1731,115,14,19,15,1093,42,39,221,480, + 223,225,878,1922,338,276,1731,802,14,19, + 15,1093,42,44,1193,1414,1389,271,599,1112, + 274,1430,1419,1438,1431,1455,372,1442,1456,93, + 1731,1357,14,19,15,1093,42,44,1193,1414, + 1389,66,1145,1249,1361,1430,1419,1438,1431,1455, + 664,1442,1456,93,1731,1259,14,19,15,1093, + 42,44,1193,1414,1389,998,204,396,2023,1430, + 1419,1438,1431,1455,1549,1442,1456,93,1731,1569, + 14,19,15,1093,42,44,1193,1414,1389,2046, + 205,2048,1980,1430,1419,1438,1431,1455,2019,1442, + 1456,93,1731,966,14,19,15,1093,42,44, + 1193,1414,1389,1015,1364,1393,1049,1430,1419,1438, + 1431,1455,1909,1442,1456,93,357,315,316,317, + 1412,843,2523,319,315,316,317,1667,1429,1691, + 1322,1384,318,315,316,317,134,215,1731,1138, + 14,19,15,1093,42,44,1193,1414,1640,2081, + 169,374,1492,1902,785,375,226,231,1902,137, + 133,135,159,196,374,773,220,480,223,225, + 1553,1902,2804,232,344,87,139,165,350,199, + 1845,1396,143,146,149,152,2605,110,86,1742, + 1042,320,835,1,374,911,95,1951,2054,2059, + 1182,108,94,96,97,98,99,1902,1963,2179, + 2060,154,682,1642,1047,1766,109,110,86,1805, + 1042,356,835,1105,1469,2319,95,339,236,3036, + 1182,108,94,96,97,98,99,169,979,106, + 3036,260,374,314,279,3036,109,3036,545,498, + 1731,356,14,19,15,1093,42,44,1193,1414, + 1647,3036,87,3036,1713,110,86,1928,1042,107, + 835,131,374,3036,95,3036,276,835,1182,108, + 94,96,97,98,99,1902,3036,3036,269,599, + 1112,274,502,2523,109,110,86,3036,1042,356, + 835,308,3036,1134,95,2796,356,2182,1182,108, + 94,96,97,98,99,3036,3036,106,3036,3036, + 3036,105,440,2523,109,1902,375,226,231,356, + 1575,1902,3036,318,315,316,317,220,480,223, + 225,1961,1791,909,3036,16,3036,107,843,2523, + 2063,351,319,315,316,317,375,226,231,318, + 315,316,317,3036,717,979,889,220,480,223, + 225,3036,1902,1709,3036,3036,2081,319,315,316, + 317,2365,375,226,231,369,2565,3036,110,86, + 3036,1042,2236,220,480,223,225,95,211,2804, + 3036,1182,1552,94,96,97,98,99,1902,1189, + 1578,653,436,3036,1902,3036,2829,1578,979,375, + 226,231,3036,169,979,1222,2221,200,2264,3036, + 220,480,223,225,2285,306,265,276,155,682, + 433,3036,87,1457,1308,279,2009,115,87,269, + 599,1112,274,1934,357,315,316,317,3036,375, + 226,231,3036,3036,305,1902,325,1967,266,356, + 220,480,223,225,134,215,909,276,319,315, + 316,317,1598,2523,3036,1717,3036,2251,3036,269, + 599,1112,274,318,315,316,317,141,133,135, + 159,1803,3036,14,19,15,1093,352,2182,3036, + 2063,263,1989,3036,140,165,375,226,231,3036, + 3036,303,304,319,315,316,317,220,480,223, + 225,3036,1731,1709,14,19,15,1093,42,44, + 1193,1414,1389,440,2523,3036,3036,1430,1419,1438, + 1431,1455,2000,1701,319,315,316,317,3036,3036, + 3036,843,2523,319,315,316,317,3036,3036,1324, + 3036,3036,319,315,316,317,2829,375,226,231, + 357,315,316,317,3036,1902,3036,201,220,480, + 223,225,3036,1902,1709,375,226,231,3036,1902, + 134,215,3036,3036,941,1718,220,480,223,225, + 3036,1218,2811,1719,3036,318,315,316,317,1730, + 3036,3036,2013,147,133,135,159,3036,3036,3036, + 941,334,1987,319,315,316,317,2838,375,226, + 231,318,315,316,317,3036,3036,766,979,221, + 480,223,225,878,3036,3036,3036,3036,1987,1193, + 2596,1902,1902,1902,375,226,1513,815,979,3036, + 3036,110,86,1902,1042,221,480,223,1489,878, + 95,21,275,281,1182,103,94,96,97,98, + 99,110,86,1382,1042,864,979,3036,1902,3036, + 95,1319,498,3036,1182,101,94,96,97,98, + 99,276,318,315,316,317,913,979,282,110, + 86,3036,1042,269,599,1112,274,335,95,1987, + 1905,1902,1182,102,94,96,97,98,99,3036, + 110,86,268,1042,962,979,3036,635,3036,95, + 668,2334,1902,1182,118,94,96,97,98,99, + 3036,3036,1463,3036,261,1011,979,3036,110,86, + 3036,1042,2362,3036,2183,1467,3036,95,3036,3036, + 3036,1182,114,94,96,97,98,99,3036,110, + 86,3036,1042,1060,979,3036,3036,3036,95,1904, + 498,3036,1182,1733,94,96,97,98,99,3036, + 318,315,316,317,1109,979,3036,110,86,1827, + 1042,14,19,15,1093,40,95,1987,1905,3036, + 1182,113,94,96,97,98,99,3036,110,86, + 3036,1042,1158,979,3036,888,498,95,668,3036, + 3036,1182,120,94,96,97,98,99,3036,3036, + 2396,3036,261,3036,3036,3036,110,86,3036,1042, + 3036,3036,2183,1467,835,95,506,3036,312,1182, + 119,94,96,97,98,99,3036,318,315,316, + 317,3036,3036,3036,3036,1467,3036,3036,309,1899, + 3036,3036,3036,356,1987,3036,357,315,316,317, + 357,315,316,317,3036,580,436,1542,3036,14, + 19,15,1093,42,35,878,134,215,276,3036, + 134,215,1851,3036,14,19,15,1093,33,306, + 271,599,1112,274,433,3036,941,3036,3036,150, + 133,135,159,153,133,135,159,318,315,316, + 317,249,3036,3036,2034,3036,3036,3036,305,770, + 498,497,374,356,1987,319,315,316,317,3036, + 608,226,235,1731,3036,14,19,15,1093,42, + 44,1193,1414,1649,791,878,87,3036,1905,1133, + 835,115,3036,1133,3036,318,315,316,317,3036, + 318,315,316,317,318,315,316,317,3036,3036, + 3036,3036,1886,1133,739,302,304,1987,3036,356, + 3036,1987,261,394,318,315,316,317,3036,3036, + 3036,1282,1673,1467,3036,1133,3036,1931,668,1183, + 498,1987,668,3036,3036,3036,318,315,316,317, + 2466,3036,3036,1731,2124,14,19,15,1093,42, + 44,1608,668,1987,3036,3036,1133,3036,199,3036, + 169,374,3036,3036,2150,589,1014,318,315,316, + 317,3036,3036,3036,668,3036,318,315,316,317, + 3036,3036,3036,3036,1987,87,1463,406,1080,199, + 1845,169,979,1632,3036,644,3036,939,318,315, + 316,317,3036,3036,3036,668,318,315,316,317, + 3036,3036,3036,1987,3036,1861,87,2396,3036,2179, + 3036,1289,194,1861,318,315,316,317,3036,1985, + 3036,3036,478,851,3036,3036,3036,3036,3036,3036, + 1731,2072,14,19,15,1093,42,38,1731,3036, + 14,19,15,1093,42,37,1731,3036,14,19, + 15,1093,42,36,1731,3036,14,19,15,1093, + 42,34,169,374,169,374,3036,1313,498,906, + 169,374,169,979,3036,783,1731,908,14,19, + 15,1093,42,35,3036,3036,3036,87,3036,87, + 3036,199,1845,199,1845,87,199,87,3036,199, + 1845,1731,1690,14,19,15,1093,42,47,1731, + 3036,14,19,15,1093,42,46,3036,3036,3036, + 3036,2179,3036,2179,1063,3036,1080,3036,3036,2179, + 3036,2105,3036,2113,3036,770,498,3036,1731,2119, + 14,19,15,1093,42,45,1611,3036,14,19, + 15,1093,42,43,1977,3036,3036,3036,3036,3036, + 194,1998,3036,970,1905,318,315,316,317,3036, + 1268,851,318,315,316,317,3036,3036,3036,2022, + 3036,1851,2032,14,19,15,1093,32,2024,2142, + 318,315,316,317,256,215,1578,979,261,318, + 315,316,317,169,979,3036,2036,2484,2218,1467, + 3036,3036,3036,3036,3036,3036,2856,319,315,316, + 317,87,3036,3036,3036,3036,115,3036,87,3036, + 3036,3036,3036,2193,3036,3036,3036,3036,3036,3036, + 3036,3036,3036,3036,3036,581,3036,3036,3036,3036, + 3036,3036,3036,3036,3036,3036,3036,3036,3036,3036, + 3036,3036,3036,3036,3036,3036,2272,3036,3036,3036, + 3036,3036,1418,3036,0,1,408,0,1,456, + 0,1,526,0,1,567,0,456,128,0, + 526,128,0,567,128,0,456,129,0,526, + 129,0,567,129,0,456,130,0,526,130, + 0,567,130,0,567,187,0,526,187,0, + 456,187,0,187,191,0,567,186,0,526, + 186,0,456,186,0,186,191,0,456,131, + 0,526,131,0,567,131,0,456,132,0, + 526,132,0,567,132,0,179,228,0,3043, + 1,0,225,237,0,1,3275,0,225,238, + 0,7,9,0,179,17,0,178,18,0, + 1,3264,0,112,2313,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -648,205 +652,220 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,0,1,35,0,37,38,39, + 30,31,32,33,34,0,1,37,0,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59, - 60,61,62,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,0,1,35,63, - 37,38,39,40,41,42,43,44,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,60,61,62,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,0, - 1,35,0,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,62,0, + 60,61,62,63,64,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 0,1,37,65,39,40,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,64, + 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,0,1,37,0,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,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, + 0,0,37,3,39,40,41,42,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,60,61,62,63,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, - 31,32,0,0,35,63,37,38,39,40, + 31,32,33,34,64,0,37,66,39,40, 41,42,43,44,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,59,60, - 61,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,0,0,35,64,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,60,61,0,1,2,94,4,5,6, + 61,62,63,0,1,2,0,4,5,6, 7,8,9,10,0,12,13,14,15,16, - 17,18,19,20,21,22,23,13,25,26, - 27,28,29,30,31,0,0,1,2,64, - 4,5,6,8,8,71,72,73,74,0, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,60,61,0,1,0,3,33, - 0,1,2,8,9,10,0,12,2,14, - 15,0,0,2,2,4,5,6,7,7, - 23,0,1,11,0,4,5,6,33,8, - 0,36,0,1,2,3,0,13,2,7, - 8,9,10,7,12,13,14,15,16,17, - 18,19,20,21,33,76,77,62,26,64, - 65,66,0,68,69,70,71,72,73,74, - 8,76,77,78,79,80,81,82,83,84, - 85,86,87,88,89,90,91,92,93,0, - 1,0,3,0,1,2,3,8,9,10, - 0,12,0,14,15,3,0,75,0,1, - 2,3,4,5,6,0,8,11,0,4, - 5,6,33,0,1,36,33,34,0,36, - 22,23,24,25,26,27,28,29,30,31, - 12,33,34,0,0,2,2,4,5,6, - 7,62,8,64,65,66,33,68,69,70, - 71,72,73,74,62,76,77,78,79,80, - 81,82,83,84,85,86,87,88,89,90, - 91,92,93,0,1,2,3,4,5,6, - 7,8,0,1,0,1,2,3,4,5, - 6,0,8,0,1,22,23,24,25,26, - 27,28,29,30,31,32,22,23,24,25, - 26,27,28,29,30,31,0,33,34,0, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,60,61,0,0,1,0,4, - 5,6,4,5,6,0,0,1,2,3, - 4,5,6,7,8,36,0,22,23,3, - 25,26,27,28,29,30,31,94,22,23, - 24,25,26,27,28,29,30,31,32,0, - 24,2,0,4,5,6,7,71,72,73, - 74,0,36,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,0,1, - 2,0,4,5,6,0,0,2,2,3, - 4,5,6,7,0,1,2,0,4,5, - 6,4,5,6,0,1,0,22,22,23, - 94,25,26,27,28,29,30,31,32,22, - 23,0,25,26,27,28,29,30,31,0, - 1,2,3,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,62,0, - 0,2,3,4,5,6,7,63,0,78, - 0,0,33,34,4,5,6,9,10,8, - 0,22,23,3,25,26,27,28,29,30, - 31,32,22,23,78,25,26,27,28,29, - 30,31,71,72,73,74,47,48,49,50, + 17,18,19,20,21,22,23,24,25,0, + 27,28,29,30,31,32,33,0,1,2, + 0,4,2,6,7,8,6,0,0,1, + 2,3,49,50,51,52,53,54,55,56, + 57,58,59,60,61,62,63,0,1,0, + 3,2,35,6,5,0,9,10,0,12, + 11,14,15,35,36,0,38,2,13,4, + 5,13,7,8,0,1,2,3,0,5, + 6,3,35,9,10,38,12,13,14,15, + 16,17,18,19,20,21,22,23,0,0, + 1,2,28,4,26,96,7,8,81,0, + 1,64,3,66,67,68,38,70,71,72, + 73,74,75,76,0,78,79,80,81,82, + 83,84,85,86,87,88,89,90,91,92, + 93,94,95,0,1,36,3,0,1,6, + 0,77,9,10,0,12,0,14,15,3, + 4,0,1,2,65,0,1,0,1,4, + 0,6,7,8,0,1,2,3,35,5, + 6,38,26,9,10,35,12,13,14,15, + 16,17,18,19,20,21,22,23,0,1, + 35,0,28,2,0,35,5,64,4,66, + 67,68,11,70,71,72,73,74,75,76, + 70,78,79,80,81,82,83,84,85,86, + 87,88,89,90,91,92,93,94,95,0, + 1,2,3,4,5,6,7,8,0,0, + 0,77,4,0,4,7,8,7,8,0, + 0,2,0,24,25,26,27,28,29,30, + 31,32,33,34,24,25,0,27,28,29, + 30,31,32,33,24,25,0,27,49,50, 51,52,53,54,55,56,57,58,59,60, - 61,62,0,63,2,3,4,5,6,7, - 0,1,2,0,4,5,6,4,5,6, - 69,70,62,0,22,23,0,25,26,27, - 28,29,30,31,32,22,23,0,25,26, - 27,28,29,30,31,22,23,0,25,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,61,62,0,1,2,3,0, - 33,0,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,0,0,24, - 2,4,4,5,6,7,0,32,2,0, - 35,0,37,38,39,40,41,42,43,44, - 45,46,0,1,2,3,0,1,0,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,0,0,24,0,4,5, - 6,4,5,6,32,0,11,35,79,37, - 38,39,40,41,42,43,44,45,46,0, - 1,2,3,67,65,66,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,0,0,24,2,4,5,6,0,7, - 2,32,0,11,35,7,37,38,39,40, - 41,42,43,44,45,46,0,1,2,3, - 65,66,0,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,0,0, - 24,0,4,5,6,4,5,6,32,0, - 11,35,0,37,38,39,40,41,42,43, - 44,45,46,0,1,2,3,65,66,0, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,0,0,24,0,4, - 5,6,4,5,6,32,0,0,35,0, - 37,38,39,40,41,42,43,44,45,46, - 0,1,2,3,65,66,64,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,0,0,24,0,4,5,6,4, - 5,6,32,0,0,35,13,37,38,39, - 40,41,42,43,44,45,46,0,1,2, - 3,0,76,77,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,82, - 83,24,0,22,23,0,25,0,3,32, - 0,1,35,11,37,38,39,40,41,42, - 43,44,45,46,0,1,2,3,0,24, - 67,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,0,0,24,2, - 22,23,0,25,7,3,32,11,0,35, - 0,37,38,39,40,41,42,43,44,45, - 46,0,1,2,3,0,24,2,7,8, + 61,62,63,0,0,2,0,4,5,3, + 7,8,0,1,2,3,4,5,6,7, + 8,0,1,0,1,2,3,4,69,6, + 7,8,26,84,85,96,24,25,26,27, + 28,29,30,31,32,33,34,24,25,26, + 27,28,29,30,31,32,33,0,35,36, + 3,49,50,51,52,53,54,55,56,57, + 58,59,60,61,62,63,0,1,2,3, + 0,5,6,26,80,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 0,0,26,2,24,25,5,27,96,0, + 34,2,12,37,0,39,40,41,42,43, + 44,45,46,47,48,0,1,2,3,0, + 5,6,0,24,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,0, + 0,26,2,0,4,5,3,7,8,34, + 11,0,37,2,39,40,41,42,43,44, + 45,46,47,48,0,1,2,3,0,5, + 6,67,68,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,69,0, + 26,0,0,1,2,6,4,0,34,7, + 8,37,80,39,40,41,42,43,44,45, + 46,47,48,0,1,2,3,0,5,6, + 77,0,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,0,0,26, + 2,4,4,5,0,7,8,34,11,0, + 37,0,39,40,41,42,43,44,45,46, + 47,48,0,1,2,3,0,5,6,78, + 79,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,65,38,26,0, + 0,1,2,0,4,0,34,7,8,37, + 11,39,40,41,42,43,44,45,46,47, + 48,0,1,2,3,0,5,6,25,0, 9,10,11,12,13,14,15,16,17,18, - 19,20,21,0,0,24,3,0,0,2, - 0,3,4,32,7,0,35,0,37,38, - 39,40,41,42,43,44,45,46,0,1, - 2,3,24,65,66,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 33,36,24,0,1,2,0,4,5,6, - 32,0,1,35,3,37,38,39,40,41, - 42,43,44,45,46,0,1,2,75,4, - 5,6,7,0,0,68,3,4,5,6, - 0,1,8,0,33,34,3,22,23,0, - 25,26,27,28,29,30,31,24,0,0, - 11,0,0,4,5,6,63,8,0,36, - 9,10,47,48,49,50,51,52,53,54, - 55,56,57,58,59,60,61,0,0,2, - 0,4,5,6,7,0,0,64,0,4, - 5,6,0,69,70,62,4,5,6,22, - 23,0,25,26,27,28,29,30,31,0, - 22,23,11,25,22,23,67,25,26,27, - 28,29,30,31,47,48,49,50,51,52, - 53,54,55,56,57,58,59,60,61,47, - 48,49,50,51,52,53,54,55,56,57, - 58,0,1,2,3,0,1,79,7,8, - 9,10,0,12,13,14,15,16,17,18, - 19,20,21,0,1,2,3,26,0,1, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,0,1,2,3,0, - 0,2,7,8,9,10,7,12,13,14, - 15,16,17,18,19,20,21,0,0,1, - 0,3,0,1,0,3,75,0,1,0, - 1,2,33,9,10,62,7,8,9,10, + 19,20,21,22,23,0,1,26,0,73, + 74,75,76,24,25,34,27,0,37,11, + 39,40,41,42,43,44,45,46,47,48, + 0,1,2,3,0,5,6,0,0,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,0,1,26,0,73,74, + 75,76,24,25,34,27,0,37,0,39, + 40,41,42,43,44,45,46,47,48,0, + 1,2,3,66,5,6,0,0,9,10, 11,12,13,14,15,16,17,18,19,20, - 21,33,34,0,1,0,34,2,3,0, - 33,0,1,63,0,1,2,68,0,0, - 75,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,0,1,2,34, - 0,0,33,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,0,1, - 2,0,95,0,0,7,8,9,10,11, + 21,22,23,0,0,26,69,73,74,75, + 76,24,25,34,27,0,37,13,39,40, + 41,42,43,44,45,46,47,48,0,1, + 2,3,66,5,6,67,68,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 0,1,2,22,23,67,25,7,8,9, + 22,23,0,0,26,2,4,0,5,7, + 8,0,34,2,0,37,5,39,40,41, + 42,43,44,45,46,47,48,0,1,2, + 3,0,5,6,3,82,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,37,0,26,2,3,4,5,0,7, + 8,34,0,1,37,3,39,40,41,42, + 43,44,45,46,47,48,24,25,0,27, + 28,29,30,31,32,33,34,0,81,2, + 3,0,1,2,3,64,38,35,36,0, + 1,49,50,51,52,53,54,55,56,57, + 58,59,60,61,62,63,64,0,0,2, + 3,4,5,36,7,8,35,36,0,1, + 2,3,4,0,6,7,8,0,0,6, + 2,24,25,5,27,28,29,30,31,32, + 33,34,24,25,26,27,28,29,30,31, + 32,33,0,35,36,3,49,50,51,52, + 53,54,55,56,57,58,59,60,61,62, + 63,64,0,65,2,3,4,5,0,7, + 8,0,4,0,6,7,8,4,36,0, + 7,8,0,12,71,72,24,25,6,27, + 28,29,30,31,32,33,34,24,25,0, + 27,28,29,30,31,32,33,65,9,10, + 0,49,50,51,52,53,54,55,56,57, + 58,59,60,61,62,63,64,0,1,2, + 0,4,5,0,7,8,0,69,0,0, + 0,11,0,3,2,0,4,5,38,7, + 8,24,25,0,27,28,29,30,31,32, + 33,0,24,25,11,27,24,25,0,27, + 28,29,30,31,32,33,49,50,51,52, + 53,54,55,56,57,58,59,60,61,62, + 63,49,50,51,52,53,54,55,56,57, + 58,59,60,61,62,63,0,0,1,69, + 4,78,79,7,8,0,0,77,0,1, + 4,3,0,7,8,0,1,82,67,68, + 24,25,0,27,28,29,30,31,32,33, + 24,25,35,27,28,29,30,31,32,33, + 0,1,0,35,36,49,50,51,52,53, + 54,55,56,57,58,59,60,0,1,2, + 3,0,5,6,0,1,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,0,1,2,3,0,5,6,0,1, + 9,10,0,12,13,14,15,16,17,18, + 19,20,21,22,23,0,1,0,0,2, + 2,0,5,0,1,2,0,0,5,6, + 3,64,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,0,1,2, + 35,4,35,26,7,8,0,0,2,3, + 0,1,2,36,38,5,6,65,77,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,0,1,2,0,0,0,0,7, - 8,9,10,0,12,13,14,15,16,17, - 18,19,20,21,0,1,2,22,23,0, - 25,7,8,9,10,0,12,13,14,15, - 16,17,18,19,20,21,0,1,2,36, - 0,0,0,7,8,9,10,0,12,13, - 14,15,16,17,18,19,20,21,0,1, - 2,36,0,0,0,7,8,9,10,0, + 20,21,22,23,0,1,2,70,0,5, + 6,0,36,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,0,1, + 2,0,65,5,6,0,0,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,0,1,2,0,0,5,6,0, + 0,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,0,1,2,0, + 0,5,6,0,0,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 0,1,2,67,68,5,6,0,97,9, + 10,0,12,13,14,15,16,17,18,19, + 20,21,22,23,0,1,2,67,68,5, + 6,0,0,9,10,0,12,13,14,15, + 16,17,18,19,20,21,22,23,0,1, + 2,0,0,5,6,0,0,9,10,0, 12,13,14,15,16,17,18,19,20,21, - 0,1,2,64,0,0,0,7,8,9, + 22,23,0,1,2,0,65,5,6,0, + 0,9,10,0,12,13,14,15,16,17, + 18,19,20,21,22,23,0,1,2,0, + 65,5,6,0,0,9,10,0,12,13, + 14,15,16,17,18,19,20,21,22,23, + 0,1,2,0,65,5,6,0,0,9, 10,0,12,13,14,15,16,17,18,19, - 20,21,11,84,85,86,87,88,89,90, - 91,92,93,0,0,1,3,4,5,6, - 0,0,0,3,3,3,0,80,14,15, - 4,5,6,0,8,2,3,24,0,0, - 0,3,3,80,0,0,0,33,8,36, - 0,0,0,3,34,34,34,36,36,0, - 0,0,24,4,5,6,0,34,0,3, - 0,3,34,34,24,36,0,64,0,35, - 4,3,68,63,0,0,36,11,4,5, - 6,0,0,67,3,81,4,5,6,0, - 0,0,34,0,0,0,36,0,63,69, - 70,12,34,0,63,11,11,0,0,0, - 0,36,0,63,63,34,0,0,0,0, - 0,0,0,67,0,0,0,0,0,0, - 0,75,0,0,0,0,0,0,0,0, + 20,21,22,23,0,1,2,0,65,5, + 6,0,0,9,10,3,12,13,14,15, + 16,17,18,19,20,21,22,23,0,0, + 1,0,4,0,3,7,8,4,0,6, + 7,8,4,14,15,7,8,0,36,66, + 38,0,24,25,0,27,28,29,30,31, + 32,33,11,0,35,0,0,36,3,86, + 87,88,89,90,91,92,93,94,95,0, + 0,0,3,4,3,4,7,8,7,8, + 0,11,0,0,4,3,0,7,8,70, + 4,36,69,7,8,26,0,26,0,0, + 4,3,83,7,8,6,0,38,0,38, + 4,0,4,7,8,7,8,0,36,0, + 38,4,0,4,7,8,7,8,0,0, + 0,3,0,3,36,66,4,66,0,7, + 8,0,0,0,6,4,35,4,7,8, + 7,8,0,0,0,0,26,4,0,4, + 7,8,7,8,36,0,38,0,38,0, + 71,72,3,0,9,10,9,10,0,0, + 38,0,0,0,11,0,0,0,0,11, + 11,0,38,11,11,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,71, + 72,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,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,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; @@ -854,202 +873,218 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface TermAction { public final static char termAction[] = {0, - 3017,1,5255,1389,2906,1,1,5254,1,1, - 1,468,1,1,1,1,1,1,1,1, - 1,1,1,1,3025,1,1,1,1,1, - 1,1,3117,3017,733,968,3017,1056,1020,1081, - 985,1706,943,1129,983,425,979,1,1,1, + 3036,1,5223,1551,2925,5199,1,1,1,1, + 1,697,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3044,1,1,1, + 1,1,1,1,3136,3036,1577,999,3036,1156, + 1068,1181,1037,1884,978,1040,1012,628,1003,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3023,7,3002,3002,3002,3002,3002,3002, - 3002,3002,3002,3002,3002,3002,3002,3002,3002,3002, - 3002,3002,3002,3002,3002,3002,3002,3002,3002,3002, - 3002,3002,3002,3002,3002,3002,3017,672,3002,2122, - 3002,3002,3002,3002,3002,3002,3002,3002,3002,3002, - 3002,3002,3002,3002,3002,3002,3002,3002,3002,3002, - 3002,3002,3002,3002,3002,3002,3017,1,5255,1389, - 2906,1,1,5254,1,1,1,468,1,1, + 1,1,1,1,3042,7,3021,3021,3021,3021, + 3021,3021,3021,3021,3021,3021,3021,3021,3021,3021, + 3021,3021,3021,3021,3021,3021,3021,3021,3021,3021, + 3021,3021,3021,3021,3021,3021,3021,3021,3021,3021, + 3036,833,3021,2167,3021,3021,3021,3021,3021,3021, + 3021,3021,3021,3021,3021,3021,3021,3021,3021,3021, + 3021,3021,3021,3021,3021,3021,3021,3021,3021,3021, + 3036,1,5223,1551,2925,5199,1,1,1,1, + 1,697,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3044,1,1,1, + 1,1,1,1,3136,3036,2131,999,1,1156, + 1068,1181,1037,1884,978,1040,1012,628,1003,1, 1,1,1,1,1,1,1,1,1,1, - 3025,1,1,1,1,1,1,1,3117,3017, - 628,968,3017,1056,1020,1081,985,1706,943,1129, - 983,425,979,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3023,3017, - 1,5255,3026,2906,1,1,5254,1,1,1, - 468,1,1,1,1,1,1,1,1,1, - 1,1,1,3025,1,1,1,1,1,1, - 1,3117,3017,156,968,2156,1056,1020,1081,985, - 1706,943,1129,983,425,979,1,1,1,1, + 1,1,1,1,3042,3036,1,5223,3045,2925, + 5199,1,1,1,1,1,697,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3017,1,5255,3026,2906,1,1,5254,1, - 1,1,468,1,1,1,1,1,1,1, - 1,1,1,1,1,3025,1,1,1,1, - 1,1,1,3117,59,213,968,754,1056,1020, - 1081,985,1706,943,1129,983,425,979,1,1, + 1,3044,1,1,1,1,1,1,1,3136, + 1,156,999,3009,1156,1068,1181,1037,1884,978, + 1040,1012,628,1003,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3036, + 1,5223,3045,2925,5199,1,1,1,1,1, + 697,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,3044,1,1,1,1, + 1,1,1,3136,3042,287,999,772,1156,1068, + 1181,1037,1884,978,1040,1012,628,1003,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3017,1904,1417,2905,434,400,430, - 1422,2685,2665,2657,348,2673,3030,2232,1653,922, - 3027,3028,3029,2649,1451,3233,3235,681,3234,3179, - 3180,3178,3236,3181,3177,3017,270,1896,3245,1344, - 434,400,430,828,255,1884,1599,1429,838,62, - 3184,3189,3188,3186,3187,3185,3190,3191,3183,3192, - 3193,3194,2321,2614,2594,1,3035,343,3035,709, - 1,2363,3245,3035,3035,3035,3017,3035,1628,3035, - 3035,187,3017,2954,3197,2945,2951,2948,2954,3198, - 3359,270,2421,603,3017,434,400,430,3035,255, - 1,3035,1,1904,3034,3020,3017,1357,3197,3035, - 2515,2665,2657,3198,2673,3030,2232,1653,922,3027, - 3028,3029,2649,1451,709,734,632,3035,873,3035, - 3035,3035,3017,3035,3035,3035,3035,3035,3035,3035, - 1130,3035,3035,3035,3035,3035,3035,3035,3035,3035, - 3035,3035,3035,3035,3035,3035,3035,3035,3035,1, - 3034,287,3034,1,1896,3245,264,3034,3034,3034, - 3017,3034,1,3034,3034,2990,3017,3019,17,3005, - 179,3005,179,179,179,184,3005,411,3017,434, - 400,430,3034,224,864,3034,709,264,64,264, - 179,179,3005,179,179,179,179,179,179,179, - 472,3005,3005,186,3017,2966,1528,2957,2963,2960, - 2966,3034,1381,3034,3034,3034,709,3034,3034,3034, - 3034,3034,3034,3034,3023,3034,3034,3034,3034,3034, - 3034,3034,3034,3034,3034,3034,3034,3034,3034,3034, - 3034,3034,3034,3017,1,1,3026,2906,1,1, - 1,1,3017,473,18,3008,178,3008,178,178, - 178,3017,3008,179,2987,1,1,3025,1,1, - 1,1,1,1,1,3324,178,178,3008,178, - 178,178,178,178,178,178,61,3008,3008,346, + 1,1,1,3036,1670,1560,3036,567,1565,2726, + 456,526,2696,2688,3036,2704,3049,2831,2452,2339, + 3046,3047,3048,2680,1500,438,2021,3252,3254,3036, + 3253,3198,3199,3197,3255,3200,3196,270,1945,3264, + 3036,567,1678,255,456,526,1517,68,1,1945, + 3264,264,3203,3208,3207,3205,3206,3204,3209,3210, + 3202,3211,3212,3213,2514,2635,2627,1,3054,3036, + 3054,3216,727,3054,3217,348,3054,3054,3036,3054, + 724,3054,3054,727,264,187,264,2973,767,2964, + 2973,1137,2970,2967,1,1670,3053,3039,3036,3054, + 499,3045,3054,2696,2688,3054,2704,3049,2831,2452, + 2339,3046,3047,3048,2680,1500,438,2021,3036,1, + 1812,3264,954,2934,3044,2924,2928,2931,479,3036, + 877,3054,3041,3054,3054,3054,1868,3054,3054,3054, + 3054,3054,3054,3054,3036,3054,3054,3054,3054,3054, + 3054,3054,3054,3054,3054,3054,3054,3054,3054,3054, + 3054,3054,3054,1,3053,3040,3053,3036,654,3053, + 293,3038,3053,3053,3036,3053,1,3053,3053,116, + 2925,1,1812,3264,1516,270,1744,179,3006,567, + 222,255,456,526,3036,1670,3053,3039,3053,3054, + 2437,3053,116,2696,2688,1588,2704,3049,2831,2452, + 2339,3046,3047,3048,2680,1500,438,2021,3036,398, + 727,3036,1443,3216,1,727,3217,3053,2925,3053, + 3053,3053,863,3053,3053,3053,3053,3053,3053,3053, + 1405,3053,3053,3053,3053,3053,3053,3053,3053,3053, + 3053,3053,3053,3053,3053,3053,3053,3053,3053,3036, + 1,1,3045,2925,1,1,1,1,184,72, + 129,3038,567,3036,2952,456,526,2946,2949,1, + 251,3015,3036,1,1,3044,1,1,1,1, + 1,1,1,3343,3252,3254,3036,3253,3198,3199, + 3197,3255,3200,3196,1,1,3036,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,129,3017,570,255,2933, - 2927,2930,434,400,430,3017,3017,1,1,3026, - 2906,1,1,1,1,957,3017,3233,3235,3026, - 3234,3179,3180,3178,3236,3181,3177,301,1,1, - 3025,1,1,1,1,1,1,1,3324,208, - 3025,5298,3017,434,400,430,5298,1884,1599,1429, - 838,3017,1867,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,2363, - 3245,66,2915,2909,2912,326,3017,3344,1,193, - 1,1,1,1,1,2363,3245,130,2915,2909, - 2912,2942,2936,2939,349,851,67,3345,1,1, - 300,1,1,1,1,1,1,1,3215,3233, - 3235,60,3234,3179,3180,3178,3236,3181,3177,1, - 1896,3011,3022,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,193,3017, - 3017,1,192,1,1,1,1,1467,51,547, - 131,48,709,3021,2975,2969,2972,2566,2549,2732, - 3017,1,1,3024,1,1,1,1,1,1, - 1,3215,3233,3235,547,3234,3179,3180,3178,3236, - 3181,3177,1884,1599,1429,838,1,1,1,1, + 1,1,1,186,66,2985,1,2976,2985,3045, + 2982,2979,3036,1,1,3045,2925,1,1,1, + 1,349,974,17,3024,179,3024,179,3296,3024, + 179,179,3044,2052,2722,301,1,1,3044,1, + 1,1,1,1,1,1,3343,179,179,3024, + 179,179,179,179,179,179,179,3036,3024,3024, + 3045,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3036,1,5223,3045, + 252,5199,1,3044,531,1,1,697,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,192,3017,2178,1,193,1,1,1,1, - 255,2363,3245,132,434,400,430,2984,2978,2981, - 2724,2695,3023,251,1,1,3017,1,1,1, - 1,1,1,1,3215,3233,3235,222,3234,3179, - 3180,3178,3236,3181,3177,1,1,3017,1,1, + 64,3036,3044,3216,1,1,3217,1,300,326, + 3136,3363,556,999,54,1156,1068,1181,1037,1884, + 978,1040,1012,628,1003,3036,1,5223,3045,1, + 5199,1,67,3364,1,1,697,1,1,1, + 1,1,1,1,1,1,1,1,1,3036, + 208,3044,5472,3036,567,5472,3039,456,526,3136, + 419,3036,999,1851,1156,1068,1181,1037,1884,978, + 1040,1012,628,1003,3036,1,5223,3045,3036,5199, + 1,640,752,1,1,697,1,1,1,1, + 1,1,1,1,1,1,1,1,3296,3036, + 3044,62,1,1812,3264,967,2934,3036,3136,2928, + 2931,999,531,1156,1068,1181,1037,1884,978,1040, + 1012,628,1003,3036,1,5223,3045,3036,5199,1, + 3038,3036,1,1,697,1,1,1,1,1, + 1,1,1,1,1,1,1,1,364,3044, + 5473,2925,567,5473,3036,456,526,3136,697,346, + 999,3036,1156,1068,1181,1037,1884,978,1040,1012, + 628,1003,3036,1,5223,3045,59,5199,1,1478, + 822,1,1,697,1,1,1,1,1,1, + 1,1,1,1,1,1,2187,741,3044,231, + 255,1812,3264,343,567,3036,3136,456,526,999, + 234,1156,1068,1181,1037,1884,978,1040,1012,628, + 1003,3036,1,5223,3045,61,5199,1,3378,3036, + 1,1,697,1,1,1,1,1,1,1, + 1,1,1,1,1,337,1494,3044,3036,2503, + 1770,1658,686,3252,3254,3136,3253,213,999,1006, + 1156,1068,1181,1037,1884,978,1040,1012,628,1003, + 3036,1,5223,3045,60,5199,1,1,253,1, + 1,697,1,1,1,1,1,1,1,1, + 1,1,1,1,3036,2491,3044,3036,2503,1770, + 1658,686,3252,3254,3136,3253,3036,999,58,1156, + 1068,1181,1037,1884,978,1040,1012,628,1003,3036, + 1,5223,3045,1394,5199,1,3036,250,1,1, + 697,1,1,1,1,1,1,1,1,1, + 1,1,1,70,3036,3044,3295,2503,1770,1658, + 686,3252,3254,3136,3253,3036,999,767,1156,1068, + 1181,1037,1884,978,1040,1012,628,1003,3036,1, + 5223,3045,866,5199,1,640,752,1,1,697, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,193,3017,1,5255,3026,68, - 709,3017,5254,1,1,1,468,1,1,1, - 1,1,1,1,1,1,1,1,360,3025, - 5299,2906,434,400,430,5299,1,3117,2996,54, - 968,3017,1056,1020,1081,985,1706,943,1129,983, - 425,979,3017,1,5255,3026,337,1423,3017,5254, - 1,1,1,468,1,1,1,1,1,1, - 1,1,1,1,361,231,3025,364,434,400, - 430,434,400,430,3117,58,234,968,900,1056, - 1020,1081,985,1706,943,1129,983,425,979,3017, - 1,5255,3026,3277,2045,2463,5254,1,1,1, - 468,1,1,1,1,1,1,1,1,1, - 1,363,3017,3025,3197,434,400,430,210,3198, - 3197,3117,57,746,968,3198,1056,1020,1081,985, - 1706,943,1129,983,425,979,3017,1,5255,3026, - 2045,2463,3017,5254,1,1,1,468,1,1, - 1,1,1,1,1,1,1,1,158,3017, - 3025,185,434,400,430,434,400,430,3117,56, - 987,968,3017,1056,1020,1081,985,1706,943,1129, - 983,425,979,3017,1,5255,3026,2045,2463,3017, - 5254,1,1,1,468,1,1,1,1,1, - 1,1,1,1,1,355,63,3025,354,434, - 400,430,434,400,430,3117,3017,72,968,3017, - 1056,1020,1081,985,1706,943,1129,983,425,979, - 3017,1,5255,3026,2045,2463,785,5254,1,1, - 1,468,1,1,1,1,1,1,1,1, - 1,1,362,3017,3025,356,434,400,430,434, - 400,430,3117,1,3017,968,681,1056,1020,1081, - 985,1706,943,1129,983,425,979,3017,1,5255, - 3026,252,734,632,5254,1,1,1,468,1, - 1,1,1,1,1,1,1,1,1,399, - 2001,3025,3017,1,1,1,1,3017,3026,3117, - 3017,2509,968,1205,1056,1020,1081,985,1706,943, - 1129,983,425,979,3017,1,5255,3026,3017,3025, - 3277,5254,1,1,1,468,1,1,1,1, - 1,1,1,1,1,1,3017,3017,3025,3046, - 3233,3235,3017,3234,3047,3026,3117,1254,55,968, - 3017,1056,1020,1081,985,1706,943,1129,983,425, - 979,3017,1,5255,3026,3017,3025,3257,5254,1, - 1,1,468,1,1,1,1,1,1,1, - 1,1,1,3017,3017,3025,3020,209,1,859, - 3017,116,2906,3117,859,258,968,293,1056,1020, - 1081,985,1706,943,1129,983,425,979,3017,1, - 5255,3026,116,2045,2463,5254,1,1,1,468, + 1,1,255,210,3044,3216,567,69,3217,456, + 526,3036,3136,3065,3036,999,3066,1156,1068,1181, + 1037,1884,978,1040,1012,628,1003,3036,1,5223, + 3045,3036,5199,1,3043,407,1,1,697,1, 1,1,1,1,1,1,1,1,1,1, - 1539,970,3025,1,2363,3245,3017,2915,2909,2912, - 3117,1,2421,968,267,1056,1020,1081,985,1706, - 943,1129,983,425,979,1,2363,442,3019,2915, - 2909,2912,3195,237,50,1365,225,2993,2993,2993, - 3017,395,2732,286,709,267,1154,3233,3235,231, - 3234,3179,3180,3178,3236,3181,3177,225,3017,1, - 235,53,3017,2915,2909,2912,1467,255,3017,225, - 2566,2549,3184,3189,3188,3186,3187,3185,3190,3191, - 3183,3192,3193,3194,2321,2614,2594,3017,69,3196, - 3017,434,400,430,3195,202,3017,225,253,434, - 400,430,128,2724,2695,1154,2924,2918,2921,3233, - 3235,41,3234,3179,3180,3178,3236,3181,3177,3017, - 3233,3235,1305,3234,3233,3235,3277,3234,3179,3180, - 3178,3236,3181,3177,3184,3189,3188,3186,3187,3185, - 3190,3191,3183,3192,3193,3194,2321,2614,2594,3184, - 3189,3188,3186,3187,3185,3190,3191,3183,3192,3193, - 3194,3017,1904,3034,3020,3017,465,900,3035,2579, - 2665,2657,3017,2673,3030,2232,1653,922,3027,3028, - 3029,2649,1451,1,1904,3853,27,1393,3017,618, - 3759,2685,2665,2657,4767,2673,3030,2232,1653,922, - 3027,3028,3029,2649,1451,3017,1904,3034,3020,3017, - 3017,3197,3035,2685,2665,2657,3198,2673,3030,2232, - 1653,922,3027,3028,3029,2649,1451,112,1,2421, - 3017,3022,3017,1307,52,3022,3019,272,1000,3017, - 1904,3034,1515,2566,2549,27,3035,2685,2665,2657, - 4767,2673,3030,2232,1653,922,3027,3028,3029,2649, - 1451,709,3021,324,651,3017,3021,775,3022,273, - 709,3017,2304,1839,3017,1904,3034,1329,1,3017, - 3019,3035,2685,2665,2657,1305,2673,3030,2232,1653, - 922,3027,3028,3029,2649,1451,1,1904,3853,3021, - 3017,3017,709,3759,2685,2665,2657,4767,2673,3030, - 2232,1653,922,3027,3028,3029,2649,1451,1,1904, - 3853,250,3014,3017,3017,3759,2685,2665,2657,4767, - 2673,3030,2232,1653,922,3027,3028,3029,2649,1451, - 3017,1904,3034,3233,3235,3276,3234,3035,2685,2665, - 2657,4767,2673,3030,2232,1653,922,3027,3028,3029, - 2649,1451,3017,1904,3034,254,3017,3017,3017,3035, - 2685,2665,2657,88,2673,3030,2232,1653,922,3027, - 3028,3029,2649,1451,1,1904,3034,3233,3235,42, - 3234,3035,2685,2665,2657,28,2673,3030,2232,1653, - 922,3027,3028,3029,2649,1451,3017,2682,3034,1319, - 3017,3017,3017,3035,2685,2665,2657,70,2673,3030, - 2232,1653,922,3027,3028,3029,2649,1451,3017,2693, - 3034,3044,3017,71,3017,3035,2685,2665,2657,3017, - 2673,3030,2232,1653,922,3027,3028,3029,2649,1451, - 332,1904,3034,1294,3017,3017,3017,3035,2685,2665, - 2657,3017,2673,3030,2232,1653,922,3027,3028,3029, - 2649,1451,1305,1269,1244,1219,1194,1169,1119,1144, - 1094,1069,1044,238,31,470,225,2999,2999,2999, - 3017,3017,3017,3022,3022,3022,1,523,3041,3042, - 2915,2909,2912,3017,255,1588,3022,225,1,3017, - 49,116,3022,523,3017,203,3017,1954,2732,225, - 3017,3017,3017,3026,3021,3021,3021,606,1445,357, - 1,1,116,434,400,430,3017,3021,3017,3020, - 209,3022,116,3021,3025,989,1,225,1,1440, - 2906,3022,1132,813,358,28,1963,468,434,400, - 430,1,359,3277,90,1045,434,400,430,65, - 3017,3017,3021,3017,191,364,4681,3017,1491,2724, - 2695,472,3021,3017,3382,208,360,3017,3017,3017, - 3017,682,3017,3198,3197,90,3017,3017,3017,3017, - 3017,3017,3017,1563,3017,3017,3017,3017,3017,3017, - 3017,3019 + 1,1584,3036,3044,1,193,1,1,258,1, + 1,3136,1,1744,999,267,1156,1068,1181,1037, + 1884,978,1040,1012,628,1003,1,1,3036,1, + 1,1,1,1,1,1,3234,3036,479,808, + 3041,1,1945,3030,3041,3042,1025,727,267,3036, + 1008,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,193,3036,3036,1, + 192,1,1,3040,1,1,727,3040,18,3027, + 178,3027,178,48,3027,178,178,3036,209,2788, + 473,1,1,473,1,1,1,1,1,1, + 1,3234,178,178,3027,178,178,178,178,178, + 178,178,3036,3027,3027,3041,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,192,3036,2215,1,193,1,1,1,1, + 1,65,2934,130,255,2928,2931,2961,3040,3036, + 2955,2958,3036,556,2759,2751,1,1,1141,1, + 1,1,1,1,1,1,3234,3252,3254,51, + 3253,3198,3199,3197,3255,3200,3196,669,2583,919, + 88,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,193,1,1812,580, + 3036,2934,3214,63,2928,2931,3036,3296,254,3036, + 3036,1257,3036,3039,3215,71,567,3214,1369,456, + 526,3252,3254,3036,3253,3198,3199,3197,3255,3200, + 3196,57,3252,3254,1280,3253,3252,3254,3036,3253, + 3198,3199,3197,3255,3200,3196,3203,3208,3207,3205, + 3206,3204,3209,3210,3202,3211,3212,3213,2514,2635, + 2627,3203,3208,3207,3205,3206,3204,3209,3210,3202, + 3211,3212,3213,2514,2635,2627,128,224,401,1612, + 2943,1478,822,2937,2940,3036,131,3038,1,1744, + 2994,3041,3036,2988,2991,3036,1757,407,640,752, + 3252,3254,3036,3253,3198,3199,3197,3255,3200,3196, + 3252,3254,727,3253,3198,3199,3197,3255,3200,3196, + 3036,1943,3036,727,3040,3203,3208,3207,3205,3206, + 3204,3209,3210,3202,3211,3212,3213,1,1670,3893, + 27,3036,3797,2726,324,797,2696,2688,5459,2704, + 3049,2831,2452,2339,3046,3047,3048,2680,1500,438, + 2021,3036,1670,3053,3039,3036,3054,2726,3036,2853, + 2696,2688,3036,2704,3049,2831,2452,2339,3046,3047, + 3048,2680,1500,438,2021,272,945,3036,3036,3216, + 3276,3036,3217,3036,1670,3053,28,1,3054,2726, + 116,27,2696,2688,5459,2704,3049,2831,2452,2339, + 3046,3047,3048,2680,1500,438,2021,1,1812,3264, + 727,2934,1564,116,2928,2931,3036,3036,1727,3041, + 3036,1670,3053,116,3063,3054,2726,657,3038,2696, + 2688,1355,2704,3049,2831,2452,2339,3046,3047,3048, + 2680,1500,438,2021,1,1670,3893,1103,3036,3797, + 2726,112,3040,2696,2688,5459,2704,3049,2831,2452, + 2339,3046,3047,3048,2680,1500,438,2021,1,1670, + 3893,3036,1516,3797,2726,3036,56,2696,2688,5459, + 2704,3049,2831,2452,2339,3046,3047,3048,2680,1500, + 438,2021,369,1670,3053,3036,3036,3054,2726,3036, + 55,2696,2688,5459,2704,3049,2831,2452,2339,3046, + 3047,3048,2680,1500,438,2021,3036,1670,3053,3036, + 3036,3054,2726,3036,3036,2696,2688,5459,2704,3049, + 2831,2452,2339,3046,3047,3048,2680,1500,438,2021, + 3036,1670,3053,640,752,3054,2726,3036,3033,2696, + 2688,203,2704,3049,2831,2452,2339,3046,3047,3048, + 2680,1500,438,2021,1,1670,3053,640,752,3054, + 2726,3036,3036,2696,2688,3036,2704,3049,2831,2452, + 2339,3046,3047,3048,2680,1500,438,2021,3036,2600, + 3053,3036,3036,3054,2726,3036,3036,2696,2688,1, + 2704,3049,2831,2452,2339,3046,3047,3048,2680,1500, + 438,2021,3036,2712,3053,3036,1540,3054,2726,3036, + 3036,2696,2688,1,2704,3049,2831,2452,2339,3046, + 3047,3048,2680,1500,438,2021,3036,2714,3053,3036, + 3407,3054,2726,3036,3036,2696,2688,3036,2704,3049, + 2831,2452,2339,3046,3047,3048,2680,1500,438,2021, + 3036,2720,3053,42,3217,3054,2726,3036,3036,2696, + 2688,3036,2704,3049,2831,2452,2339,3046,3047,3048, + 2680,1500,438,2021,332,1670,3053,3036,3216,3054, + 2726,3036,3036,2696,2688,3041,2704,3049,2831,2452, + 2339,3046,3047,3048,2680,1500,438,2021,132,31, + 601,3036,3003,1,3041,2997,3000,2934,365,255, + 2928,2931,567,3060,3061,456,526,3036,3040,1344, + 557,231,3252,3254,3036,3253,3198,3199,3197,3255, + 3200,3196,235,3036,2631,1,3036,3040,3041,1319, + 1294,1269,1244,1219,1169,1194,1144,1117,1092,237, + 355,238,225,3012,225,3018,3012,3012,3018,3018, + 368,1355,3036,3036,567,3041,367,456,526,1145, + 567,3040,3296,456,526,225,158,225,1,50, + 567,90,1116,456,526,2788,185,225,359,225, + 567,273,567,456,526,456,526,358,3040,366, + 1589,567,3036,567,456,526,456,526,3036,3036, + 3036,3041,360,3045,90,225,567,225,49,456, + 526,202,209,361,2788,567,727,567,456,526, + 456,526,3036,362,28,363,3044,567,3036,567, + 456,526,456,526,3040,53,1043,52,2002,286, + 2759,2751,1207,353,2583,919,2583,919,41,3036, + 4678,3036,191,368,1355,3036,3036,3036,3036,1355, + 1355,3036,700,208,364,3036,3036,3036,3036,3036, + 3036,3036,3036,3036,3036,3036,3036,3036,3036,2759, + 2751,3036,3036,3036,3036,3036,3036,3036,3036,3036, + 3036,3036,3036,3036,3036,3036,3036,3036,3036,3036, + 3036,3036,3036,1207 }; }; public final static char termAction[] = TermAction.termAction; @@ -1057,41 +1092,42 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface Asb { public final static char asb[] = {0, - 581,1,200,307,386,581,547,646,515,547, - 547,547,527,641,527,641,641,527,641,527, - 309,390,388,377,547,388,172,279,545,83, - 473,145,641,336,333,336,145,336,641,388, - 393,390,264,390,13,14,482,309,646,439, - 113,388,116,58,390,87,123,121,262,280, - 267,83,82,264,643,25,646,177,393,535, - 388,482,149,484,309,388,113,113,131,388, - 172,440,614,473,279,456,440,440,336,547, - 547,443,547,547,440,279,217,458,217,386, - 295,263,204,83,646,643,25,177,177,535, - 511,484,183,169,511,229,295,458,458,458, - 458,458,153,458,458,458,219,412,417,415, - 423,419,426,425,428,427,429,264,538,309, - 263,617,113,55,646,458,87,58,337,264, - 277,440,458,440,293,458,339,458,458,280, - 443,217,443,388,260,341,341,267,264,67, - 264,25,55,209,25,177,179,395,179,511, - 535,263,511,169,152,149,458,458,458,458, - 458,458,458,458,458,458,458,264,264,540, - 295,295,336,336,68,458,458,458,458,458, - 458,458,458,458,458,458,458,458,458,458, - 458,458,458,458,458,203,20,479,390,484, - 55,129,264,456,440,264,547,264,264,279, - 443,458,263,25,211,179,55,458,336,535, - 337,458,458,169,153,131,390,479,264,264, - 264,169,415,415,412,412,419,419,417,417, - 417,417,425,423,427,426,217,428,482,264, - 549,538,129,440,456,443,458,443,443,67, - 55,439,458,435,211,436,55,169,169,129, - 540,549,400,646,458,484,264,179,8,68, - 440,264,278,211,458,436,436,129,264,55, - 127,119,217,336,458,273,264,68,440,443, - 436,179,3,131,475,336,458,443,264,55, - 458,169,443,169 + 642,13,232,334,413,642,577,640,545,577, + 577,577,557,635,557,635,635,557,635,557, + 336,417,415,404,577,415,427,304,575,174, + 507,88,635,363,360,363,88,363,635,415, + 420,417,290,417,1,2,512,336,640,471, + 60,415,63,25,417,34,152,150,288,305, + 207,174,173,290,637,92,640,201,420,565, + 415,512,125,514,336,415,60,60,72,415, + 427,472,675,507,304,488,472,472,363,577, + 577,475,577,577,472,304,243,490,243,413, + 320,289,16,174,640,637,92,201,201,565, + 541,514,213,147,541,255,320,490,490,490, + 490,490,490,490,129,490,490,490,245,444, + 449,447,455,451,458,457,460,459,461,290, + 568,336,289,611,60,122,640,490,34,25, + 364,290,302,472,490,472,318,490,366,490, + 490,305,475,243,475,415,286,368,368,207, + 290,156,290,92,122,235,92,201,203,422, + 203,541,565,289,541,147,128,125,490,490, + 490,490,490,490,490,490,490,490,490,290, + 290,570,320,320,320,320,363,363,157,490, + 490,490,490,490,490,490,490,490,490,490, + 490,490,490,490,490,490,490,490,490,15, + 8,509,417,514,122,70,290,488,472,290, + 577,290,290,304,475,490,289,92,237,203, + 122,490,363,565,364,490,490,147,129,72, + 417,509,290,290,290,290,290,147,447,447, + 444,444,451,451,449,449,449,449,457,455, + 459,458,243,460,512,290,579,568,70,472, + 488,475,490,475,475,156,122,471,490,467, + 237,468,122,147,147,70,570,579,432,432, + 432,640,490,514,290,203,196,157,472,290, + 303,237,490,468,468,70,290,122,68,66, + 178,363,490,243,21,290,157,472,475,468, + 203,297,72,293,363,490,475,290,122,490, + 147,475,147 }; }; public final static char asb[] = Asb.asb; @@ -1099,71 +1135,74 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface Asr { public final static byte asr[] = {0, - 94,0,3,36,62,24,0,2,7,33, - 68,0,1,63,64,24,5,6,4,3, - 36,34,33,0,27,47,22,48,59,28, - 49,29,50,51,30,25,52,53,26,60, - 31,61,54,55,23,56,57,58,2,7, - 5,6,4,32,3,62,0,11,3,64, - 36,24,5,6,4,0,36,16,17,18, - 19,13,7,14,15,12,8,9,10,20, - 21,1,34,3,2,0,48,59,28,49, - 29,50,51,30,25,52,53,26,60,31, - 61,54,55,23,56,57,58,2,7,22, - 47,27,5,6,4,3,36,24,64,0, - 36,1,34,3,63,0,3,62,33,68, - 1,17,18,19,13,14,15,12,8,9, - 10,20,21,16,2,7,11,0,22,25, - 23,26,14,15,12,8,9,10,20,21, - 16,1,2,7,17,18,19,13,75,3, - 0,3,63,34,13,0,2,7,3,62, - 36,0,22,25,14,15,12,8,9,10, - 20,21,16,2,7,17,18,19,13,1, - 23,0,33,3,36,34,1,0,24,3, - 8,2,1,4,6,5,63,0,67,5, - 6,4,33,1,68,81,14,15,12,8, - 9,10,69,70,65,66,71,72,73,74, - 76,77,78,79,80,82,83,62,64,84, - 85,86,87,88,90,89,91,92,93,75, - 24,63,36,34,3,0,3,36,34,2, - 22,0,64,33,68,0,94,95,62,38, - 40,11,44,46,41,35,42,43,39,37, - 45,32,3,24,17,18,19,13,14,15, - 12,9,10,20,21,16,8,1,59,60, - 61,55,47,52,50,51,49,48,53,54, - 56,57,58,31,28,26,27,30,22,25, - 23,29,5,6,4,7,2,0,35,0, - 68,81,14,15,12,9,10,69,70,65, - 66,71,72,73,74,76,77,78,79,80, - 82,83,64,84,85,86,87,88,89,90, - 91,92,93,36,33,34,27,22,28,29, - 30,25,26,31,23,24,3,1,2,5, - 6,4,8,0,3,36,62,64,0,64, - 84,85,86,87,88,89,90,91,92,93, - 11,8,69,70,9,10,66,65,71,72, - 73,74,76,77,12,78,79,80,67,75, - 34,62,82,83,63,5,6,4,36,24, - 3,0,38,40,11,44,46,41,35,42, - 43,39,37,45,32,24,3,14,15,12, - 8,9,10,20,21,16,1,2,7,17, - 18,19,13,0,75,3,67,0,8,1, - 33,34,3,27,47,48,59,28,49,29, - 50,51,30,52,53,26,60,31,61,54, - 55,56,57,58,2,7,5,6,4,67, - 22,25,23,0,55,47,52,50,51,49, - 48,53,54,56,57,58,63,24,31,28, - 26,27,30,29,22,25,23,36,2,8, - 5,6,4,33,34,3,1,0,8,27, - 47,22,48,59,28,49,29,50,51,30, - 25,52,53,26,60,31,61,54,55,23, - 56,57,58,2,7,67,4,6,5,0, - 94,27,47,22,48,59,28,49,29,50, - 51,30,25,52,53,26,60,31,61,54, - 55,23,56,57,58,7,1,5,6,24, - 3,32,4,2,8,0,27,47,22,48, - 59,28,49,29,50,51,30,25,52,53, - 26,60,31,61,54,55,23,56,57,58, - 2,7,5,6,4,11,0 + 1,65,66,26,7,8,4,3,38,36, + 35,0,96,0,35,3,38,36,1,0, + 66,35,70,0,11,3,66,38,26,7, + 8,4,0,50,61,30,51,31,52,53, + 32,27,54,55,28,62,33,63,56,57, + 25,58,59,60,2,5,24,49,29,7, + 8,4,3,38,26,66,0,3,64,35, + 70,1,17,18,19,13,14,15,12,6, + 9,10,20,21,16,23,22,2,5,11, + 0,29,49,24,50,61,30,51,31,52, + 53,32,27,54,55,28,62,33,63,56, + 57,25,58,59,60,2,5,7,8,4, + 34,3,64,0,24,27,25,28,14,15, + 12,6,9,10,20,21,16,23,22,1, + 2,5,17,18,19,13,77,3,0,38, + 1,36,3,65,0,38,16,17,18,19, + 13,5,14,15,12,6,9,10,20,21, + 22,23,1,36,3,2,0,66,1,17, + 18,19,13,14,15,12,6,9,10,20, + 21,16,23,22,11,2,5,35,70,0, + 2,5,3,64,38,0,3,38,36,2, + 24,0,24,27,14,15,12,6,9,10, + 20,21,16,23,22,2,5,17,18,19, + 13,1,25,0,26,3,6,2,1,4, + 8,7,65,0,69,7,8,4,35,1, + 70,83,14,15,12,6,9,10,71,72, + 67,68,73,74,75,76,78,79,80,81, + 82,84,85,64,66,86,87,88,89,90, + 92,91,93,94,95,77,26,65,38,36, + 3,0,77,3,69,0,3,38,64,26, + 0,96,97,64,40,42,11,46,48,43, + 37,44,45,41,39,47,34,3,26,17, + 18,19,13,14,15,12,9,10,20,21, + 16,23,22,6,1,61,62,63,57,49, + 54,52,53,51,50,55,56,58,59,60, + 33,30,28,29,32,24,27,25,31,7, + 8,4,5,2,0,37,0,70,83,14, + 15,12,9,10,71,72,67,68,73,74, + 75,76,78,79,80,81,82,84,85,66, + 86,87,88,89,90,91,92,93,94,95, + 38,35,36,29,24,30,31,32,27,28, + 33,25,26,3,1,2,7,8,4,6, + 0,3,38,64,66,0,3,65,36,13, + 0,66,86,87,88,89,90,91,92,93, + 94,95,11,6,71,72,9,10,68,67, + 73,74,75,76,78,79,12,80,81,82, + 69,77,36,64,84,85,65,7,8,4, + 38,26,3,0,40,42,11,46,48,43, + 37,44,45,41,39,47,34,26,3,14, + 15,12,6,9,10,20,21,16,23,22, + 1,2,5,17,18,19,13,0,6,1, + 35,36,3,29,49,50,61,30,51,31, + 52,53,32,54,55,28,62,33,63,56, + 57,58,59,60,2,5,7,8,4,69, + 24,27,25,0,57,49,54,52,53,51, + 50,55,56,58,59,60,65,26,33,30, + 28,29,32,31,24,27,25,38,2,6, + 7,8,4,35,36,3,1,0,6,29, + 49,24,50,61,30,51,31,52,53,32, + 27,54,55,28,62,33,63,56,57,25, + 58,59,60,2,5,69,4,8,7,0, + 29,49,24,50,61,30,51,31,52,53, + 32,27,54,55,28,62,33,63,56,57, + 25,58,59,60,2,5,7,8,4,11, + 0,96,29,49,24,50,61,30,51,31, + 52,53,32,27,54,55,28,62,33,63, + 56,57,25,58,59,60,5,1,7,8, + 26,3,34,4,2,6,0 }; }; public final static byte asr[] = Asr.asr; @@ -1171,41 +1210,42 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface Nasb { public final static char nasb[] = {0, - 151,29,39,19,16,164,29,10,96,29, - 29,29,97,74,97,74,74,97,74,97, - 91,148,122,29,29,69,62,12,158,46, - 29,103,144,103,144,103,103,103,144,160, - 29,144,158,148,44,44,157,131,10,17, - 74,141,29,29,148,29,158,29,29,99, - 81,76,29,158,74,131,29,131,29,131, - 72,157,58,109,173,121,144,74,64,70, - 62,17,29,62,105,15,17,17,103,29, - 29,116,29,29,17,12,29,8,29,16, - 1,158,29,158,29,144,30,131,103,131, - 49,137,53,60,49,29,133,8,8,8, - 8,8,59,8,8,8,29,29,29,29, - 29,29,29,29,29,29,29,158,127,22, - 29,177,144,131,29,8,29,29,29,158, - 29,17,8,17,168,134,29,134,134,99, - 116,29,116,121,29,29,29,81,158,8, - 158,131,13,16,112,103,56,29,29,49, - 67,158,49,60,59,67,8,8,8,8, - 8,8,8,8,8,8,8,158,158,129, - 133,133,79,79,34,134,8,8,8,8, + 165,31,16,21,40,136,31,32,97,31, + 31,31,98,78,98,78,78,98,78,98, + 92,157,127,31,31,73,90,18,120,152, + 31,108,150,108,150,108,108,108,150,169, + 31,150,120,157,10,10,119,145,32,41, + 78,147,31,31,157,31,120,31,31,104, + 71,43,31,120,78,145,31,145,31,145, + 76,119,55,114,122,126,150,78,62,74, + 90,41,31,90,110,39,41,41,108,31, + 31,131,31,31,41,18,31,8,31,40, + 1,120,31,120,31,150,178,145,108,145, + 48,12,52,57,48,31,100,8,8,8, + 8,8,8,8,56,8,8,8,31,31, + 31,31,31,31,31,31,31,31,31,120, + 141,24,31,160,150,145,31,8,31,31, + 31,120,31,41,8,41,173,101,31,101, + 101,104,131,31,131,126,31,31,31,71, + 120,8,120,145,19,40,67,108,65,31, + 31,48,34,120,48,57,56,34,8,8, + 8,8,8,8,8,8,8,8,8,120, + 120,143,100,100,100,100,80,80,36,101, 8,8,8,8,8,8,8,8,8,8, - 8,8,8,134,8,44,44,126,148,109, - 13,131,158,170,17,158,29,158,158,105, - 116,8,158,30,121,56,13,8,103,67, - 29,8,8,60,59,8,148,155,158,158, - 158,60,29,29,29,29,29,29,29,29, - 29,29,29,29,29,29,29,29,157,158, - 146,85,52,17,170,116,134,116,116,8, - 13,17,8,29,141,74,13,60,60,131, - 87,146,29,29,8,109,158,56,41,170, - 17,158,29,121,8,74,144,52,158,13, - 51,29,29,103,8,83,158,170,17,116, - 144,56,37,64,60,103,8,116,158,13, - 8,60,116,60 + 8,8,8,8,8,8,8,101,8,10, + 10,140,157,114,19,145,120,175,41,120, + 31,120,120,110,131,8,120,178,126,65, + 19,8,108,34,31,8,8,57,56,8, + 157,117,120,120,120,120,120,57,31,31, + 31,31,31,31,31,31,31,31,31,31, + 31,31,31,31,119,120,155,84,51,41, + 175,131,101,131,131,8,19,41,8,31, + 147,78,19,57,57,145,86,155,31,31, + 31,31,8,114,120,65,59,175,41,120, + 31,126,8,78,150,51,120,19,50,31, + 62,108,8,31,46,120,175,41,131,150, + 65,82,62,57,108,8,131,120,19,8, + 57,131,57 }; }; public final static char nasb[] = Nasb.nasb; @@ -1213,24 +1253,24 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface Nasr { public final static char nasr[] = {0, - 89,88,87,86,80,85,84,5,0,112, - 0,1,50,0,32,1,24,0,34,1, - 108,89,88,87,86,80,85,84,0,104, - 1,61,0,1,119,0,127,0,137,0, - 129,27,0,52,0,136,21,0,81,0, - 96,73,5,1,0,74,0,1,5,44, - 0,97,0,5,73,0,30,0,1,36, - 48,34,46,28,0,21,116,0,98,0, - 114,0,131,0,34,46,65,64,28,0, - 80,76,77,78,79,68,54,0,1,29, - 37,101,27,0,37,27,75,50,1,29, - 0,1,61,93,0,27,37,1,38,0, - 28,46,34,1,0,21,34,46,64,65, - 1,0,61,1,32,0,124,1,29,0, - 46,34,1,10,0,1,29,28,60,0, - 132,29,1,0,64,65,1,21,0,28, - 34,36,0,29,1,110,0,29,53,1, - 67,0,29,1,133,0,1,29,53,33, + 89,88,87,86,81,85,84,5,0,52, + 0,124,1,29,0,137,0,1,50,0, + 34,1,108,89,88,87,86,81,85,84, + 0,112,0,31,0,1,119,0,30,1, + 24,0,20,116,0,131,0,82,0,96, + 68,5,1,0,1,5,44,0,27,139, + 0,5,68,0,75,0,1,59,93,0, + 114,0,1,36,48,34,46,28,0,98, + 0,127,0,34,46,66,65,28,0,97, + 0,81,77,78,79,80,71,54,0,59, + 1,30,0,1,29,37,101,27,0,37, + 27,76,50,1,29,0,65,66,1,20, + 0,29,1,133,0,28,46,34,1,0, + 27,37,1,38,0,29,1,110,0,20, + 34,46,65,66,1,0,46,34,1,11, + 0,136,20,0,1,29,28,61,0,1, + 29,53,33,0,132,29,1,0,28,34, + 36,0,29,53,1,70,0,104,1,59, 0 }; }; @@ -1239,16 +1279,16 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, - 2,85,87,99,97,98,86,9,10,11, + 2,85,87,99,86,9,97,98,10,11, 3,8,84,6,7,68,81,82,83,12, - 13,48,76,92,64,69,44,55,60,63, - 72,100,1,90,77,42,45,46,49,50, - 51,57,58,59,65,71,47,52,56,61, - 62,66,67,74,75,78,79,80,54,70, - 73,91,29,31,16,17,30,4,14,15, - 18,19,20,21,89,22,23,24,25,26, - 5,27,28,32,33,34,35,36,37,38, - 39,40,41,101,53,88,93,94,95,96 + 13,93,94,48,76,92,64,69,44,55, + 60,63,72,100,1,90,77,42,45,46, + 49,50,51,57,58,59,65,71,47,52, + 56,61,62,66,67,74,75,78,79,80, + 54,70,73,91,29,31,16,17,30,4, + 14,15,18,19,20,21,89,22,23,24, + 25,26,5,27,28,32,33,34,35,36, + 37,38,39,40,41,101,53,88,95,96 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -1256,20 +1296,21 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 0,0,0,0,107,111,112,113,114,190, - 0,0,0,115,116,117,118,119,120,121, - 103,122,123,105,0,124,130,191,134,142, - 0,106,129,165,0,168,125,128,0,0, + 0,0,0,0,107,111,112,113,114,115, + 190,0,0,0,116,117,118,119,120,103, + 121,122,123,105,0,124,130,191,134,106, + 142,0,129,165,0,168,125,128,0,0, 0,0,0,102,162,164,0,166,0,104, - 152,167,133,141,0,0,0,0,127,163, - 156,176,179,180,181,0,0,144,151,0, - 169,175,0,0,132,145,146,147,148,153, - 174,178,109,136,137,138,139,140,143,149, + 152,167,133,141,0,0,0,0,156,127, + 163,151,176,179,180,181,0,0,109,0, + 144,0,169,175,0,132,145,146,147,148, + 153,174,178,136,137,138,139,140,143,149, 150,0,155,159,161,182,195,108,110,126, 131,135,0,154,158,0,160,170,173,187, 0,189,0,192,0,194,0,0,0,0, 0,157,0,171,172,177,0,183,184,0, - 185,186,188,0,0,193,0,0,0 + 185,186,188,0,0,193,0,0,196,0, + 0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1277,13 +1318,13 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 133,191,276,153,84,90,219,47,246,1, - 56,100,118,33,199,27,61,96,170,255, - 272,291,295,259,15,8,8,65,68,73, - 105,128,68,180,185,188,299,41,174,266, - 8,73,209,143,237,143,209,266,20,80, - 166,225,225,225,225,225,20,108,80,108, - 108 + 141,199,284,161,92,98,227,55,254,1, + 64,108,126,41,207,27,33,37,69,104, + 178,263,280,299,303,267,15,8,8,73, + 76,81,113,136,76,188,193,196,307,49, + 182,274,8,81,217,151,245,151,217,274, + 20,88,174,233,233,233,233,233,20,116, + 88,116,116 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -1291,13 +1332,13 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 141,141,141,141,6,6,141,53,252,6, - 31,6,31,38,204,31,31,6,168,141, - 31,31,6,263,18,6,6,31,71,82, - 6,31,131,183,183,183,31,44,177,269, - 11,76,204,160,240,146,212,284,25,82, - 168,227,229,231,233,235,22,115,76,110, - 123 + 149,149,149,149,6,6,149,61,260,6, + 31,6,31,46,212,31,31,31,31,6, + 176,149,31,31,6,271,18,6,6,31, + 79,90,6,31,139,191,191,191,31,52, + 185,277,11,84,212,168,248,154,220,292, + 25,90,176,235,237,239,241,243,22,123, + 84,118,131 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -1305,13 +1346,13 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 78,76,5,78,52,52,76,69,41,130, - 66,52,36,11,76,113,66,52,93,33, - 6,5,5,23,105,131,130,64,82,60, - 52,34,51,77,77,77,3,96,93,7, - 130,60,76,78,42,78,76,5,105,60, - 93,88,87,86,85,84,105,36,60,48, - 36 + 79,77,5,79,52,52,77,62,41,140, + 67,52,36,12,77,6,6,113,67,52, + 93,33,6,5,5,23,105,131,130,65, + 83,61,52,34,51,78,78,78,3,96, + 93,7,140,61,77,79,42,79,77,5, + 105,61,93,88,87,86,85,84,105,36, + 61,48,36 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -1319,13 +1360,13 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 62,62,62,62,75,75,62,62,95,75, - 34,75,34,34,11,34,34,75,24,62, - 34,34,75,63,5,75,75,34,1,8, - 75,34,2,2,2,2,34,64,2,34, - 67,8,11,11,35,2,2,34,2,8, - 24,7,59,60,60,55,2,1,8,1, - 1 + 64,64,64,64,77,77,64,64,97,77, + 36,77,36,36,11,36,36,36,36,77, + 26,64,36,36,77,65,7,77,77,36, + 1,6,77,36,2,2,2,2,36,66, + 2,36,69,6,11,11,37,2,2,36, + 2,6,26,5,61,62,62,57,2,1, + 6,1,1 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -1333,13 +1374,13 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 120,120,9,120,93,93,120,68,78,3, - 97,93,104,125,120,74,97,93,5,77, - 9,9,9,39,117,1,3,97,99,164, - 93,104,109,120,120,120,9,70,5,12, - 3,164,120,120,78,120,120,9,117,164, - 5,121,121,121,121,121,117,104,164,106, - 104 + 123,123,9,123,96,96,123,70,81,3, + 100,96,107,128,123,9,9,77,100,96, + 5,80,9,9,9,41,120,1,3,100, + 102,167,96,107,112,123,123,123,9,73, + 5,14,3,167,123,123,81,123,123,9, + 120,167,5,124,124,124,124,124,120,107, + 167,109,107 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -1347,37 +1388,37 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 159,67,159,33,0,102,0,159,33,0, + 160,69,160,35,0,102,0,160,35,0, 30,127,102,0,194,128,0,191,0,128, - 0,159,191,0,159,0,235,1,214,0, - 103,0,234,1,1,5,0,103,103,0, - 228,101,0,31,151,0,174,199,101,11, - 173,0,104,0,0,171,101,1,164,0, - 171,101,1,0,182,1,0,160,101,0, - 179,0,149,160,0,9,0,174,0,149, - 0,9,0,126,26,209,101,33,0,126, - 209,101,26,33,0,126,26,33,0,126, - 209,101,33,0,126,33,0,134,0,2, - 0,171,103,0,2,103,0,171,101,1, - 134,0,2,0,169,103,0,151,1,0, - 162,0,174,206,101,11,127,223,59,0, - 104,0,223,59,0,130,3,0,0,0, - 104,0,174,206,101,11,223,59,0,3, - 0,0,0,104,0,161,0,105,0,222, - 101,161,0,101,161,0,157,105,0,192, - 59,0,130,0,192,61,0,192,60,0, - 203,101,11,221,127,220,180,0,221,127, - 220,180,0,3,0,0,104,0,220,180, - 0,130,0,3,0,0,104,0,203,101, - 11,220,180,0,189,0,148,0,147,0, - 146,0,145,0,144,0,138,41,0,77, - 2,106,103,105,0,138,121,132,1,44, - 0,53,128,0,201,101,11,0,132,83, - 122,0,29,123,0,183,1,0,103,112, - 0,183,1,16,0,174,199,101,11,121, - 183,1,0,103,3,0,110,0,104,0, - 219,1,105,0,132,33,105,0,132,1, - 0 + 0,159,191,0,159,0,169,1,22,0, + 103,0,169,1,23,0,235,1,214,0, + 234,1,1,7,0,103,103,0,228,101, + 0,31,151,0,175,199,101,11,168,0, + 104,0,0,173,101,1,165,0,173,101, + 1,0,183,1,0,161,101,0,179,0, + 149,161,0,9,0,174,0,149,0,9, + 0,126,28,209,101,35,0,126,209,101, + 28,35,0,126,28,35,0,126,209,101, + 35,0,126,35,0,134,0,2,0,171, + 103,0,2,103,0,173,101,1,134,0, + 2,0,169,103,0,151,1,0,162,0, + 175,206,101,11,127,223,61,0,104,0, + 223,61,0,130,3,0,0,0,104,0, + 175,206,101,11,223,61,0,3,0,0, + 0,104,0,159,0,105,0,222,101,159, + 0,101,159,0,157,105,0,192,61,0, + 130,0,192,63,0,192,62,0,203,101, + 11,221,127,220,181,0,221,127,220,181, + 0,3,0,0,104,0,220,181,0,130, + 0,3,0,0,104,0,203,101,11,220, + 181,0,189,0,148,0,147,0,146,0, + 145,0,144,0,138,43,0,77,2,106, + 103,105,0,138,120,130,1,46,0,53, + 128,0,201,101,11,0,130,85,122,0, + 29,123,0,169,1,0,103,112,0,169, + 1,16,0,175,199,101,11,120,169,1, + 0,103,3,0,110,0,104,0,219,1, + 105,0,130,35,105,0,130,1,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -1385,24 +1426,24 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface ScopeState { public final static char scopeState[] = {0, - 1315,0,533,0,721,1681,431,0,2232,1653, - 922,2742,2579,399,900,523,472,547,1884,1599, - 1429,838,734,632,2566,2549,2463,2045,2732,2724, - 2695,2685,2673,2515,2665,2657,2649,1451,1563,1539, - 1515,1491,1839,1467,989,1393,1368,1344,1319,1294, - 1269,1244,1219,1194,1169,1144,1119,1094,1069,1044, - 958,651,933,873,367,1020,709,785,754,682, - 607,579,0,606,1307,0,2750,2342,2314,2285, - 2254,2226,2206,2178,1754,2156,2122,1676,1706,1646, - 1592,0,1179,1016,783,592,1756,1414,2421,1896, - 2481,1874,0,2426,428,1414,2093,2066,1970,1896, - 1725,1874,1867,2024,821,2363,1963,1789,0,1584, - 489,367,428,0,2818,2814,2756,1963,1756,2446, - 1970,1414,1789,1725,2809,489,2794,367,2093,2158, - 2789,1867,2066,2620,2024,2097,2780,2426,2775,2760, - 2390,821,1584,2376,2321,2361,2614,2594,2031,1752, - 806,2120,428,2288,2212,2587,2580,2488,2480,2124, - 0 + 639,0,765,0,2717,851,2569,0,2831,2452, + 2339,2021,438,2796,2437,2052,479,407,556,531, + 2503,1770,1658,686,1478,822,2583,919,752,640, + 2788,2759,2751,2726,2704,499,2696,2688,2680,1500, + 1612,1588,1564,1540,657,1516,1043,1443,1418,1394, + 1369,1344,1319,1294,1269,1244,1219,1194,1169,1144, + 1117,1092,1013,797,979,954,374,1068,727,866, + 839,772,700,615,588,0,557,877,0,2365, + 2362,2334,2313,2285,2264,2236,2215,1791,2187,2167, + 1761,1884,1713,1683,0,1112,599,480,375,2396, + 1463,1744,1945,2179,1905,0,2466,436,1463,2150, + 2124,2063,1945,1641,1905,1868,2081,902,1812,2002, + 1842,0,1625,498,374,436,0,2856,2484,2838, + 2002,2396,2829,2063,1463,1842,1641,2142,498,2072, + 374,2150,2811,2032,1868,2124,2653,2081,2804,1987, + 2466,1886,1861,1632,902,1625,2419,2514,2415,2635, + 2627,2089,2605,886,1963,436,2319,2221,2596,2565, + 2543,2523,2519,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -1410,41 +1451,42 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,218,4,101,129,232,237,208,184,5, - 6,4,185,180,186,61,60,187,59,188, + 0,218,4,101,129,232,237,208,184,7, + 8,4,185,181,186,63,62,187,61,188, 189,101,1,2,134,101,1,11,1,1, - 1,220,128,192,128,192,223,192,128,160, + 1,220,128,192,128,192,223,192,128,161, 149,128,151,101,134,146,1,225,208,202, 151,128,191,136,101,148,238,13,197,101, - 1,236,2,13,127,11,127,11,149,8, - 160,1,33,101,101,36,128,151,64,160, - 63,121,1,36,201,45,37,39,43,42, - 35,41,46,44,137,11,40,38,127,129, - 101,234,214,1,221,128,101,11,101,8, - 101,101,26,126,101,106,1,16,21,20, - 10,9,8,12,15,14,105,108,114,109, - 116,115,118,117,120,119,122,171,129,101, - 172,233,128,11,173,8,148,136,8,2, - 3,132,101,127,1,1,138,1,1,101, - 63,159,63,101,200,2,7,36,121,1, - 2,11,203,161,204,101,206,127,207,101, - 181,224,101,126,209,181,93,92,91,89, - 90,88,87,86,85,84,64,183,132,161, - 1,1,81,68,1,33,70,69,8,65, - 66,10,9,77,76,74,73,72,71,78, - 12,80,79,83,82,164,165,1,101,36, - 101,11,2,153,167,132,35,132,132,201, - 63,36,235,101,101,206,174,64,36,181, - 36,209,26,126,8,121,101,1,183,183, - 219,132,109,109,108,108,115,115,114,114, - 114,114,117,116,119,118,132,120,1,182, - 101,160,101,167,124,121,1,121,121,36, - 203,222,63,151,128,194,174,126,126,11, - 160,101,121,121,63,101,171,199,101,124, - 167,132,138,36,63,194,128,101,171,174, - 36,228,127,68,33,229,167,124,121,95, - 128,199,150,64,159,68,33,121,167,174, - 67,159,121,159 + 1,236,2,13,127,11,127,11,149,6, + 161,1,35,101,101,38,128,151,66,161, + 65,120,1,38,201,47,39,41,45,44, + 37,43,48,46,137,11,42,40,127,129, + 101,234,214,1,221,128,101,11,101,6, + 101,101,28,126,101,106,1,22,23,16, + 21,20,10,9,6,12,15,14,105,108, + 110,109,116,115,118,117,121,119,122,173, + 129,101,174,233,128,11,168,6,148,136, + 6,2,3,130,101,127,1,1,138,1, + 1,101,65,160,65,101,200,2,5,38, + 120,1,2,11,203,159,204,101,206,127, + 207,101,182,224,101,126,209,182,95,94, + 93,91,92,90,89,88,87,86,66,169, + 130,159,1,1,1,1,83,70,1,35, + 72,71,6,67,68,10,9,79,78,76, + 75,74,73,80,12,82,81,85,84,165, + 166,1,101,38,101,11,2,153,170,130, + 37,130,130,201,65,38,235,101,101,206, + 175,66,38,182,38,209,28,126,6,120, + 101,1,169,169,169,169,219,130,109,109, + 108,108,115,115,110,110,110,110,117,116, + 119,118,130,121,1,183,101,161,101,170, + 124,120,1,120,120,38,203,222,65,151, + 128,194,175,126,126,11,161,101,120,120, + 120,120,65,101,173,199,101,124,170,130, + 138,38,65,194,128,101,173,175,38,228, + 239,70,35,127,229,170,124,120,97,128, + 199,150,66,160,70,35,120,170,175,69, + 160,120,160 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1561,7 +1603,7 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym "expression", "postfix_expression", "member_name", - "type_name", + "type_id", "initializer_list", "unary_expression", "cast_expression", @@ -1653,16 +1695,17 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym "word", "extended_decl_modifier_seq", "extended_decl_modifier", - "extended_asm_param" + "extended_asm_param", + "field_name_designator" }; }; public final static String name[] = Name.name; public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 32, - SCOPE_UBOUND = 60, - SCOPE_SIZE = 61, + ERROR_SYMBOL = 34, + SCOPE_UBOUND = 62, + SCOPE_SIZE = 63, MAX_NAME_LENGTH = 38; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -1671,20 +1714,20 @@ public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 344, + NUM_STATES = 353, NT_OFFSET = 100, - LA_STATE_OFFSET = 3383, + LA_STATE_OFFSET = 3409, MAX_LA = 2147483647, - NUM_RULES = 366, - NUM_NONTERMINALS = 139, - NUM_SYMBOLS = 239, + NUM_RULES = 373, + NUM_NONTERMINALS = 141, + NUM_SYMBOLS = 241, SEGMENT_SIZE = 8192, - START_STATE = 2395, + START_STATE = 2435, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 94, - EOLT_SYMBOL = 94, - ACCEPT_ACTION = 2905, - ERROR_ACTION = 3017; + EOFT_SYMBOL = 96, + EOLT_SYMBOL = 96, + ACCEPT_ACTION = 2924, + ERROR_ACTION = 3036; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java index 53c71b1e09f..6c2f142610b 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java @@ -15,106 +15,106 @@ package org.eclipse.cdt.internal.core.dom.lrparser.gcc; public interface GCCParsersym { public final static int - TK_auto = 27, - TK_break = 37, - TK_case = 38, - TK_char = 47, - TK_const = 22, - TK_continue = 39, - TK_default = 40, - TK_do = 41, - TK_double = 48, - TK_else = 95, - TK_enum = 59, - TK_extern = 28, - TK_float = 49, - TK_for = 42, - TK_goto = 43, - TK_if = 44, - TK_inline = 29, - TK_int = 50, - TK_long = 51, - TK_register = 30, - TK_restrict = 25, - TK_return = 45, - TK_short = 52, - TK_signed = 53, + TK_auto = 29, + TK_break = 39, + TK_case = 40, + TK_char = 49, + TK_const = 24, + TK_continue = 41, + TK_default = 42, + TK_do = 43, + TK_double = 50, + TK_else = 97, + TK_enum = 61, + TK_extern = 30, + TK_float = 51, + TK_for = 44, + TK_goto = 45, + TK_if = 46, + TK_inline = 31, + TK_int = 52, + TK_long = 53, + TK_register = 32, + TK_restrict = 27, + TK_return = 47, + TK_short = 54, + TK_signed = 55, TK_sizeof = 16, - TK_static = 26, - TK_struct = 60, - TK_switch = 46, - TK_typedef = 31, - TK_union = 61, - TK_unsigned = 54, - TK_void = 55, - TK_volatile = 23, - TK_while = 35, - TK__Bool = 56, - TK__Complex = 57, - TK__Imaginary = 58, + TK_static = 28, + TK_struct = 62, + TK_switch = 48, + TK_typedef = 33, + TK_union = 63, + TK_unsigned = 56, + TK_void = 57, + TK_volatile = 25, + TK_while = 37, + TK__Bool = 58, + TK__Complex = 59, + TK__Imaginary = 60, TK_integer = 17, TK_floating = 18, TK_charconst = 19, TK_stringlit = 13, TK_identifier = 2, - TK_Completion = 7, + TK_Completion = 5, TK_EndOfCompletion = 3, - TK_Invalid = 96, - TK_LeftBracket = 33, + TK_Invalid = 98, + TK_LeftBracket = 35, TK_LeftParen = 1, TK_LeftBrace = 11, - TK_Dot = 68, - TK_Arrow = 81, + TK_Dot = 70, + TK_Arrow = 83, TK_PlusPlus = 14, TK_MinusMinus = 15, TK_And = 12, - TK_Star = 8, + TK_Star = 6, TK_Plus = 9, TK_Minus = 10, TK_Tilde = 20, TK_Bang = 21, - TK_Slash = 69, - TK_Percent = 70, - TK_RightShift = 65, - TK_LeftShift = 66, - TK_LT = 71, - TK_GT = 72, - TK_LE = 73, - TK_GE = 74, - TK_EQ = 76, - TK_NE = 77, - TK_Caret = 78, - TK_Or = 79, - TK_AndAnd = 80, - TK_OrOr = 82, - TK_Question = 83, - TK_Colon = 63, - TK_DotDotDot = 67, - TK_Assign = 64, - TK_StarAssign = 84, - TK_SlashAssign = 85, - TK_PercentAssign = 86, - TK_PlusAssign = 87, - TK_MinusAssign = 88, - TK_RightShiftAssign = 89, - TK_LeftShiftAssign = 90, - TK_AndAssign = 91, - TK_CaretAssign = 92, - TK_OrAssign = 93, - TK_Comma = 36, - TK_RightBracket = 75, - TK_RightParen = 34, - TK_RightBrace = 62, - TK_SemiColon = 24, - TK_typeof = 97, - TK___alignof__ = 98, + TK_Slash = 71, + TK_Percent = 72, + TK_RightShift = 67, + TK_LeftShift = 68, + TK_LT = 73, + TK_GT = 74, + TK_LE = 75, + TK_GE = 76, + TK_EQ = 78, + TK_NE = 79, + TK_Caret = 80, + TK_Or = 81, + TK_AndAnd = 82, + TK_OrOr = 84, + TK_Question = 85, + TK_Colon = 65, + TK_DotDotDot = 69, + TK_Assign = 66, + TK_StarAssign = 86, + TK_SlashAssign = 87, + TK_PercentAssign = 88, + TK_PlusAssign = 89, + TK_MinusAssign = 90, + TK_RightShiftAssign = 91, + TK_LeftShiftAssign = 92, + TK_AndAssign = 93, + TK_CaretAssign = 94, + TK_OrAssign = 95, + TK_Comma = 38, + TK_RightBracket = 77, + TK_RightParen = 36, + TK_RightBrace = 64, + TK_SemiColon = 26, + TK_typeof = 22, + TK___alignof__ = 23, TK_MAX = 99, TK_MIN = 100, - TK___attribute__ = 5, - TK___declspec = 6, + TK___attribute__ = 7, + TK___declspec = 8, TK_asm = 4, - TK_ERROR_TOKEN = 32, - TK_EOF_TOKEN = 94; + TK_ERROR_TOKEN = 34, + TK_EOF_TOKEN = 96; public final static String orderedTerminalSymbols[] = { "", @@ -122,10 +122,10 @@ public interface GCCParsersym { "identifier", "EndOfCompletion", "asm", - "__attribute__", - "__declspec", "Completion", "Star", + "__attribute__", + "__declspec", "Plus", "Minus", "LeftBrace", @@ -139,6 +139,8 @@ public interface GCCParsersym { "charconst", "Tilde", "Bang", + "typeof", + "__alignof__", "const", "volatile", "SemiColon", @@ -214,8 +216,6 @@ public interface GCCParsersym { "EOF_TOKEN", "else", "Invalid", - "typeof", - "__alignof__", "MAX", "MIN" }; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java new file mode 100644 index 00000000000..8acebf6afee --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java @@ -0,0 +1,1322 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.gcc; + +import lpg.lpgjavaruntime.*; + +import java.util.*; +import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.IParser; +import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; +import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; + +import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; +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; + +import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction; +import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory; + +public class GCCSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +{ + private static ParseTable prs = new GCCSizeofExpressionParserprs(); + private FixedBacktrackingParser btParser; + + public FixedBacktrackingParser getParser() { return btParser; } + private void setResult(Object object) { btParser.setSym1(object); } + public Object getRhsSym(int i) { return btParser.getSym(i); } + + public int getRhsTokenIndex(int i) { return btParser.getToken(i); } + public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); } + + public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); } + public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); } + + public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); } + public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); } + + public int getLeftSpan() { return btParser.getFirstToken(); } + public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); } + + public int getRightSpan() { return btParser.getLastToken(); } + public IToken getRightIToken() { return super.getIToken(getRightSpan()); } + + public int getRhsErrorTokenIndex(int i) + { + int index = btParser.getToken(i); + IToken err = super.getIToken(index); + return (err instanceof ErrorToken ? index : 0); + } + public ErrorToken getRhsErrorIToken(int i) + { + int index = btParser.getToken(i); + IToken err = super.getIToken(index); + return (ErrorToken) (err instanceof ErrorToken ? err : null); + } + + public GCCSizeofExpressionParser(LexStream lexStream) + { + super(lexStream); + + try + { + super.remapTerminalSymbols(orderedTerminalSymbols(), GCCSizeofExpressionParserprs.EOFT_SYMBOL); + } + catch(NullExportedSymbolsException e) { + } + catch(NullTerminalSymbolsException e) { + } + catch(UnimplementedTerminalsException e) + { + java.util.ArrayList unimplemented_symbols = e.getSymbols(); + System.out.println("The Lexer will not scan the following token(s):"); + for (int i = 0; i < unimplemented_symbols.size(); i++) + { + Integer id = (Integer) unimplemented_symbols.get(i); + System.out.println(" " + GCCSizeofExpressionParsersym.orderedTerminalSymbols[id.intValue()]); + } + System.out.println(); + } + catch(UndefinedEofSymbolException e) + { + throw new Error(new UndefinedEofSymbolException + ("The Lexer does not implement the Eof symbol " + + GCCSizeofExpressionParsersym.orderedTerminalSymbols[GCCSizeofExpressionParserprs.EOFT_SYMBOL])); + } + } + + public String[] orderedTerminalSymbols() { return GCCSizeofExpressionParsersym.orderedTerminalSymbols; } + public String getTokenKindName(int kind) { return GCCSizeofExpressionParsersym.orderedTerminalSymbols[kind]; } + public int getEOFTokenKind() { return GCCSizeofExpressionParserprs.EOFT_SYMBOL; } + public PrsStream getParseStream() { return (PrsStream) this; } + + // + // Report error message for given error_token. + // + public final void reportErrorTokenMessage(int error_token, String msg) + { + int firsttok = super.getFirstErrorToken(error_token), + lasttok = super.getLastErrorToken(error_token); + String location = super.getFileName() + ':' + + (firsttok > lasttok + ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok)) + : (super.getLine(error_token) + ":" + + super.getColumn(error_token) + ":" + + super.getEndLine(error_token) + ":" + + super.getEndColumn(error_token))) + + ": "; + super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg); + } + + public Object parser() + { + return parser(null, 0); + } + + public Object parser(Monitor monitor) + { + return parser(monitor, 0); + } + + public Object parser(int error_repair_count) + { + return parser(null, error_repair_count); + } + + public Object parser(Monitor monitor, int error_repair_count) + { + try + { + btParser = new FixedBacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) this); + } + catch (NotBacktrackParseTableException e) + { + throw new Error(new NotBacktrackParseTableException + ("Regenerate GCCSizeofExpressionParserprs.java with -BACKTRACK option")); + } + catch (BadParseSymFileException e) + { + throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- GCCSizeofExpressionParsersym.java")); + } + + try + { + return (Object) btParser.parse(error_repair_count); + } + catch (BadParseException e) + { + reset(e.error_token); // point to error token + DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs); + diagnoseParser.diagnose(e.error_token); + } + + return null; + } + + +private C99BuildASTParserAction action; +private ScopedStack<Object> astStack = new ScopedStack<Object>(); + +public GCCSizeofExpressionParser() { // constructor +} + +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { + action = new C99BuildASTParserAction (this, tu, astStack, CNodeFactory.getDefault() , GCCSecondaryParserFactory.getDefault() ); + action.setParserOptions(options); + + + + gnuAction = new GCCBuildASTParserAction (this, tu, astStack, CNodeFactory.getDefault() ); + gnuAction.setParserOptions(options); + + +} + + +public void addToken(IToken token) { + token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? + super.addToken(token); +} + + +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { + // this has to be done, or... kaboom! + setStreamLength(getSize()); + initActions(tu, options); + + final int errorRepairCount = -1; // -1 means full error handling + parser(null, errorRepairCount); // do the actual parse + super.resetTokenStream(); // allow tokens to be garbage collected + + // the completion node may be null + IASTCompletionNode compNode = action.getASTCompletionNode(); + + //action = null; + //parserAction = null; + return compNode; +} + +// uncomment this method to use with backtracking parser +public List<IToken> getRuleTokens() { + return getTokens().subList(getLeftSpan(), getRightSpan() + 1); +} + +public IASTNode getSecondaryParseResult() { + return (IASTNode) astStack.pop(); +} + +public String[] getOrderedTerminalSymbols() { + return GCCSizeofExpressionParsersym.orderedTerminalSymbols; +} + +@SuppressWarnings("nls") +public String getName() { + return "GCCSizeofExpressionParser"; +} + + + +private ITokenMap tokenMap = null; + +public void setTokens(List<IToken> tokens) { + resetTokenStream(); + addToken(new Token(null, 0, 0, 0)); // dummy token + for(IToken token : tokens) { + token.setKind(tokenMap.mapKind(token.getKind())); + addToken(token); + } + addToken(new Token(null, 0, 0, GCCSizeofExpressionParsersym.TK_EOF_TOKEN)); +} + +public GCCSizeofExpressionParser(IParserActionTokenProvider parser) { // constructor + tokenMap = new TokenMap(GCCSizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); +} + + + +private GCCBuildASTParserAction gnuAction; + + public void ruleAction(int ruleNumber) + { + switch (ruleNumber) + { + + // + // Rule 1: <openscope-ast> ::= $Empty + // + case 1: { action. openASTScope(); break; + } + + // + // Rule 10: literal ::= integer + // + case 10: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 11: literal ::= floating + // + case 11: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + } + + // + // Rule 12: literal ::= charconst + // + case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + } + + // + // Rule 13: literal ::= stringlit + // + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + } + + // + // Rule 15: primary_expression ::= primary_expression_id + // + case 15: { action. consumeExpressionID(); break; + } + + // + // Rule 16: primary_expression ::= ( expression ) + // + case 16: { action. consumeExpressionBracketed(); break; + } + + // + // Rule 20: postfix_expression ::= postfix_expression [ expression ] + // + case 20: { action. consumeExpressionArraySubscript(); break; + } + + // + // Rule 21: postfix_expression ::= postfix_expression ( expression_list_opt ) + // + case 21: { action. consumeExpressionFunctionCall(); break; + } + + // + // Rule 22: postfix_expression ::= postfix_expression . member_name + // + case 22: { action. consumeExpressionFieldReference(false); break; + } + + // + // Rule 23: postfix_expression ::= postfix_expression -> member_name + // + case 23: { action. consumeExpressionFieldReference(true); break; + } + + // + // Rule 24: postfix_expression ::= postfix_expression ++ + // + case 24: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + } + + // + // Rule 25: postfix_expression ::= postfix_expression -- + // + case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + } + + // + // Rule 26: postfix_expression ::= ( type_id ) { <openscope-ast> initializer_list comma_opt } + // + case 26: { action. consumeExpressionTypeIdInitializer(); break; + } + + // + // Rule 32: unary_expression ::= ++ unary_expression + // + case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + } + + // + // Rule 33: unary_expression ::= -- unary_expression + // + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + } + + // + // Rule 34: unary_expression ::= & cast_expression + // + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + } + + // + // Rule 35: unary_expression ::= * cast_expression + // + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + } + + // + // Rule 36: unary_expression ::= + cast_expression + // + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + } + + // + // Rule 37: unary_expression ::= - cast_expression + // + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + } + + // + // Rule 38: unary_expression ::= ~ cast_expression + // + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + } + + // + // Rule 39: unary_expression ::= ! cast_expression + // + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + } + + // + // Rule 40: unary_expression ::= sizeof unary_expression + // + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + } + + // + // Rule 42: cast_expression ::= ( type_id ) cast_expression + // + case 42: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + } + + // + // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression + // + case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + } + + // + // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression + // + case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + } + + // + // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression + // + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + } + + // + // Rule 48: additive_expression ::= additive_expression + multiplicative_expression + // + case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + } + + // + // Rule 49: additive_expression ::= additive_expression - multiplicative_expression + // + case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + } + + // + // Rule 51: shift_expression ::= shift_expression << additive_expression + // + case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + } + + // + // Rule 52: shift_expression ::= shift_expression >> additive_expression + // + case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + } + + // + // Rule 54: relational_expression ::= relational_expression < shift_expression + // + case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + } + + // + // Rule 55: relational_expression ::= relational_expression > shift_expression + // + case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + } + + // + // Rule 56: relational_expression ::= relational_expression <= shift_expression + // + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + } + + // + // Rule 57: relational_expression ::= relational_expression >= shift_expression + // + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + } + + // + // Rule 59: equality_expression ::= equality_expression == relational_expression + // + case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + } + + // + // Rule 60: equality_expression ::= equality_expression != relational_expression + // + case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + } + + // + // Rule 62: AND_expression ::= AND_expression & equality_expression + // + case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + } + + // + // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // + case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + } + + // + // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // + case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + } + + // + // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // + case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + } + + // + // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // + case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + } + + // + // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // + case 72: { action. consumeExpressionConditional(); break; + } + + // + // Rule 74: assignment_expression ::= unary_expression = assignment_expression + // + case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + } + + // + // Rule 75: assignment_expression ::= unary_expression *= assignment_expression + // + case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + } + + // + // Rule 76: assignment_expression ::= unary_expression /= assignment_expression + // + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + } + + // + // Rule 77: assignment_expression ::= unary_expression %= assignment_expression + // + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + } + + // + // Rule 78: assignment_expression ::= unary_expression += assignment_expression + // + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + } + + // + // Rule 79: assignment_expression ::= unary_expression -= assignment_expression + // + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + } + + // + // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression + // + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + } + + // + // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression + // + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + } + + // + // Rule 82: assignment_expression ::= unary_expression &= assignment_expression + // + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + } + + // + // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression + // + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + } + + // + // Rule 84: assignment_expression ::= unary_expression |= assignment_expression + // + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + } + + // + // Rule 87: expression_list ::= <openscope-ast> expression_list_actual + // + case 87: { action. consumeExpressionList(); break; + } + + // + // Rule 89: expression_list_opt ::= $Empty + // + case 89: { action. consumeEmpty(); break; + } + + // + // Rule 99: statement ::= ERROR_TOKEN + // + case 99: { action. consumeStatementProblem(); break; + } + + // + // Rule 100: labeled_statement ::= identifier_token : statement + // + case 100: { action. consumeStatementLabeled(); break; + } + + // + // Rule 101: labeled_statement ::= case constant_expression : statement + // + case 101: { action. consumeStatementCase(); break; + } + + // + // Rule 102: labeled_statement ::= default : statement + // + case 102: { action. consumeStatementDefault(); break; + } + + // + // Rule 103: compound_statement ::= { } + // + case 103: { action. consumeStatementCompoundStatement(false); break; + } + + // + // Rule 104: compound_statement ::= { <openscope-ast> block_item_list } + // + case 104: { action. consumeStatementCompoundStatement(true); break; + } + + // + // Rule 108: block_item ::= declaration + // + case 108: { action. consumeStatementDeclarationWithDisambiguation(); break; + } + + // + // Rule 109: expression_statement ::= ; + // + case 109: { action. consumeStatementNull(); break; + } + + // + // Rule 110: expression_statement ::= expression_in_statement ; + // + case 110: { action. consumeStatementExpression(); break; + } + + // + // Rule 111: selection_statement ::= if ( expression ) statement + // + case 111: { action. consumeStatementIf(false); break; + } + + // + // Rule 112: selection_statement ::= if ( expression ) statement else statement + // + case 112: { action. consumeStatementIf(true); break; + } + + // + // Rule 113: selection_statement ::= switch ( expression ) statement + // + case 113: { action. consumeStatementSwitch(); break; + } + + // + // Rule 115: expression_opt ::= $Empty + // + case 115: { action. consumeEmpty(); break; + } + + // + // Rule 116: iteration_statement ::= do statement while ( expression ) ; + // + case 116: { action. consumeStatementDoLoop(); break; + } + + // + // Rule 117: iteration_statement ::= while ( expression ) statement + // + case 117: { action. consumeStatementWhileLoop(); break; + } + + // + // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // + case 118: { action. consumeStatementForLoop(); break; + } + + // + // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // + case 119: { action. consumeStatementForLoop(); break; + } + + // + // Rule 120: jump_statement ::= goto identifier_token ; + // + case 120: { action. consumeStatementGoto(); break; + } + + // + // Rule 121: jump_statement ::= continue ; + // + case 121: { action. consumeStatementContinue(); break; + } + + // + // Rule 122: jump_statement ::= break ; + // + case 122: { action. consumeStatementBreak(); break; + } + + // + // Rule 123: jump_statement ::= return ; + // + case 123: { action. consumeStatementReturn(false); break; + } + + // + // Rule 124: jump_statement ::= return expression ; + // + case 124: { action. consumeStatementReturn(true); break; + } + + // + // Rule 125: declaration ::= declaration_specifiers ; + // + case 125: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 126: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ; + // + case 126: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 127: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers + // + case 127: { action. consumeDeclarationSpecifiersSimple(); break; + } + + // + // Rule 128: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers + // + case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + } + + // + // Rule 129: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers + // + case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + } + + // + // Rule 130: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers + // + case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + } + + // + // Rule 131: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers + // + case 131: { action. consumeDeclarationSpecifiersTypedefName(); break; + } + + // + // Rule 156: init_declarator ::= complete_declarator = initializer + // + case 156: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 158: storage_class_specifier ::= storage_class_specifier_token + // + case 158: { action. consumeToken(); break; + } + + // + // Rule 164: simple_type_specifier ::= simple_type_specifier_token + // + case 164: { action. consumeToken(); break; + } + + // + // Rule 177: typedef_name_in_declspec ::= Completion + // + case 177: { action. consumeToken(); break; + } + + // + // Rule 178: typedef_name_in_declspec ::= identifier + // + 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 } + // + case 181: { action. consumeTypeSpecifierComposite(false); 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 } + // + case 182: { action. consumeTypeSpecifierComposite(true); break; + } + + // + // Rule 187: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token + // + case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + } + + // + // Rule 188: elaborated_specifier ::= union elaborated_specifier_hook identifier_token + // + case 188: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + } + + // + // Rule 189: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token + // + case 189: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + } + + // + // Rule 195: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ; + // + case 195: { action. consumeStructDeclaration(true); break; + } + + // + // Rule 196: struct_declaration ::= specifier_qualifier_list ; + // + case 196: { action. consumeStructDeclaration(false); break; + } + + // + // Rule 197: struct_declaration ::= ERROR_TOKEN + // + case 197: { action. consumeDeclarationProblem(); break; + } + + // + // Rule 203: struct_declarator ::= : constant_expression + // + case 203: { action. consumeBitField(false); break; + } + + // + // Rule 204: struct_declarator ::= declarator : constant_expression + // + case 204: { action. consumeBitField(true); break; + } + + // + // Rule 205: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt } + // + case 205: { action. consumeTypeSpecifierEnumeration(false); break; + } + + // + // Rule 206: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt } + // + case 206: { action. consumeTypeSpecifierEnumeration(true); break; + } + + // + // Rule 212: enumerator ::= identifier_token + // + case 212: { action. consumeEnumerator(false); break; + } + + // + // Rule 213: enumerator ::= identifier_token = constant_expression + // + case 213: { action. consumeEnumerator(true); break; + } + + // + // Rule 214: type_qualifier ::= type_qualifier_token + // + case 214: { action. consumeToken(); break; + } + + // + // Rule 218: function_specifier ::= inline + // + case 218: { action. consumeToken(); break; + } + + // + // Rule 220: declarator ::= <openscope-ast> pointer_seq direct_declarator + // + case 220: { action. consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 225: basic_direct_declarator ::= declarator_id_name + // + case 225: { action. consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 226: basic_direct_declarator ::= ( declarator ) + // + case 226: { action. consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 227: declarator_id_name ::= identifier + // + case 227: { action. consumeIdentifierName(); break; + } + + // + // Rule 228: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 229: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 229: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 231: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list ) + // + case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + } + + // + // Rule 232: function_direct_declarator ::= basic_direct_declarator ( ) + // + case 232: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + } + + // + // Rule 234: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator + // + case 234: { action. consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 235: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list ) + // + case 235: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + } + + // + // Rule 237: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator + // + case 237: { action. consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 238: identifier_list ::= identifier + // + case 238: { action. consumeIdentifierKnR(); break; + } + + // + // Rule 239: identifier_list ::= identifier_list , identifier + // + case 239: { action. consumeIdentifierKnR(); break; + } + + // + // Rule 240: array_modifier ::= [ ] + // + case 240: { action. consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ] + // + case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + } + + // + // Rule 242: array_modifier ::= [ assignment_expression ] + // + case 242: { action. consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ] + // + case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + } + + // + // Rule 244: array_modifier ::= [ static assignment_expression ] + // + case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + } + + // + // Rule 245: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ] + // + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + } + + // + // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ] + // + case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + } + + // + // Rule 247: array_modifier ::= [ * ] + // + case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + } + + // + // Rule 248: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ] + // + case 248: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + } + + // + // Rule 250: pointer_seq ::= pointer_hook * + // + case 250: { action. consumePointer(); break; + } + + // + // Rule 251: pointer_seq ::= pointer_seq pointer_hook * + // + case 251: { action. consumePointer(); break; + } + + // + // Rule 252: pointer_seq ::= pointer_hook * <openscope-ast> type_qualifier_list + // + case 252: { action. consumePointerTypeQualifierList(); break; + } + + // + // Rule 253: pointer_seq ::= pointer_seq pointer_hook * <openscope-ast> type_qualifier_list + // + case 253: { action. consumePointerTypeQualifierList(); break; + } + + // + // Rule 257: parameter_type_list ::= parameter_list + // + case 257: { action. consumeEmpty(); break; + } + + // + // Rule 258: parameter_type_list ::= parameter_list , ... + // + case 258: { action. consumePlaceHolder(); break; + } + + // + // Rule 259: parameter_type_list ::= ... + // + case 259: { action. consumePlaceHolder(); break; + } + + // + // Rule 262: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // + case 262: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 263: parameter_declaration ::= declaration_specifiers + // + case 263: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 266: type_id ::= specifier_qualifier_list + // + case 266: { action. consumeTypeId(false); break; + } + + // + // Rule 267: type_id ::= specifier_qualifier_list abstract_declarator + // + case 267: { action. consumeTypeId(true); break; + } + + // + // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq + // + case 269: { action. consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 270: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator + // + case 270: { action. consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 274: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 274: { action. consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 275: array_direct_abstract_declarator ::= array_modifier + // + case 275: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // Rule 276: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 277: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + case 277: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 278: function_direct_abstract_declarator ::= ( ) + // + case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + } + + // + // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // + case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + } + + // + // Rule 280: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list ) + // + case 280: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + } + + // + // Rule 281: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list ) + // + case 281: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + } + + // + // Rule 282: initializer ::= assignment_expression + // + case 282: { action. consumeInitializer(); break; + } + + // + // Rule 283: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list + // + case 283: { action. consumeInitializerList(); break; + } + + // + // Rule 284: initializer ::= { <openscope-ast> } + // + case 284: { action. consumeInitializerList(); break; + } + + // + // Rule 285: start_initializer_list ::= $Empty + // + case 285: { action. initializerListStart(); break; + } + + // + // Rule 286: end_initializer_list ::= $Empty + // + case 286: { action. initializerListEnd(); break; + } + + // + // Rule 291: designated_initializer ::= <openscope-ast> designation = initializer + // + case 291: { action. consumeInitializerDesignated(); break; + } + + // + // Rule 295: designator_base ::= [ constant_expression ] + // + case 295: { action. consumeDesignatorArray(); break; + } + + // + // Rule 296: designator_base ::= . identifier_token + // + case 296: { action. consumeDesignatorField(); break; + } + + // + // Rule 297: designator ::= [ constant_expression ] + // + case 297: { action. consumeDesignatorArray(); break; + } + + // + // Rule 298: designator ::= . identifier_token + // + case 298: { action. consumeDesignatorField(); break; + } + + // + // Rule 299: translation_unit ::= external_declaration_list + // + case 299: { action. consumeTranslationUnit(); break; + } + + // + // Rule 300: translation_unit ::= $Empty + // + case 300: { action. consumeTranslationUnit(); break; + } + + // + // Rule 305: external_declaration ::= ; + // + case 305: { action. consumeDeclarationEmpty(); break; + } + + // + // Rule 306: external_declaration ::= ERROR_TOKEN + // + case 306: { action. consumeDeclarationProblem(); break; + } + + // + // Rule 309: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // + case 309: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 310: function_definition ::= <openscope-ast> function_declarator function_body + // + case 310: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 311: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // + case 311: { action. consumeFunctionDefinitionKnR(); break; + } + + // + // Rule 312: function_body ::= { } + // + case 312: { action. consumeStatementCompoundStatement(false); break; + } + + // + // Rule 313: function_body ::= { <openscope-ast> block_item_list } + // + case 313: { action. consumeStatementCompoundStatement(true); break; + } + + // + // Rule 330: attribute_parameter ::= assignment_expression + // + case 330: { action. consumeIgnore(); break; + } + + // + // Rule 340: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; + // + case 340: { gnuAction.consumeDeclarationASM(); break; + } + + // + // Rule 351: unary_expression ::= __alignof__ unary_expression + // + case 351: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; + } + + // + // Rule 352: unary_expression ::= typeof unary_expression + // + case 352: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + } + + // + // Rule 368: field_name_designator ::= identifier_token : + // + case 368: { gnuAction.consumeDesignatorField(); break; + } + + // + // Rule 369: array_range_designator ::= [ constant_expression ... constant_expression ] + // + case 369: { gnuAction.consumeDesignatorArray(); break; + } + + // + // Rule 370: designated_initializer ::= <openscope-ast> field_name_designator initializer + // + case 370: { action. consumeInitializerDesignated(); break; + } + + // + // Rule 372: no_sizeof_type_name_start ::= ERROR_TOKEN + // + case 372: { action. consumeExpressionProblem(); break; + } + + + default: + break; + } + return; + } +} + diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParserprs.java new file mode 100644 index 00000000000..9894b404c61 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParserprs.java @@ -0,0 +1,1369 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.gcc; + +public class GCCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, GCCSizeofExpressionParsersym { + + public interface IsKeyword { + public final static byte isKeyword[] = {0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,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; + public final boolean isKeyword(int index) { return isKeyword[index] != 0; } + + public interface BaseCheck { + public final static short baseCheck[] = {0, + 0,1,1,1,1,1,1,1,1,1, + 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, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 6,8,0,0,1,1,3,3,3,0, + 1,0,1,2,4,2,1,1,1,3, + 1,1,2,3,7,8,0,1,0,1, + 3,1,3,1,1,1,1,1,1,3, + 1,1,1,1,1,3,1,2,2,1, + 5,3,1,3,5,1,3,1,3,2, + 4,3,5,4,6,6,3,5,1,2, + 3,4,5,0,1,2,1,3,1,1, + 3,2,1,1,1,1,2,1,2,3, + 1,1,1,3,1,2,2,2,3,4, + 5,1,7,3,0,0,1,1,3,3, + 4,1,1,2,3,2,3,2,1,0, + 1,2,1,1,1,1,1,2,4,3, + 6,2,4,1,1,1,1,2,6,3, + 1,3,1,4,0,1,1,1,3,1, + 0,4,3,1,2,1,3,4,4,6, + 1,0,1,3,1,3,0,1,4,5, + 2,2,1,1,2,2,3,2,2,3, + 1,1,1,1,1,1,1,2,5,3, + 1,1,-38,0,0,0,0,0,0,0, + 0,0,0,-244,0,0,0,0,0,0, + 0,0,0,0,0,0,-2,-110,0,0, + -4,-16,-18,-158,0,0,0,0,0,-139, + -133,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-187,0,0,0,0,0, + 0,0,-48,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-146,-142, + 0,0,-19,0,-20,0,-184,0,-44,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-21,0,0,0,0,0,-153, + -188,0,0,0,0,-212,0,-211,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-220,0,0,0,0,0,-45, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-195,-31,0,-35,-36, + 0,-32,0,0,0,-57,0,0,0,0, + 0,0,0,0,0,0,-22,0,0,0, + 0,0,0,0,0,0,-178,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-76,0,-69,-116,0, + -74,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-201, + -135,0,0,0,0,0,0,0,0,0, + 0,0,-23,0,-24,-25,-26,0,0,-180, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-122,-176, + 0,-70,0,-197,0,0,0,0,0,0, + 0,0,0,0,-27,0,0,0,0,0, + 0,0,0,-28,-120,0,0,-79,0,0, + -71,-115,0,-118,0,0,0,-207,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-77,0,0,0, + 0,-3,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -150,-152,-80,-81,0,-155,-91,0,0,0, + 0,0,0,0,0,-92,0,0,-53,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-114,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-124,-126,-164,-121,0,-128,-129, + 0,-138,0,0,0,0,0,0,0,0, + 0,0,-93,0,0,0,0,0,0,0, + 0,-130,0,0,0,-140,0,0,0,0, + -226,0,0,0,0,0,0,0,0,0, + 0,-193,0,0,0,0,0,0,0,0, + 0,-148,0,0,-29,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-168,-169,0,-94,0,-58,0, + 0,0,0,0,0,0,0,0,0,-157, + 0,0,0,0,0,0,0,0,0,-171, + 0,0,-59,0,0,0,0,0,0,0, + 0,0,0,-95,0,0,0,0,0,0, + 0,-191,-196,0,0,0,-60,0,0,0, + 0,0,0,0,0,0,0,-175,0,0, + 0,0,0,0,0,0,0,-198,0,0, + -61,0,0,0,0,0,0,0,0,0, + 0,-186,0,0,0,0,0,0,0,-214, + -224,0,0,0,-62,0,0,0,0,0, + 0,0,0,0,0,-199,0,0,0,0, + 0,0,0,0,0,-225,0,0,-63,0, + 0,0,0,0,0,0,0,0,0,-204, + 0,0,0,0,0,0,0,-228,-96,0, + -97,0,-64,0,0,0,0,0,0,0, + 0,0,0,-217,0,0,0,0,0,0, + 0,-98,-99,-100,-101,0,-65,0,0,0, + 0,0,0,0,0,0,0,-223,0,0, + 0,0,0,0,0,-102,-103,0,-104,0, + -66,0,0,0,0,0,0,0,0,0, + 0,-105,0,0,0,0,0,0,0,-106, + -107,0,0,0,-67,0,0,0,0,0, + 0,0,0,0,0,-108,0,0,0,0, + 0,0,0,-109,-112,0,-123,0,-68,0, + 0,0,0,0,0,0,0,0,0,-134, + 0,0,0,0,0,0,0,-145,-143,-147, + -151,0,-159,0,0,0,0,0,0,0, + 0,0,0,-156,0,0,0,0,0,0, + 0,-170,-172,-179,-183,0,-160,0,0,0, + 0,0,0,0,0,0,0,-205,0,0, + 0,0,0,0,0,-206,-230,-177,-238,0, + -182,0,0,0,0,0,0,0,0,0, + 0,-194,0,0,0,0,0,0,0,-51, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-165,0,0,0,0,0,0, + 0,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,-219,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-39,0,0,0,0,0,0,0,0, + -8,0,0,0,0,0,0,-221,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-229,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-141, + 0,-185,0,0,-5,0,0,0,0,0, + 0,-240,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-167,-90,0,-137,0,0,0,0,0, + 0,0,0,0,-34,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -161,0,0,0,0,0,0,0,-132,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-216,-200,-218,0,0,0,0, + 0,0,0,0,0,-9,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-46, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-163,-181,0,0, + 0,-6,0,0,0,0,0,0,0,-54, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-189,0,0,0,-190,-239, + -208,-222,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-1,0,0,0,0,0,0,0,0, + 0,0,0,-209,0,-83,0,-56,0,0, + 0,0,0,0,0,0,0,0,-233,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-227,0,0,0,0,0,0, + 0,-236,-241,0,-235,-237,0,0,-7,0, + 0,0,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-119,0,0, + 0,0,-33,0,0,0,0,0,0,0, + 0,-136,0,0,-192,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-82, + 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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-111,0,0,0,0,0,-50,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-52,0,0,0,0,0, + 0,0,0,0,0,0,-84,0,0,0, + 0,0,0,0,-49,0,0,0,0,0, + 0,0,0,-87,-55,0,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,0,-231, + 0,0,0,-37,0,0,0,0,0,0, + 0,0,0,0,0,-154,0,0,0,0, + 0,0,-47,0,0,0,0,0,0,0, + 0,0,-75,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-14,0,0, + 0,0,0,0,0,-88,0,0,-40,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-166,0,0,0,-117,0,0, + 0,0,0,0,-162,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-232, + 0,0,0,0,0,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,-15,0,0,0, + 0,0,0,0,0,0,0,-11,0,0, + 0,0,0,0,0,-12,0,0,0,0, + 0,0,-13,0,0,0,0,0,0,-17, + -30,-41,0,0,0,0,0,0,0,0, + 0,0,-42,0,0,0,0,0,0,-43, + 0,0,0,0,0,0,0,0,0,0, + 0,-72,0,0,0,0,0,0,-85,-174, + 0,0,0,0,0,0,-86,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-149,0,0,-215,0,0,0,0,0, + -234,0,0,-213,0,0,0,0,0,-242, + 0,0,0,0,0,-144,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-113,0,0,0,0,0,0,-203, + 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,-127,0,0, + 0,0,-131,-202,0,0,0,-173,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-243,0,0,0,0, + -245,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,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; + public final int baseCheck(int index) { return baseCheck[index]; } + public final static short rhs[] = baseCheck; + public final int rhs(int index) { return rhs[index]; }; + + public interface BaseAction { + public final static char baseAction[] = { + 96,11,28,28,24,24,44,44,75,75, + 1,1,1,1,2,2,2,3,3,4, + 4,4,4,4,4,4,4,58,58,76, + 76,5,5,5,5,5,5,5,5,5, + 5,6,6,7,7,7,7,8,8,8, + 9,9,9,10,10,10,10,10,12,12, + 12,13,13,14,14,15,15,16,16,17, + 17,18,18,23,23,23,23,23,23,23, + 23,23,23,23,23,115,52,45,97,97, + 79,79,46,116,116,116,116,116,116,116, + 117,117,117,118,118,123,123,124,124,119, + 119,120,120,120,126,126,121,121,121,121, + 122,122,122,122,122,125,125,30,30,30, + 30,30,32,32,32,85,85,80,80,80, + 80,81,81,81,82,82,82,83,83,83, + 84,84,84,127,127,128,128,129,33,35, + 35,35,35,35,59,60,60,60,60,60, + 60,60,60,60,60,60,60,68,68,29, + 29,65,65,98,99,69,69,66,66,66, + 70,86,86,87,87,71,71,71,54,100, + 100,88,72,72,72,67,67,101,89,89, + 90,90,73,73,26,27,27,27,34,47, + 47,36,36,36,36,39,39,41,37,37, + 38,42,42,130,130,40,131,131,102,102, + 31,31,31,31,31,31,31,31,31,91, + 55,55,55,55,43,62,62,61,61,61, + 63,63,56,56,103,103,77,77,64,64, + 64,48,48,48,49,50,50,50,51,51, + 51,51,53,53,53,57,104,78,78,78, + 78,74,105,106,106,107,107,108,108,132, + 132,133,133,134,134,134,134,136,136,135, + 135,135,137,137,19,19,19,25,25,20, + 20,109,109,92,92,92,93,93,110,110, + 94,94,21,21,111,111,95,95,95,22, + 138,139,139,140,140,141,141,141,142,142, + 142,5,5,125,32,129,129,129,88,88, + 88,101,98,99,43,70,107,107,112,113, + 74,96,96,1,14,19,15,402,684,43, + 463,403,484,465,36,633,567,636,635,675, + 637,73,354,314,315,316,90,151,26,133, + 214,226,287,144,69,135,132,134,158,411, + 981,672,14,19,15,402,684,43,463,403, + 484,465,1846,633,567,636,635,675,637,73, + 255,214,137,164,282,69,256,214,141,144, + 147,150,1566,792,14,19,15,402,41,43, + 463,1043,401,1633,1690,1777,1794,1817,1383,445, + 389,255,214,89,287,1001,491,86,1154,792, + 14,19,15,402,41,43,463,403,914,354, + 314,315,316,332,38,288,133,214,283,490, + 760,1106,135,132,134,158,1118,496,762,14, + 19,15,402,684,43,463,403,484,465,1846, + 633,567,636,635,675,637,73,256,214,137, + 164,282,256,214,1122,141,144,147,150,1566, + 792,14,19,15,402,41,43,463,403,1019, + 1633,1690,1777,1794,1817,1383,765,962,1188,799, + 799,287,962,1178,335,1154,792,14,19,15, + 402,41,43,463,403,484,465,18,633,567, + 636,1106,288,2052,16,294,1058,554,14,19, + 15,402,684,43,463,403,484,465,1846,633, + 567,636,635,675,637,73,67,211,799,69, + 282,495,14,19,15,402,684,43,463,403, + 484,465,599,633,567,636,635,675,637,73, + 646,385,1114,23,692,255,214,276,22,240, + 289,1444,404,610,1154,52,59,427,322,1162, + 702,14,19,15,402,684,43,463,403,484, + 465,290,633,567,636,635,675,637,73,445, + 1137,410,799,282,876,14,19,15,402,684, + 43,463,403,484,465,248,633,567,636,635, + 675,637,73,333,948,1065,21,330,37,1178, + 802,187,187,370,799,196,2106,1154,732,14, + 19,15,402,684,43,463,403,484,465,279, + 633,567,636,635,675,637,73,451,274,20, + 242,282,792,14,19,15,402,684,43,463, + 403,484,465,210,633,567,636,635,675,637, + 73,26,26,202,344,90,26,904,277,1010, + 1186,291,2060,660,334,1154,939,1352,328,792, + 14,19,15,402,41,43,463,403,484,465, + 459,633,567,1069,970,848,14,19,15,402, + 684,43,463,403,484,465,1672,633,567,636, + 635,675,637,73,164,1122,232,926,1385,1122, + 233,401,524,14,19,15,402,684,43,463, + 403,484,465,110,633,567,636,635,675,637, + 73,320,1122,2082,188,1411,799,229,187,1141, + 241,876,14,19,15,402,684,43,463,403, + 484,465,1065,633,567,636,635,675,637,73, + 280,189,799,2094,330,792,14,19,15,402, + 684,43,463,403,484,465,232,633,567,636, + 635,675,637,73,799,281,339,659,91,792, + 14,19,15,402,684,43,463,403,484,465, + 1099,633,567,636,635,675,637,73,281,923, + 528,435,84,792,14,19,15,402,684,43, + 463,403,484,465,520,633,567,636,635,675, + 637,73,799,799,337,329,83,792,14,19, + 15,402,684,43,463,403,484,465,26,633, + 567,636,635,675,637,73,226,319,799,2130, + 82,792,14,19,15,402,684,43,463,403, + 484,465,26,633,567,636,635,675,637,73, + 336,799,338,498,81,792,14,19,15,402, + 684,43,463,403,484,465,26,633,567,636, + 635,675,637,73,324,231,473,2085,80,792, + 14,19,15,402,684,43,463,403,484,465, + 790,633,567,636,635,675,637,73,796,579, + 235,618,79,792,14,19,15,402,684,43, + 463,403,484,465,790,633,567,636,635,675, + 637,73,852,589,697,670,78,792,14,19, + 15,402,684,43,463,403,484,465,760,633, + 567,636,635,675,637,73,1009,1015,1446,173, + 77,792,14,19,15,402,684,43,463,403, + 484,465,351,633,567,636,635,675,637,73, + 8,397,1605,195,76,792,14,19,15,402, + 684,43,463,403,484,465,185,633,567,636, + 635,675,637,73,330,297,1606,509,75,792, + 14,19,15,402,684,43,463,403,484,465, + 541,633,567,636,635,675,637,73,765,391, + 624,805,74,792,14,19,15,402,684,43, + 463,403,484,465,833,633,567,636,635,675, + 637,73,677,881,686,81,1515,792,14,19, + 15,402,684,43,463,403,484,465,851,633, + 567,636,635,675,637,73,905,291,739,537, + 1519,792,14,19,15,402,41,43,463,403, + 484,465,242,633,567,636,635,675,637,92, + 792,14,19,15,402,41,43,463,403,484, + 1066,317,314,315,316,2328,2328,2123,2328,2328, + 321,1162,26,275,565,2328,2328,1521,220,796, + 222,1234,224,225,230,1130,2328,875,2328,2328, + 270,717,596,273,792,14,19,15,402,41, + 43,463,403,484,465,228,633,567,636,635, + 675,637,92,792,14,19,15,402,41,43, + 463,403,484,465,2328,633,567,636,635,675, + 637,92,792,14,19,15,402,41,43,813, + 1522,792,14,19,15,402,41,39,792,14, + 19,15,402,41,43,463,403,484,465,213, + 633,567,636,635,675,637,92,792,14,19, + 15,402,41,43,463,403,484,465,2328,633, + 567,636,635,675,637,92,2328,2328,2328,2328, + 958,2328,739,2328,1602,820,14,19,15,402, + 352,1924,792,14,19,15,402,41,43,463, + 403,484,465,203,633,567,636,635,675,637, + 92,275,596,389,2328,187,219,796,222,1234, + 224,225,230,460,2328,26,284,264,268,717, + 596,273,354,314,315,316,722,2328,204,133, + 214,187,1350,244,265,136,132,134,158,792, + 14,19,15,402,41,43,463,403,484,465, + 2328,633,567,636,635,675,637,72,261,243, + 86,2328,138,164,179,739,739,691,142,145, + 148,151,1566,262,2328,1950,792,14,19,15, + 402,41,38,317,314,315,316,2328,2328,1579, + 792,14,19,15,402,41,43,463,403,1021, + 219,796,222,1234,224,225,230,1041,1122,181, + 205,1187,820,14,19,15,402,351,1675,2328, + 792,14,19,15,402,41,43,463,403,484, + 465,278,633,1082,2328,187,2091,296,275,187, + 405,418,187,219,796,222,1234,224,225,230, + 2328,1950,199,2328,922,268,717,596,273,317, + 314,315,316,245,1018,1579,2328,246,2328,295, + 297,694,613,2328,2328,2328,219,796,222,1234, + 224,225,230,722,1122,2328,1077,1187,792,14, + 19,15,402,41,43,463,403,484,465,179, + 633,567,636,635,1091,317,314,315,316,2328, + 1950,2132,2091,298,739,2328,2328,86,318,314, + 315,316,187,411,371,739,739,2328,200,820, + 14,19,15,402,40,219,796,222,1234,224, + 225,230,317,314,315,316,1187,2328,2123,2328, + 369,2328,2328,444,2328,2328,2328,2328,182,220, + 796,222,1234,224,225,230,1130,2328,397,206, + 384,2100,354,314,315,316,2328,2328,1032,133, + 214,2328,2328,620,794,140,132,134,158,460, + 2328,2328,69,2328,722,1046,2328,317,314,315, + 316,2328,2328,2123,2328,2328,460,2328,1350,2328, + 74,2328,139,164,317,314,315,316,255,214, + 2123,1115,2328,2328,2328,1350,2328,57,88,354, + 314,315,316,1733,260,2328,133,214,1115,826, + 2328,1139,143,132,134,158,317,314,315,316, + 1202,260,2123,352,410,2328,826,2328,1139,792, + 14,19,15,402,41,43,463,403,484,465, + 1115,1045,317,314,315,316,2328,2328,2123,2328, + 662,2328,1733,1143,275,792,14,19,15,402, + 41,43,463,403,484,1067,1130,158,2328,2328, + 2328,270,717,596,273,792,14,19,15,402, + 41,43,463,1044,974,26,354,314,315,316, + 2328,2328,2328,133,214,2328,722,2328,2328,146, + 132,134,158,354,314,315,316,986,2328,2328, + 133,214,2328,2328,2328,2328,149,132,134,158, + 1148,2328,2328,2328,454,2328,354,314,315,316, + 86,1950,2328,133,214,1707,1038,1090,2328,152, + 132,134,158,792,14,19,15,402,41,43, + 463,403,1042,996,2328,275,219,796,222,1234, + 224,225,230,2328,1658,1165,2328,922,2328,2328, + 2328,2328,268,717,596,273,2328,278,820,14, + 19,15,402,33,275,2328,459,2328,267,792, + 14,19,15,402,41,43,877,2328,2328,2328, + 2328,268,717,596,273,317,314,315,316,2328, + 2328,2163,2328,2328,57,2328,2328,694,585,14, + 19,15,402,41,35,585,14,19,15,402, + 41,35,2328,317,314,315,316,2328,2328,2123, + 57,1164,467,293,2328,2328,247,2328,640,367, + 2328,2328,2328,248,2328,2328,822,1115,2328,317, + 314,315,316,2328,2328,2123,2328,2328,2328,1202, + 792,14,19,15,402,41,37,820,14,19, + 15,402,32,1115,2328,2328,2328,800,792,14, + 19,15,402,41,36,1603,792,14,19,15, + 402,41,35,792,14,19,15,402,41,34, + 26,26,792,14,19,15,402,41,46,2328, + 2328,373,373,792,14,19,15,402,41,45, + 792,14,19,15,402,41,44,2328,2328,2328, + 198,198,642,14,19,15,402,41,42,95, + 224,2328,2328,2328,2328,86,86,295,2328,2328, + 2328,460,550,550,1834,1834,2328,2328,317,314, + 315,316,1104,2328,2158,334,317,314,315,316, + 198,1121,2158,2328,159,2328,460,549,598,2328, + 1130,317,314,315,316,460,350,2168,2328,2328, + 317,314,315,316,620,198,2186,460,2328,317, + 314,315,316,1084,1350,2191,2328,2328,2328,795, + 1137,193,1091,2328,2328,2328,1350,799,2328,620, + 2328,2328,318,314,315,316,1445,2164,2328,2328, + 260,318,314,315,316,971,193,1139,1098,1178, + 2328,2328,260,919,279,2328,2328,874,1111,1139, + 2328,1594,2164,2328,2328,460,2328,318,314,315, + 316,1163,318,314,315,316,1136,318,314,315, + 316,1142,2328,2328,198,2328,996,2328,2328,2328, + 2328,2328,2328,210,2328,318,314,315,316,2328, + 318,314,315,316,2328,2328,2328,2328,620,1034, + 1186,2328,2328,2328,2328,2328,2328,2328,2328,2328, + 2328,2328,2328,2328,2328,194,2328,0,688,127, + 0,743,127,0,744,127,0,688,128,0, + 743,128,0,744,128,0,688,129,0,743, + 129,0,744,129,0,688,186,0,743,186, + 0,744,186,0,186,190,0,688,185,0, + 743,185,0,744,185,0,185,190,0,688, + 130,0,743,130,0,744,130,0,688,131, + 0,743,131,0,744,131,0,17,178,0, + 18,177,0,1,688,0,1,743,0,1, + 744,0,1,2555,0,1,2566,0 + }; + }; + public final static char baseAction[] = BaseAction.baseAction; + public final int baseAction(int index) { return baseAction[index]; } + public final static char lhs[] = baseAction; + public final int lhs(int index) { return lhs[index]; }; + + public interface TermCheck { + public final static byte termCheck[] = {0, + 0,1,2,3,4,5,6,0,8,9, + 10,11,12,13,14,15,16,0,18,19, + 20,21,22,23,24,0,26,27,28,12, + 30,31,32,33,34,0,0,0,2,39, + 40,41,42,43,44,45,46,47,48,49, + 50,0,52,53,54,0,0,2,0,3, + 4,5,7,8,9,10,0,12,0,62, + 15,16,17,0,37,38,3,4,5,11, + 0,13,14,17,11,0,13,14,0,0, + 35,36,37,38,0,1,8,3,4,5, + 6,28,17,30,31,32,33,34,0,0, + 55,56,57,58,59,60,61,8,63,68, + 65,66,67,68,69,67,71,72,73,74, + 75,76,77,78,79,80,81,82,83,0, + 55,2,62,0,56,57,7,8,9,10, + 0,12,9,10,15,16,17,0,0,1, + 3,4,5,0,1,56,57,0,11,6, + 13,14,0,0,35,36,37,38,0,1, + 2,3,4,5,0,28,0,30,31,32, + 33,34,29,7,55,56,57,58,59,60, + 61,0,63,2,65,66,67,68,69,51, + 71,72,73,74,75,76,77,78,79,80, + 81,82,83,0,1,0,3,4,5,6, + 7,0,0,1,11,85,13,14,6,67, + 62,0,1,2,3,4,5,0,17,8, + 64,28,68,30,31,32,33,34,17,36, + 35,29,39,40,41,42,43,44,45,46, + 47,48,49,50,0,52,53,54,0,1, + 0,3,4,5,6,7,0,7,2,11, + 0,13,14,70,0,1,0,3,4,5, + 6,15,16,17,8,25,28,0,30,31, + 32,33,34,0,36,35,69,39,40,41, + 42,43,44,45,46,47,48,49,50,0, + 52,53,54,0,1,0,3,4,5,6, + 7,55,7,0,11,2,13,14,70,0, + 0,0,62,2,3,4,5,71,29,8, + 25,28,12,30,31,32,33,34,17,36, + 35,0,39,40,41,42,43,44,45,46, + 47,48,49,50,0,52,53,54,0,1, + 0,3,4,5,6,11,0,13,14,11, + 51,13,14,70,0,1,2,3,4,5, + 0,1,2,3,4,5,28,0,30,31, + 32,33,34,0,7,35,0,39,40,41, + 42,43,44,45,46,47,48,49,50,0, + 52,53,54,0,0,1,3,4,5,0, + 0,7,2,0,11,2,13,14,0,1, + 7,3,4,5,6,69,62,17,51,25, + 17,28,0,30,31,32,33,34,25,7, + 0,64,39,40,41,42,43,44,45,46, + 47,48,49,50,0,1,2,25,72,73, + 6,7,8,9,10,0,12,35,0,15, + 16,0,18,19,20,21,22,23,24,0, + 26,27,28,0,1,2,18,0,1,6, + 7,8,9,10,7,12,0,1,15,16, + 0,18,19,20,21,22,23,24,8,26, + 27,28,25,0,1,2,37,38,64,6, + 7,8,9,10,0,12,2,0,15,16, + 0,18,19,20,21,22,23,24,0,26, + 27,17,29,0,0,1,2,64,0,36, + 6,7,8,9,10,0,12,9,10,15, + 16,0,18,19,20,21,22,23,24,0, + 26,27,0,1,2,37,38,0,6,0, + 8,9,10,0,12,2,7,15,16,0, + 18,19,20,21,22,23,24,0,26,27, + 0,0,1,2,25,0,51,6,64,8, + 9,10,7,12,37,38,15,16,0,18, + 19,20,21,22,23,24,8,26,27,0, + 29,0,1,2,65,66,0,6,2,8, + 9,10,70,12,0,0,15,16,0,18, + 19,20,21,22,23,24,0,26,27,0, + 29,0,1,2,0,9,10,6,0,8, + 9,10,0,12,56,57,15,16,0,18, + 19,20,21,22,23,24,0,26,27,84, + 29,0,1,2,65,66,0,6,0,8, + 9,10,0,12,0,7,15,16,63,18, + 19,20,21,22,23,24,0,26,27,0, + 29,0,1,2,0,1,0,6,0,8, + 9,10,0,12,36,11,15,16,0,18, + 19,20,21,22,23,24,0,26,27,0, + 29,0,1,2,35,0,0,6,0,8, + 9,10,7,12,0,7,15,16,0,18, + 19,20,21,22,23,24,0,26,27,0, + 1,2,0,25,35,6,0,8,9,10, + 35,12,0,29,15,16,0,18,19,20, + 21,22,23,24,0,26,27,0,1,2, + 0,0,0,6,0,8,9,10,0,12, + 0,29,15,16,0,18,19,20,21,22, + 23,24,0,26,27,0,1,2,0,84, + 0,6,0,8,9,10,0,12,37,38, + 15,16,0,18,19,20,21,22,23,24, + 0,26,27,0,0,2,3,4,5,29, + 7,8,0,63,11,29,13,14,0,1, + 17,3,4,5,6,0,0,2,25,29, + 0,28,7,30,31,32,33,34,0,35, + 2,3,4,5,0,7,8,0,0,11, + 25,13,14,0,0,17,0,0,1,2, + 0,0,1,25,7,0,28,6,30,31, + 32,33,34,0,17,0,3,4,5,0, + 0,0,25,0,11,0,13,14,3,4, + 5,11,35,13,14,0,11,2,13,14, + 0,28,7,30,31,32,33,34,0,0, + 63,0,17,28,0,30,31,32,33,34, + 25,74,75,76,77,78,79,80,81,82, + 83,0,0,0,3,4,5,0,1,8, + 0,1,2,6,0,0,0,7,3,4, + 5,0,0,8,17,0,0,17,58,59, + 60,61,7,0,0,25,58,59,60,61, + 0,7,58,59,60,61,0,0,0,3, + 4,5,51,0,0,0,3,4,5,25, + 0,36,55,3,4,5,51,0,0,0, + 3,4,5,0,0,0,3,4,5,11, + 0,13,14,3,4,5,11,0,13,14, + 0,0,1,3,4,5,0,6,11,0, + 13,14,3,4,5,0,0,1,3,4, + 5,0,6,0,3,4,5,0,1,2, + 0,1,0,0,0,0,6,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,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; + public final int termCheck(int index) { return termCheck[index]; } + + public interface TermAction { + public final static char termAction[] = {0, + 2328,747,2020,688,743,744,756,2328,2006,1998, + 1980,2543,2013,2544,2545,1987,1888,63,2341,1609, + 2338,2339,2340,1456,1301,1,1355,1492,2489,1739, + 2490,2488,2546,2491,2487,286,2328,53,797,2494, + 2499,2498,2496,2497,2495,2500,2501,2493,2502,2503, + 2504,67,1896,2067,2059,1,254,2346,65,688, + 743,744,2346,2346,2346,2346,272,2346,2328,1419, + 2346,2346,2346,128,443,1785,2247,2250,2253,2543, + 2328,2544,2545,601,2543,292,2544,2545,47,2328, + 2346,2346,2346,2346,186,2274,2040,2265,2268,2271, + 2274,2489,1254,2490,2488,2546,2491,2487,2328,49, + 2346,2346,2346,2346,2346,2346,2346,2040,2346,759, + 2346,2346,2346,2346,2346,1500,2346,2346,2346,2346, + 2346,2346,2346,2346,2346,2346,2346,2346,2346,1, + 1564,2345,2696,50,2033,2022,2345,2345,2345,2345, + 2328,2345,1899,1292,2345,2345,2345,129,1,2325, + 2256,2259,2262,2328,2507,2033,2022,2328,2543,2508, + 2544,2545,66,2328,2345,2345,2345,2345,1,2555, + 1830,2313,2316,2319,68,2489,2328,2490,2488,2546, + 2491,2487,741,2331,2345,2345,2345,2345,2345,2345, + 2345,2328,2345,659,2345,2345,2345,2345,2345,2587, + 2345,2345,2345,2345,2345,2345,2345,2345,2345,2345, + 2345,2345,2345,2328,1,87,1,1,1,1, + 192,221,2328,2507,1,2237,1,1,2508,1500, + 1327,269,2555,1487,688,743,744,69,601,254, + 2330,1,759,1,1,1,1,1,601,192, + 855,742,1,1,1,1,1,1,1,1, + 1,1,1,1,2328,1,1,1,2328,1, + 2328,1,1,1,1,191,31,2333,1663,1, + 202,1,1,2525,185,2286,2328,2277,2280,2283, + 2286,2352,2353,1395,621,2332,1,2328,1,1, + 1,1,1,2328,191,546,556,1,1,1, + 1,1,1,1,1,1,1,1,1,2328, + 1,1,1,2328,1,2328,1,1,1,1, + 192,552,2333,2328,1,1117,1,1,2525,1, + 64,269,1362,1863,688,743,744,547,398,254, + 2332,1,1739,1,1,1,1,1,601,192, + 831,2328,1,1,1,1,1,1,1,1, + 1,1,1,1,250,1,1,1,2328,2506, + 257,688,743,744,2505,1,70,1,1,2543, + 2587,2544,2545,2525,1,2555,1830,2313,2316,2319, + 254,2555,1830,688,743,744,2489,2328,2490,2488, + 2546,2491,2487,2328,2331,1382,71,2494,2499,2498, + 2496,2497,2495,2500,2501,2493,2502,2503,2504,2328, + 1896,2067,2059,127,2328,1140,2238,2241,2244,2328, + 271,2333,685,1,2543,1863,2544,2545,207,3587, + 266,688,743,744,3587,556,1327,601,1308,2332, + 601,2489,2328,2490,2488,2546,2491,2487,266,2333, + 2328,2330,2494,2499,2498,2496,2497,2495,2500,2501, + 2493,2502,2503,2504,1,2345,2020,2332,1568,1795, + 2346,2331,1928,1998,1980,2328,2013,1189,2328,1987, + 1888,2328,2341,1609,2338,2339,2340,1456,1301,57, + 1355,1492,775,2328,2345,2020,852,2328,948,2346, + 2331,1935,1998,1980,2333,2013,2328,2567,1987,1888, + 2328,2341,1609,2338,2339,2340,1456,1301,890,1355, + 1492,1167,2332,1,2840,2020,443,1785,2330,2756, + 27,2006,1998,1980,223,2013,842,2328,1987,1888, + 2328,2341,1609,2338,2339,2340,1456,1301,56,1355, + 1492,601,3756,2328,2328,2345,2020,2330,52,27, + 2346,2331,2006,1998,1980,1,2013,1899,1292,1987, + 1888,2328,2341,1609,2338,2339,2340,1456,1301,61, + 1355,1492,2328,1,1,443,1785,55,1,1, + 1,1,1,336,1,900,89,1,1,2328, + 1,1,1,1,1,1,1,2328,1,1, + 2328,2328,2345,2020,89,1,2586,2346,2330,2006, + 1998,1980,2337,2013,443,1785,1987,1888,48,2341, + 1609,2338,2339,2340,1456,1301,2040,1355,1492,62, + 398,1,2840,2020,1765,1210,323,2756,664,2006, + 1998,1980,2700,2013,2328,2328,1987,1888,2328,2341, + 1609,2338,2339,2340,1456,1301,51,1355,1492,2328, + 3756,366,2345,2020,2328,1899,1292,2346,2328,2006, + 1998,1980,2328,2013,2033,2022,1987,1888,2328,2341, + 1609,2338,2339,2340,1456,1301,2328,1355,1492,2336, + 3756,2328,2345,2020,1765,1210,2328,2346,2328,2006, + 1998,1980,2328,2013,2328,2335,1987,1888,698,2341, + 1609,2338,2339,2340,1456,1301,2328,1355,1492,28, + 3756,1,2840,2020,325,2654,2328,2756,2328,2006, + 1998,1980,2328,2013,2334,2655,1987,1888,2328,2341, + 1609,2338,2339,2340,1456,1301,2328,1355,1492,28, + 3756,2328,2345,2020,577,2328,2328,2346,2328,2006, + 1998,1980,2337,2013,2328,2333,1987,1888,2328,2341, + 1609,2338,2339,2340,1456,1301,2328,1355,1492,2328, + 2345,2021,2328,2332,2355,2346,2328,2006,1998,1980, + 1520,2013,2328,938,1987,1888,2328,2341,1609,2338, + 2339,2340,1456,1301,2328,1355,1492,1,2345,2020, + 212,54,2328,2346,2328,2006,1998,1980,2328,2013, + 2328,962,1987,1888,2328,2341,1609,2338,2339,2340, + 1456,1301,2328,1355,1492,331,2345,2020,2328,2336, + 2328,2346,2328,2006,1998,1980,190,2013,443,1785, + 1987,1888,2328,2341,1609,2338,2339,2340,1456,1301, + 365,1355,1492,17,208,2307,178,178,178,986, + 2307,2307,2328,1273,178,207,178,178,361,3601, + 2307,688,743,744,3601,2328,2328,1138,2307,361, + 2328,178,2333,178,178,178,178,178,18,3851, + 2310,177,177,177,2328,2310,2310,41,2328,177, + 2332,177,177,2328,2328,2310,2328,1,2555,1487, + 2328,2328,2357,2310,263,2328,177,2358,177,177, + 177,177,177,130,601,2328,2289,2292,2295,2328, + 249,2328,263,2328,2543,131,2544,2545,2298,2301, + 2304,2543,263,2544,2545,1,2543,1863,2544,2545, + 58,2489,2333,2490,2488,2546,2491,2487,60,2328, + 1119,2328,601,2489,59,2490,2488,2546,2491,2487, + 2332,1095,1071,1047,1023,999,951,975,927,903, + 879,1,2328,2328,2313,2316,2319,2328,2507,254, + 1,2322,1487,2508,2328,1,2328,2333,2313,2316, + 2319,2328,2328,254,1191,285,2328,601,1853,1470, + 530,469,746,2328,1,2332,1853,1470,530,469, + 2328,2333,1853,1470,530,469,183,2328,2328,688, + 743,744,2587,364,2328,2328,688,743,744,2332, + 362,746,1488,688,743,744,2587,365,251,2328, + 688,743,744,184,2328,252,688,743,744,1, + 363,1,1,688,743,744,2543,253,2544,2545, + 201,2328,2507,688,743,744,2328,2508,2543,358, + 2544,2545,688,743,744,359,209,2507,688,743, + 744,360,2508,2328,688,743,744,1,2555,1830, + 208,524,2328,2328,2328,2328,524 + }; + }; + public final static char termAction[] = TermAction.termAction; + public final int termAction(int index) { return termAction[index]; } + + public interface Asb { + public final static char asb[] = {0, + 337,1,118,45,118,118,118,118,118,118, + 118,118,118,118,118,3,466,55,52,59, + 57,65,63,67,66,69,68,14,118,466, + 509,509,171,118,49,49,280,466,118,118, + 118,118,118,118,118,118,118,118,118,118, + 118,118,118,118,118,118,118,118,118,118, + 118,118,118,118,118,118,118,118,49,49, + 334,92,284,112,430,328,192,364,396,396, + 396,376,357,376,357,357,376,357,376,482, + 237,237,52,52,57,57,57,57,55,55, + 63,59,59,66,65,145,68,67,110,90, + 280,287,284,289,334,462,116,49,398,433, + 194,188,135,108,357,509,506,509,108,509, + 357,118,90,287,384,462,334,115,112,49, + 387,482,48,435,311,188,187,49,359,198, + 110,231,233,165,228,110,384,462,118,118, + 334,116,430,323,322,284,435,49,48,193, + 188,110,359,198,231,231,228,88,320,147, + 509,118,145,84,228,90,462,384,334,334, + 49,398,433,387,311,49,170,49,198,228, + 137,198,231,233,317,233,92,333,509,118, + 90,384,435,48,198,139,233,228,118,509, + 118,334,233,49,48,170,228,80,118,76, + 391,284,139,77,228,334,228,510,139,118, + 391,77,77,233,77 + }; + }; + public final static char asb[] = Asb.asb; + public final int asb(int index) { return asb[index]; } + + public interface Asr { + public final static byte asr[] = {0, + 85,0,51,84,3,4,5,17,2,55, + 71,15,16,12,8,9,10,56,57,37, + 38,58,59,60,61,65,66,67,68,69, + 72,73,36,63,74,75,76,77,78,80, + 79,81,82,83,62,64,85,35,25,7, + 0,8,56,57,9,10,38,37,58,59, + 60,61,65,66,12,67,68,69,51,64, + 25,36,85,72,73,62,5,4,3,84, + 7,35,0,63,17,55,0,7,36,17, + 55,15,16,12,8,9,10,23,24,19, + 27,26,2,20,21,22,18,1,6,29, + 0,11,13,14,28,64,7,2,20,21, + 22,1,6,15,16,12,8,9,10,23, + 24,19,27,26,18,0,84,7,8,1, + 2,5,4,3,62,0,63,29,15,16, + 12,8,9,10,23,24,19,27,26,2, + 20,21,22,18,1,6,17,55,0,35, + 19,20,21,22,18,6,15,16,12,8, + 9,10,23,24,26,27,2,25,7,1, + 0,17,35,25,7,2,0,30,39,11, + 40,52,31,41,32,42,43,33,13,44, + 45,28,53,34,54,46,47,14,48,49, + 50,1,6,3,4,5,70,7,36,0, + 1,6,7,36,35,0,13,28,34,14, + 33,32,31,11,30,55,71,15,16,12, + 9,10,56,57,37,38,58,59,60,61, + 65,66,67,68,69,72,73,63,74,75, + 76,77,78,79,80,81,82,83,35,7, + 25,2,17,5,4,3,8,0,11,13, + 14,2,20,21,22,18,1,6,15,16, + 12,8,9,10,23,24,19,27,26,0, + 7,35,25,1,11,0,7,35,36,63, + 0,2,62,84,3,4,5,7,35,25, + 17,0,51,64,7,0,19,20,21,22, + 18,1,6,2,15,16,12,8,9,10, + 23,24,26,27,70,0,1,6,29,5, + 4,3,0,47,39,44,42,43,41,40, + 45,46,48,49,50,62,84,34,31,28, + 30,33,32,11,13,14,7,35,25,17, + 8,3,4,5,1,2,0,8,30,39, + 11,40,52,31,41,32,42,43,33,13, + 44,45,28,53,34,54,46,47,14,48, + 49,50,1,6,51,5,4,3,0,8, + 2,17,25,7,30,39,40,52,31,41, + 32,42,43,33,44,45,28,53,34,54, + 46,47,48,49,50,1,6,3,4,5, + 51,11,13,14,0,19,20,21,22,18, + 2,15,16,12,8,9,10,23,24,26, + 27,52,53,54,47,39,44,42,43,41, + 40,45,46,48,49,50,34,31,28,30, + 33,11,13,14,32,5,4,3,6,1, + 0 + }; + }; + public final static byte asr[] = Asr.asr; + public final int asr(int index) { return asr[index]; } + + public interface Nasb { + public final static byte nasb[] = {0, + 78,9,26,9,26,26,26,26,26,26, + 26,26,26,26,26,9,109,9,9,9, + 9,9,9,9,9,9,9,9,26,109, + 21,21,91,110,15,15,105,1,26,26, + 26,26,26,26,26,26,26,26,26,26, + 26,26,26,26,110,26,26,26,26,26, + 26,26,26,26,26,26,26,26,15,15, + 34,26,94,32,104,28,28,63,9,9, + 9,64,56,64,56,56,64,56,64,58, + 9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,76, + 97,9,84,45,34,30,33,15,86,42, + 15,39,9,102,84,102,84,102,102,102, + 84,26,24,9,76,30,34,33,12,15, + 72,2,9,88,48,14,9,15,56,76, + 9,76,19,101,76,9,76,30,26,26, + 34,33,71,28,28,94,88,15,15,9, + 15,9,84,113,76,102,50,23,9,25, + 102,26,9,17,50,76,30,12,34,34, + 15,86,42,52,48,15,26,15,76,50, + 36,121,102,19,9,9,25,34,102,26, + 24,12,117,15,113,66,19,50,26,102, + 26,34,19,15,15,26,50,37,26,9, + 74,94,81,56,50,34,50,9,66,26, + 54,56,84,10,84 + }; + }; + public final static byte nasb[] = Nasb.nasb; + public final int nasb(int index) { return nasb[index]; } + + public interface Nasr { + public final static char nasr[] = {0, + 4,85,84,83,82,69,81,80,0,104, + 0,26,0,95,24,0,108,0,58,0, + 76,0,74,11,57,4,0,31,0,62, + 0,11,4,28,0,11,75,0,111,24, + 0,24,11,0,4,11,0,93,0,44, + 0,50,49,39,37,25,0,69,65,66, + 67,68,59,32,0,25,11,39,37,0, + 24,50,49,37,39,11,0,11,96,0, + 11,39,37,19,0,25,55,11,30,0, + 11,97,0,25,55,0,50,49,25,0, + 112,29,0,24,49,50,11,0,54,11, + 52,0,87,11,54,0,102,11,30,0, + 11,54,71,0 + }; + }; + public final static char nasr[] = Nasr.nasr; + public final int nasr(int index) { return nasr[index]; } + + public interface TerminalIndex { + public final static char terminalIndex[] = {0, + 85,2,97,98,99,86,87,9,10,11, + 48,8,64,76,6,7,1,84,68,81, + 82,83,12,13,90,93,94,69,3,44, + 55,60,63,72,42,91,16,17,47,52, + 56,61,62,66,67,74,75,78,79,80, + 30,54,70,73,4,14,15,18,19,20, + 21,29,31,89,22,23,24,25,26,100, + 5,27,28,32,33,34,35,36,37,38, + 39,40,41,92,101,45,46,49,50,51, + 53,57,58,59,65,71,77,88,95,96 + }; + }; + public final static char terminalIndex[] = TerminalIndex.terminalIndex; + public final int terminalIndex(int index) { return terminalIndex[index]; } + + public interface NonterminalIndex { + public final static char nonterminalIndex[] = {0, + 0,0,0,108,112,113,114,115,116,117, + 0,118,119,120,121,122,123,124,174,0, + 0,0,125,104,175,136,0,103,128,129, + 158,135,0,0,0,154,156,0,157,0, + 0,0,0,105,0,127,144,167,168,169, + 0,107,143,148,155,164,0,0,138,0, + 159,162,163,166,139,140,141,142,145,0, + 147,151,153,170,106,109,110,111,126,130, + 131,132,133,134,137,0,146,150,0,152, + 161,0,176,0,178,102,0,0,0,149, + 0,160,165,0,171,172,0,173,0,0, + 177,179,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0 + }; + }; + public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; + public final int nonterminalIndex(int index) { return nonterminalIndex[index]; } + + public interface ScopePrefix { + public final static char scopePrefix[] = { + 133,191,268,153,84,90,219,47,246,1, + 56,100,118,33,199,27,61,96,170,283, + 287,255,15,8,8,65,68,73,105,128, + 68,180,185,188,291,41,174,262,8,73, + 209,143,237,143,209,262,20,80,166,225, + 225,225,225,225,20,108,80,108,108 + }; + }; + public final static char scopePrefix[] = ScopePrefix.scopePrefix; + public final int scopePrefix(int index) { return scopePrefix[index]; } + + public interface ScopeSuffix { + public final static char scopeSuffix[] = { + 141,141,141,141,6,6,141,53,252,6, + 31,6,31,38,204,31,31,6,168,31, + 6,259,18,6,6,31,71,82,6,31, + 131,183,183,183,31,44,177,265,11,76, + 204,160,240,146,212,276,25,82,168,227, + 229,231,233,235,22,115,76,110,123 + }; + }; + public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; + public final int scopeSuffix(int index) { return scopeSuffix[index]; } + + public interface ScopeLhs { + public final static char scopeLhs[] = { + 67,65,4,67,31,31,65,53,120,113, + 51,31,42,20,65,92,51,31,71,4, + 4,18,88,108,107,49,64,55,31,39, + 47,66,66,66,2,74,71,6,113,55, + 65,67,121,67,65,4,88,55,71,84, + 83,82,81,80,88,42,55,40,42 + }; + }; + public final static char scopeLhs[] = ScopeLhs.scopeLhs; + public final int scopeLhs(int index) { return scopeLhs[index]; } + + public interface ScopeLa { + public final static byte scopeLa[] = { + 36,36,36,36,64,64,36,36,91,64, + 25,64,25,25,29,25,25,64,84,25, + 64,62,3,64,64,25,2,8,64,25, + 1,1,1,1,25,63,1,25,51,8, + 29,29,97,1,1,25,1,8,84,6, + 52,53,53,47,1,2,8,2,2 + }; + }; + public final static byte scopeLa[] = ScopeLa.scopeLa; + public final int scopeLa(int index) { return scopeLa[index]; } + + public interface ScopeStateSet { + public final static char scopeStateSet[] = { + 21,21,70,21,59,59,21,130,0,7, + 63,59,12,25,21,9,63,59,3,70, + 70,102,18,1,7,63,65,53,59,12, + 14,21,21,21,70,132,3,75,7,53, + 21,21,0,21,21,70,18,53,3,22, + 22,22,22,22,18,12,53,12,12 + }; + }; + public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; + public final int scopeStateSet(int index) { return scopeStateSet[index]; } + + public interface ScopeRhs { + public final static char scopeRhs[] = {0, + 146,51,146,17,0,103,0,146,17,0, + 30,127,103,0,172,125,0,175,0,125, + 0,151,175,0,151,0,210,2,193,0, + 104,0,209,2,2,3,0,104,104,0, + 205,111,0,31,143,0,158,178,111,29, + 157,0,105,0,0,161,111,2,149,0, + 161,111,2,0,164,2,0,155,111,0, + 167,0,143,155,0,9,0,162,0,143, + 0,9,0,123,28,191,111,17,0,123, + 191,111,28,17,0,123,28,17,0,123, + 191,111,17,0,123,17,0,139,0,2, + 0,160,104,0,2,104,0,161,111,2, + 139,0,2,0,159,104,0,147,2,0, + 154,0,158,189,111,29,129,201,52,0, + 105,0,201,52,0,128,3,0,0,0, + 105,0,158,189,111,29,201,52,0,3, + 0,0,0,105,0,154,0,106,0,200, + 111,154,0,111,154,0,149,106,0,170, + 52,0,128,0,170,54,0,170,53,0, + 186,111,29,199,129,198,169,0,199,129, + 198,169,0,3,0,0,105,0,198,169, + 0,128,0,3,0,0,105,0,186,111, + 29,198,169,0,185,0,142,0,141,0, + 140,0,139,0,138,0,216,90,0,77, + 2,107,104,106,0,216,124,152,2,94, + 0,53,0,0,152,73,117,0,29,124, + 0,177,2,0,104,113,0,158,178,111, + 29,124,177,2,0,104,3,0,111,0, + 105,0,197,2,104,0,152,17,104,0, + 152,2,0 + }; + }; + public final static char scopeRhs[] = ScopeRhs.scopeRhs; + public final int scopeRhs(int index) { return scopeRhs[index]; } + + public interface ScopeState { + public final static char scopeState[] = {0, + 467,0,2085,2164,2060,0,1846,0,546,1138, + 0,1603,1202,1579,1830,1487,1350,1520,1444,0, + 1383,460,373,0,2191,2186,2100,1603,1520,2091, + 1579,1444,1202,2168,2082,460,2163,2158,2132,2123, + 1733,1383,1817,1896,1794,2067,2059,1777,1566,1690, + 1633,373,1950,1675,1924,1658,1707,0,1234,796, + 717,596,1202,1733,1487,1350,1863,1834,0,1987, + 1888,1609,1492,1355,1935,1928,2052,556,1568,1500, + 759,1765,1210,1739,1785,443,1853,1470,530,469, + 2040,2033,2022,1899,1292,2013,2006,1998,1980,1456, + 1301,1362,1327,831,1308,1273,1254,664,1191,1167, + 1143,802,1419,775,601,1119,1095,1071,1047,1023, + 999,975,951,927,903,879,373,855,722,698, + 640,498,577,411,0 + }; + }; + public final static char scopeState[] = ScopeState.scopeState; + public final int scopeState(int index) { return scopeState[index]; } + + public interface InSymb { + public final static char inSymb[] = {0, + 0,196,111,179,26,27,19,24,23,10, + 9,8,12,16,15,104,2,108,107,110, + 109,113,112,115,114,117,116,105,35,2, + 71,55,2,17,177,152,154,111,10,9, + 57,56,8,61,60,59,58,37,38,12, + 66,65,68,67,73,72,69,83,82,81, + 79,80,78,77,76,75,74,63,177,197, + 152,124,111,17,2,150,149,180,3,4, + 5,181,169,182,54,53,183,52,184,185, + 1,6,107,107,109,109,109,109,108,108, + 112,110,110,114,113,152,116,115,124,29, + 155,143,125,28,123,111,8,164,111,2, + 2,2,2,198,125,170,125,170,201,170, + 125,62,111,143,8,111,123,191,162,161, + 130,111,163,111,2,211,1,18,129,29, + 129,29,178,111,29,157,8,111,191,28, + 123,8,2,137,139,111,35,161,209,193, + 2,199,125,111,29,111,158,35,205,212, + 55,17,129,206,111,29,111,162,123,123, + 147,111,2,155,35,124,2,1,29,186, + 154,187,111,189,129,190,63,146,55,17, + 111,162,111,210,111,111,189,158,63,35, + 51,146,178,161,202,35,186,200,62,147, + 2,111,125,172,158,146,158,35,35,62, + 155,172,125,144,125 + }; + }; + public final static char inSymb[] = InSymb.inSymb; + public final int inSymb(int index) { return inSymb[index]; } + + public interface Name { + public final static String name[] = { + "", + "[", + "(", + "{", + ".", + "->", + "++", + "--", + "&", + "*", + "+", + "-", + "~", + "!", + "/", + "%", + ">>", + "<<", + "<", + ">", + "<=", + ">=", + "==", + "!=", + "^", + "|", + "&&", + "||", + "?", + ":", + "...", + "=", + "*=", + "/=", + "%=", + "+=", + "-=", + ">>=", + "<<=", + "&=", + "^=", + "|=", + ",", + "$empty", + "auto", + "break", + "case", + "char", + "const", + "continue", + "default", + "do", + "double", + "else", + "enum", + "extern", + "float", + "for", + "goto", + "if", + "inline", + "int", + "long", + "register", + "restrict", + "return", + "short", + "signed", + "sizeof", + "static", + "struct", + "switch", + "typedef", + "union", + "unsigned", + "void", + "volatile", + "while", + "_Bool", + "_Complex", + "_Imaginary", + "integer", + "floating", + "charconst", + "stringlit", + "identifier", + "Completion", + "EndOfCompletion", + "Invalid", + "RightBracket", + "RightParen", + "RightBrace", + "SemiColon", + "typeof", + "__alignof__", + "MAX", + "MIN", + "__attribute__", + "__declspec", + "asm", + "ERROR_TOKEN", + "EOF_TOKEN", + "no_sizeof_type_name_start", + "]", + ")", + "}", + ";", + "expression", + "postfix_expression", + "member_name", + "type_id", + "initializer_list", + "unary_expression", + "cast_expression", + "multiplicative_expression", + "additive_expression", + "shift_expression", + "relational_expression", + "equality_expression", + "AND_expression", + "exclusive_OR_expression", + "inclusive_OR_expression", + "logical_AND_expression", + "logical_OR_expression", + "conditional_expression", + "assignment_expression", + "expression_list_actual", + "constant_expression", + "identifier_token", + "declaration_specifiers", + "simple_declaration_specifiers", + "struct_or_union_declaration_sp" + + "ecifiers", + "elaborated_declaration_specifi" + + "ers", + "enum_declaration_specifiers", + "typdef_name_declaration_specif" + + "iers", + "no_type_declaration_specifier", + "type_qualifier", + "no_type_declaration_specifiers", + "simple_type_specifier", + "struct_or_union_specifier", + "elaborated_specifier", + "enum_specifier", + "typedef_name_in_declspec", + "initializer", + "declarator", + "struct_or_union", + "struct_declaration_list", + "struct_declaration", + "specifier_qualifier_list", + "struct_declarator_list", + "complete_struct_declarator", + "struct_declarator", + "enumerator_list", + "enumerator", + "direct_declarator", + "pointer_seq", + "array_direct_declarator", + "basic_direct_declarator", + "array_modifier", + "parameter_type_list", + "identifier_list", + "array_modifier_type_qualifiers", + "type_qualifier_list", + "parameter_list", + "parameter_declaration", + "complete_parameter_declarator", + "abstract_declarator", + "direct_abstract_declarator", + "basic_direct_abstract_declarat" + + "or", + "array_direct_abstract_declarat" + + "or", + "designated_initializer", + "designation", + "designator_list", + "designator", + "attribute_or_decl_specifier", + "attribute_or_decl_specifier_se" + + "q", + "word", + "extended_decl_modifier_seq", + "extended_decl_modifier", + "field_name_designator" + }; + }; + public final static String name[] = Name.name; + public final String name(int index) { return name[index]; } + + public final static int + ERROR_SYMBOL = 70, + SCOPE_UBOUND = 58, + SCOPE_SIZE = 59, + MAX_NAME_LENGTH = 38; + + public final int getErrorSymbol() { return ERROR_SYMBOL; } + public final int getScopeUbound() { return SCOPE_UBOUND; } + public final int getScopeSize() { return SCOPE_SIZE; } + public final int getMaxNameLength() { return MAX_NAME_LENGTH; } + + public final static int + NUM_STATES = 245, + NT_OFFSET = 100, + LA_STATE_OFFSET = 2700, + MAX_LA = 2, + NUM_RULES = 372, + NUM_NONTERMINALS = 142, + NUM_SYMBOLS = 242, + SEGMENT_SIZE = 8192, + START_STATE = 1552, + IDENTIFIER_SYMBOL = 0, + EOFT_SYMBOL = 85, + EOLT_SYMBOL = 85, + ACCEPT_ACTION = 2237, + ERROR_ACTION = 2328; + + public final static boolean BACKTRACK = true; + + public final int getNumStates() { return NUM_STATES; } + public final int getNtOffset() { return NT_OFFSET; } + public final int getLaStateOffset() { return LA_STATE_OFFSET; } + public final int getMaxLa() { return MAX_LA; } + public final int getNumRules() { return NUM_RULES; } + public final int getNumNonterminals() { return NUM_NONTERMINALS; } + public final int getNumSymbols() { return NUM_SYMBOLS; } + public final int getSegmentSize() { return SEGMENT_SIZE; } + public final int getStartState() { return START_STATE; } + public final int getStartSymbol() { return lhs[0]; } + public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } + public final int getEoftSymbol() { return EOFT_SYMBOL; } + public final int getEoltSymbol() { return EOLT_SYMBOL; } + public final int getAcceptAction() { return ACCEPT_ACTION; } + public final int getErrorAction() { return ERROR_ACTION; } + public final boolean isValidForParser() { return isValidForParser; } + public final boolean getBacktrack() { return BACKTRACK; } + + public final int originalState(int state) { + return -baseCheck[state]; + } + public final int asi(int state) { + return asb[originalState(state)]; + } + public final int nasi(int state) { + return nasb[originalState(state)]; + } + public final int inSymbol(int state) { + return inSymb[originalState(state)]; + } + + public final int ntAction(int state, int sym) { + return baseAction[state + sym]; + } + + public final int tAction(int state, int sym) { + int i = baseAction[state], + k = i + sym; + return termAction[termCheck[k] == sym ? k : i]; + } + public final int lookAhead(int la_state, int sym) { + int k = la_state + sym; + return termAction[termCheck[k] == sym ? k : la_state]; + } +} diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParsersym.java new file mode 100644 index 00000000000..d3ecdcdf2e1 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParsersym.java @@ -0,0 +1,224 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.gcc; + +public interface GCCSizeofExpressionParsersym { + public final static int + TK_auto = 30, + TK_break = 86, + TK_case = 87, + TK_char = 39, + TK_const = 11, + TK_continue = 88, + TK_default = 89, + TK_do = 90, + TK_double = 40, + TK_else = 91, + TK_enum = 52, + TK_extern = 31, + TK_float = 41, + TK_for = 92, + TK_goto = 93, + TK_if = 94, + TK_inline = 32, + TK_int = 42, + TK_long = 43, + TK_register = 33, + TK_restrict = 13, + TK_return = 95, + TK_short = 44, + TK_signed = 45, + TK_sizeof = 19, + TK_static = 28, + TK_struct = 53, + TK_switch = 96, + TK_typedef = 34, + TK_union = 54, + TK_unsigned = 46, + TK_void = 47, + TK_volatile = 14, + TK_while = 97, + TK__Bool = 48, + TK__Complex = 49, + TK__Imaginary = 50, + TK_integer = 20, + TK_floating = 21, + TK_charconst = 22, + TK_stringlit = 18, + TK_identifier = 1, + TK_Completion = 6, + TK_EndOfCompletion = 7, + TK_Invalid = 98, + TK_LeftBracket = 17, + TK_LeftParen = 2, + TK_LeftBrace = 29, + TK_Dot = 55, + TK_Arrow = 71, + TK_PlusPlus = 15, + TK_MinusMinus = 16, + TK_And = 12, + TK_Star = 8, + TK_Plus = 9, + TK_Minus = 10, + TK_Tilde = 23, + TK_Bang = 24, + TK_Slash = 56, + TK_Percent = 57, + TK_RightShift = 37, + TK_LeftShift = 38, + TK_LT = 58, + TK_GT = 59, + TK_LE = 60, + TK_GE = 61, + TK_EQ = 65, + TK_NE = 66, + TK_Caret = 67, + TK_Or = 68, + TK_AndAnd = 69, + TK_OrOr = 72, + TK_Question = 73, + TK_Colon = 62, + TK_DotDotDot = 51, + TK_Assign = 63, + TK_StarAssign = 74, + TK_SlashAssign = 75, + TK_PercentAssign = 76, + TK_PlusAssign = 77, + TK_MinusAssign = 78, + TK_RightShiftAssign = 79, + TK_LeftShiftAssign = 80, + TK_AndAssign = 81, + TK_CaretAssign = 82, + TK_OrAssign = 83, + TK_Comma = 35, + TK_RightBracket = 64, + TK_RightParen = 25, + TK_RightBrace = 36, + TK_SemiColon = 84, + TK_typeof = 26, + TK___alignof__ = 27, + TK_MAX = 99, + TK_MIN = 100, + TK___attribute__ = 3, + TK___declspec = 4, + TK_asm = 5, + TK_ERROR_TOKEN = 70, + TK_EOF_TOKEN = 85; + + public final static String orderedTerminalSymbols[] = { + "", + "identifier", + "LeftParen", + "__attribute__", + "__declspec", + "asm", + "Completion", + "EndOfCompletion", + "Star", + "Plus", + "Minus", + "const", + "And", + "restrict", + "volatile", + "PlusPlus", + "MinusMinus", + "LeftBracket", + "stringlit", + "sizeof", + "integer", + "floating", + "charconst", + "Tilde", + "Bang", + "RightParen", + "typeof", + "__alignof__", + "static", + "LeftBrace", + "auto", + "extern", + "inline", + "register", + "typedef", + "Comma", + "RightBrace", + "RightShift", + "LeftShift", + "char", + "double", + "float", + "int", + "long", + "short", + "signed", + "unsigned", + "void", + "_Bool", + "_Complex", + "_Imaginary", + "DotDotDot", + "enum", + "struct", + "union", + "Dot", + "Slash", + "Percent", + "LT", + "GT", + "LE", + "GE", + "Colon", + "Assign", + "RightBracket", + "EQ", + "NE", + "Caret", + "Or", + "AndAnd", + "ERROR_TOKEN", + "Arrow", + "OrOr", + "Question", + "StarAssign", + "SlashAssign", + "PercentAssign", + "PlusAssign", + "MinusAssign", + "RightShiftAssign", + "LeftShiftAssign", + "AndAssign", + "CaretAssign", + "OrAssign", + "SemiColon", + "EOF_TOKEN", + "break", + "case", + "continue", + "default", + "do", + "else", + "for", + "goto", + "if", + "return", + "switch", + "while", + "Invalid", + "MAX", + "MIN" + }; + + public final static boolean isValidForParser = true; +} diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java index 889ac7145da..660b0deb114 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java @@ -28,8 +28,10 @@ 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; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction; +import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory; public class GPPParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { @@ -175,12 +177,12 @@ public GPPParser() { // 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() , GPPSecondaryParserFactory.getDefault() ); action.setParserOptions(options); - gnuAction = new GNUBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu, astStack); + gnuAction = new GNUBuildASTParserAction (this, tu, astStack, CPPNodeFactory.getDefault() ); gnuAction.setParserOptions(options); @@ -242,8 +244,8 @@ public void setTokens(List<IToken> tokens) { addToken(new Token(null, 0, 0, GPPParsersym.TK_EOF_TOKEN)); } -public GPPParser(String[] mapFrom) { // constructor - tokenMap = new TokenMap(GPPParsersym.orderedTerminalSymbols, mapFrom); +public GPPParser(IParserActionTokenProvider parser) { // constructor + tokenMap = new TokenMap(GPPParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); } @@ -280,1719 +282,1737 @@ private GNUBuildASTParserAction gnuAction; } // - // 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: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } // - case 303: { action. consumeUsingDirective(); 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 + // Rule 527: exception_declaration ::= type_specifier_seq // - case 527: { action. consumeDeclarationSimple(true); break; + case 527: { action. consumeDeclarationSimple(false); break; } // - // Rule 528: exception_declaration ::= type_specifier_seq + // Rule 529: exception_specification ::= throw ( ) // - case 528: { action. consumeDeclarationSimple(false); break; + case 529: { action. consumePlaceHolder(); break; } // - // Rule 530: exception_specification ::= throw ( ) + // Rule 550: attribute_parameter ::= assignment_expression // - case 530: { action. consumePlaceHolder(); break; + case 550: { action. consumeIgnore(); break; } + + // + // Rule 560: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; + // + case 560: { gnuAction.consumeDeclarationASM(); break; + } // - // Rule 551: attribute_parameter ::= assignment_expression + // Rule 571: unary_expression ::= __alignof__ unary_expression // - case 551: { action. consumeIgnore(); break; + case 571: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; } - + // - // Rule 561: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; + // Rule 572: unary_expression ::= __alignof__ ( type_id ) // - case 561: { gnuAction.consumeDeclarationASM(); break; - } + case 572: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break; + } + + // + // Rule 573: unary_expression ::= typeof unary_expression + // + case 573: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + } + + // + // Rule 574: unary_expression ::= typeof ( type_id ) + // + case 574: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + } // - // Rule 584: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator + // Rule 587: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator // - case 584: { action. consumeDeclaratorWithPointer(true); break; + case 587: { action. consumeDeclaratorWithPointer(true); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java index f2ef744b6cb..b94d07d5710 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java @@ -29,7 +29,7 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,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,586 +39,582 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 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,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,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,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,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,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,1,1,2,6, - 3,1,3,1,4,0,1,1,1,3, - 1,0,4,3,1,2,1,3,4,4, - 6,1,0,1,3,1,3,0,1,4, - 5,1,1,2,2,3,2,2,3,1, - 1,1,1,4,1,-271,0,0,0,-4, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-2,0, - 0,0,0,0,0,-7,0,0,0,0, - 0,0,-20,0,0,0,0,-57,0,-9, - 0,0,-124,0,0,0,-14,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-81,0,-16,-36,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-569,0,-17,-66,0,0,0, - 0,0,-172,0,0,-285,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-18, - 0,0,0,0,0,0,-332,0,-211,-27, - 0,0,0,-3,0,-45,-277,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-34,0,0,0,0,0,0,-116,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-122,0,0,0,0,0,0, - 0,0,0,0,0,-35,0,0,0,-171, - 0,-530,0,0,0,-117,0,0,0,-278, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-151,0,0,-134,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-62, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-38,0,0,-89, - 0,0,0,0,0,0,0,0,-30,-263, - -44,0,0,0,0,0,-33,0,0,0, - 0,0,0,0,0,0,0,-40,0,0, - -41,0,0,-42,-135,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-46,0, - 0,-82,0,0,-52,0,0,0,0,0, - 0,0,0,0,0,0,-350,-364,0,0, - 0,0,0,0,0,0,-353,0,0,-120, - 0,0,0,0,0,0,-247,0,0,-67, - 0,-313,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-209,0,0,0,0, - 0,-113,0,0,0,0,0,0,-243,0, - 0,0,0,-28,0,0,0,0,0,0, - 0,0,-576,-376,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-63, - -317,0,0,0,0,0,-64,0,0,-68, - -420,0,0,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, - -77,0,0,0,0,0,0,0,0,0, - 0,0,-84,0,0,0,0,0,-514,0, - 0,0,-251,0,0,0,0,0,0,0, - 0,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,0,-108, - 0,0,0,0,0,0,-129,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-98, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-85,0,0,0,0,0,0, - 0,0,0,0,-245,0,0,0,-86,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, - 0,-50,0,0,0,0,0,-146,-161,0, - 0,-450,0,0,-378,0,0,0,0,0, - 0,0,0,0,0,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,-87,0,0,0,0,-252,0,0, - 0,0,0,0,-69,0,0,0,-10,0, - 0,-78,0,0,-326,0,0,0,-417,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-159,0,0, - -53,0,0,0,0,0,0,0,0,0, - 0,-121,0,0,0,0,-104,-344,-83,0, - 0,-423,0,0,0,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,1,1,2,6,3, + 1,3,1,4,0,1,1,1,3,1, + 0,4,3,1,2,1,3,4,4,6, + 1,0,1,3,1,3,0,1,4,5, + 2,4,2,4,1,1,2,2,3,2, + 2,3,1,1,1,1,4,1,-273,0, + 0,0,-20,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -348,0,0,0,0,0,0,-45,0,0, + 0,0,0,-69,0,0,0,0,0,0, + -10,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,0,-81,0,0, + -56,0,-2,0,0,0,0,0,0,0, + -143,0,0,0,0,0,-3,0,-238,0, + 0,0,0,0,0,0,0,0,-289,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-99,0,0,0,0,0,0,0, - 0,0,0,-43,0,0,0,0,0,0, - 0,-101,0,-424,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-240,0,0,0, - 0,0,0,-222,0,0,0,0,0,0, - 0,0,0,0,-118,0,0,0,0,0, - -430,0,0,0,-70,0,0,0,0,0, + 0,0,-155,-7,0,0,0,0,0,-9, + -28,0,0,-368,0,0,-4,0,-14,-382, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-207,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-260,0,0, - 0,-253,0,0,0,0,0,-204,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-116,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-143,-370,0,0,0,0,0,0,0, - 0,0,0,0,-261,0,0,0,0,0, - 0,0,0,0,-300,0,0,0,-102,0, + 0,0,0,0,0,-122,0,0,-16,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-449,0,0, - 0,-105,0,0,0,0,0,0,0,0, - 0,-482,0,0,0,-111,0,-150,-100,0, - 0,-301,0,0,0,0,0,0,0,0, + 0,0,-171,0,0,0,0,0,-89,0, + -281,0,0,0,-17,0,0,0,0,0, + 0,0,0,0,0,-134,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-496,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-128,0, - 0,0,0,0,-153,-273,0,0,-302,0, - 0,0,-158,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,-160,0, - 0,0,0,0,0,-173,0,0,0,-502, - 0,0,0,0,0,-303,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-528,0, - 0,0,-441,0,0,-175,0,0,0,0, - 0,0,-374,0,0,0,0,-400,-512,-176, - 0,0,-304,0,0,0,-564,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-177,0,-12,-148,0, - 0,0,0,0,0,0,0,0,0,-13, - 0,0,0,-178,0,-106,-155,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,-456,0,-55,0,0,0,0,0, - 0,0,0,0,0,0,-58,0,0,0, - 0,0,0,-462,0,0,-306,0,0,0, - -565,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,-137,0,0,0, - 0,0,0,-65,0,0,0,0,-412,0, - -238,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,-79,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -80,0,0,0,0,-416,0,0,0,0, - -308,0,0,0,-179,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-90,0,0,0, - 0,0,0,0,0,0,0,-91,0,0, - 0,0,-138,-181,-193,0,0,-309,0,0, - 0,-194,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -94,0,-195,-96,0,0,0,0,0,0, - 0,0,0,0,-97,0,0,0,-152,0, - -196,-197,0,0,-310,0,0,0,-198,0, + 0,0,0,0,0,0,0,0,0,-18, + -335,-68,0,0,0,0,0,0,0,0, + -49,0,0,0,0,0,-37,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-114,0,-199, - -133,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-51,-154,-219,-200,0, - 0,-419,0,0,0,-201,0,0,0,0, + 0,-501,0,0,0,-159,0,0,0,-33, + 0,0,0,0,-148,0,0,0,0,0, + -12,0,-57,0,0,0,-135,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-166,0,0,0,0,0, - 0,-147,0,0,0,0,0,0,-168,0, - 0,0,0,-202,-534,-203,0,0,-461,0, - 0,0,-205,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-236,0,0,0,-149,0,0,-157,0, - 0,0,0,0,0,-515,0,0,0,-230, - -206,-513,-242,0,0,-567,0,0,0,-208, + -13,-59,0,0,0,0,0,0,0,0, + 0,-521,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -357,0,0,0,0,0,0,0,0,0, + -317,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -180,0,0,0,0,0,0,0,0,0, - 0,0,-170,0,0,0,0,-169,0,0, - 0,0,-342,0,0,0,-212,0,0,0, + 0,0,0,0,-72,-30,-131,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-318,0,0,0,0, - 0,0,-214,0,0,0,0,0,0,0, - 0,0,0,-352,0,0,0,0,0,0, + 0,-239,0,0,-354,0,0,-27,0,0, + 0,0,0,0,-34,-423,-140,0,-213,0, + 0,-35,0,0,-99,0,0,0,0,0, + 0,0,0,0,0,0,0,-66,0,0, + -426,0,0,0,-38,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-498,0,0, - -216,0,0,-215,0,0,0,0,0,0, - 0,0,0,0,-139,0,0,0,-225,0, - 0,0,0,0,0,-56,-403,0,0,0, + 0,0,0,0,-275,0,0,-40,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-70,0,0,0,-520,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-227,0,0,0, - 0,0,0,-244,0,0,0,-433,0,0, 0,0,0,0,0,0,0,0,0,0, + -36,0,0,0,0,-41,0,0,0,0, + 0,0,0,-42,0,0,0,0,0,0, + 0,0,0,0,0,0,-129,0,0,0, + -46,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -221,-228,0,0,0,0,0,-348,0,0, - 0,0,0,0,-231,0,0,0,-340,0, - 0,0,-233,-234,0,0,0,0,0,-59, - -434,0,0,0,0,0,0,0,0,0, + -55,-447,0,-52,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-247,0,0,0,-63,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-235,0,0, - 0,-561,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-98, + 0,0,0,0,0,0,0,0,0,-120, + 0,0,0,0,0,0,0,-67,-64,0, + 0,-172,0,0,-282,0,0,0,0,0, + 0,0,0,0,0,0,0,-222,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-486,0,0,0,-241,0, - 0,-246,0,0,0,0,0,0,-119,0, - 0,0,-31,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-280,-548,0,0, - 0,0,-109,-239,-256,0,0,0,0,0, - -257,-248,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-440,0,0,0,0, - 0,-276,-255,0,-226,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-274,-269, - 0,0,0,0,-583,0,0,0,-320,0, - 0,0,0,0,0,0,0,-327,0,-249, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-288,0,0,0,-337,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-250,-123, - 0,0,0,0,0,0,0,-452,-315,0, - 0,-103,0,-328,-322,0,0,-559,0,0, - 0,0,0,0,0,0,0,-335,0,0, - 0,-88,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,-336,0, - -237,0,0,0,0,-460,0,0,0,0, - 0,0,0,0,-110,-299,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-343,0,0,0,0, - 0,0,-297,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-49,0,-259,-15, - 0,0,0,0,0,0,0,0,-426,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-345,-126,0,0,0,0,0,0,-547, - 0,-360,0,0,0,0,0,-361,-362,-495, - 0,0,-54,0,0,0,0,0,0,0, - 0,0,0,0,-544,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-321,-372,-270,0,0,0, - 0,0,0,0,-324,0,-29,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-61,0,0,0,0,0,0,0,0, - 0,0,-19,0,0,0,-341,0,0,-563, - -5,0,0,0,0,0,-268,0,-140,-574, - 0,-380,0,0,0,0,0,0,0,0, - -363,0,0,-349,0,0,0,0,0,0, - 0,0,-421,0,0,0,-254,0,0,0, - -314,0,-323,0,0,-422,0,-566,0,0, 0,0,0,0,0,0,0,0,0,0, - -325,0,-367,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,-334,-368, + 0,0,-43,0,0,0,0,0,0,0, + 0,0,-73,0,0,0,0,0,-61,0, + 0,0,0,0,-330,0,0,0,-570,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-369,0,0,0,0,0,0,0, - 0,0,0,-338,0,-351,0,0,-551,0, - 0,0,0,0,0,-584,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -381,0,0,0,0,0,0,0,0,0, - 0,0,-382,0,0,-383,-339,0,0,0, - 0,0,0,-298,0,0,0,0,0,0, + -77,0,0,-571,0,0,0,0,0,0, + 0,0,0,0,0,-113,-84,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,-58,0,0,0,0,0,0, + 0,0,0,0,0,0,-85,0,0,0, + 0,0,0,0,-86,-44,0,0,0,0, + 0,-139,0,0,0,0,0,0,0,0, + 0,0,0,-430,0,0,0,-161,0,0, 0,0,0,0,0,0,0,0,0,0, - -384,0,0,-520,0,0,0,0,-357,-385, - 0,0,0,-355,0,0,0,-294,0,0, - 0,-386,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-121,0,-374,0,0, + 0,0,0,0,0,0,0,0,-87,0, + 0,0,0,0,-127,0,0,0,0,0, + -436,0,0,0,-224,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -167,-387,-555,0,0,0,0,-388,0,0, - 0,-347,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-389,-358, - 0,-21,-359,-365,0,0,0,0,0,0, - -432,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-375,0,0,0,0,0, - -390,-391,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-379,-392,-484,-418, - -477,0,0,0,0,-405,-232,0,0,0, + 0,0,0,0,-456,0,0,0,0,-262, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-414,0,0,0,0, - 0,-437,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-443,0,-455, - 0,0,0,0,-457,0,0,0,0,-415, - -141,-164,-393,-394,0,0,0,0,0,0, - 0,-476,-224,0,0,0,0,0,-478,0, - 0,0,0,0,0,0,0,0,0,-431, + 0,-101,0,0,0,0,0,-206,0,0, 0,0,0,0,0,0,0,0,0,0, - -473,0,0,0,-474,0,0,0,0,-295, + 0,0,0,0,0,0,0,0,0,-50, + 0,-108,0,0,0,0,-102,0,0,0, + 0,0,-105,0,0,0,0,0,-111,0, + -418,0,0,0,-304,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-118,0, + 0,0,0,0,0,0,0,0,0,-150, + 0,0,0,0,0,-156,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,-395,-485,-562,-396,0,0,0, - 0,0,-487,0,-509,-397,0,0,0,-488, - 0,0,0,-296,0,0,0,0,0,0, + 0,0,0,-78,0,-209,0,0,0,0, + -153,0,0,0,0,0,0,0,0,0, + 0,0,-158,0,0,0,0,0,-306,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-316,-398,0,0, - 0,0,0,-218,0,0,-6,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -521,0,0,0,0,-497,-505,0,0,0, - 0,-529,-507,0,-511,0,-399,-539,-554,0, - 0,0,0,0,0,0,-402,0,0,0, - 0,0,0,0,0,0,0,-174,0,-404, + -212,0,-255,0,0,0,0,-160,0,0, + 0,0,0,-173,0,0,0,0,0,-183, + 0,0,0,0,0,-307,0,0,0,-519, 0,0,0,0,0,0,0,0,0,0, - -406,0,0,0,0,0,0,0,-329,0, + 0,0,0,0,0,0,0,0,0,-242, + 0,0,-82,0,-175,0,0,0,0,0, + 0,0,0,0,0,0,-176,0,0,0, + 0,0,-308,0,0,0,-249,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-32,0,0,0,0,0,0,0,0, - 0,0,0,0,-289,0,0,0,0,0, + 0,0,0,0,-83,0,-455,0,0,0, + 0,-137,0,0,0,0,0,-177,0,0, + 0,0,0,-269,0,0,0,0,0,-309, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-407,-517,0, - 0,0,0,0,-408,0,-409,0,0,0, - -522,0,0,-572,0,-401,-523,0,0,0, - 0,0,0,-524,0,0,0,0,0,0, - -525,0,-543,-373,0,0,0,0,0,0, - 0,-413,-411,0,0,0,0,0,0,0, - 0,-537,0,0,-438,0,0,0,0,0, - 0,-575,0,0,-439,0,0,0,0,0, - 0,0,0,0,-578,0,-445,0,0,0, - -446,0,0,0,0,0,-210,-447,0,0, - 0,0,0,0,0,0,0,-290,0,0, - 0,-448,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -39,0,0,0,-538,0,0,-463,0,-291, + 0,0,0,-502,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -178,0,0,0,0,0,-310,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-410,0,0,-570,0,0,0,-435, - 0,0,-464,0,-466,-471,-475,-23,0,0, - -552,0,0,0,-479,0,-459,0,0,0, - -493,-581,-556,0,0,0,0,-494,0,0, - -500,0,0,0,0,0,0,-465,0,0, - -510,0,-516,0,0,0,0,0,0,0, - 0,0,0,-557,0,-571,-531,0,-535,0, - 0,0,-536,0,0,0,-541,0,0,0, - 0,0,0,0,0,-549,-550,-558,0,-568, - 0,0,-467,0,0,0,0,-573,0,0, - 0,0,0,0,0,0,0,-25,0,0, - 0,0,0,0,0,0,-553,0,0,0, + 0,0,0,0,0,0,0,0,-450,0, + 0,-462,0,-179,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-422,0,-181, + 0,0,0,-311,0,0,0,-263,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-504,-279,0, + 0,0,0,0,0,-100,0,-507,0,0, + 0,0,-195,0,0,0,0,0,-196,0, + 0,0,0,0,-465,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,-577,0,-580,0,0,0,0, + 0,0,-53,0,-97,0,0,-197,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-582,0,0,0, - 0,0,-540,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-481,0,0,0, + 0,0,0,0,0,0,0,-313,0,0, + 0,-540,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-198, + 0,-508,0,0,0,0,-199,0,0,0, + 0,0,-200,0,0,0,0,0,-457,0, + 0,0,0,0,-314,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-106,0,-180,0, + 0,-138,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-201,-202,0,0,0, + 0,-425,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-542,-319,0, + 0,0,0,-152,0,-534,0,0,0,0, + -203,0,0,0,0,0,0,0,0,0, + 0,0,-62,0,0,0,0,0,-467,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-204,-60,-580,-217,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-54, + 0,0,0,0,0,-573,0,0,0,-276, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-205,0,-557, + 0,0,-245,0,-207,0,0,0,0,0, + 0,0,0,0,0,0,-240,-208,0,0, + 0,0,-346,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-546,-526,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-503,0, + 0,0,0,0,0,0,-322,0,0,0, + 0,0,0,0,0,0,0,-151,0,0, + 0,0,0,-356,0,0,0,-569,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-65,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-579,-527,0, + 0,0,0,0,-344,0,0,0,-210,-154, + 0,0,0,0,0,0,-409,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-444,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -214,-79,-256,0,0,0,0,0,0,0, + 0,-216,0,0,0,0,0,-439,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-585,-331,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,-123, + 0,-468,-80,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-492,0, + 0,0,0,0,0,0,0,-218,-221,-227, + -440,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-90,0,-146,-229,0,0,0,0, + 0,0,0,0,0,-230,0,0,0,0, + 0,-567,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-321,0,0,0,0, + 0,0,0,0,0,0,-241,0,0,0, + 0,0,-31,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-523, + 0,0,0,-220,-233,-147,0,0,0,0, + -235,-250,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-236,-446,0,0,0, + 0,0,-117,0,0,0,0,0,0,0, + 0,0,0,0,-232,0,0,0,0,0, + 0,0,0,0,-589,0,0,0,-237,0, + 0,0,0,0,0,0,0,-149,0,0, + 0,0,0,0,-490,0,0,0,0,0, + 0,0,-292,0,0,0,-243,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-258,0,-104,-126, + 0,0,0,0,0,0,0,-384,0,0, + 0,-553,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-169, + 0,0,0,0,0,-316,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-259,0,-88, + 0,0,0,0,-280,0,0,0,0,0, + -91,0,0,0,0,-303,0,0,0,-324, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-103,0,-119, + 0,0,0,0,-157,0,0,0,0,0, + -331,0,0,-301,0,0,0,-253,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-211,0,0, + 0,0,-109,0,0,0,0,0,0,0, + -432,0,0,0,-318,0,0,0,0,0, + 0,0,0,0,-167,-244,0,0,0,0, + -332,0,-339,-340,0,0,0,0,0,-257, + -347,-94,0,-261,0,0,0,0,0,0, + 0,0,0,-349,0,-246,-550,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-536,0,0,0,-226,-590,0, + 0,0,0,0,0,-364,0,-29,0,0, + 0,-39,0,0,0,0,-128,0,0,0, + 0,0,0,0,0,-248,0,0,-365,0, + 0,0,0,0,-582,0,0,0,-366,0, + 0,0,-5,0,0,0,0,0,0,-96, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-406,-254,-114,-352,0,-378,0,-367,0, + 0,0,0,0,-302,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-371,0,0,0, + 0,0,0,0,0,0,0,0,0,-32, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-133,0,0,0,0,-372, + -132,-166,0,0,0,0,0,0,-271,-130, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-373,-387,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-388,-389,0,0, + 0,0,0,-168,0,0,0,0,-390,0, + 0,0,0,0,0,-391,0,-170,0,0, + 0,0,0,0,0,-298,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-223,0,-392, + -19,0,0,0,-21,0,0,0,0,-351, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-325,-393,0,0,0,0,0,0, + 0,0,-228,0,0,0,0,-558,0,0, + 0,0,0,0,-394,-395,-396,-184,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-251,0,0,0,0,-376,0,0, + -438,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -350,-353,-272,0,0,0,0,0,-397,-443, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-398,0,0,0,0,0,0, + 0,0,-458,0,0,0,0,0,0,0, + 0,0,0,-328,0,0,-466,-399,-400,-401, + 0,0,-234,0,0,0,0,0,0,0, + 0,0,0,0,0,-341,0,-284,0,0, + 0,0,-504,0,0,-299,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-342,0,0, + 0,0,0,0,0,0,0,0,-15,0, + 0,0,0,0,0,-402,0,0,0,0, + -23,0,0,0,-403,-404,0,-252,0,0, + 0,0,0,0,0,0,-319,-326,-488,0, + 0,0,-405,0,0,0,0,0,0,0, + -408,0,0,0,0,-300,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-320,0,0, + -25,0,-410,0,-442,0,0,0,-412,-327, + -329,0,-441,0,0,-559,0,0,0,0, + -413,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-338,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-419,-361,0, + -491,0,0,-414,0,0,0,-355,-483,0, + 0,0,0,0,0,0,0,0,0,-333, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-464,0,0,0, + 0,0,-427,-415,-293,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-345,0,-386,-554, + -568,-417,0,0,0,0,-343,0,0,0, + 0,0,0,0,0,0,0,-407,-444,0, + -486,0,-162,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-377,-51,0, + 0,0,-445,0,0,0,0,0,0,0, + 0,0,0,-518,-451,-452,0,-359,0,0, + 0,0,0,-453,0,-454,0,0,0,0, + 0,0,0,0,0,0,-461,0,0,0, + 0,0,0,0,0,0,0,0,-469,0, + 0,0,0,0,0,0,0,0,0,-294, + 0,0,0,-470,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-472,0,-47,0,0,0,0,-477,0, + 0,-295,0,0,0,-411,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-416,0,-362,-22,0,-420,0, + -363,0,0,-482,0,-336,-481,0,-487,0, + -369,0,0,0,-379,0,-485,0,-428,0, + 0,0,0,0,0,-499,-500,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-506,0,0,0,0,0,0,0,0, + 0,0,-24,-471,-565,0,-71,0,-380,-421, + 0,0,0,-381,0,0,0,-516,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-522,-385,-537,0,0,0, + -424,0,0,-437,0,-479,0,0,0,-541, + 0,-542,0,0,0,0,0,0,0,0, + 0,0,-547,-473,0,0,-136,0,-480,0, + 0,0,0,0,0,0,0,-555,0,0, + 0,0,0,0,0,0,-556,0,-526,0, + 0,0,0,0,-564,-449,0,0,0,-463, + -265,-561,0,-549,0,-494,0,0,0,0, + 0,-574,0,-579,0,0,0,0,0,0, + 0,0,0,-510,0,0,-260,0,0,-484, 0,0,0,0,0,0,0,0,0,0, - -1,0,0,0,0,0,0,-22,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-560,0,0,0,0,0,0,0, + 0,0,0,0,0,-503,0,0,0,0, + -266,0,0,0,0,0,0,0,0,-493, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-546,0,0,-334,0,-511,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-506,0,0,0,0,0,0, + 0,0,0,0,0,-513,0,0,0,-517, + -578,-515,0,0,0,0,0,0,0,-527, + 0,0,-576,0,0,0,0,0,0,0, + 0,0,0,-548,0,0,-505,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,-165, - 0,0,0,-74,0,0,0,0,0,0, + 0,0,0,0,0,-528,0,-545,0,-529, + -530,0,0,0,-531,-543,0,0,0,-560, + 0,0,-587,0,0,0,0,0,0,0, + 0,0,-110,-552,0,0,-231,0,0,0, + 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,-562,0,-563,0,-270, + -577,-581,0,0,0,0,0,0,0,-1, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-584,0,0, + 0,0,0,-283,0,0,0,0,0,0, + 0,0,0,0,0,-572,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-48,0,0,0,-267,0,0,0, + 0,0,0,0,0,-76,0,0,0,0, + 0,0,0,0,0,0,-583,0,0,0, + 0,0,0,0,0,0,0,-585,-509,0, + 0,0,0,0,-586,0,0,0,0,-588, + 0,0,0,0,0,0,0,-268,0,0, + 0,0,0,-476,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -311,0,-470,0,0,0,0,0,0,-125, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-323,-591,0,0, + 0,0,0,-164,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-532,-533,-434,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-315,0, + 0,0,0,-174,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-74, 0,0,0,0,0,0,0,0,0,0, + 0,0,-495,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-125,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-292, + 0,0,0,0,0,0,-496,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-293, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-95,0,0,0,0,0,0,-75, + 0,0,0,0,0,0,0,-296,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-427,0,0, - 0,0,0,0,0,0,0,0,0,-265, - 0,0,0,0,-142,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-566,0,0,0,0,0,-297,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-47,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -95,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,-144,0, - 0,0,0,0,-131,0,0,0,0,0, - 0,0,0,0,0,-346,0,0,0,0, + 0,0,0,0,0,0,0,0,-514,0, + 0,0,0,0,0,0,0,-575,0,-141, + 0,0,-142,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-497,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-127,0,0,0,0,-223,0,0, + 0,0,0,0,0,-112,0,0,0,0, + 0,0,0,-144,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,0,0,0,0,0,0,0, + 0,0,-435,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-115,0,0,0, + 0,0,-225,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-283,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-284,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-26,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-287,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-286,0, + 0,0,-288,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-26,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-156,0,0,0,0,0,-287,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-8,0,0,0,0,-489,-436, - 0,0,0,0,0,0,0,0,0,-11, - 0,0,-480,0,0,-490,0,0,0,0, + 0,0,0,-290,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-498,0, + 0,0,0,-291,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-8,0, + 0,0,0,0,-538,-551,0,0,0,0, + 0,0,0,0,0,-11,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -491,0,0,0,0,0,0,0,0,0, - 0,0,-92,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-93,0, - 0,0,0,0,-132,0,0,0,0,-266, + 0,0,0,0,0,0,0,-92,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-93,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-492,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-185,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-186,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-187,0,0,0,0, + 0,0,0,0,0,0,0,-187,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-188,0,0, + 0,0,0,0,0,0,0,0,0,-188, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-189, 0,0,0,0,0,0,0,0,0,0, + 0,-189,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-190,0,0,0,0,0,0,0,0, + 0,0,0,-190,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-191,0,0,0,0,0,0, + 0,0,0,0,0,-191,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-192,0,0,0,0, + 0,0,0,0,0,0,0,-192,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-217,0,0, + 0,0,0,0,0,0,0,0,0,-193, 0,0,0,0,0,0,0,0,0,0, - -532,-545,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-272,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-194,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-219,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-281,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-282,0,0,0,0,0, + 0,-274,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-333,0,0,0, - 0,-162,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-366,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-285, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-24,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-286,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-337,0,0,0,0,-512,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-453, + 0,-370,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-184,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-107,0,0,0,0,0,0,-163, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-428,0,0,0,0,0,0, - -356,0,0,0,0,0,0,-425,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-459,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-48,0, + 0,0,0,0,0,0,0,0,-185,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-354,0, + 0,0,0,0,0,0,0,0,0,-186, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-429,-508, + -107,0,0,0,0,0,0,-6,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-71,0,0,0,0, + 0,-163,0,-360,0,0,0,0,0,0, + 0,0,0,-460,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-136,0,0,0,0,0,0,0,0, - 0,-258,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-431,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-592,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -454,0,0,0,0,-586,0,-330,0,0, - 0,0,0,0,0,0,0,-499,0,0, - 0,0,0,0,0,-182,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-358,0,0, + 0,0,0,0,-539,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-533,0,0,0,0,0,0, - 0,0,0,-229,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-145,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-76,0,0,0, - 0,0,0,0,0,0,-112,0,0,0, - -115,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-145,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-213,0, + 0,0,0,-215,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-375,0,0,0,0, + 0,0,0,0,0,-383,0,0,0,-448, 0,0,0,0,0,0,0,0,0,0, - -371,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-489,0,0,0,-524, + 0,0,0,0,0,-433,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-377,0,0,0,0,0,0,0,0, - 0,0,0,-442,0,0,0,-483,0,0, 0,0,0,0,0,0,0,0,0,0, - -518,0,0,0,-519,0,0,0,0,0, - 0,0,0,-183,0,0,0,0,0,0, - 0,-262,0,0,0,0,0,0,0,0, - 0,0,0,-275,0,0,0,0,0,0, + 0,0,0,0,-182,-264,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-468, + -525,0,0,0,0,0,0,0,-277,0, + 0,0,0,0,0,0,0,0,-278,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-267,0,0,0,0,-451,0, - 0,0,0,0,0,0,0,0,-458,0, - 0,0,0,0,-469,0,0,-472,0,0, + 0,0,0,0,0,-279,0,0,0,0, + 0,0,-474,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-475,0, + 0,0,0,0,0,-478,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -629,7 +625,7 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,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; @@ -639,651 +635,647 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface BaseAction { public final static char baseAction[] = { - 186,4,146,89,89,30,30,74,74,43, - 43,47,47,186,1,1,15,15,15,15, - 15,15,15,15,16,16,16,14,11,11, - 6,6,6,6,6,6,2,72,72,5, - 5,12,12,49,49,147,147,148,68,68, - 48,17,17,17,17,17,17,17,17,17, + 186,4,146,89,89,29,29,74,74,44, + 44,47,47,186,1,1,15,15,15,15, + 15,15,15,16,16,16,14,11,11,6, + 6,6,6,6,6,2,72,72,5,5, + 12,12,50,50,147,147,148,68,68,49, + 17,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,149,149,149,125,125,18,18,18,18, - 18,18,18,18,18,18,18,18,18,19, - 19,187,187,188,188,189,152,152,153,153, - 150,150,154,151,151,20,20,21,21,22, - 22,22,28,28,28,28,29,29,29,31, - 31,31,32,32,32,32,32,33,33,33, - 34,34,35,35,36,36,38,38,39,39, - 40,40,46,46,45,45,45,45,45,45, - 45,45,45,45,45,45,45,44,37,155, - 155,103,103,190,190,98,217,217,75,75, - 75,75,75,75,75,75,75,76,76,76, - 73,73,67,67,191,191,77,77,77,110, - 110,192,192,78,78,78,193,193,79,79, - 79,79,79,80,80,90,90,90,90,90, - 90,90,90,54,54,54,54,54,111,111, - 109,109,55,194,23,23,23,23,23,53, - 53,93,93,93,93,93,162,162,157,157, - 157,157,157,158,158,158,159,159,159,160, - 160,160,161,161,161,94,94,94,94,94, - 95,95,95,13,13,13,13,13,13,13, - 13,13,13,13,104,129,129,129,129,129, - 129,127,127,127,163,128,128,195,165,165, - 164,164,131,131,112,84,84,85,86,57, - 52,166,166,58,92,92,167,167,156,156, - 132,133,133,134,70,70,168,168,63,63, - 63,60,60,59,64,64,87,87,69,69, - 69,65,96,96,106,105,105,71,71,61, - 61,66,66,50,107,107,107,99,99,99, - 100,100,101,101,101,102,102,113,113,113, - 115,115,114,114,218,218,97,97,197,197, - 197,197,197,136,51,51,170,196,196,137, - 137,137,137,138,172,198,198,41,41,126, - 139,139,139,139,200,117,116,116,130,130, - 130,173,174,174,174,174,174,174,174,174, - 174,174,174,202,202,199,199,201,201,119, - 120,120,120,120,121,203,122,118,118,204, - 204,175,175,175,175,108,108,108,205,205, - 8,8,9,206,206,207,176,169,169,177, - 177,178,179,179,7,7,10,208,208,208, + 149,149,149,125,125,18,18,18,18,18, + 18,18,18,18,18,18,18,18,19,19, + 187,187,188,188,189,152,152,153,153,150, + 150,154,151,151,20,20,21,21,23,23, + 23,28,28,28,28,30,30,30,31,31, + 31,32,32,32,32,32,33,33,33,34, + 34,36,36,37,37,38,38,39,39,40, + 40,46,46,45,45,45,45,45,45,45, + 45,45,45,45,45,45,43,35,155,155, + 103,103,190,190,98,217,217,75,75,75, + 75,75,75,75,75,75,76,76,76,73, + 73,67,67,191,191,77,77,77,110,110, + 192,192,78,78,78,193,193,79,79,79, + 79,79,80,80,90,90,90,90,90,90, + 90,90,54,54,54,54,54,111,111,109, + 109,55,194,22,22,22,22,22,53,53, + 93,93,93,93,93,162,162,157,157,157, + 157,157,158,158,158,159,159,159,160,160, + 160,161,161,161,94,94,94,94,94,95, + 95,95,13,13,13,13,13,13,13,13, + 13,13,13,104,129,129,129,129,129,129, + 127,127,127,163,128,128,195,165,165,164, + 164,131,131,112,84,84,85,86,57,52, + 166,166,58,92,92,167,167,156,156,132, + 133,133,134,70,70,168,168,64,64,64, + 60,60,59,65,65,87,87,69,69,69, + 66,96,96,106,105,105,71,71,61,61, + 63,63,48,107,107,107,99,99,99,100, + 100,101,101,101,102,102,113,113,113,115, + 115,114,114,218,218,97,97,197,197,197, + 197,197,136,51,51,170,196,196,137,137, + 137,137,138,172,198,198,41,41,126,139, + 139,139,139,200,117,116,116,130,130,130, + 173,174,174,174,174,174,174,174,174,174, + 174,174,202,202,199,199,201,201,119,120, + 120,120,120,121,203,122,118,118,204,204, + 175,175,175,175,108,108,108,205,205,8, + 8,9,206,206,207,176,169,169,177,177, + 178,179,179,7,7,10,208,208,208,208, 208,208,208,208,208,208,208,208,208,208, 208,208,208,208,208,208,208,208,208,208, 208,208,208,208,208,208,208,208,208,208, - 208,208,208,208,208,208,208,208,208,82, - 88,88,180,180,141,141,142,142,142,142, - 142,142,3,143,143,140,140,123,123,91, - 83,81,171,171,124,124,209,209,209,144, - 144,135,135,210,210,24,24,24,42,42, - 25,25,211,211,181,181,181,182,182,212, - 212,183,183,26,26,213,213,184,184,184, - 27,62,214,214,215,215,185,185,185,145, - 145,145,56,93,134,134,134,119,119,119, - 195,200,117,65,70,163,1158,36,2963,2950, - 1426,5671,28,31,32,786,742,27,29,2923, - 26,24,51,1965,107,77,78,109,1972,1141, - 573,535,536,537,2011,1993,1142,2019,2012,2059, - 2040,2104,2066,1406,2106,2113,144,274,2849,992, - 1863,159,145,2947,36,857,33,73,5734,28, - 31,32,786,742,27,29,1964,26,24,51, - 1965,107,77,78,109,1972,1417,233,162,3006, - 5472,2011,1993,2861,2019,2012,2059,2040,2104,2066, - 1321,2106,2271,165,3572,2038,251,1508,1248,236, - 231,232,343,1779,36,283,3363,36,857,33, - 275,5734,28,31,32,786,742,27,29,1964, - 26,24,51,1965,107,77,78,109,3016,656, - 696,157,243,246,249,252,4038,1659,163,3523, - 1372,2861,327,3347,2456,623,1406,2908,36,857, - 33,2274,5692,28,31,32,786,742,58,29, - 3177,2549,1858,2740,2853,3122,3648,3738,4582,2484, - 36,857,33,2861,5734,28,31,32,786,742, - 27,29,1964,26,24,51,1965,107,77,78, - 109,1972,343,1994,1261,36,453,2011,1993,5649, - 2019,2012,2059,2040,2104,2066,2546,2106,2113,144, - 2461,2495,3620,183,517,145,2129,36,278,3408, - 3151,36,857,33,637,5692,28,31,32,786, - 742,57,29,3046,505,518,2484,36,857,33, - 2861,5734,28,31,32,786,742,27,29,1964, - 26,24,51,1965,107,77,78,109,1972,343, - 1779,36,720,388,2011,1993,1332,2019,2012,2059, - 2040,2104,2066,447,2106,2113,144,2547,503,504, - 2083,517,145,443,3786,442,3408,456,1474,1144, - 45,45,513,677,2861,4293,62,335,36,857, - 33,274,518,42,31,32,786,742,697,1676, - 1770,2593,2151,343,1323,2484,36,857,33,2861, - 5734,28,31,32,786,742,27,29,1964,26, - 24,51,1965,107,77,78,109,1972,343,789, - 3408,288,1285,2011,1993,3040,2019,2012,2059,2040, - 2104,2066,2285,2106,2113,144,2772,2086,2309,513, - 517,145,5704,89,276,3408,103,1779,2495,61, - 1508,446,2207,2233,2523,2501,2327,2133,567,2151, - 2784,518,2815,36,857,33,2861,5734,28,31, - 32,786,742,27,29,1964,26,24,51,1965, - 107,77,78,109,1972,343,1779,36,720,388, - 2011,1993,1406,2019,2012,2059,2040,2104,2066,1502, - 2106,2113,144,222,1261,36,280,517,145,2842, - 1568,498,3408,3620,3270,36,857,33,513,5809, - 28,31,32,786,742,60,29,50,518,2379, - 1403,1261,36,453,47,2362,5649,874,2151,2193, - 63,2880,36,857,33,2516,5734,28,31,32, - 786,742,27,29,1964,26,24,51,1965,107, - 77,78,109,1972,538,535,536,537,1427,2011, - 1993,1540,2019,2012,2059,2040,2104,2066,289,2106, - 2113,144,2600,2379,1232,514,379,145,2361,2549, - 36,857,33,3042,5734,28,31,32,786,742, - 27,29,1964,26,24,51,1965,107,77,78, - 109,1972,429,1779,1273,1189,35,2011,1993,3567, - 2019,2012,2059,2040,2104,2066,447,2106,2113,144, - 1779,36,4120,3232,379,145,2361,2618,36,857, - 33,3545,5734,28,31,32,786,742,27,29, - 1964,26,24,51,1965,107,77,78,109,1972, - 1779,36,294,2488,90,2011,1993,103,2019,2012, - 2059,2040,2104,2066,2624,2106,2113,144,385,1434, - 543,1635,379,145,2361,2750,36,857,33,2760, - 5734,28,31,32,786,742,27,29,1964,26, - 24,51,1965,107,77,78,109,1972,450,2207, - 2233,390,2370,2011,1993,427,2019,2012,2059,2040, - 2104,2066,2943,2106,2113,144,386,1434,2784,1679, - 551,145,1779,36,3668,3270,36,857,33,3171, - 5809,28,31,32,786,742,59,29,3126,36, - 857,33,541,5734,28,31,32,786,742,27, - 29,1964,26,24,51,1965,107,77,78,109, - 1972,303,1228,1373,377,1434,2011,1993,3042,2019, - 2012,2059,2040,2104,2066,1326,2106,2113,144,2849, - 919,294,3090,159,145,3126,36,857,33,1406, - 5734,28,31,32,786,742,27,29,1964,26, - 24,51,1965,107,77,78,109,1972,2849,36, - 294,45,322,2011,1993,5293,2019,2012,2059,2040, - 2104,2066,1406,2106,2113,144,871,2877,3012,3090, - 373,145,3126,36,857,33,719,5734,28,31, - 32,786,742,27,29,1964,26,24,51,1965, - 107,77,78,109,1972,871,3242,553,549,497, - 2011,1993,324,2019,2012,2059,2040,2104,2066,719, - 2106,2113,144,424,36,857,33,373,145,2092, - 31,32,786,742,1433,1770,391,3017,4779,376, - 427,726,963,2549,3126,36,857,33,312,5734, - 28,31,32,786,742,27,29,1964,26,24, - 51,1965,107,77,78,109,1972,1779,36,294, - 726,372,2011,1993,1406,2019,2012,2059,2040,2104, - 2066,1991,2106,2113,144,1779,36,1189,277,373, - 145,2750,36,857,33,2678,5734,28,31,32, - 786,742,27,29,1964,26,24,51,1965,107, - 77,78,109,1972,1779,36,1189,279,371,2011, - 1993,2615,2019,2012,2059,2040,2104,2066,2662,2106, - 2113,144,1779,36,1189,282,551,145,2685,36, - 857,33,374,5734,28,31,32,786,742,27, - 29,1964,26,24,51,1965,107,77,78,109, - 1972,556,3509,1398,36,280,2011,1993,5799,2019, - 2012,2059,2040,2104,2066,2779,2106,2113,144,2577, - 369,421,325,143,145,3126,36,857,33,1935, - 5734,28,31,32,786,742,27,29,1964,26, - 24,51,1965,107,77,78,109,1972,1779,36, - 1189,3661,964,2011,1993,353,2019,2012,2059,2040, - 2104,2066,2086,2106,2113,144,2128,5704,2102,3088, - 156,145,3126,36,857,33,298,5734,28,31, - 32,786,742,27,29,1964,26,24,51,1965, - 107,77,78,109,1972,2939,36,1189,277,2136, - 2011,1993,354,2019,2012,2059,2040,2104,2066,45, - 2106,2113,144,1248,550,1052,3273,155,145,3126, - 36,857,33,1831,5734,28,31,32,786,742, - 27,29,1964,26,24,51,1965,107,77,78, - 109,1972,1779,3699,1189,75,2058,2011,1993,2913, - 2019,2012,2059,2040,2104,2066,2649,2106,2113,144, - 2939,36,1189,3703,154,145,3126,36,857,33, - 2516,5734,28,31,32,786,742,27,29,1964, - 26,24,51,1965,107,77,78,109,1972,1779, - 36,1189,3718,1550,2011,1993,1053,2019,2012,2059, - 2040,2104,2066,45,2106,2113,144,1248,401,401, - 3071,153,145,3126,36,857,33,1406,5734,28, - 31,32,786,742,27,29,1964,26,24,51, - 1965,107,77,78,109,1972,3220,430,607,2984, - 3225,2011,1993,4365,2019,2012,2059,2040,2104,2066, - 607,2106,2113,144,3311,5369,3090,3509,152,145, - 3126,36,857,33,719,5734,28,31,32,786, - 742,27,29,1964,26,24,51,1965,107,77, - 78,109,1972,1553,525,607,560,5528,2011,1993, - 5617,2019,2012,2059,2040,2104,2066,607,2106,2113, - 144,438,5621,3514,1024,151,145,3126,36,857, - 33,1406,5734,28,31,32,786,742,27,29, - 1964,26,24,51,1965,107,77,78,109,1972, - 45,389,522,522,749,2011,1993,1285,2019,2012, - 2059,2040,2104,2066,45,2106,2113,144,950,1779, - 3271,3509,150,145,3126,36,857,33,719,5734, - 28,31,32,786,742,27,29,1964,26,24, - 51,1965,107,77,78,109,1972,45,524,1824, - 2770,816,2011,1993,1549,2019,2012,2059,2040,2104, - 2066,45,2106,2113,144,895,1779,3647,3305,149, - 145,3126,36,857,33,3334,5734,28,31,32, - 786,742,27,29,1964,26,24,51,1965,107, - 77,78,109,1972,565,304,460,45,523,2011, - 1993,2869,2019,2012,2059,2040,2104,2066,45,2106, - 2113,144,3231,1285,1278,3568,148,145,3126,36, - 857,33,1929,5734,28,31,32,786,742,27, - 29,1964,26,24,51,1965,107,77,78,109, - 1972,45,94,2444,45,4335,2011,1993,4399,2019, - 2012,2059,2040,2104,2066,607,2106,2113,144,2981, - 5635,775,1945,147,145,3126,36,857,33,1220, - 5734,28,31,32,786,742,27,29,1964,26, - 24,51,1965,107,77,78,109,1972,45,2334, - 3007,45,790,2011,1993,2525,2019,2012,2059,2040, - 2104,2066,459,2106,2113,144,2877,2914,3090,330, - 146,145,3126,36,857,33,1697,5734,28,31, - 32,786,742,27,29,1964,26,24,51,1965, - 107,77,78,109,1972,45,554,558,378,1093, - 2011,1993,2784,2019,2012,2059,2040,2104,2066,45, - 2106,2113,144,1278,1704,1290,2180,160,145,3126, - 36,857,33,2188,5734,28,31,32,786,742, - 27,29,1964,26,24,51,1965,107,77,78, - 109,1972,2219,36,396,300,2784,2011,1993,2848, - 2019,2012,2059,2040,2104,2066,1658,2106,2113,144, - 3090,2592,74,3090,141,145,3245,36,857,33, - 2289,5734,28,31,32,786,742,27,29,1964, - 26,24,51,1965,107,77,78,109,1972,561, - 2921,607,404,570,2011,1993,5794,2019,2012,2059, - 2040,2104,2066,45,2106,2113,144,2897,2129,36, - 281,190,145,3363,36,857,33,2776,5734,28, - 31,32,786,742,27,29,1964,26,24,51, - 1965,107,77,78,109,1972,1779,36,720,388, - 71,2011,1993,2777,2019,2012,2059,2040,2104,2066, - 555,2106,2271,165,3363,36,857,33,2628,5734, - 28,31,32,786,742,27,29,1964,26,24, - 51,1965,107,77,78,109,1972,452,3280,1337, - 1492,2544,2011,1993,1285,2019,2012,2059,2040,2104, - 2066,323,2106,2271,165,424,36,857,33,1523, - 531,41,31,32,786,742,2610,3363,36,857, - 33,423,5734,28,31,32,786,742,27,29, - 1964,26,24,51,1965,107,77,78,109,1972, - 539,535,536,537,381,2011,1993,3216,2019,2012, - 2059,2040,2104,2066,3090,2106,2271,165,3363,36, - 857,33,293,5734,28,31,32,786,742,27, - 29,1964,26,24,51,1965,107,77,78,109, - 1972,45,3217,326,540,2815,2011,1993,3042,2019, - 2012,2059,2040,2104,2066,785,2106,2271,165,424, - 36,857,33,3010,3085,3260,31,32,786,742, - 1855,3363,36,857,33,3645,5734,28,31,32, - 786,742,27,29,1964,26,24,51,1965,107, - 77,78,109,1972,539,535,536,537,792,2011, - 1993,3697,2019,2012,2059,2040,2104,2066,3370,2106, - 2271,165,3422,36,857,33,422,5734,28,31, - 32,786,742,27,29,1964,26,24,51,1965, - 107,77,78,109,1972,1779,36,720,388,340, - 2011,1993,3090,2019,2012,2059,2040,2104,2066,2174, - 2106,2271,165,1268,36,857,33,5436,5607,28, - 31,32,786,742,339,29,393,45,74,425, - 427,1248,559,152,3509,2109,431,538,535,536, - 537,3451,1313,36,2762,33,5436,5607,28,31, - 32,786,742,339,29,4300,3251,538,535,536, - 537,5708,1494,3509,157,3066,538,535,536,537, - 3555,2872,319,1455,321,3091,314,1285,1071,2133, - 3090,986,332,1040,3102,3329,36,857,33,3452, - 5809,28,31,32,786,742,27,29,2282,511, - 45,319,1455,321,2368,314,1285,1071,297,4124, - 5176,332,1338,3363,36,857,33,2784,5734,28, - 31,32,786,742,27,29,1964,26,24,51, - 1965,107,77,78,109,1972,2825,285,4124,45, - 241,2011,1993,2884,3072,306,310,1212,2354,45, - 2085,2285,1502,1728,2296,45,43,2160,3280,1041, - 299,4416,419,2706,539,535,536,537,2372,960, - 328,335,1779,36,720,388,3363,36,857,33, - 1068,5734,28,31,32,786,742,27,29,1964, - 26,24,51,1965,107,77,78,109,1972,2392, - 380,2219,36,396,2011,1993,1369,2019,2012,2059, - 2040,2104,2066,274,3387,1287,3363,36,857,33, - 2285,5734,28,31,32,786,742,27,29,1964, - 26,24,51,1965,107,77,78,109,1972,538, - 535,536,537,2857,2011,1993,3275,2019,2012,2059, - 2040,2104,3316,3363,36,857,33,3091,5734,28, - 31,32,786,742,27,29,1964,26,24,51, - 1965,107,77,78,109,1972,340,2984,2285,2680, - 1694,2011,1993,5331,2019,2012,2059,2040,3304,1838, - 36,857,33,240,5607,28,31,32,786,742, - 339,29,2684,508,573,535,536,537,1013,351, - 2905,3697,3454,538,535,536,537,2659,3558,3575, - 2399,36,278,2219,36,1586,2675,539,535,536, - 537,5048,2099,542,1635,2091,36,857,33,5436, - 3601,28,31,32,786,742,339,29,319,1455, - 321,233,315,1285,1071,3509,1285,3090,333,538, - 535,536,537,2009,50,3066,352,1599,36,720, - 388,1037,1130,241,231,232,352,4468,344,1535, - 1488,349,1779,36,720,388,3064,25,346,1535, - 1488,349,1709,1425,319,1455,321,2783,314,1285, - 1290,3481,36,720,388,1040,2827,3528,50,2202, - 1658,1248,1285,2861,238,1037,1030,573,535,536, - 537,3576,1549,50,3042,573,535,536,537,382, - 1037,796,3177,3066,523,840,2825,2461,2495,2493, - 402,2264,274,45,161,5250,3066,2893,2643,36, - 857,33,5518,3601,28,31,32,786,742,339, - 29,45,564,3389,233,2906,1232,306,310,1212, - 334,335,233,2272,36,857,33,5436,3601,28, - 31,32,786,742,339,29,245,231,232,45, - 3027,3636,1589,4318,236,231,232,538,535,536, - 537,52,1068,1786,2825,275,360,319,1455,321, - 3124,314,1285,986,3090,4468,3509,2825,526,2219, - 36,396,2150,2375,2383,72,1658,243,246,249, - 252,4038,319,1455,321,352,314,1285,330,335, - 623,1687,392,1040,571,356,427,344,1535,1488, - 349,3249,335,1910,531,527,2781,3388,2740,2853, - 3122,3648,3738,4582,3363,36,857,33,288,5734, - 28,31,32,786,742,27,29,1964,26,24, - 51,1965,107,77,78,109,1972,545,45,2160, - 286,2813,2011,1993,3066,2019,2012,2059,3307,45, - 2976,2976,2501,3964,3090,307,310,1212,3363,36, - 857,33,2126,5734,28,31,32,786,742,27, - 29,1964,26,24,51,1965,107,77,78,109, - 1972,686,2312,3066,350,3728,2011,1993,3041,2019, - 2012,3168,1662,36,2762,33,5436,3601,28,31, - 32,786,742,339,29,539,535,536,537,3072, - 3090,355,1512,3090,3090,2825,3535,535,536,537, - 531,2472,36,2762,33,5436,3601,28,31,32, - 786,742,339,29,3202,3090,573,535,536,537, - 70,2489,3074,69,54,538,535,536,537,3389, - 335,319,1455,321,2825,314,1285,3090,419,607, - 3090,3013,1338,3202,5721,88,2784,2114,36,857, - 33,5518,3601,28,31,32,786,742,339,29, - 319,1455,321,233,314,1285,2784,53,3542,335, - 451,1338,2577,36,2762,33,5436,3601,28,31, - 32,786,742,339,29,248,231,232,3090,180, - 45,4680,419,2706,2268,3090,3535,535,536,537, - 2784,1659,152,2125,3393,2861,319,1455,321,199, - 314,1285,45,1042,3202,2152,1729,2614,3313,45, - 4693,419,2706,2146,3177,91,538,535,536,537, - 2784,319,1455,321,352,314,1285,539,535,536, - 537,2784,1338,198,3091,2784,344,1535,1488,349, - 3363,36,857,33,2558,5734,28,31,32,786, - 742,27,29,1964,26,24,51,1965,107,77, - 78,109,1972,406,2810,607,1285,3395,2011,1993, - 5725,2019,3233,45,202,45,2185,3054,200,2795, - 3090,4680,419,2706,3363,36,857,33,505,5734, - 28,31,32,786,742,27,29,1964,26,24, - 51,1965,107,77,78,109,1972,268,3527,2560, - 3371,586,2011,1993,953,2019,3234,1993,36,857, - 33,2473,3601,28,31,32,786,742,339,29, - 229,45,502,504,366,3093,3090,3090,538,535, - 536,537,45,3090,157,3090,2618,2574,3570,45, - 181,3176,2908,2870,719,98,2763,3577,204,216, - 3357,203,213,214,215,217,3382,3813,2775,572, - 3578,2384,5482,3858,170,3903,316,888,321,2289, - 169,90,184,168,171,172,173,174,175,2450, - 36,857,33,5338,3601,28,31,32,786,742, - 339,29,2711,36,857,33,5436,3601,28,31, - 32,786,742,339,29,3363,36,857,33,351, - 5734,28,31,32,786,742,27,29,1964,26, - 24,51,1965,107,77,78,109,1972,3489,1779, - 36,720,388,2011,1993,3583,3092,3592,319,1455, - 321,3090,314,1285,3574,352,1,3090,2861,1292, - 586,319,1455,321,3090,314,1285,344,1535,1488, - 349,3090,1292,2784,3447,342,352,343,2861,229, - 434,68,2980,3598,530,869,1248,67,344,1535, - 1488,349,3090,157,66,2382,3064,343,3496,181, - 3176,65,45,719,3408,3587,2986,204,216,3357, - 203,213,214,215,217,1285,674,3603,572,157, - 533,3604,1737,170,1803,201,3275,1406,3608,169, - 182,185,168,171,172,173,174,175,3363,36, - 857,33,3612,5734,28,31,32,786,742,27, - 29,1964,26,24,51,1965,107,77,78,109, - 1972,1599,36,720,388,3090,2011,1993,3613,3098, - 3363,36,857,33,719,5734,28,31,32,786, - 742,27,29,1964,26,24,51,1965,107,77, - 78,109,1972,357,376,1831,2784,586,2011,1993, - 1803,3119,50,179,99,3581,3092,3169,1907,1037, - 860,1779,36,720,388,3453,229,780,36,720, - 388,3614,2784,3090,539,535,536,537,3618,2632, - 157,3310,573,535,536,537,181,3176,446,223, - 719,3619,586,2679,204,216,3357,203,213,214, - 215,217,433,56,3090,572,3090,3399,274,3593, - 170,229,3220,3624,3807,194,169,3588,3646,168, - 171,172,173,174,175,157,3529,3626,3631,233, - 1705,181,3176,535,55,719,3662,586,3594,204, - 216,3357,203,213,214,215,217,2609,2003,6443, - 572,251,231,232,6443,170,229,1779,36,720, - 388,169,6443,179,168,171,172,173,174,175, - 157,3671,573,535,536,537,181,3176,624,3528, - 719,6443,586,1248,204,216,3357,203,213,214, - 215,217,73,6443,3090,572,3090,6443,432,6443, - 170,229,6443,6443,6443,6443,169,6443,177,168, - 171,172,173,174,175,157,161,3390,6443,233, - 6443,181,3176,713,102,719,3993,586,6443,204, - 216,3357,203,213,214,215,217,3015,6443,6443, - 572,254,231,232,6443,170,229,529,6443,6443, - 6443,169,6443,178,168,171,172,173,174,175, - 157,539,535,536,537,6443,181,3176,802,3528, - 719,6443,586,1248,204,216,3357,203,213,214, - 215,217,3167,6443,6443,572,6443,6443,6443,6443, - 170,229,6443,6443,6443,6443,169,6443,188,168, - 171,172,173,174,175,157,161,6443,6443,6443, - 6443,181,3176,891,3528,719,6443,586,1248,204, - 216,3357,203,213,214,215,217,6443,6443,2107, - 572,6443,6443,2861,6443,170,229,6443,6443,6443, - 6443,169,6443,3720,168,171,172,173,174,175, - 157,161,343,6443,6443,6443,181,3176,980,3528, - 719,6443,586,1248,204,216,3357,203,213,214, - 215,217,3170,6443,2202,572,6443,6443,2861,3388, - 170,229,6443,6443,6443,6443,169,6443,193,168, - 171,172,173,174,175,157,161,3177,6443,6443, - 6443,181,3176,1069,1615,719,6443,586,2861,204, - 216,3357,203,213,214,215,217,3663,6443,45, - 572,6443,6443,2861,6443,170,229,3177,6443,6443, - 6443,169,6443,187,168,171,172,173,174,175, - 157,1741,343,6443,6443,2861,181,3176,1524,6443, - 719,6443,6443,6443,204,216,3357,203,213,214, - 215,217,3694,3528,229,572,6443,1248,6443,3408, - 170,360,538,535,536,537,169,6443,195,168, - 171,172,173,174,175,2778,6443,3320,2375,2383, - 2296,6443,206,216,3357,205,213,214,215,217, - 161,361,6443,572,3210,36,857,33,5436,3601, - 28,31,32,786,742,339,29,6443,6443,6443, - 6443,6443,6443,207,209,211,295,296,6443,616, - 1382,218,208,210,1300,36,857,33,3605,5607, - 28,31,32,786,742,339,29,6443,6443,6443, - 13,6443,4690,6443,538,535,536,537,538,535, - 536,537,6443,319,1455,321,3784,314,1285,6443, - 6443,45,3091,2980,3707,1248,2763,586,6443,6443, - 1300,36,857,33,6443,5607,28,31,32,786, - 742,339,29,319,1455,321,3315,317,1285,1071, - 6443,6443,6443,333,538,535,536,537,157,6443, - 157,1805,6443,6443,6443,3348,181,3176,6443,6443, - 6443,6443,5048,6443,6443,6443,6443,609,6443,6443, - 6443,6443,6443,6443,6443,6443,6443,6443,6443,319, - 1455,321,6443,315,1285,1071,196,2599,2783,333, - 3363,36,857,33,6443,5734,28,31,32,786, - 742,27,29,1964,26,24,51,1965,107,77, - 78,109,1972,6443,6443,6443,6443,6443,2011,3151, - 3363,36,857,33,6443,5734,28,31,32,786, - 742,27,29,1964,26,24,51,1965,107,77, - 78,109,1972,1955,6443,6443,6443,2861,2011,3152, - 1571,36,857,33,5436,3601,28,31,32,786, - 742,339,29,6443,6443,6443,229,6443,1906,6443, - 6443,6443,2861,6443,539,535,536,537,6443,6443, - 45,6443,6443,6443,2861,2045,6443,6443,6443,2861, - 6443,3177,6443,6443,206,216,3357,205,213,214, - 215,217,6443,343,6443,572,5420,197,229,319, - 1455,321,6443,314,1285,1835,36,720,388,6443, - 4405,6443,6443,6443,6443,207,209,211,295,296, - 3408,616,6443,218,208,210,206,216,3357,205, - 213,214,215,217,6443,6443,2779,572,6443,2135, - 6443,6443,1522,2861,4690,597,50,6443,6443,6443, - 6443,6443,6443,1037,48,505,1131,207,209,211, - 295,296,229,616,6443,218,208,210,6443,538, - 535,536,537,1160,6443,6443,6443,6443,6443,6443, - 538,535,536,537,1871,6443,4690,3243,6443,6443, - 206,216,3357,205,213,214,215,217,3640,502, - 504,572,6443,1779,36,720,388,6443,2272,36, - 857,33,5436,3601,28,31,32,786,742,339, - 29,207,209,211,295,296,6443,616,6443,218, - 208,210,539,535,536,537,6443,6443,3655,6443, - 6443,6443,6443,6443,50,6443,6443,6443,2494,6443, - 4690,1037,3354,6443,6443,6443,6443,6443,6443,6443, - 6443,6443,6443,6443,6443,6443,6443,319,1455,321, - 6443,314,1285,6443,3363,36,857,33,4405,5734, - 28,31,32,786,742,27,29,1964,26,24, - 51,1965,107,77,78,109,1972,6443,3363,36, - 857,33,3001,5734,28,31,32,786,742,27, - 29,1964,26,24,51,1965,107,77,78,109, - 1972,6443,3530,36,720,388,3013,2827,6443,6443, - 6443,6443,6443,6443,6443,239,6443,6443,6443,6443, - 6443,6443,6443,6443,6443,6443,573,535,536,537, - 6443,6443,6443,6443,6443,6443,6443,6443,6443,3363, - 36,857,33,274,5734,28,31,32,786,742, - 27,29,1964,26,24,51,1965,107,77,78, - 109,3051,6443,1779,36,720,388,6443,6443,3363, - 36,857,33,233,5734,28,31,32,786,742, - 27,29,1964,26,24,51,1965,107,77,78, - 109,3060,6443,6443,1865,237,231,232,2861,45, - 1946,6443,6443,1248,50,6443,275,6443,6443,6443, - 1617,1037,957,2019,2861,6443,45,229,6443,6443, - 1248,6443,6443,6443,538,535,536,537,244,247, - 250,253,4038,229,6443,6443,157,538,535,536, - 537,623,3827,3491,6443,206,216,3357,205,213, - 214,215,217,157,6443,3640,572,6443,6443,6443, - 3497,206,216,3357,205,213,214,215,217,6443, - 6443,45,572,6443,6443,1248,207,209,211,295, - 296,6443,616,2225,519,208,210,2861,6443,6443, - 6443,6443,207,209,211,295,296,6443,616,2315, - 219,208,210,2861,6443,2972,229,6443,157,6443, - 45,6443,6443,6443,2861,3504,6443,6443,6443,6443, - 6443,6443,229,6443,6443,6443,6443,6443,6443,538, - 535,536,537,343,206,216,3357,205,213,214, - 215,217,45,6443,6443,572,1248,2763,6443,6443, - 206,216,3357,205,213,214,215,217,6443,6443, - 3408,572,6443,6443,6443,207,209,211,295,296, - 2289,616,6443,520,208,210,2881,2285,6443,157, - 6443,207,209,211,295,296,3511,616,6443,305, - 208,210,3363,36,857,33,6443,5734,28,31, - 32,786,742,27,29,1964,26,24,51,1965, - 107,77,78,86,3363,1273,857,2522,6443,5734, - 28,31,32,786,742,27,29,1964,26,24, - 51,1965,107,77,78,85,3363,36,857,33, - 6443,5734,28,31,32,786,742,27,29,1964, - 26,24,51,1965,107,77,78,84,3363,36, - 857,33,6443,5734,28,31,32,786,742,27, - 29,1964,26,24,51,1965,107,77,78,83, - 3363,36,857,33,6443,5734,28,31,32,786, - 742,27,29,1964,26,24,51,1965,107,77, - 78,82,3363,36,857,33,6443,5734,28,31, - 32,786,742,27,29,1964,26,24,51,1965, - 107,77,78,81,3363,36,857,33,6443,5734, - 28,31,32,786,742,27,29,1964,26,24, - 51,1965,107,77,78,80,3363,36,857,33, - 6443,5734,28,31,32,786,742,27,29,1964, - 26,24,51,1965,107,77,78,79,2360,36, - 857,33,6443,3601,28,31,32,786,742,339, - 29,45,45,6443,6443,1248,1248,6443,6443,6443, - 6443,6443,539,535,536,537,3185,36,857,33, - 6443,5734,28,31,32,786,742,27,29,1964, - 26,24,51,1965,107,77,78,105,157,157, - 6443,6443,6443,6443,6443,3306,3696,319,1455,321, - 6443,584,1285,3363,36,857,33,6443,5734,28, - 31,32,786,742,27,29,1964,26,24,51, - 1965,107,77,78,111,3363,36,857,33,6443, - 5734,28,31,32,786,742,27,29,1964,26, - 24,51,1965,107,77,78,110,2405,6443,6443, - 6443,2861,1824,36,857,33,2502,3601,28,31, - 32,786,742,339,29,6443,3363,36,857,33, - 229,5734,28,31,32,786,742,27,29,1964, - 26,24,51,1965,107,77,78,108,6443,6443, - 6443,6443,6443,6443,1732,403,6443,6443,206,216, - 3357,205,213,214,215,217,6443,6443,6443,572, - 6443,316,888,321,6443,6443,6443,6443,538,535, - 536,537,6443,6443,6443,6443,6443,6443,6443,207, - 209,211,295,296,6443,616,2390,499,208,210, - 3363,36,857,33,6443,5734,28,31,32,786, - 742,27,29,1964,26,24,51,1965,107,77, - 78,106,3304,36,857,33,6443,5734,28,31, - 32,786,742,27,29,1964,26,24,51,1965, - 87,77,78,1223,6443,6443,6443,2861,4643,6443, - 1331,6443,6443,6443,2861,4643,6443,6443,6443,6443, - 6443,6443,6443,6443,6443,6443,229,6443,6443,6443, - 6443,6443,6443,229,45,6443,6443,6443,2861,6443, - 869,2203,6443,6443,6443,2861,4463,6443,2203,6443, - 6443,6443,2861,4463,2139,407,5162,343,6443,6443, - 6443,2139,407,5162,3177,538,535,536,537,6443, - 6443,3177,538,535,536,537,6443,1817,6443,2011, - 36,720,388,2763,3408,408,409,410,295,296, - 2763,616,408,409,410,295,296,6443,616,2509, - 509,6443,6443,6443,4463,6443,1071,6443,6443,628, - 332,1643,6443,1071,6443,6443,6443,332,1643,6443, - 50,6443,6443,538,535,536,537,1037,48,45, - 3569,6443,6443,2861,586,6443,6443,5389,360,6443, - 6443,2763,6443,6443,2749,360,1911,1383,6443,6443, - 6443,4463,343,343,3218,2375,2383,6443,6443,6443, - 6443,3218,2375,2383,1071,6443,6443,157,333,6443, - 538,535,536,537,189,6443,411,413,6443,3408, - 4094,6443,1911,411,414,6443,352,4463,2763,6443, - 6443,6443,1911,6443,6443,507,6443,4463,346,1535, - 1488,349,1777,6443,6443,5300,538,535,536,537, - 6443,1071,6443,6443,6443,332,538,535,536,537, - 6443,45,6443,6443,2763,2861,45,6443,1911,6443, - 2861,6443,6443,4463,2763,6443,6443,6443,1911,6443, - 191,6443,4170,4463,343,6443,45,1071,6443,343, - 586,332,538,535,536,537,6443,1071,6443,6443, - 6443,332,538,535,536,537,6443,6443,6443,343, - 2763,3408,6443,6443,1684,6443,3408,6443,5574,4463, - 2763,6443,6443,157,1509,6443,6443,3376,5389,4463, - 2817,6443,534,1071,6443,6443,3408,332,538,535, - 536,537,6443,1071,6443,6443,6443,5564,538,535, - 536,537,2540,6443,6443,6443,2763,1599,36,720, - 388,6443,3513,6443,2749,6443,2763,2011,36,720, - 388,1599,36,720,388,6443,6443,6443,6443,1071, - 6443,6443,6443,5564,6443,2395,36,720,388,1071, - 6443,6443,6443,333,6443,6443,6443,6443,50,1599, - 36,720,388,6443,6443,1037,4785,6443,50,6443, - 6443,6443,50,6443,6443,1037,48,6443,6443,1037, - 48,2716,36,720,388,2632,50,6443,6443,6443, - 95,6443,6443,1037,48,2198,6443,6443,6443,683, - 50,6443,2011,36,720,388,6443,1037,48,6443, - 6443,6443,6443,1427,1599,36,720,388,1599,36, - 720,388,50,6443,6443,6443,97,2226,6443,1037, - 2608,1599,36,720,388,1599,36,720,388,6443, - 6443,6443,6443,50,1408,36,720,388,6443,840, - 1037,2666,45,6443,6443,50,586,6443,6443,50, - 6443,6443,1037,48,45,6443,1037,48,586,6443, - 3657,6443,50,6443,6443,343,50,6443,6443,1037, - 48,6443,2455,1037,48,50,3479,343,6443,157, - 45,6443,1037,2539,586,6443,3123,6443,6443,3651, - 6443,157,3408,3747,1779,36,720,388,2817,1779, - 36,720,388,343,3408,6443,6443,6443,3120,1779, - 36,720,388,6443,6443,45,6443,157,45,586, - 3145,6443,586,6443,189,6443,6443,6443,6443,6443, - 4094,6443,6443,6443,6443,50,6443,6443,343,6443, - 50,343,1037,938,6443,6443,6443,1037,2780,6443, - 50,6443,157,6443,6443,157,6443,1037,2539,189, - 6443,6443,189,6443,6443,4094,6443,6443,4094,6443, - 6443,6443,6443,6443,6443,6443,6443,6443,6443,6443, - 6443,6443,6443,6443,6443,6443,6443,6443,6443,6443, - 3377,6443,6443,6443,6443,6443,6443,6443,6443,6443, - 6443,6443,6443,6443,6443,6443,6443,6443,6443,6443, - 6443,6443,6443,6443,6443,6443,6443,6443,6443,6443, - 6443,6443,6443,6443,6443,3383,6443,6443,3385,6443, - 0,1,230,590,0,501,4674,0,1,230, - 0,40,6458,0,40,6457,0,1,3442,0, - 877,1,0,40,1,6458,0,40,1,6457, - 0,1,659,0,1,1113,0,230,220,0, - 658,224,0,676,224,0,710,224,0,658, - 225,0,676,225,0,710,225,0,658,226, - 0,676,226,0,710,226,0,710,394,0, - 676,394,0,658,394,0,284,394,0,658, - 227,0,676,227,0,710,227,0,284,287, - 0,658,228,0,676,228,0,710,228,0, - 6678,242,0,6677,242,0,658,242,0,676, - 242,0,710,242,0,6781,242,0,6780,242, - 0,6705,242,0,6704,242,0,6703,242,0, - 6702,242,0,6701,242,0,6700,242,0,6699, - 242,0,6698,242,0,6716,242,0,6715,242, - 0,6714,242,0,6713,242,0,6712,242,0, - 6711,242,0,6710,242,0,6709,242,0,6708, - 242,0,6707,242,0,6706,242,0,40,242, - 6458,0,40,242,6457,0,6482,242,0,1850, - 387,0,6458,49,0,6457,49,0,1,710, - 0,1,676,0,1,658,0,1,331,0, - 39,1113,0,39,6458,0,39,6457,0,454, - 1897,0,440,1911,0,1850,30,0,6455,1, - 0,710,581,0,676,581,0,658,581,0, - 585,581,0,585,580,0,1947,318,0,1, - 583,0,1,444,0,458,1857,0,457,1963, - 0,36,34,0,48,38,0,230,221,0, - 501,1669,0,6482,1,230,0,40,1,230, - 0,230,416,0,1,2181,0,1,6716,0, - 1,6715,0,1,6714,0,1,6713,0,1, - 6712,0,1,6711,0,1,6710,0,1,6709, - 0,1,6708,0,1,6707,0,1,6706,0, - 6458,38,0,6457,38,0,44,6480,0,44, - 38,0,6455,383,0,6454,383,0,1,2132, - 0,1,2661,0,6453,405,0,6452,405,0, - 230,415,0,3578,127,0,6451,1,0,710, - 445,0,676,445,0,658,445,0,331,445, - 0,6449,1,0,6448,1,0,1723,92,0, - 33,35,0,40,1113,0,6480,46,0,38, - 46,0,1,230,3410,0,6452,230,0,3421, - 230,0,6482,1,0,40,1,0,238,2867, - 0,388,33,0,387,30,0,3578,129,0, - 3578,128,0,3643,230,0,10,12,0,710, - 578,0,676,578,0,658,578,0,710,577, - 0,676,577,0,658,577,0,538,539,0, - 1,93,0,8,10,12,0,710,578,579, - 0,676,578,579,0,658,578,579,0,578, - 579,0,6458,2,38,0,6457,2,38,0, - 6458,37,0,6457,37,0,3716,383,0,710, - 96,0,676,96,0,658,96,0,331,96, - 0,36,74,0,8,12,0,279,3904,0, - 186,3948,0 + 208,208,208,208,208,208,208,208,82,88, + 88,180,180,141,141,142,142,142,142,142, + 142,3,143,143,140,140,123,123,91,83, + 81,171,171,124,124,209,209,209,144,144, + 135,135,210,210,24,24,24,42,42,25, + 25,211,211,181,181,181,182,182,212,212, + 183,183,26,26,213,213,184,184,184,27, + 62,214,214,215,215,185,185,185,145,145, + 145,18,18,18,18,56,93,134,134,134, + 119,119,119,195,200,117,66,70,163,1171, + 35,2983,2960,1401,5626,27,30,31,1022,1015, + 26,28,2927,25,23,50,1903,106,76,77, + 108,3139,1909,576,534,535,536,1990,1401,1948, + 2003,1997,2057,2056,2080,2133,2091,2178,2185,143, + 273,1865,1141,293,158,144,2916,35,1045,32, + 1943,1680,27,30,31,1022,1015,26,28,1870, + 25,23,50,1903,106,76,77,108,3205,1909, + 232,2478,3747,1155,1990,2870,1948,2003,1997,2057, + 2056,2239,2133,2091,2178,2388,164,1313,1386,1891, + 35,395,235,230,231,538,534,535,536,3459, + 35,1045,32,274,1680,27,30,31,1022,1015, + 26,28,1870,25,23,50,1903,106,76,77, + 108,323,3008,2239,1375,242,245,248,251,3627, + 1424,1688,35,279,2950,326,1289,1154,593,164, + 1675,35,1045,32,2136,3437,27,30,31,1022, + 1015,59,28,618,2680,297,3269,3061,3065,3281, + 3341,4717,2446,35,1045,32,2863,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,108,342,1909,1688,35,452,254, + 1990,5604,1948,2003,1997,2057,2056,388,2133,2091, + 2178,2185,143,2361,2597,2773,1757,516,144,1812, + 4254,3812,35,1045,32,704,5636,27,30,31, + 1022,1015,57,28,420,517,2446,35,1045,32, + 2863,1680,27,30,31,1022,1015,26,28,1870, + 25,23,50,1903,106,76,77,108,342,1909, + 705,2122,64,921,1990,2863,1948,2003,1997,2057, + 2056,1432,2133,2091,2178,2185,143,1494,1439,1385, + 34,516,144,3213,4254,442,537,534,535,536, + 1475,1392,2980,35,277,512,1865,35,293,517, + 339,35,1045,32,2360,1432,41,30,31,1022, + 1015,614,1674,1865,1336,2198,3594,2446,35,1045, + 32,2863,1680,27,30,31,1022,1015,26,28, + 1870,25,23,50,1903,106,76,77,108,342, + 1909,614,1778,1386,287,1990,4093,1948,2003,1997, + 2057,2056,3256,2133,2091,2178,2185,143,360,512, + 2894,729,516,144,2086,4254,538,534,535,536, + 61,1494,2597,445,2321,2332,2416,2780,2658,2198, + 517,2782,35,1045,32,2863,1680,27,30,31, + 1022,1015,26,28,1870,25,23,50,1903,106, + 76,77,108,342,1909,74,1816,604,618,1990, + 1038,1948,2003,1997,2057,2056,1527,2133,2091,2178, + 2185,143,1891,35,395,3499,516,144,1374,4254, + 5640,537,534,535,536,1663,1401,1699,1475,2431, + 512,2863,1799,3338,517,429,35,1045,32,2818, + 1527,2496,30,31,1022,1015,563,2426,1265,3213, + 2198,2848,35,1045,32,1980,1680,27,30,31, + 1022,1015,26,28,1870,25,23,50,1903,106, + 76,77,108,1019,1909,3134,1896,322,884,1990, + 564,1948,2003,1997,2057,2056,530,2133,2091,2178, + 2185,143,288,3634,513,2053,378,144,3058,2512, + 35,1045,32,182,1680,27,30,31,1022,1015, + 26,28,1870,25,23,50,1903,106,76,77, + 108,3161,1909,2517,359,2863,2073,1990,2774,1948, + 2003,1997,2057,2056,527,2133,2091,2178,2185,143, + 2535,2495,2501,342,378,144,3058,2582,35,1045, + 32,344,1680,27,30,31,1022,1015,26,28, + 1870,25,23,50,1903,106,76,77,108,658, + 1909,614,1798,3470,2407,1990,4526,1948,2003,1997, + 2057,2056,324,2133,2091,2178,2185,143,384,1455, + 428,311,378,144,3058,2716,35,1045,32,1974, + 1680,27,30,31,1022,1015,26,28,1870,25, + 23,50,1903,106,76,77,108,1426,1909,3513, + 1494,35,293,1990,446,1948,2003,1997,2057,2056, + 1265,2133,2091,2178,2185,143,385,1455,1392,794, + 550,144,1494,35,282,3822,35,1045,32,3409, + 5636,27,30,31,1022,1015,56,28,2975,35, + 1045,32,3508,1680,27,30,31,1022,1015,26, + 28,1870,25,23,50,1903,106,76,77,108, + 437,1909,221,1801,376,1455,1990,4885,1948,2003, + 1997,2057,2056,1512,2133,2091,2178,2185,143,1494, + 35,1008,387,158,144,2975,35,1045,32,1401, + 1680,27,30,31,1022,1015,26,28,1870,25, + 23,50,1903,106,76,77,108,441,1909,455, + 2782,1942,2415,1990,1401,1948,2003,1997,2057,2056, + 49,2133,2091,2178,2185,143,1401,2356,1229,2523, + 372,144,2975,35,1045,32,1019,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,108,614,1909,524,3401,548,4597, + 1990,1019,1948,2003,1997,2057,2056,2581,2133,2091, + 2178,2185,143,3028,60,2346,60,372,144,1661, + 4421,523,429,35,1045,32,446,3477,40,30, + 31,1022,1015,2680,2975,35,1045,32,1697,1680, + 27,30,31,1022,1015,26,28,1870,25,23, + 50,1903,106,76,77,108,1401,1909,1721,35, + 279,371,1990,2009,1948,2003,1997,2057,2056,1388, + 2133,2091,2178,2185,143,1494,35,1008,387,372, + 144,2716,35,1045,32,1401,1680,27,30,31, + 1022,1015,26,28,1870,25,23,50,1903,106, + 76,77,108,1019,1909,1494,35,3657,370,1990, + 3140,1948,2003,1997,2057,2056,49,2133,2091,2178, + 2185,143,885,375,1229,2494,550,144,2650,35, + 1045,32,3298,1680,27,30,31,1022,1015,26, + 28,1870,25,23,50,1903,106,76,77,108, + 2055,1909,1494,35,4536,4194,1990,2081,1948,2003, + 1997,2057,2056,974,2133,2091,2178,2185,143,2360, + 368,1494,3726,142,144,2975,35,1045,32,540, + 1680,27,30,31,1022,1015,26,28,1870,25, + 23,50,1903,106,76,77,108,352,1909,1494, + 35,1385,276,1990,921,1948,2003,1997,2057,2056, + 2059,2133,2091,2178,2185,143,1494,35,1008,387, + 155,144,2975,35,1045,32,373,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,108,2158,1909,1494,35,1385,278, + 1990,975,1948,2003,1997,2057,2056,49,2133,2091, + 2178,2185,143,2435,549,1229,1737,154,144,2975, + 35,1045,32,321,1680,27,30,31,1022,1015, + 26,28,1870,25,23,50,1903,106,76,77, + 108,1401,1909,1494,35,1385,281,1990,2660,1948, + 2003,1997,2057,2056,617,2133,2091,2178,2185,143, + 1545,35,1008,387,153,144,2975,35,1045,32, + 75,1680,27,30,31,1022,1015,26,28,1870, + 25,23,50,1903,106,76,77,108,1019,1909, + 1494,35,293,1268,1990,1064,1948,2003,1997,2057, + 2056,49,2133,2091,2178,2185,143,2780,375,1229, + 2160,152,144,2975,35,1045,32,2338,1680,27, + 30,31,1022,1015,26,28,1870,25,23,50, + 1903,106,76,77,108,2158,1909,1494,35,1385, + 3656,1990,1268,1948,2003,1997,2057,2056,2817,2133, + 2091,2178,2185,143,1494,35,1008,387,151,144, + 2975,35,1045,32,496,1680,27,30,31,1022, + 1015,26,28,1870,25,23,50,1903,106,76, + 77,108,497,1909,2709,35,1385,276,1990,2285, + 1948,2003,1997,2057,2056,49,2133,2091,2178,2185, + 143,2844,3226,1229,724,150,144,2975,35,1045, + 32,3297,1680,27,30,31,1022,1015,26,28, + 1870,25,23,50,1903,106,76,77,108,1699, + 1909,459,3785,2863,2846,1990,3927,1948,2003,1997, + 2057,2056,380,2133,2091,2178,2185,143,1494,3637, + 1065,3213,149,144,2975,35,1045,32,2437,1680, + 27,30,31,1022,1015,26,28,1870,25,23, + 50,1903,106,76,77,108,2476,1909,1494,3730, + 1385,74,1990,3692,1948,2003,1997,2057,2056,1140, + 2133,2091,2178,2185,143,789,35,1008,387,148, + 144,2975,35,1045,32,2558,1680,27,30,31, + 1022,1015,26,28,1870,25,23,50,1903,106, + 76,77,108,60,1909,614,359,5421,1790,1990, + 5584,1948,2003,1997,2057,2056,273,2133,2091,2178, + 2185,143,3786,2495,2501,353,147,144,2975,35, + 1045,32,3425,1680,27,30,31,1022,1015,26, + 28,1870,25,23,50,1903,106,76,77,108, + 784,1909,2709,35,1385,3732,1990,2408,1948,2003, + 1997,2057,2056,2226,2133,2091,2178,2185,143,1494, + 35,1008,387,146,144,2975,35,1045,32,3672, + 1680,27,30,31,1022,1015,26,28,1870,25, + 23,50,1903,106,76,77,108,2158,1909,614, + 72,93,1268,1990,1774,1948,2003,1997,2057,2056, + 49,2133,2091,2178,2185,143,1419,334,1229,872, + 145,144,2975,35,1045,32,559,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,108,2546,1909,1494,35,1385,3775, + 1990,1312,1948,2003,1997,2057,2056,70,2133,2091, + 2178,2185,143,1494,35,1008,387,159,144,2975, + 35,1045,32,2796,1680,27,30,31,1022,1015, + 26,28,1870,25,23,50,1903,106,76,77, + 108,458,1909,1435,60,3256,1268,1990,752,1948, + 2003,1997,2057,2056,273,2133,2091,2178,2185,143, + 1891,35,1539,3983,140,144,3102,35,1045,32, + 2338,1680,27,30,31,1022,1015,26,28,1870, + 25,23,50,1903,106,76,77,108,1781,1909, + 1891,35,395,2047,1990,1328,1948,2003,1997,2057, + 2056,49,2133,2091,2178,2185,143,2239,2656,1229, + 1522,189,144,3459,35,1045,32,275,1680,27, + 30,31,1022,1015,26,28,1870,25,23,50, + 1903,106,76,77,108,325,1909,1494,35,1008, + 387,1990,1392,1948,2003,1997,2057,2056,2411,2133, + 2091,2178,2388,164,3459,35,1045,32,3425,1680, + 27,30,31,1022,1015,26,28,1870,25,23, + 50,1903,106,76,77,108,2743,1909,451,60, + 355,303,1990,1220,1948,2003,1997,2057,2056,530, + 2133,2091,2178,2388,164,429,35,1045,32,870, + 2645,3724,30,31,1022,1015,3794,3459,35,1045, + 32,422,1680,27,30,31,1022,1015,26,28, + 1870,25,23,50,1903,106,76,77,108,557, + 1909,3071,60,2361,2597,1990,816,1948,2003,1997, + 2057,2056,1662,2133,2091,2178,2388,164,3459,35, + 1045,32,292,1680,27,30,31,1022,1015,26, + 28,1870,25,23,50,1903,106,76,77,108, + 244,1909,3007,60,542,1621,1990,897,1948,2003, + 1997,2057,2056,71,2133,2091,2178,2388,164,1494, + 35,1008,387,566,538,534,535,536,1409,2158, + 2434,3459,35,1045,32,3592,1680,27,30,31, + 1022,1015,26,28,1870,25,23,50,1903,106, + 76,77,108,60,1909,1392,1387,1017,377,1990, + 430,1948,2003,1997,2057,2056,1618,2133,2091,2178, + 2388,164,3518,35,1045,32,421,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,108,287,1909,1688,35,452,302, + 1990,5604,1948,2003,1997,2057,2056,2239,2133,2091, + 2178,2388,164,1466,35,1045,32,3687,4106,27, + 30,31,1022,1015,338,28,522,3408,2658,424, + 1494,35,1008,387,964,1755,1392,537,534,535, + 536,3100,1329,35,2794,32,3687,4106,27,30, + 31,1022,1015,338,28,4430,2748,2622,537,534, + 535,536,5656,1907,35,277,537,534,535,536, + 4048,433,318,1085,320,2158,2600,313,624,1321, + 299,296,331,842,3070,3842,35,1045,32,2883, + 3437,27,30,31,1022,1015,26,28,1392,510, + 2390,318,1085,320,3351,614,313,624,1321,4270, + 5660,331,611,3459,35,1045,32,1157,1680,27, + 30,31,1022,1015,26,28,1870,25,23,50, + 1903,106,76,77,108,1616,1909,1266,4270,1449, + 514,1990,560,1948,3060,305,309,985,1675,35, + 1045,32,3322,3437,27,30,31,1022,1015,58, + 28,3161,418,2781,538,534,535,536,552,1228, + 1907,35,280,449,2321,2332,3459,35,1045,32, + 1283,1680,27,30,31,1022,1015,26,28,1870, + 25,23,50,1903,106,76,77,108,3101,1909, + 1494,35,1008,387,1990,1510,1948,2003,1997,2057, + 2056,60,2133,2091,3303,4460,3459,35,1045,32, + 3165,1680,27,30,31,1022,1015,26,28,1870, + 25,23,50,1903,106,76,77,108,2047,1909, + 2451,273,1663,3467,1990,1544,1948,2003,1997,2057, + 2056,2472,2133,3285,3459,35,1045,32,2473,1680, + 27,30,31,1022,1015,26,28,1870,25,23, + 50,1903,106,76,77,108,522,1909,1494,35, + 1008,387,1990,154,1948,2003,1997,2057,2056,403, + 3210,2252,35,1045,32,2617,4106,27,30,31, + 1022,1015,338,28,339,694,2158,537,534,535, + 536,2544,2738,3108,3138,537,534,535,536,49, + 2239,2675,60,555,1976,2765,4463,46,5444,538, + 534,535,536,5154,2680,569,2158,2321,35,1045, + 32,3687,2832,27,30,31,1022,1015,338,28, + 318,1085,320,350,3427,314,624,1321,1054,3256, + 332,537,534,535,536,539,2169,2738,1293,35, + 1008,387,1293,35,1008,387,389,60,351,4603, + 426,1248,538,534,535,536,2158,42,2289,2682, + 345,1878,1480,348,284,3427,318,1085,320,2808, + 2962,313,624,3577,35,1008,387,842,2828,49, + 60,351,2389,49,4534,558,237,1229,1189,541, + 1621,1229,799,343,1878,1480,348,576,534,535, + 536,3528,2886,2473,60,2473,2103,60,793,2841, + 2660,1248,44,2289,273,3459,35,1045,32,2084, + 1680,27,30,31,1022,1015,26,28,1870,25, + 23,50,1903,106,76,77,108,3163,1909,305, + 309,985,3780,1990,232,1948,2003,1997,2057,3276, + 2571,35,1045,32,3687,2832,27,30,31,1022, + 1015,338,28,3913,354,60,235,230,231,3093, + 1523,2683,60,530,1283,88,2718,274,102,2158, + 3174,35,1045,32,3687,2832,27,30,31,1022, + 1015,338,28,3672,1585,537,534,535,536,242, + 245,248,251,3627,537,534,535,536,5282,318, + 1085,320,593,2600,313,624,89,2262,1230,102, + 1614,390,4603,392,60,426,521,426,2893,1302, + 3269,3061,3065,3281,3341,4717,2067,2390,60,318, + 1085,320,2323,1392,313,624,3459,35,1045,32, + 842,1680,27,30,31,1022,1015,26,28,1870, + 25,23,50,1903,106,76,77,108,60,1909, + 2303,1283,3083,2362,1990,1680,1948,2003,1997,3184, + 1956,35,2794,32,3687,2832,27,30,31,1022, + 1015,338,28,2239,2352,576,534,535,536,576, + 534,535,536,2551,3489,534,535,536,1494,35, + 1008,387,306,309,985,2552,2686,1849,3282,35, + 1045,32,3170,1680,27,30,31,1022,1015,26, + 28,1870,25,23,50,1903,573,76,77,318, + 1085,320,232,60,313,624,232,2895,1268,432, + 611,2082,35,2794,32,3687,2832,27,30,31, + 1022,1015,338,28,244,230,231,381,247,230, + 231,1144,2473,2158,3204,537,534,535,536,2304, + 2173,35,2794,32,3687,2832,27,30,31,1022, + 1015,338,28,3170,424,537,534,535,536,3345, + 418,2781,24,2953,3489,534,535,536,327,334, + 318,1085,320,3353,2551,313,624,2941,2614,2812, + 3085,611,3170,1981,35,1045,32,3867,2832,27, + 30,31,1022,1015,338,28,1392,5357,60,318, + 1085,320,1248,3366,313,624,3459,35,1045,32, + 611,1680,27,30,31,1022,1015,26,28,1870, + 25,23,50,1903,106,76,77,108,2158,1909, + 3491,418,2781,156,1990,1392,1948,2003,3208,3731, + 298,3469,318,1085,320,3204,2213,313,624,1392, + 391,1770,239,2771,426,2538,2741,570,60,3345, + 418,2781,3162,576,534,535,536,60,60,3499, + 351,2892,1041,2031,5640,576,534,535,536,333, + 334,3162,343,1878,1480,348,3459,35,1045,32, + 2711,1680,27,30,31,1022,1015,26,28,1870, + 25,23,50,1903,106,76,77,108,271,1909, + 232,1863,589,3218,1990,1536,1948,2003,3209,91, + 60,60,232,1300,3443,3649,1494,35,1008,387, + 228,3251,240,230,231,576,534,535,536,537, + 534,535,536,156,250,230,231,538,534,535, + 536,3606,180,2814,60,1019,3717,3639,5666,203, + 215,5428,202,212,213,214,216,431,2779,60, + 575,614,1248,1849,3268,169,5711,2517,2239,2845, + 365,168,232,183,167,170,171,172,173,174, + 3239,35,1045,32,5496,2832,27,30,31,1022, + 1015,338,28,156,253,230,231,1494,35,1008, + 387,3749,200,2551,3309,3459,35,1045,32,350, + 1680,27,30,31,1022,1015,26,28,1870,25, + 23,50,1903,106,76,77,108,2878,1909,1268, + 75,1268,3314,1990,429,1948,3084,2750,49,318, + 1085,320,285,1690,313,624,1229,2160,1,2138, + 1614,2265,589,3713,35,1045,32,2502,2832,27, + 30,31,1022,1015,338,28,544,351,3185,1449, + 228,401,2863,3168,3204,537,534,535,536,343, + 1878,1480,348,156,2886,3315,3316,3528,2158,3488, + 342,3606,180,3353,3348,1019,3368,402,553,203, + 215,5428,202,212,213,214,216,60,329,334, + 575,3233,315,1068,320,169,1852,349,51,3373, + 97,168,181,184,167,170,171,172,173,174, + 3459,35,1045,32,181,1680,27,30,31,1022, + 1015,26,28,1870,25,23,50,1903,106,76, + 77,108,3246,1909,1588,35,1008,387,1990,1996, + 1948,3105,3459,35,1045,32,1392,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,108,361,1909,2158,1993,589,1392, + 1990,2158,1948,3106,60,49,1756,3213,3524,2746, + 2863,2158,379,1229,47,2158,228,2814,521,2551, + 179,537,534,535,536,69,3374,3375,3213,156, + 68,986,1210,538,534,535,536,3606,180,661, + 53,1019,1577,198,574,203,215,5428,202,212, + 213,214,216,1593,451,3366,575,1280,589,2158, + 1392,169,1445,554,2158,2612,3547,168,3407,3599, + 167,170,171,172,173,174,228,537,534,535, + 536,537,534,535,536,3002,2158,3367,572,156, + 3204,2158,2599,87,1392,922,1392,3606,180,2600, + 3225,1019,2822,504,197,203,215,5428,202,212, + 213,214,216,3250,541,52,575,1280,589,1392, + 450,169,1445,1321,3810,334,331,168,3001,178, + 167,170,171,172,173,174,228,3436,405,2551, + 201,537,534,535,536,3437,2158,502,503,156, + 2158,60,2551,4298,1392,2863,2158,3606,180,2600, + 1161,1019,3426,199,3469,203,215,5428,202,212, + 213,214,216,342,631,3850,575,1280,589,90, + 60,169,1445,1321,932,3910,331,168,6401,176, + 167,170,171,172,173,174,228,2150,4458,4254, + 6401,537,534,535,536,2855,2158,6401,3717,156, + 3204,60,6401,3987,2826,2863,1364,3606,180,2600, + 60,1019,6401,3204,3769,203,215,5428,202,212, + 213,214,216,342,721,3934,575,1280,589,2158, + 6401,169,1445,1321,3970,334,331,168,893,177, + 167,170,171,172,173,174,228,4022,334,4254, + 6401,537,534,535,536,6401,2158,6401,3864,156, + 2158,3132,60,5548,2849,2863,2797,3606,180,2600, + 60,1019,6401,1392,3782,203,215,5428,202,212, + 213,214,216,342,811,3924,575,1280,589,3984, + 529,169,1445,1321,60,6401,331,168,3685,187, + 167,170,171,172,173,174,228,6401,6401,4254, + 6401,537,534,535,536,6401,2158,222,3066,156, + 2158,2158,4066,2751,532,2158,2158,3606,180,2600, + 60,1019,6401,1392,2135,203,215,5428,202,212, + 213,214,216,1421,901,67,575,3772,589,66, + 65,169,1445,1321,64,1299,5555,168,6401,3792, + 167,170,171,172,173,174,228,537,534,535, + 536,537,534,535,536,2158,2158,193,2158,156, + 3038,2158,60,6401,1248,2765,2819,3606,180,2600, + 1727,1019,6401,6401,2863,203,215,5428,202,212, + 213,214,216,6401,1324,55,575,54,1268,6401, + 3973,169,228,1321,3038,160,332,168,1248,192, + 167,170,171,172,173,174,3219,35,1045,32, + 3867,2832,27,30,31,1022,1015,338,28,94, + 6401,205,215,5428,204,212,213,214,216,160, + 6401,6401,575,1872,35,1008,387,60,6401,6401, + 3014,2863,6401,6401,6401,6401,1293,35,1008,387, + 6401,4140,206,208,210,294,295,2158,714,342, + 217,207,209,3641,6401,318,1085,320,991,3035, + 313,624,589,2863,49,2158,525,98,6401,13, + 3005,4826,1229,47,6401,4254,101,49,60,6401, + 228,342,2863,351,2779,1229,2961,3716,589,6401, + 2859,1025,6401,156,4188,343,1878,1480,348,528, + 342,3606,180,526,2660,1019,3902,3958,6401,203, + 215,5428,202,212,213,214,216,3038,1081,156, + 575,1248,589,6401,154,169,4254,3606,180,6401, + 6401,168,6401,186,167,170,171,172,173,174, + 228,2899,6401,6401,6401,6401,663,6401,537,534, + 535,536,160,156,3038,3038,60,195,1248,1248, + 2863,3606,180,6401,6401,1019,2765,6401,6401,203, + 215,5428,202,212,213,214,216,6401,342,60, + 575,6401,6401,1248,2539,169,6401,6401,3807,160, + 160,168,6401,194,167,170,171,172,173,174, + 2413,35,1045,32,4254,4106,27,30,31,1022, + 1015,338,28,60,156,6401,6401,1248,6401,508, + 3721,6401,3286,6401,537,534,535,536,2413,35, + 1045,32,6401,4106,27,30,31,1022,1015,338, + 28,3133,2600,6401,6401,6401,6401,60,156,6401, + 6401,1248,537,534,535,536,3956,4016,4018,318, + 1085,320,6401,6401,316,624,1321,6401,4015,332, + 5154,351,6401,6401,6401,6401,6401,4449,196,6401, + 6401,6401,156,343,1878,1480,348,318,1085,320, + 3960,341,314,624,1321,6401,6401,332,3459,35, + 1045,32,6401,1680,27,30,31,1022,1015,26, + 28,1870,25,23,50,1903,106,76,77,108, + 6401,1909,6401,3038,6401,6401,1990,1248,3107,3459, + 35,1045,32,6401,1680,27,30,31,1022,1015, + 26,28,1870,25,23,50,1903,106,76,77, + 108,1911,1909,6401,6401,2863,6401,1990,160,3169, + 2229,35,1045,32,3687,2832,27,30,31,1022, + 1015,338,28,228,6401,6401,6401,6401,6401,2882, + 6401,6401,6401,589,538,534,535,536,3067,6401, + 1756,6401,1248,2002,2863,6401,6401,2863,6401,6401, + 6401,342,205,215,5428,204,212,213,214,216, + 6401,6401,3213,575,156,228,6401,6401,6401,318, + 1085,320,188,156,313,624,4117,5269,60,6401, + 987,162,1248,206,208,210,294,295,6401,714, + 6401,217,207,209,205,215,5428,204,212,213, + 214,216,6401,6401,6401,575,1872,35,1008,387, + 671,6401,4826,156,2093,6401,2071,6401,2863,6401, + 6401,3961,6401,6401,6401,206,208,210,294,295, + 6401,714,6401,217,207,209,228,504,6401,190, + 537,534,535,536,6401,6401,6401,49,6401,6401, + 6401,6401,2197,60,4826,1229,47,2863,2765,6401, + 6401,6401,6401,6401,6401,205,215,5428,204,212, + 213,214,216,6401,2630,342,575,1293,35,1008, + 387,501,503,3174,35,1045,32,3687,2832,27, + 30,31,1022,1015,338,28,206,208,210,294, + 295,4254,714,6401,217,207,209,538,534,535, + 536,6401,6401,6401,6401,6401,506,6401,49,6401, + 2516,3784,6401,2467,6401,4826,1229,47,4135,6401, + 6401,6401,6401,3288,6401,6401,6401,6401,6401,6401, + 6401,6401,318,1085,320,1232,6401,313,624,3459, + 35,1045,32,987,1680,27,30,31,1022,1015, + 26,28,1870,25,23,50,1903,106,76,77, + 108,6401,1909,3459,35,1045,32,2984,1680,27, + 30,31,1022,1015,26,28,1870,25,23,50, + 1903,106,76,77,108,6401,1909,3627,35,1008, + 387,3007,2828,6401,6401,6401,6401,6401,6401,6401, + 238,6401,6401,6401,6401,6401,6401,6401,6401,6401, + 6401,576,534,535,536,6401,6401,6401,6401,6401, + 6401,6401,6401,6401,3459,35,1045,32,273,1680, + 27,30,31,1022,1015,26,28,1870,25,23, + 50,1903,106,76,77,108,6401,3019,6401,60, + 6401,6401,6401,1248,3459,35,1045,32,232,1680, + 27,30,31,1022,1015,26,28,1870,25,23, + 50,1903,106,76,77,108,6401,3026,6401,1820, + 236,230,231,2863,156,60,60,6401,6401,1248, + 1248,274,3965,6401,6401,6401,1634,6401,6401,6401, + 2863,228,6401,6401,6401,6401,6401,6401,6401,6401, + 6401,6401,6401,243,246,249,252,3627,228,6401, + 156,156,6401,6401,6401,6401,593,6401,3471,4021, + 205,215,5428,204,212,213,214,216,2184,6401, + 6401,575,2863,6401,6401,6401,6401,205,215,5428, + 204,212,213,214,216,2275,6401,6401,575,2863, + 228,206,208,210,294,295,6401,714,6401,518, + 207,209,6401,6401,6401,6401,6401,228,206,208, + 210,294,295,6401,714,6401,218,207,209,205, + 215,5428,204,212,213,214,216,6401,6401,6401, + 575,6401,6401,6401,6401,6401,205,215,5428,204, + 212,213,214,216,6401,6401,6401,575,6401,6401, + 206,208,210,294,295,6401,714,6401,519,207, + 209,6401,6401,6401,6401,6401,6401,206,208,210, + 294,295,6401,714,6401,304,207,209,3459,35, + 1045,32,6401,1680,27,30,31,1022,1015,26, + 28,1870,25,23,50,1903,106,76,77,85, + 3459,1439,1045,2665,6401,1680,27,30,31,1022, + 1015,26,28,1870,25,23,50,1903,106,76, + 77,84,3459,35,1045,32,6401,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,83,3459,35,1045,32,6401,1680, + 27,30,31,1022,1015,26,28,1870,25,23, + 50,1903,106,76,77,82,3459,35,1045,32, + 6401,1680,27,30,31,1022,1015,26,28,1870, + 25,23,50,1903,106,76,77,81,3459,35, + 1045,32,6401,1680,27,30,31,1022,1015,26, + 28,1870,25,23,50,1903,106,76,77,80, + 3459,35,1045,32,6401,1680,27,30,31,1022, + 1015,26,28,1870,25,23,50,1903,106,76, + 77,79,3459,35,1045,32,6401,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,78,3191,35,1045,32,6401,2832, + 27,30,31,1022,1015,338,28,6401,6401,6401, + 6401,6401,6401,6401,6401,6401,6401,6401,538,534, + 535,536,3041,35,1045,32,6401,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,104,6401,6401,6401,6401,6401,6401, + 6401,6401,6401,318,1085,320,6401,6401,587,624, + 3459,35,1045,32,6401,1680,27,30,31,1022, + 1015,26,28,1870,25,23,50,1903,106,76, + 77,110,3459,35,1045,32,6401,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,109,2366,6401,6401,6401,2863,3832, + 35,1045,32,3687,2832,27,30,31,1022,1015, + 338,28,3459,35,1045,32,228,1680,27,30, + 31,1022,1015,26,28,1870,25,23,50,1903, + 106,76,77,107,6401,6401,6401,6401,6401,6401, + 6401,6401,6401,6401,6401,205,215,5428,204,212, + 213,214,216,6401,6401,6401,575,6401,318,1085, + 320,6401,6401,313,624,6401,6401,6401,6401,3743, + 6401,6401,6401,6401,6401,6401,206,208,210,294, + 295,6401,714,6401,498,207,209,3459,35,1045, + 32,6401,1680,27,30,31,1022,1015,26,28, + 1870,25,23,50,1903,106,76,77,105,3341, + 35,1045,32,6401,1680,27,30,31,1022,1015, + 26,28,1870,25,23,50,1903,571,76,77, + 3400,35,1045,32,6401,1680,27,30,31,1022, + 1015,26,28,1870,25,23,50,1903,86,76, + 77,1237,6401,6401,6401,2863,1586,6401,2163,35, + 1045,32,2473,2832,27,30,31,1022,1015,338, + 28,6401,1346,228,2343,6401,2863,1586,2863,1445, + 6401,6401,6401,6401,60,6401,6401,6401,2863,6401, + 6401,6401,6401,6401,228,6401,3213,6401,537,534, + 535,536,2705,406,3493,6401,342,6401,6401,6401, + 6401,6401,6401,6401,6401,6401,2600,315,1068,320, + 6401,6401,6401,2705,406,3493,2343,6401,6401,6401, + 2863,1445,4254,407,408,409,294,295,6401,714, + 1321,6401,6401,331,6401,60,6401,3836,3213,2863, + 537,534,535,536,407,408,409,294,295,1633, + 714,6401,6401,6401,6401,6401,6401,342,2600,6401, + 5548,359,6401,6401,6401,6401,6401,6401,1564,6401, + 1633,6401,6401,1445,6401,3798,6401,3776,2495,2501, + 1445,6401,1321,4254,6401,331,6401,6401,6401,6401, + 6401,6401,537,534,535,536,6401,6401,533,537, + 534,535,536,6401,2266,35,1008,387,6401,6401, + 2600,6401,2751,359,410,412,986,2600,6401,6401, + 6401,6401,6401,6401,1293,35,1008,387,6401,3776, + 2495,2501,6401,6401,1321,410,413,332,6401,6401, + 713,1321,6401,5442,5555,49,1702,35,1008,387, + 6401,6401,6401,1229,47,351,1872,35,1008,387, + 1293,35,1008,387,6401,49,6401,345,1878,1480, + 348,6401,1710,1229,47,6401,1293,35,1008,387, + 1293,35,1008,387,6401,6401,3068,49,6401,6401, + 2863,6401,2227,6401,6401,1229,3193,49,6401,6401, + 6401,49,6401,6401,6401,1229,3207,6401,3213,1229, + 47,6401,6401,6401,2103,60,60,49,6401,589, + 589,49,6401,6401,1915,1229,47,96,2379,1229, + 47,1293,35,1008,387,6401,6401,342,342,60, + 6401,6401,6401,589,2490,6401,6401,6401,3098,60, + 156,156,6401,589,6401,6401,6401,6401,3163,3631, + 6401,342,6401,4254,4254,6401,60,6401,6401,6401, + 589,342,49,60,156,6401,6401,589,2969,3626, + 1229,47,3163,504,156,6401,6401,4254,342,60, + 6401,6401,3163,589,6401,342,60,4254,6401,3356, + 589,156,3645,6401,6401,6401,6401,6401,156,3163, + 6401,342,3689,6401,4254,6401,188,6401,342,6401, + 6401,5269,6401,6401,156,6401,6401,501,503,3694, + 6401,156,188,6401,6401,6401,6401,5269,6401,188, + 6401,6401,6401,6401,5269,6401,6401,6401,6401,6401, + 6401,6401,6401,6401,6401,6401,6401,6401,6401,6401, + 6401,6401,6401,6401,6401,6401,3647,6401,6401,6401, + 6401,6401,6401,6401,6401,6401,6401,6401,6401,6401, + 6401,6401,6401,3869,6401,6401,6401,6401,6401,6401, + 6401,6401,6401,6401,6401,6401,6401,6401,6401,3896, + 6401,6401,6401,6401,6401,6401,3900,6401,0,1, + 229,727,0,500,4809,0,1,229,0,39, + 6416,0,39,6415,0,1,2940,0,880,1, + 0,39,1,6416,0,39,1,6415,0,1, + 1111,0,1,857,0,229,219,0,779,223, + 0,805,223,0,840,223,0,779,224,0, + 805,224,0,840,224,0,779,225,0,805, + 225,0,840,225,0,840,393,0,805,393, + 0,779,393,0,283,393,0,779,226,0, + 805,226,0,840,226,0,283,286,0,779, + 227,0,805,227,0,840,227,0,6635,241, + 0,6634,241,0,779,241,0,805,241,0, + 840,241,0,6738,241,0,6737,241,0,6662, + 241,0,6661,241,0,6660,241,0,6659,241, + 0,6658,241,0,6657,241,0,6656,241,0, + 6655,241,0,6673,241,0,6672,241,0,6671, + 241,0,6670,241,0,6669,241,0,6668,241, + 0,6667,241,0,6666,241,0,6665,241,0, + 6664,241,0,6663,241,0,39,241,6416,0, + 39,241,6415,0,6439,241,0,2134,386,0, + 6416,48,0,6415,48,0,1,840,0,1, + 805,0,1,779,0,1,330,0,38,857, + 0,38,6416,0,38,6415,0,453,2322,0, + 439,2363,0,2134,29,0,6413,1,0,840, + 584,0,805,584,0,779,584,0,588,584, + 0,588,583,0,2413,317,0,1,586,0, + 1,443,0,457,1762,0,456,2042,0,35, + 33,0,47,37,0,229,220,0,500,1668, + 0,6439,1,229,0,39,1,229,0,229, + 415,0,1,2039,0,1,6673,0,1,6672, + 0,1,6671,0,1,6670,0,1,6669,0, + 1,6668,0,1,6667,0,1,6666,0,1, + 6665,0,1,6664,0,1,6663,0,6416,37, + 0,6415,37,0,43,6437,0,43,37,0, + 6413,382,0,6412,382,0,1,679,0,1, + 1002,0,6411,404,0,6410,404,0,229,414, + 0,3570,126,0,6409,1,0,840,444,0, + 805,444,0,779,444,0,330,444,0,6407, + 1,0,6406,1,0,2897,91,0,32,34, + 0,39,857,0,6437,45,0,37,45,0, + 1,229,3343,0,6410,229,0,3349,229,0, + 6439,1,0,39,1,0,237,4020,0,387, + 32,0,386,29,0,3570,128,0,3570,127, + 0,3574,229,0,10,12,0,840,581,0, + 805,581,0,779,581,0,840,580,0,805, + 580,0,779,580,0,537,538,0,1,92, + 0,8,10,12,0,840,581,582,0,805, + 581,582,0,779,581,582,0,581,582,0, + 6416,2,37,0,6415,2,37,0,6416,36, + 0,6415,36,0,3758,382,0,840,95,0, + 805,95,0,779,95,0,330,95,0,35, + 73,0,8,12,0,278,4224,0,185,4128, + 0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1297,371 +1289,392 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,61,0,63,64,65,66,5,6,7, - 70,71,0,0,74,3,76,77,78,79, - 80,81,82,83,84,85,86,87,88,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,0,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,60, - 61,0,63,64,65,66,5,6,7,70, - 71,0,0,74,3,76,77,78,79,80, - 81,82,83,84,85,86,87,88,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,0,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 0,63,64,65,66,5,6,7,70,71, - 0,0,74,3,76,77,78,79,80,81, - 82,83,84,85,86,87,88,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,0,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,60,61,0, - 63,64,65,66,0,1,2,70,71,0, - 1,74,8,9,77,78,79,80,81,82, - 83,84,85,86,87,88,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 0,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,0,63, - 64,65,66,0,1,2,70,71,99,100, - 74,8,9,77,78,79,80,81,82,83, - 84,85,86,87,88,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,43,0, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,60,61,0,63,64, - 65,66,5,6,7,70,71,99,100,74, - 0,121,77,78,79,80,81,82,83,84, - 85,86,87,88,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,0,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,0,63,64,65, - 66,5,6,7,70,71,0,0,74,0, - 4,77,78,79,80,81,82,83,84,85, - 86,87,88,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,43,0,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,60,61,0,63,64,65,66, - 5,6,7,70,71,0,0,74,3,3, - 77,78,79,80,81,82,83,84,85,86, - 87,88,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,61,0,63,64,65,66,0, - 1,2,70,71,0,11,74,8,0,77, - 78,79,80,81,82,83,84,85,86,87, - 88,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,43,0,45,46,47,48, - 49,50,51,52,53,54,55,56,57,58, - 59,60,61,75,63,64,65,66,0,95, - 96,70,71,0,0,74,92,4,77,78, - 79,80,81,82,83,84,85,86,87,88, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,0,64,65,66,67,5,6, + 7,71,72,0,0,75,3,77,78,79, + 80,81,82,83,84,85,86,87,88,89, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,45,46,47,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,61,0,63,64,65,66,5,6,7, - 70,71,0,0,74,3,3,77,78,79, - 80,81,82,83,84,85,86,87,88,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,0,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,59,60, - 61,0,63,64,65,66,5,6,7,70, - 71,0,0,74,3,3,77,78,79,80, - 81,82,83,84,85,86,87,88,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,0,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 0,63,64,65,66,5,6,7,70,71, - 0,0,74,0,121,77,78,79,80,81, - 82,83,84,85,86,87,88,0,1,2, - 3,4,5,6,7,8,9,0,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,44,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,0,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,59,60,61,0, - 77,64,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 0,1,2,123,4,43,44,0,1,2, - 3,4,5,6,7,8,9,0,11,12, - 3,59,60,61,0,63,0,65,66,0, - 4,5,6,7,10,73,0,8,76,0, - 1,2,3,4,5,6,7,8,9,90, - 91,89,0,1,2,3,4,5,6,7, - 8,9,0,11,12,0,0,105,106,107, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,76, + 60,61,62,0,64,65,66,67,5,6, + 7,71,72,0,0,75,3,77,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,0,64,65,66,67,5,6, + 7,71,72,0,0,75,3,77,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,0,64,65,66,67,0,1, + 2,71,72,0,0,75,8,9,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,76, + 60,61,62,0,64,65,66,67,0,1, + 2,71,72,100,101,75,8,9,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,0,64,65,66,67,5,6, + 7,71,72,100,101,75,0,0,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,73, + 60,61,62,0,64,65,66,67,5,6, + 7,71,72,0,0,75,0,4,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,73, + 60,61,62,0,64,65,66,67,5,6, + 7,71,72,0,0,75,3,3,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,0,64,65,66,67,0,1, + 2,71,72,0,11,75,8,4,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,4,64,65,66,67,0,96, + 97,71,72,0,0,75,3,3,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,0,64,65,66,67,5,6, + 7,71,72,0,0,75,3,3,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,0,64,65,66,67,5,6, + 7,71,72,0,0,75,3,3,78,79, + 80,81,82,83,84,85,86,87,88,89, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,0,1, - 2,0,0,43,44,3,8,5,6,7, - 0,0,10,11,12,73,5,6,7,59, - 60,61,67,63,72,65,66,0,1,2, - 28,4,0,73,120,0,76,0,1,2, - 38,39,44,41,42,10,0,1,2,89, - 4,5,6,7,0,0,0,11,12,5, - 6,7,0,62,62,105,106,107,0,67, - 68,69,10,62,72,73,44,75,76,25, - 26,27,27,29,30,31,32,33,34,35, - 36,37,90,91,92,93,94,95,96,97, - 98,99,100,101,102,103,104,70,71,74, - 108,109,110,111,112,113,114,115,116,117, - 118,119,120,0,122,69,3,0,5,6, - 7,0,1,10,11,12,74,0,0,1, - 2,0,4,5,6,7,5,6,7,11, - 12,28,0,0,1,2,25,4,5,6, - 7,38,39,11,41,42,25,26,27,0, - 29,30,31,32,33,34,35,36,37,0, - 11,12,0,1,2,62,4,5,6,7, - 67,68,69,11,12,72,73,44,75,76, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,0,64,65,66,67,5,6, + 7,71,72,0,0,75,0,1,78,79, + 80,81,82,83,84,85,86,87,88,89, 0,1,2,3,4,5,6,7,8,9, - 73,11,12,90,91,92,93,94,95,96, - 97,98,99,100,101,102,103,104,0,1, - 2,108,109,110,111,112,113,114,115,116, - 117,118,119,120,0,122,0,1,2,3, + 27,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 0,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,94,95,65,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,105,106,107,0,0,43, - 44,0,1,2,3,4,5,6,7,8, - 9,13,11,12,0,59,60,61,0,63, - 0,65,66,0,1,2,0,4,5,6, - 7,13,76,0,11,12,0,11,5,6, - 7,43,44,0,0,89,92,14,15,16, + 24,25,26,27,0,0,30,0,32,33, + 34,35,36,37,38,39,40,10,124,0, + 44,0,0,4,5,6,7,5,6,7, + 11,12,0,1,2,59,60,61,62,0, + 64,0,66,67,5,6,7,25,26,27, + 74,0,0,77,32,33,34,35,36,37, + 38,39,40,94,95,13,90,0,0,1, + 2,3,4,5,6,7,8,9,74,11, + 12,76,106,107,108,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,0,0,30,64,32,33,34, + 35,36,37,38,39,40,0,0,121,44, + 3,0,5,6,7,94,95,10,11,12, + 0,10,74,76,59,60,61,62,0,64, + 10,66,67,0,103,28,29,30,0,74, + 0,30,77,0,4,5,6,7,41,42, + 12,0,105,59,0,90,63,110,111,112, + 113,114,115,116,117,118,119,120,0,1, + 63,106,107,108,31,68,69,70,10,73, + 73,74,31,76,77,0,1,2,3,4, + 5,6,7,8,9,75,11,12,91,92, + 93,94,95,96,97,98,99,100,101,102, + 103,104,105,0,1,2,109,110,111,112, + 113,114,115,116,117,118,119,120,121,0, + 123,0,3,105,5,6,7,69,110,10, + 11,12,0,1,2,3,4,5,6,7, + 8,9,10,11,12,0,102,28,29,30, + 5,6,7,0,0,1,2,25,26,27, + 41,42,30,10,32,33,34,35,36,37, + 38,39,40,0,1,2,3,4,5,6, + 7,0,63,30,11,12,0,68,69,70, + 4,70,73,74,0,76,77,0,1,2, + 68,69,0,1,2,11,4,5,6,7, + 91,92,93,94,95,96,97,98,99,100, + 101,102,103,104,105,71,72,0,109,110, + 111,112,113,114,115,116,117,118,119,120, + 121,68,123,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,64,29,30,31,32,33,34,35,36, - 37,0,1,2,73,4,5,6,7,123, + 27,0,0,30,3,32,33,34,35,36, + 37,38,39,40,0,1,2,44,4,0, + 96,97,8,9,5,6,7,0,1,2, + 73,4,59,60,61,62,0,64,0,66, + 67,0,1,2,25,26,27,0,10,13, + 77,32,33,34,35,36,37,38,39,40, + 0,1,2,90,4,63,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,0,0,30,124,32,33, + 34,35,36,37,38,39,40,69,13,0, + 44,0,71,72,5,6,7,0,1,2, + 0,4,5,6,7,59,60,61,62,0, + 64,93,66,67,25,26,27,0,0,44, + 0,32,33,34,35,36,37,38,39,40, + 10,0,1,2,59,0,90,28,29,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,93,0,30, + 124,32,33,34,35,36,37,38,39,40, + 0,63,0,44,0,1,2,5,6,7, + 59,0,1,2,10,75,28,29,59,60, + 61,62,63,64,104,66,67,25,26,27, + 0,1,2,78,32,33,34,35,36,37, + 38,39,40,106,107,108,0,1,2,90, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,0,1, - 2,95,96,43,44,0,1,2,3,4, - 5,6,7,8,9,10,11,12,102,59, - 60,61,0,63,101,65,66,5,6,7, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,0,1,2,3,4,124,89, - 0,8,9,10,0,1,2,0,1,2, - 3,4,5,6,7,8,9,62,11,12, - 0,28,67,68,0,1,2,0,4,5, - 6,7,0,123,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,40,73,67,0,0,43,44,0, - 0,5,6,7,4,5,6,7,13,62, - 11,11,12,59,60,61,62,63,0,65, - 66,25,26,27,0,29,30,31,32,33, - 34,35,36,37,0,0,0,0,43,44, - 5,6,7,89,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,0,1,2,3,4,43,44,0, - 8,9,0,69,95,96,62,5,6,7, - 0,1,2,59,60,61,72,63,0,65, - 66,93,94,5,6,7,0,25,26,27, - 76,29,30,31,32,33,34,35,36,37, - 0,97,98,89,0,1,2,3,4,5, + 20,21,22,23,24,25,26,27,0,75, + 30,0,32,33,34,35,36,37,38,39, + 40,0,11,12,44,0,1,2,3,4, + 5,6,7,8,9,59,11,12,0,59, + 60,61,62,0,64,0,66,67,3,0, + 0,1,2,3,4,10,0,77,8,9, + 10,0,0,1,2,0,4,5,6,7, + 90,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,74, + 0,30,59,32,33,34,35,36,37,38, + 39,40,63,68,69,44,0,1,68,69, + 70,59,0,73,0,3,76,3,0,1, + 59,60,61,62,10,64,0,66,67,11, + 0,25,0,93,79,5,6,7,77,0, + 0,0,1,2,3,4,5,6,7,8, + 9,90,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, + 68,0,30,69,32,33,34,35,36,37, + 38,39,40,63,104,63,44,0,1,2, + 3,4,5,6,7,8,9,68,11,12, + 70,59,60,61,62,74,64,0,66,67, + 94,95,0,1,2,3,4,10,0,77, + 8,9,0,1,2,3,4,5,6,7, + 8,9,90,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,74,0,30,93,32,33,34,35,36, + 37,38,39,40,12,0,69,44,0,1, + 2,3,4,5,6,7,8,9,0,11, + 12,73,59,60,61,62,74,64,10,66, + 67,0,1,2,3,4,5,6,7,8, + 9,0,11,12,0,0,1,2,0,5, + 6,7,11,90,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,0,1,2,0,0,43,44,4, + 26,27,0,0,30,0,32,33,34,35, + 36,37,38,39,40,77,91,92,44,68, 0,1,2,3,4,5,6,7,8,9, - 10,0,1,59,60,61,0,63,0,65, - 66,26,11,0,1,2,3,4,28,0, - 76,8,9,10,0,0,44,0,0,1, - 2,4,0,89,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,44,0,1,2,44,43,44,0, - 67,68,69,75,0,72,62,0,75,62, - 105,106,107,59,60,61,72,63,92,65, - 66,0,0,1,2,92,4,5,6,7, - 76,10,10,11,12,90,91,44,0,1, - 2,97,98,89,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,75,0,1,2,0,43,44,68, - 68,0,1,2,3,4,5,6,7,8, - 9,0,103,59,60,61,102,63,0,65, - 66,104,4,92,92,0,109,110,111,112, - 113,114,115,116,117,118,119,44,0,1, - 2,0,0,89,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,44,0,1,2,75,43,44,0, - 1,2,3,4,5,6,7,8,9,0, - 75,0,3,59,60,61,0,63,0,65, - 66,0,1,2,3,4,5,6,7,8, - 9,0,11,12,0,1,2,44,0,1, - 2,90,91,89,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,44,0,75,67,75,43,44,0, - 1,2,3,4,73,0,0,8,9,10, - 0,1,2,59,60,61,75,63,13,65, - 66,0,1,2,3,4,5,6,7,8, - 9,38,39,0,1,2,3,4,0,0, - 0,8,9,89,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,0,1, - 2,3,4,5,6,7,67,68,63,11, - 12,38,39,40,41,42,38,39,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,0,0,73,0,0,64,0,1, - 2,3,4,70,71,72,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,0,0,67,0,1,2,3, - 4,5,6,7,8,9,38,39,40,41, - 42,0,0,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,62,62,0, - 1,2,64,4,5,6,7,0,1,2, - 3,4,74,0,76,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,0,1,2,3,4,104,0,73, - 8,9,109,44,62,38,39,40,41,42, - 69,0,45,46,47,48,49,50,51,52, - 53,54,55,56,57,58,103,0,0,0, - 3,64,3,0,0,1,2,3,4,10, - 67,74,8,9,0,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,67, - 0,1,2,3,4,0,1,2,8,9, - 72,43,38,39,40,41,42,0,67,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,0,67,62,67,68,64,0, - 1,2,3,4,70,71,73,8,9,0, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,0,0,0,3,0,3, - 0,3,0,0,10,70,71,38,39,40, - 41,42,10,10,45,46,47,48,49,50, - 51,52,53,54,55,56,57,58,0,0, - 28,28,0,64,0,1,2,3,4,70, - 71,62,8,9,0,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,0, - 0,67,68,69,69,67,72,0,0,1, - 2,69,38,39,40,41,42,10,10,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,93,94,28,0,1,64,0, - 1,2,3,4,70,71,10,8,9,10, + 10,28,29,59,60,61,62,0,64,0, + 66,67,0,1,2,0,4,5,6,7, + 30,0,10,11,12,0,0,96,97,0, + 0,1,2,4,90,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,91,92,30,59,32,33,34, + 35,36,37,38,39,40,0,0,63,44, + 0,69,0,1,2,3,4,5,6,7, + 8,9,63,68,59,60,61,62,0,64, + 0,66,67,0,0,93,0,31,0,3, + 10,31,91,92,11,0,1,2,3,4, + 0,1,2,8,9,90,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 63,0,0,28,29,0,31,0,1,2, + 73,4,5,6,7,10,41,42,43,0, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,58,68,98,99,77,74,59, + 65,0,1,2,3,4,71,72,73,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,59,0,0,28, + 29,3,31,0,69,0,74,76,10,74, + 0,0,41,42,43,10,45,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 0,1,2,3,4,25,65,27,8,9, + 0,0,1,2,3,4,75,0,77,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,68,69,70,28, + 29,73,31,0,69,70,0,1,2,76, + 0,0,41,42,43,4,45,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 103,0,91,92,0,1,65,26,68,0, + 1,2,3,4,10,0,75,8,9,0, 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,0,93,94,0,1,2, - 101,4,0,0,1,8,9,38,39,40, - 41,42,74,10,45,46,47,48,49,50, + 21,22,23,24,0,59,63,28,29,0, + 31,0,0,1,2,0,73,5,6,7, + 41,42,43,11,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,0,1, - 2,0,0,64,68,3,0,1,2,3, - 4,44,10,74,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,0,1,2,62,0,5,6,7,0, - 0,68,11,0,38,39,40,41,42,10, - 10,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,0,0,28,3,0, - 68,0,0,8,0,44,11,12,12,5, - 6,7,10,40,10,121,0,1,2,3, - 4,5,6,7,8,9,10,11,12,0, - 0,0,28,38,39,0,41,42,68,69, - 45,25,26,27,28,29,30,31,32,33, - 34,35,36,37,0,0,120,62,93,94, - 0,0,67,0,69,70,71,72,69,40, - 75,69,0,69,0,40,75,0,76,0, - 25,0,27,67,68,90,91,10,93,10, - 95,96,97,98,99,100,101,102,103,104, - 0,38,39,108,73,110,111,112,113,114, - 115,116,117,118,119,0,1,2,3,4, - 90,91,62,8,9,0,11,12,13,14, + 2,98,99,69,65,0,1,2,3,4, + 71,72,63,8,9,70,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, - 0,1,2,69,4,68,72,68,8,9, - 73,90,91,38,39,40,41,42,0,78, + 0,59,63,28,29,0,31,0,74,0, + 5,6,7,74,73,10,41,42,43,10, 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,0,1,2,3,4,64, - 0,0,8,9,44,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,0, - 1,2,3,4,0,0,0,8,9,0, - 0,0,38,39,40,41,42,0,0,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,75,0,1,2,3,4,0, - 0,67,8,9,4,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,0, - 1,2,0,4,0,3,26,8,9,0, - 0,62,38,39,40,41,42,72,72,45, + 55,56,57,58,0,30,91,92,0,0, + 65,0,1,2,3,4,71,72,10,8, + 9,0,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,0,0,30,28, + 29,0,31,0,74,70,0,70,69,70, + 73,0,41,42,43,4,45,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 0,0,63,0,0,0,65,0,1,2, + 3,4,71,72,10,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,31,0,63,28,29,0,31,63, + 73,0,0,70,73,0,73,10,41,42, + 43,10,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,63,30,63,98, + 99,30,65,73,70,0,1,2,3,4, + 0,77,75,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 0,1,2,28,29,63,31,70,8,0, + 1,2,0,1,2,0,41,42,43,4, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,58,0,1,2,3,4,0, + 1,2,8,9,0,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,59, + 0,0,28,29,0,31,0,122,59,0, + 10,59,0,4,10,41,42,43,63,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,58,0,1,2,3,4,64,0, - 0,8,9,4,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,0,1, - 2,0,4,0,0,4,8,9,4,0, - 0,38,39,40,41,42,67,73,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,0,1,2,3,4,0,0,0, - 8,9,62,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,0,0,0, - 0,3,0,62,0,62,62,10,0,10, - 38,39,40,41,42,0,12,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,0,1,2,3,4,0,0,0,8, - 9,62,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,0,0,0,3, - 0,0,0,0,62,68,69,68,69,38, - 39,40,41,42,72,67,45,46,47,48, + 56,57,58,0,0,0,121,0,59,65, + 0,1,2,3,4,44,0,10,8,9, + 0,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,0,0,0,28,29, + 0,31,63,69,70,10,10,77,0,0, + 13,41,42,43,0,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 0,0,1,2,3,4,69,0,68,8, + 9,44,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,59,93,122,28, + 29,0,31,0,69,69,3,0,0,0, + 70,10,41,42,43,0,45,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 0,0,0,3,0,3,65,0,8,70, + 70,11,12,0,1,2,3,4,5,6, + 7,8,9,76,0,0,102,3,28,29, + 0,1,2,3,4,5,6,7,8,9, + 69,41,42,43,0,1,2,68,4,5, + 6,7,0,76,76,11,12,0,0,1, + 2,3,4,63,0,0,8,9,68,0, + 70,71,72,73,70,74,76,70,0,1, + 2,3,4,0,0,0,8,9,10,0, + 0,91,92,3,94,0,96,97,98,99, + 100,101,102,103,104,105,0,0,0,109, + 3,111,112,113,114,115,116,117,118,119, + 120,0,1,2,3,4,68,63,76,8, + 9,74,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,68,69,0,28, + 29,3,31,0,0,0,3,3,3,74, + 65,0,41,42,43,76,45,46,47,48, 49,50,51,52,53,54,55,56,57,58, - 0,1,2,0,4,5,6,7,0,97, - 98,3,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,31,32,33,34,35,36,37,10,69, - 69,69,0,43,72,72,0,0,0,0, - 1,2,10,4,5,6,7,10,10,59, - 60,61,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,0,29,30, - 31,32,33,34,35,36,37,0,0,0, - 3,0,43,0,0,0,0,0,10,10, - 0,10,0,10,76,3,0,0,59,60, - 61,0,0,0,3,68,28,0,76,73, - 3,0,0,0,76,3,3,0,41,42, - 3,0,0,0,3,3,3,0,0,0, - 3,3,3,0,0,0,0,4,3,72, - 0,0,0,3,67,0,0,68,0,68, - 0,68,0,0,0,0,72,72,0,73, - 73,0,0,73,62,69,0,0,0,0, - 0,0,75,62,40,0,0,0,75,0, - 0,0,0,0,0,108,0,0,0,0, - 0,0,0,0,0,0,0,0,0,122, + 0,1,2,3,4,0,0,0,8,9, + 3,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,0,0,0,28,29, + 3,31,0,0,0,3,3,3,0,0, + 0,41,42,43,0,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 1,2,3,4,0,0,0,8,9,3, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,0,0,0,28,29,3, + 31,0,8,68,68,0,0,0,3,3, + 41,42,43,122,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,0,1, + 2,3,4,0,0,0,8,9,0,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,0,0,0,28,29,0,31, + 0,0,0,0,63,0,0,0,0,41, + 42,43,4,45,46,47,48,49,50,51, + 52,53,54,55,56,57,58,0,1,2, + 3,4,0,0,26,8,9,0,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,0,0,76,28,29,0,31,0, + 125,0,0,0,0,0,0,0,41,42, + 43,0,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,0,1,2,0, + 4,5,6,7,0,0,0,0,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,106,107,108,0,32,33, + 34,35,36,37,38,39,40,0,0,0, + 44,0,0,0,0,0,0,1,2,0, + 4,5,6,7,0,0,60,61,62,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,0,0,0,0,32,33, + 34,35,36,37,38,39,40,0,0,0, + 44,0,1,2,3,4,5,6,7,8, + 9,10,11,12,0,0,60,61,62,0, + 0,0,0,0,3,0,25,26,27,0, + 0,30,0,32,33,34,35,36,37,38, + 39,40,0,1,2,3,4,0,0,0, + 8,9,10,0,0,0,0,0,0,0, + 0,0,41,42,63,5,6,7,0,68, + 69,0,30,0,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,68, + 0,0,32,33,34,35,36,37,38,39, + 40,0,1,2,0,4,5,6,7,0, + 0,0,11,12,0,1,2,0,4,5, + 6,7,0,0,0,11,12,0,1,2, + 109,4,5,6,7,0,0,0,11,12, + 0,0,1,2,123,4,0,0,0,8, + 9,0,1,2,0,4,0,0,0,8, + 9,0,1,2,3,4,0,0,0,8, + 9,0,1,2,0,4,0,0,0,8, + 9,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 59,0,0,0,0,0,0,0,0,0, + 59,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -1676,375 +1689,395 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface TermAction { public final static char termAction[] = {0, - 6443,6322,5938,5938,5938,5931,5938,5938,5938,5938, - 6353,5938,5938,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6326,1, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6311,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 6284,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,313,1916,1,724,6619,710,658,676, - 1,1,6443,384,6454,2737,6450,1299,3523,3230, - 2297,3196,3397,3633,3487,1869,3485,3522,3478,10, - 6356,6356,6356,6356,6356,6356,6356,6356,6356,6356, - 6356,6356,6356,6356,6356,6356,6356,6356,6356,6356, - 6356,6356,6356,6356,6356,6356,6356,6356,6356,6356, - 6356,6356,6356,6356,6356,6356,6356,6356,6356,6356, - 6356,6356,6356,6443,6356,6356,6356,6356,6356,6356, - 6356,6356,6356,6356,6356,6356,6356,6356,6356,6356, - 6356,395,6356,6356,6356,6356,710,658,676,6356, - 6356,6443,6443,6356,1222,6356,6356,6356,6356,6356, - 6356,6356,6356,6356,6356,6356,6356,6356,8,6383, - 6383,6383,6383,6383,6383,6383,6383,6383,6383,6383, - 6383,6383,6383,6383,6383,6383,6383,6383,6383,6383, - 6383,6383,6383,6383,6383,6383,6383,6383,6383,6383, - 6383,6383,6383,6383,6383,6383,6383,6383,6383,6383, - 6383,6383,6443,6383,6383,6383,6383,6383,6383,6383, - 6383,6383,6383,6383,6383,6383,6383,6383,6383,6383, - 575,6383,6383,6383,6383,710,658,676,6383,6383, - 6443,6443,6383,2056,6383,6383,6383,6383,6383,6383, - 6383,6383,6383,6383,6383,6383,6383,6443,6322,5938, - 5938,5938,5931,5938,5938,5938,5938,6329,5938,5938, + 1,1,1,312,1868,1,677,6576,840,779, + 805,1,1,310,383,6412,2837,6408,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 10,6314,6314,6314,6314,6314,6314,6314,6314,6314, + 6314,6314,6314,6314,6314,6314,6314,6314,6314,6314, + 6314,6314,6314,6314,6314,6314,6314,6314,6314,6314, + 6314,6314,6314,6314,6314,6314,6314,6314,6314,6314, + 6314,6314,6314,6314,6314,6314,6314,6314,6314,6314, + 6314,6314,6314,6314,6314,6314,6314,6314,6314,1137, + 6314,6314,6314,394,6314,6314,6314,6314,840,779, + 805,6314,6314,6401,6401,6314,851,6314,6314,6314, + 6314,6314,6314,6314,6314,6314,6314,6314,6314,6314, + 8,6341,6341,6341,6341,6341,6341,6341,6341,6341, + 6341,6341,6341,6341,6341,6341,6341,6341,6341,6341, + 6341,6341,6341,6341,6341,6341,6341,6341,6341,6341, + 6341,6341,6341,6341,6341,6341,6341,6341,6341,6341, + 6341,6341,6341,6341,6341,6341,6341,6341,6341,6341, + 6341,6341,6341,6341,6341,6341,6341,6341,6341,6401, + 6341,6341,6341,578,6341,6341,6341,6341,840,779, + 805,6341,6341,6401,6401,6341,1520,6341,6341,6341, + 6341,6341,6341,6341,6341,6341,6341,6341,6341,6341, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6287,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,6326,1,1,1,1, + 6284,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,6443,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,130, - 1916,1,724,6619,39,6146,6143,1,1,6443, - 2974,6454,6140,659,1299,3523,3230,2297,3196,3397, - 3633,3487,1869,3485,3522,3478,6443,6322,5938,5938, - 5938,5931,5938,5938,5938,5938,6329,5938,5938,1, + 1,1,1,1,1,1,1,1,1,6401, + 1,1,1,129,1868,1,677,6576,38,6104, + 6101,1,1,35,6401,6412,6098,1111,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6287,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,6326,1,1,1,1,1, + 6284,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 6443,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,131,1916, - 1,724,6619,6443,6457,6458,1,1,3324,3280, - 6454,1113,659,1299,3523,3230,2297,3196,3397,3633, - 3487,1869,3485,3522,3478,6443,6322,5938,5938,5938, - 5931,5938,5938,5938,5938,6329,5938,5938,1,1, + 1,1,1,1,1,1,1,1,1,1945, + 1,1,1,130,1868,1,677,6576,6401,6415, + 6416,1,1,3316,3236,6412,857,1111,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6287,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,6326,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,6443, + 6284,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,583,1916,1, - 724,6619,710,658,676,1,1,3324,3280,6454, - 6443,3608,1299,3523,3230,2297,3196,3397,3633,3487, - 1869,3485,3522,3478,6443,6322,5938,5938,5938,5931, - 5938,5938,5938,5938,6329,5938,5938,1,1,1, + 1,1,1,1,1,1,1,1,1,6401, + 1,1,1,586,1868,1,677,6576,840,779, + 805,1,1,3316,3236,6412,6401,6401,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6287,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,6326,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6443,1, + 6284,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,574,1916,1,724, - 6619,710,658,676,1,1,40,6443,6454,6443, - 6482,1299,3523,3230,2297,3196,3397,3633,3487,1869, - 3485,3522,3478,6443,6322,5938,5938,5938,5931,5938, - 5938,5938,5938,6329,5938,5938,1,1,1,1, + 1,1,1,1,1,1,1,1,1,4868, + 1,1,1,577,1868,1,677,6576,840,779, + 805,1,1,39,6401,6412,6401,6439,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6287,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,6326,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6443,1,1, + 6284,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,582,1916,1,724,6619, - 710,658,676,1,1,6443,6443,6454,925,1947, - 1299,3523,3230,2297,3196,3397,3633,3487,1869,3485, - 3522,3478,6443,6322,5938,5938,5938,5931,5938,5938, - 5938,5938,6329,5938,5938,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,6912, + 1,1,1,585,1868,1,677,6576,840,779, + 805,1,1,6401,6401,6412,3509,1164,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6287,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 6326,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,6443,1,1,1, + 6284,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,116,1916,1,724,6619,6443, - 6457,6458,1,1,358,4649,6454,1662,36,1299, - 3523,3230,2297,3196,3397,3633,3487,1869,3485,3522, - 3478,6443,6322,5938,5938,5938,5931,5938,5938,5938, - 5938,6329,5938,5938,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,6326, + 1,1,1,1,1,1,1,1,1,6401, + 1,1,1,115,1868,1,677,6576,6401,6415, + 6416,1,1,6401,4784,6412,1898,2700,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6287,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,6443,1,1,1,1, + 6284,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2005,1916,1,724,6619,6443,4619, - 686,1,1,6443,6443,6454,6800,2469,1299,3523, - 3230,2297,3196,3397,3633,3487,1869,3485,3522,3478, - 6443,6322,5938,5938,5938,5931,5938,5938,5938,5938, - 6329,5938,5938,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,6326,1, + 1,1,1,1,1,1,1,1,1,6401, + 1,1,1,2755,1868,1,677,6576,6401,4754, + 689,1,1,6401,568,6412,2413,1580,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6287,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,6443,1,1,1,1,1, + 6284,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,331,1916,1,724,6619,710,658,676, - 1,1,569,557,6454,1588,2057,1299,3523,3230, - 2297,3196,3397,3633,3487,1869,3485,3522,3478,6443, - 6322,5938,5938,5938,5931,5938,5938,5938,5938,6329, - 5938,5938,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,6326,1,1, + 1,1,1,1,1,1,1,1,1,6401, + 1,1,1,330,1868,1,677,6576,840,779, + 805,1,1,556,543,6412,2290,1185,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6287,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,375,1,1,1,1,1,1, + 6284,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,576,1916,1,724,6619,710,658,676,1, - 1,544,6443,6454,1185,5742,1299,3523,3230,2297, - 3196,3397,3633,3487,1869,3485,3522,3478,6443,6322, - 5938,5938,5938,5931,5938,5938,5938,5938,6329,5938, - 5938,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,6326,1,1,1, + 1,1,1,1,1,1,1,1,1,6401, + 1,1,1,579,1868,1,677,6576,840,779, + 805,1,1,6401,6401,6412,5696,4020,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 6401,6280,5896,5896,5896,5889,5896,5896,5896,5896, + 6287,5896,5896,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,6443,1,1,1,1,1,1,1, + 6284,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 417,1916,1,724,6619,710,658,676,1,1, - 6443,6443,6454,1,3608,1299,3523,3230,2297,3196, - 3397,3633,3487,1869,3485,3522,3478,40,5944,5941, - 5536,877,710,658,676,4894,659,6443,4960,4982, - 1523,6708,6706,6715,6714,6710,6711,6709,6712,6713, - 6716,6707,6780,6704,6781,891,6698,6705,6701,6677, - 6703,6702,6699,6700,6678,4938,4916,6463,5026,5004, - 6841,6443,4872,1730,1925,6465,1756,5272,1774,6466, - 6464,1716,6459,6461,6462,6460,5204,6842,6843,122, - 1864,1498,6443,6207,6207,230,6203,5938,5938,5938, - 230,230,6211,230,230,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,111, + 1,1,1,416,1868,1,677,6576,840,779, + 805,1,1,562,6401,6412,6401,3258,1016,3472, + 3690,2297,3629,3311,3624,3444,1541,3404,3398,3361, + 39,5902,5899,5695,880,840,779,805,5000,1111, + 6962,5066,5088,1428,6665,6663,6672,6671,6667,6668, + 6666,6669,6670,6673,6664,6737,6661,6738,5044,5022, + 6401,6420,6655,6662,6658,6634,6660,6659,6656,6657, + 6635,5132,5110,4978,6798,1727,1854,6422,1768,5400, + 1821,6423,6421,1715,6417,6418,6419,3108,5379,114, + 3683,6799,6800,5220,5242,1498,6401,6165,6165,229, + 6161,5896,5896,5896,229,229,6169,229,229,1, 1,1,1,1,1,1,1,1,1,1, - 230,1,1,1,1,1,1,1,1,1, - 6443,5944,5941,5930,6482,1,6200,309,5957,5953, - 3442,5950,6128,6134,6131,1113,659,6443,6137,6137, - 2867,1,1,1,6443,1318,395,1229,6855,6443, - 388,710,658,676,6447,230,6443,1662,416,331, - 5944,5941,3442,877,710,658,676,1113,659,4240, - 4270,6943,6443,5957,5953,3442,5950,6128,6134,6131, - 1113,659,6443,6137,6137,320,6443,6878,6879,6880, - 6443,6207,6207,230,6203,5938,5938,5938,230,230, - 6280,230,230,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,230,1, - 1,1,1,1,1,1,1,1,38,6194, - 6194,387,34,1,6200,6191,6194,6191,6191,6191, - 6443,395,6191,6191,6191,2203,710,658,676,1, - 1,1,633,1318,4763,1229,6855,6443,5944,5941, - 6191,6482,48,230,6446,6443,415,6443,6457,6458, - 6191,6191,1680,6191,6191,6455,444,1,1,6943, - 1,6182,6182,6182,225,563,308,6182,6182,5985, - 5979,5982,1,6119,6191,6878,6879,6880,6443,6191, - 6191,6191,6158,1850,6191,6191,1445,6191,6191,6780, - 6704,6781,7005,6698,6705,6701,6677,6703,6702,6699, - 6700,6678,6191,6191,6191,6191,6191,6191,6191,6191, - 6191,6191,6191,6191,6191,6191,6191,5076,1636,6454, - 6191,6191,6191,6191,6191,6191,6191,6191,6191,6191, - 6191,6191,6191,6443,6191,2933,6310,6443,6310,6310, - 6310,546,6990,6310,6310,6310,6454,448,445,40, - 40,226,6482,6289,6295,6292,5994,5988,5991,6298, - 6298,6310,6443,394,6006,6006,6991,284,5997,6003, - 6000,6310,6310,2903,6310,6310,6780,6704,6781,6443, - 6698,6705,6701,6677,6703,6702,6699,6700,6678,439, - 2041,6772,93,1,1,6310,1,6380,6380,6380, - 6310,6310,6310,6380,6380,6310,6310,284,6310,6310, - 6443,5957,5953,3442,5950,6128,6134,6131,1113,659, - 774,6179,6179,6310,6310,6310,6310,6310,6310,6310, - 6310,6310,6310,6310,6310,6310,6310,6310,6443,6125, - 6122,6310,6310,6310,6310,6310,6310,6310,6310,6310, - 6310,6310,6310,6310,1,6310,6443,5938,5938,230, - 5938,5931,5938,5938,230,230,5967,230,230,1, + 1,1,1,1,447,291,229,6401,1,1, + 1,1,1,1,1,1,1,6405,5888,39, + 1,6401,224,6439,840,779,805,5943,5937,5940, + 330,330,6401,6083,6080,6158,1,1,1,581, + 876,113,1408,6812,6317,6323,6320,6737,6661,6738, + 229,135,301,415,6655,6662,6658,6634,6660,6659, + 6656,6657,6635,5220,5242,6701,6900,139,6401,5915, + 5911,2940,5908,6086,6092,6089,857,1111,776,6095, + 6095,2244,6835,6836,6837,6401,6165,6165,229,6161, + 5896,5896,5896,229,229,6238,229,229,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,230,1,1,10653,1,1, - 1,1,1,1,6878,6879,6880,532,1,1, - 5935,6443,5957,5953,3442,5950,6128,6134,6131,1113, - 659,6268,6179,6179,6443,1,1,1,302,1289, - 6443,724,6655,96,40,40,118,6482,6419,6425, - 6422,6744,220,224,6428,6428,136,4649,5976,5970, - 5973,6271,2428,134,186,6943,6802,6708,6706,6715, - 6714,6710,6711,6709,6712,6713,6716,6707,6780,6704, - 6781,3717,6698,6705,6701,6677,6703,6702,6699,6700, - 6678,287,6018,6018,2203,284,710,658,676,220, - 6443,5938,5938,230,5938,5931,5938,5938,230,230, - 230,230,230,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,230,1, - 1,10653,1,1,1,1,1,1,6443,6457, - 6458,4619,686,1,5935,30,387,387,6344,387, - 387,387,387,387,387,6344,6344,6344,2713,1, - 1,1,578,1289,3024,724,6655,6359,6365,6362, - 387,387,387,6344,387,387,387,387,387,387, - 387,387,387,1,5957,5953,5947,5950,6440,6943, - 6443,5964,5961,6453,6443,10363,10360,345,5944,5941, - 3429,877,710,658,676,1113,659,6155,331,331, - 6443,6452,6344,6344,580,6173,6173,454,585,710, - 658,676,6443,221,6443,5938,5938,230,5938,5931, - 5938,5938,230,230,230,230,230,1,1,1, + 1,1,1,386,6401,229,891,1,1,1, + 1,1,1,1,1,1,6401,33,6404,1, + 6149,6401,6149,6149,6149,5220,5242,6149,6149,6149, + 6401,6411,2203,2015,6158,1,1,1,139,876, + 6413,1408,6812,6401,2714,6149,6149,6149,131,229, + 394,6410,414,6401,387,840,779,805,6149,6149, + 3036,567,2636,1116,133,6900,6077,4249,1968,1921, + 1874,1827,1780,1733,1686,1639,1592,1545,6401,1533, + 6149,6835,6836,6837,1273,6149,6149,6149,6407,6855, + 6149,6149,1492,6149,6149,308,5915,5911,2940,5908, + 6086,6092,6089,857,1111,6412,6095,6095,6149,6149, + 6149,6149,6149,6149,6149,6149,6149,6149,6149,6149, + 6149,6149,6149,6401,6415,6416,6149,6149,6149,6149, + 6149,6149,6149,6149,6149,6149,6149,6149,6149,6401, + 6149,307,6268,2636,6268,6268,6268,6406,4249,6268, + 6268,6268,32,387,387,6299,387,387,387,387, + 387,387,6299,6299,6299,580,2905,6268,6268,6268, + 6326,6332,6329,404,6401,6415,6416,387,387,387, + 6268,6268,6299,6232,387,387,387,387,387,387, + 387,387,387,344,39,39,2784,6439,840,779, + 805,6401,6268,6235,330,330,6401,6268,6268,6268, + 1972,2970,6268,6268,117,6268,6268,6401,9999,9945, + 6299,6299,286,5976,5976,4784,283,840,779,805, + 6268,6268,6268,6268,6268,6268,6268,6268,6268,6268, + 6268,6268,6268,6268,6268,5182,1065,6401,6268,6268, + 6268,6268,6268,6268,6268,6268,6268,6268,6268,6268, + 6268,636,6268,6401,5896,5896,229,5896,5889,5896, + 5896,229,229,5925,229,229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,10653,1,1,1,1, - 1,1,1394,6844,633,1,227,1,5935,117, - 40,6015,6009,6012,6482,710,658,676,6268,6149, - 4649,331,331,1,1,1,894,1289,112,724, - 6655,6780,6704,6781,566,6698,6705,6701,6677,6703, - 6702,6699,6700,6678,127,577,6443,6443,6271,2428, - 6368,6374,6371,6943,6443,5938,5938,230,5938,5931, - 5938,5938,230,230,6197,230,230,1,1,1, + 1,6401,453,229,4187,1,1,9831,1,1, + 1,1,1,1,6401,5902,5899,1,880,225, + 4754,689,857,1111,5952,5946,5949,6401,5902,5899, + 6841,6439,5893,1,1,1,301,631,1,677, + 6612,6401,6083,6080,6737,6661,6738,6401,362,6701, + 219,6655,6662,6658,6634,6660,6659,6656,6657,6635, + 6401,5902,5899,6900,6439,6107,6401,5896,5896,229, + 5896,5889,5896,5896,229,229,229,229,229,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,10653,1,1,1,1, - 1,1,1,5957,5953,5947,5950,1,5935,6443, - 5964,5961,228,813,4619,686,3610,6027,6021,6024, - 49,6125,6122,1,1,1,6283,1289,418,724, - 6655,5113,5135,710,658,676,6443,6780,6704,6781, - 221,6698,6705,6701,6677,6703,6702,6699,6700,6678, - 6443,3455,2573,6943,6443,5938,5938,230,5938,5931, - 5938,5938,230,230,6197,230,230,1,1,1, + 1,1,1,1,357,1,229,219,1,1, + 9831,1,1,1,1,1,1,362,6226,226, + 1,6401,5182,1065,5973,5967,5970,583,6131,6131, + 137,588,840,779,805,5893,1,1,1,118, + 631,362,677,6612,6737,6661,6738,438,439,6229, + 1,6655,6662,6658,6634,6660,6659,6656,6657,6635, + 6116,37,6152,6152,2549,1,6900,4693,4669,6401, + 5896,5896,229,5896,5889,5896,5896,229,229,229, + 229,229,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,6757,120,229, + 220,1,1,9831,1,1,1,1,1,1, + 6401,6110,227,1,6401,6415,6416,5985,5979,5982, + 6437,48,6083,6080,6413,6412,4693,4669,5893,1, + 1,1,1124,631,2676,677,6612,6737,6661,6738, + 396,6415,6416,2269,6655,6662,6658,6634,6660,6659, + 6656,6657,6635,6835,6836,6837,6401,6211,6208,6900, + 6401,5896,5896,229,5896,5889,5896,5896,229,229, + 6155,229,229,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,6401,6412, + 229,6401,1,1,9831,1,1,1,1,1, + 1,6401,2955,6729,1,6401,5915,5911,2940,5908, + 6086,6092,6089,857,1111,6437,6137,6137,6401,5893, + 1,1,1,47,631,1,677,6612,2784,29, + 1,5915,5911,3420,5908,6259,6401,220,857,1111, + 366,6401,393,5964,5964,6401,283,5955,5961,5958, + 6900,6401,5896,5896,229,5896,5889,5896,5896,229, + 229,6155,229,229,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,2203, + 138,229,1569,1,1,9831,1,1,1,1, + 1,1,6113,636,6262,1,545,6947,636,366, + 366,283,317,366,6401,6134,1295,2698,6401,2766, + 5893,1,1,1,6407,631,112,677,6612,2577, + 394,6948,6401,366,3698,840,779,805,220,319, + 565,1,5915,5911,2940,5908,6086,6092,6089,857, + 1111,6900,6401,5896,5896,229,5896,5889,5896,5896, + 229,229,6155,229,229,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,10653,1,1,1,1, - 1,1,38,6194,6194,40,6443,1,5935,6482, - 1,5957,5953,3442,5950,6128,6134,6131,1113,659, - 309,6443,2153,1,1,1,1,1289,292,724, - 6655,1713,2459,1,5957,5953,3429,5950,309,6443, - 221,1113,659,367,129,126,6480,396,6443,6253, - 6250,387,38,6943,6443,5938,5938,230,5938,5931, - 5938,5938,230,230,6197,230,230,1,1,1, + 636,1,229,6406,1,1,9831,1,1,1, + 1,1,1,2134,2676,2671,1,6401,6335,6335, + 6335,6335,6335,6335,6335,6335,6335,636,6335,6335, + 2238,5893,1,1,1,2203,631,6401,677,6612, + 5220,5242,1,5915,5911,5905,5908,6407,6401,220, + 5922,5919,1,5915,5911,2940,5908,6086,6092,6089, + 857,1111,6900,6401,5896,5896,229,5896,5889,5896, + 5896,229,229,229,229,229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,10653,1,1,1,1, - 1,1,6480,44,6259,6259,6480,1,5935,138, - 633,367,367,2244,137,367,3610,140,1295,1850, - 6878,6879,6880,1,1,1,6347,1289,3532,724, - 6655,1,1,6335,6335,367,6332,6128,6134,6131, - 221,363,363,331,331,4240,4270,6256,397,6457, - 6458,3455,2573,6943,6443,5938,5938,230,5938,5931, - 5938,5938,230,230,230,230,230,1,1,1, + 1,6335,132,229,6759,1,1,9831,1,1, + 1,1,1,1,3036,121,6406,1,6401,5915, + 5911,2940,5908,6086,6092,6089,857,1111,6401,6137, + 6137,3525,5893,1,1,1,2203,631,6409,677, + 6612,344,5902,5899,3420,880,840,779,805,857, + 1111,116,330,330,417,6401,9999,9945,6401,840, + 779,805,4784,6900,6401,5896,5896,229,5896,5889, + 5896,5896,229,229,229,229,229,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,10653,1,1,1,1, - 1,1,2015,46,6319,6319,6443,1,5935,363, - 363,1,5957,5953,3442,5950,6128,6134,6131,1113, - 659,370,2676,1,1,1,2713,1289,6443,724, - 6655,2636,2901,363,363,368,4161,1968,1921,1874, - 1827,1780,1733,1686,1639,1592,1545,6316,6443,10630, - 10630,125,6443,6943,6443,5938,5938,230,5938,5931, - 5938,5938,230,230,230,230,230,1,1,1, + 1,1,125,119,229,6401,1,1,9831,1, + 1,1,1,1,1,6408,4368,4399,1,636, + 1,5915,5911,2940,5908,6086,6092,6089,857,1111, + 308,4693,4669,5893,1,1,1,37,631,6401, + 677,6612,1,6293,6293,6401,6290,6086,6092,6089, + 308,124,362,330,330,457,6401,4754,689,395, + 290,6415,6416,386,6900,6401,5896,5896,229,5896, + 5889,5896,5896,229,229,229,229,229,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,10653,1,1,1,1, - 1,1,6480,38,6194,6194,1342,1,5935,583, - 5944,5941,3442,877,710,658,676,1113,659,311, - 1404,508,1629,1,1,1,6443,1289,458,724, - 6655,6443,6377,6377,6377,6377,6377,6377,6377,6377, - 6377,506,6377,6377,6443,10363,10360,1615,6443,6406, - 6402,4240,4270,6943,6443,5938,5938,230,5938,5931, - 5938,5938,230,230,230,230,230,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,230,1,1,10653,1,1,1,1, - 1,1,6480,119,1137,6185,5324,1,5935,1, - 5957,5953,3429,5950,6377,302,6443,1113,659,6301, - 291,6457,6458,1,1,1,5419,1289,6744,724, - 6655,1,5957,5953,3442,5950,6128,6134,6131,1113, - 659,4558,4534,1,5957,5953,5536,5950,121,6443, - 6443,4894,659,6943,4960,4982,6214,6241,6247,6220, - 6223,6235,6232,6238,6229,6226,6217,6244,345,40, - 40,2739,6482,710,658,676,633,6304,1758,331, - 331,4938,4916,6463,5026,5004,4558,4534,4872,1730, - 1925,6465,1756,5272,1774,6466,6464,1716,6459,6461, - 6462,6460,6443,140,2203,440,30,1498,40,5944, - 5941,5536,877,40,40,516,4894,659,6416,4960, - 4982,2181,6708,6706,6715,6714,6710,6711,6709,6712, - 6713,6716,6707,139,6443,633,1,5957,5953,3442, - 5950,6128,6134,6131,1113,659,4938,4916,6463,5026, - 5004,515,6443,4872,1730,1925,6465,1756,5272,1774, - 6466,6464,1716,6459,6461,6462,6460,6152,6155,581, - 6170,6170,1498,585,6161,6167,6164,40,5944,5941, - 5536,877,6265,457,6450,4894,659,6262,4960,4982, - 2181,6708,6706,6715,6714,6710,6711,6709,6712,6713, - 6716,6707,1,5957,5953,3429,5950,2636,6443,2203, - 1113,659,4161,585,1958,4938,4916,6463,5026,5004, - 962,348,4872,1730,1925,6465,1756,5272,1774,6466, - 6464,1716,6459,6461,6462,6460,2676,318,6443,1, - 6176,1498,2739,30,142,5944,5941,5536,877,6301, - 6188,6265,4894,659,6443,4960,4982,2181,6708,6706, - 6715,6714,6710,6711,6709,6712,6713,6716,6707,633, - 1,5957,5953,3442,5950,6443,6125,6122,1113,659, - 6955,2979,4938,4916,6463,5026,5004,6443,633,4872, - 1730,1925,6465,1756,5272,1774,6466,6464,1716,6459, - 6461,6462,6460,6443,633,1850,633,6304,1498,552, - 5944,5941,5536,877,40,40,424,4894,659,6443, - 4960,4982,2181,6708,6706,6715,6714,6710,6711,6709, - 6712,6713,6716,6707,1,449,6443,2739,347,3859, - 115,3059,6443,6443,341,5076,1636,4938,4916,6463, - 5026,5004,6453,6453,4872,1730,1925,6465,1756,5272, - 1774,6466,6464,1716,6459,6461,6462,6460,6443,135, - 6452,6452,114,1498,1,5957,5953,5536,5950,40, - 40,1850,4894,659,6443,4960,4982,6214,6241,6247, - 6220,6223,6235,6232,6238,6229,6226,6217,6244,6443, - 6443,633,341,341,1031,633,341,405,6443,6457, - 6458,3131,4938,4916,6463,5026,5004,6274,6455,4872, - 1730,1925,6465,1756,5272,1774,6466,6464,1716,6459, - 6461,6462,6460,5113,5135,6277,6443,1572,1498,40, - 5944,5941,5536,877,40,40,6449,4894,659,6262, - 4960,4982,2181,6708,6706,6715,6714,6710,6711,6709, - 6712,6713,6716,6707,521,5113,5135,6443,5944,5941, - 3024,877,6443,6443,2462,6313,659,4938,4916,6463, - 5026,5004,6454,6449,4872,1730,1925,6465,1756,5272, - 1774,6466,6464,1716,6459,6461,6462,6460,37,6413, - 6410,6443,6443,1498,6448,2612,40,5944,5941,5536, - 877,1014,6449,6265,4894,659,6447,4960,4982,2181, - 6708,6706,6715,6714,6710,6711,6709,6712,6713,6716, - 6707,38,6194,6194,894,113,710,658,676,1, - 6443,6448,331,568,4938,4916,6463,5026,5004,6453, - 6449,4872,1730,1925,6465,1756,5272,1774,6466,6464, - 1716,6459,6461,6462,6460,1,132,6452,1339,362, - 6448,420,6443,6912,6443,6480,6906,6910,3068,6387, - 6395,6391,6451,1402,6399,3608,33,388,388,6341, - 388,388,388,388,388,388,6341,6341,6341,6443, - 124,428,6399,6904,6905,6443,6935,6936,6448,999, - 6913,388,388,388,6341,388,388,388,388,388, - 388,388,388,388,6443,336,6446,6915,5113,5135, - 6443,123,922,120,6937,1083,1174,6916,3994,1776, - 6914,1089,6443,6399,6443,1402,2391,6443,6450,6443, - 6780,6443,6781,6341,6341,6926,6925,6449,6938,6449, - 6907,6908,6931,6932,6929,6930,6909,6911,6933,6934, - 6443,4558,4534,6939,937,6919,6920,6921,6917,6918, - 6927,6928,6923,6922,6924,40,5944,5941,5536,877, - 4240,4270,870,4894,659,6443,4960,4982,2181,6708, - 6706,6715,6714,6710,6711,6709,6712,6713,6716,6707, - 6443,5944,5941,717,877,6448,5157,6448,6313,659, - 1759,4240,4270,4938,4916,6463,5026,5004,6443,3681, - 4872,1730,1925,6465,1756,5272,1774,6466,6464,1716, - 6459,6461,6462,6460,40,5944,5941,5536,877,1498, - 6443,6443,4894,659,1235,4960,4982,2181,6708,6706, - 6715,6714,6710,6711,6709,6712,6713,6716,6707,1, - 5957,5953,3442,5950,6443,6443,6443,1113,659,6443, - 6443,6443,4938,4916,6463,5026,5004,6443,6443,4872, - 1730,1925,6465,1756,5272,1774,6466,6464,1716,6459, - 6461,6462,6460,2005,40,5944,5941,5536,877,6443, - 40,2816,4894,659,6482,4960,4982,2181,6708,6706, - 6715,6714,6710,6711,6709,6712,6713,6716,6707,6443, - 5944,5941,92,877,6443,6307,3169,1113,659,101, - 6443,4009,4938,4916,6463,5026,5004,6898,6884,4872, - 1730,1925,6465,1756,5272,1774,6466,6464,1716,6459, - 6461,6462,6460,40,5944,5941,5754,877,1498,6443, - 6443,4894,659,2105,4960,4982,2181,6708,6706,6715, - 6714,6710,6711,6709,6712,6713,6716,6707,6443,5944, - 5941,49,877,6443,49,6458,1113,659,6457,6443, - 6443,4938,4916,6463,5026,5004,5061,2338,4872,1730, - 1925,6465,1756,5272,1774,6466,6464,1716,6459,6461, - 6462,6460,40,5944,5941,5536,877,6443,6443,6443, - 4894,659,4330,4960,4982,2181,6708,6706,6715,6714, - 6710,6711,6709,6712,6713,6716,6707,6443,238,6443, - 6443,6338,128,6458,133,4790,6457,6449,100,6449, - 4938,4916,6463,5026,5004,6443,3068,4872,1730,1925, - 6465,1756,5272,1774,6466,6464,1716,6459,6461,6462, - 6460,40,5944,5941,5536,877,6443,6443,6443,4894, - 659,2949,4960,4982,2181,6708,6706,6715,6714,6710, - 6711,6709,6712,6713,6716,6707,1,6443,6443,5511, - 290,158,6443,6443,3610,6448,1451,6448,5516,4938, - 4916,6463,5026,5004,6350,2432,4872,1730,1925,6465, - 1756,5272,1774,6466,6464,1716,6459,6461,6462,6460, - 6443,5944,5941,6443,6482,710,658,676,6443,3455, - 2573,5780,6443,1004,6708,6706,6715,6714,6710,6711, - 6709,6712,6713,6716,6707,6780,6704,6781,6443,6698, - 6705,6701,6677,6703,6702,6699,6700,6678,6451,947, - 2062,717,1,6841,3683,3557,6443,1,8,242, - 6112,6108,6286,6116,6042,6036,6039,162,6434,5204, - 6842,6843,1004,6099,6105,6078,6081,6093,6090,6096, - 6087,6084,6075,6102,6048,6054,6045,6443,6072,6051, - 6063,6033,6057,6060,6069,6066,6030,76,1,1, - 3769,1,6841,1,6443,6443,6443,6443,192,528, - 6443,164,6443,6449,6450,5815,426,6443,5204,6842, - 6843,6443,74,510,4163,162,192,6443,6450,2109, - 5818,2,6443,6443,6434,4679,4696,6443,6506,6507, - 4751,6443,6443,6443,4822,3919,3904,6443,6443,104, - 3949,5062,4053,6443,1,6443,6443,2860,3494,3561, - 279,6443,6443,6437,2487,6443,6443,528,6443,164, - 6443,6448,6443,6443,6443,6443,3568,3582,6443,3678, - 3723,6443,6443,3768,6431,1582,6443,6443,6443,6443, - 6443,6443,2156,38,630,6443,6443,6443,2545,6443, - 6443,6443,6443,6443,6443,727,6443,6443,6443,6443, - 6443,6443,6443,6443,6443,6443,6443,6443,6443,800 + 1,1,1,4368,4399,229,6437,1,1,9831, + 1,1,1,1,1,1,6401,126,2134,1, + 6401,362,330,5902,5899,2940,880,840,779,805, + 857,1111,2134,6143,5893,1,1,1,6401,631, + 1,677,6612,6401,6401,362,346,2037,6401,3399, + 6244,1492,4368,4399,3350,1,5915,5911,5695,5908, + 43,6217,6217,5000,1111,6900,5066,5088,6172,6199, + 6205,6178,6181,6193,6190,6196,6187,6184,6175,6202, + 3602,369,427,5044,5022,6401,6420,584,6128,6128, + 6241,588,6119,6125,6122,6407,5132,5110,4978,6401, + 1727,1854,6422,1768,5400,1821,6423,6421,1715,6417, + 6418,6419,3108,5379,636,3445,2573,6408,6801,6214, + 1498,39,5902,5899,5695,880,39,39,515,5000, + 1111,6374,5066,5088,2039,6665,6663,6672,6671,6667, + 6668,6666,6669,6670,6673,6664,588,136,1,5044, + 5022,2784,6420,367,6406,6401,1005,1342,340,885, + 335,123,5132,5110,4978,6407,1727,1854,6422,1768, + 5400,1821,6423,6421,1715,6417,6418,6419,3108,5379, + 1,5915,5911,2940,5908,6737,1498,6738,857,1111, + 456,39,5902,5899,5695,880,6223,6401,6408,5000, + 1111,6220,5066,5088,2039,6665,6663,6672,6671,6667, + 6668,6666,6669,6670,6673,6664,636,340,340,5044, + 5022,340,6420,128,6406,2183,45,6277,6277,1404, + 6401,39,5132,5110,4978,6439,1727,1854,6422,1768, + 5400,1821,6423,6421,1715,6417,6418,6419,3108,5379, + 2714,6401,4368,4399,6401,2846,1498,2565,6146,141, + 5902,5899,5695,880,6407,514,6223,5000,1111,6401, + 5066,5088,2039,6665,6663,6672,6671,6667,6668,6666, + 6669,6670,6673,6664,6401,6274,3602,5044,5022,29, + 6420,6401,37,6152,6152,122,6305,840,779,805, + 5132,5110,4978,330,1727,1854,6422,1768,5400,1821, + 6423,6421,1715,6417,6418,6419,3108,5379,36,6371, + 6368,3445,2573,6406,1498,551,5902,5899,5695,880, + 39,39,1124,5000,1111,961,5066,5088,2039,6665, + 6663,6672,6671,6667,6668,6666,6669,6670,6673,6664, + 6401,6437,2134,5044,5022,6401,6420,6401,2338,6401, + 6345,6353,6349,423,3526,6357,5132,5110,4978,6407, + 1727,1854,6422,1768,5400,1821,6423,6421,1715,6417, + 6418,6419,3108,5379,6401,6357,4368,4399,1,6401, + 1498,1,5915,5911,5695,5908,39,39,6411,5000, + 1111,6401,5066,5088,6172,6199,6205,6178,6181,6193, + 6190,6196,6187,6184,6175,6202,6401,6401,6410,5044, + 5022,127,6420,6401,2109,6357,6401,3636,6406,1451, + 5264,6401,5132,5110,4978,2248,1727,1854,6422,1768, + 5400,1821,6423,6421,1715,6417,6418,6419,3108,5379, + 6401,1,3781,6401,6401,6401,1498,39,5902,5899, + 5695,880,39,39,6409,5000,1111,6220,5066,5088, + 2039,6665,6663,6672,6671,6667,6668,6666,6669,6670, + 6673,6664,720,6401,3602,5044,5022,6401,6420,3841, + 3534,1,6401,3636,6308,6401,3715,6411,5132,5110, + 4978,191,1727,1854,6422,1768,5400,1821,6423,6421, + 1715,6417,6418,6419,3108,5379,4097,6410,4148,3445, + 2573,191,1498,3536,1089,39,5902,5899,5695,880, + 6401,6408,6223,5000,1111,6405,5066,5088,2039,6665, + 6663,6672,6671,6667,6668,6666,6669,6670,6673,6664, + 37,6152,6152,5044,5022,3384,6420,3141,6152,6401, + 10421,10421,37,6152,6152,48,5132,5110,4978,6416, + 1727,1854,6422,1768,5400,1821,6423,6421,1715,6417, + 6418,6419,3108,5379,39,5902,5899,5695,880,6401, + 6364,6360,5000,1111,6401,5066,5088,2039,6665,6663, + 6672,6671,6667,6668,6666,6669,6670,6673,6664,1992, + 8,6401,5044,5022,6401,6420,374,3559,6437,48, + 6392,1804,6401,6415,6407,5132,5110,4978,6416,1727, + 1854,6422,1768,5400,1821,6423,6421,1715,6417,6418, + 6419,3108,5379,6401,1,6401,6404,1,6437,1498, + 39,5902,5899,5695,880,2180,6401,161,5000,1111, + 6401,5066,5088,2039,6665,6663,6672,6671,6667,6668, + 6666,6669,6670,6673,6664,1,1,1,5044,5022, + 448,6420,6415,6406,5515,527,163,6392,6401,6401, + 6226,5132,5110,4978,134,1727,1854,6422,1768,5400, + 1821,6423,6421,1715,6417,6418,6419,3108,5379,361, + 289,39,5902,5899,5695,880,161,507,3138,5000, + 1111,6229,5066,5088,2039,6665,6663,6672,6671,6667, + 6668,6666,6669,6670,6673,6664,2549,3966,3559,5044, + 5022,1,6420,91,527,163,6265,505,419,347, + 2456,6407,5132,5110,4978,6401,1727,1854,6422,1768, + 5400,1821,6423,6421,1715,6417,6418,6419,3108,5379, + 1,6401,237,1755,157,6296,1498,425,6869,841, + 951,6863,6867,1,5915,5911,2940,5908,6086,6092, + 6089,857,1111,4226,1,6401,2905,5454,6861,6862, + 586,5902,5899,2940,880,840,779,805,857,1111, + 6406,6892,6893,6870,443,1,1,636,1,6140, + 6140,6140,6401,4573,2391,6140,6140,6401,1,5915, + 5911,3420,5908,6872,73,6401,857,1111,1713,6401, + 6894,1337,1377,6873,2062,3684,6871,3299,1,5915, + 5911,3420,5908,6401,6401,6401,857,1111,6259,6401, + 6401,6883,6882,5753,6895,531,6864,6865,6888,6889, + 6886,6887,6866,6868,6890,6891,6401,6401,6401,6896, + 5769,6876,6877,6878,6874,6875,6884,6885,6880,6879, + 6881,39,5902,5899,5719,880,636,6389,1945,5000, + 1111,3744,5066,5088,2039,6665,6663,6672,6671,6667, + 6668,6666,6669,6670,6673,6664,636,6262,6401,5044, + 5022,4154,6420,6401,6401,6401,5776,4283,4317,3804, + 3767,520,5132,5110,4978,2156,1727,1854,6422,1768, + 5400,1821,6423,6421,1715,6417,6418,6419,3108,5379, + 39,5902,5899,5729,880,6401,6401,6401,5000,1111, + 4498,5066,5088,2039,6665,6663,6672,6671,6667,6668, + 6666,6669,6670,6673,6664,100,99,6401,5044,5022, + 4779,6420,6401,6401,6401,4129,4224,4225,6401,6401, + 6401,5132,5110,4978,6401,1727,1854,6422,1768,5400, + 1821,6423,6421,1715,6417,6418,6419,3108,5379,39, + 5902,5899,5746,880,6401,6401,6401,5000,1111,4816, + 5066,5088,2039,6665,6663,6672,6671,6667,6668,6666, + 6669,6670,6673,6664,6401,185,103,5044,5022,4393, + 6420,2,1898,4815,2432,6401,278,6401,3901,6395, + 5132,5110,4978,3559,1727,1854,6422,1768,5400,1821, + 6423,6421,1715,6417,6418,6419,3108,5379,39,5902, + 5899,5695,880,6401,6401,6401,5000,1111,509,5066, + 5088,2039,6665,6663,6672,6671,6667,6668,6666,6669, + 6670,6673,6664,6401,6401,6401,5044,5022,6401,6420, + 6401,6401,6401,6401,37,6401,6401,6401,39,5132, + 5110,4978,6439,1727,1854,6422,1768,5400,1821,6423, + 6421,1715,6417,6418,6419,3108,5379,39,5902,5899, + 5695,880,6401,6401,1162,5000,1111,6401,5066,5088, + 2039,6665,6663,6672,6671,6667,6668,6666,6669,6670, + 6673,6664,6401,6401,2545,5044,5022,6401,6420,6401, + 6398,6401,6401,6401,6401,6401,6401,6401,5132,5110, + 4978,6401,1727,1854,6422,1768,5400,1821,6423,6421, + 1715,6417,6418,6419,3108,5379,6401,5902,5899,6401, + 6439,840,779,805,6401,6401,6401,6401,6401,721, + 6665,6663,6672,6671,6667,6668,6666,6669,6670,6673, + 6664,6737,6661,6738,6835,6836,6837,6401,6655,6662, + 6658,6634,6660,6659,6656,6657,6635,6401,6401,6401, + 6798,6401,6401,6401,6401,6401,241,6070,6066,6401, + 6074,6000,5994,5997,6401,6401,3683,6799,6800,721, + 6057,6063,6036,6039,6051,6048,6054,6045,6042,6033, + 6060,6006,6012,6003,6401,6401,6401,6401,6030,6009, + 6021,5991,6015,6018,6027,6024,5988,6401,6401,6401, + 6798,29,386,386,6302,386,386,386,386,386, + 386,6302,6302,6302,6401,6401,3683,6799,6800,6401, + 6401,75,6401,6401,4054,6401,386,386,386,6401, + 6401,6302,6401,386,386,386,386,386,386,386, + 386,386,1,5915,5911,5905,5908,6401,6401,6401, + 5922,5919,6411,6401,6401,6401,6401,6401,6401,6401, + 223,6401,6463,6464,6113,5934,5928,5931,6401,6302, + 6302,6401,6410,6401,6665,6663,6672,6671,6667,6668, + 6666,6669,6670,6673,6664,6737,6661,6738,6401,3228, + 6401,6401,6655,6662,6658,6634,6660,6659,6656,6657, + 6635,444,39,39,6401,6439,6247,6253,6250,6401, + 6401,6401,6256,6256,92,1,1,6401,1,6338, + 6338,6338,6401,6401,6401,6338,6338,95,39,39, + 801,6439,6377,6383,6380,6401,6401,6401,6386,6386, + 6401,6401,5902,5899,1235,880,6401,6401,6401,6271, + 1111,6401,5902,5899,6401,880,6401,6401,6401,6271, + 1111,1,5915,5911,2940,5908,6401,6401,6401,857, + 1111,6401,5902,5899,6401,880,6401,6401,6401,857, + 1111,6401,6401,6401,6401,6401,6401,6401,6401,6401, + 6401,6401,6401,6401,6401,6401,6401,6401,6401,6401, + 730,6401,6401,6401,6401,6401,6401,6401,6401,6401, + 2608 }; }; public final static char termAction[] = TermAction.termAction; @@ -2052,65 +2085,66 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Asb { public final static char asb[] = {0, - 1066,4,1057,1,90,1100,261,1017,634,190, - 1065,121,514,1155,937,1155,1155,1155,948,192, - 948,921,948,1172,948,932,948,121,517,132, - 1100,1005,576,656,656,50,517,656,517,1155, - 379,792,263,215,192,137,517,515,631,761, - 368,634,211,923,258,921,190,121,1172,520, - 517,517,259,123,207,207,705,717,195,195, - 1008,642,704,1005,1005,517,880,369,520,520, - 653,47,369,656,656,379,656,517,305,800, - 227,216,216,215,215,215,121,517,515,611, - 311,610,617,368,367,369,211,517,204,623, - 372,259,192,583,517,520,259,517,301,207, - 192,121,717,6,1005,1011,517,477,150,1005, - 717,301,649,520,520,1008,47,47,515,800, - 227,215,596,215,517,705,705,631,705,1111, - 634,426,425,368,596,517,211,209,190,379, - 513,1157,211,204,373,207,204,207,259,583, - 583,517,792,415,1155,379,379,379,379,121, - 1155,458,578,478,478,478,478,478,478,478, - 478,478,658,664,669,666,673,671,678,676, - 680,679,681,317,682,791,517,123,517,192, - 439,599,517,1155,47,696,1005,1012,369,477, - 596,192,1005,717,1015,649,792,792,653,369, - 780,765,779,791,379,588,588,596,596,517, - 518,369,617,369,326,369,305,1159,207,207, - 207,207,517,583,596,603,595,1008,796,776, - 775,458,90,90,90,90,517,327,369,369, - 458,1114,89,305,458,658,125,125,327,477, - 478,478,478,478,478,478,478,478,478,478, - 478,478,478,478,478,478,478,478,478,477, - 477,477,477,477,477,477,477,477,477,477, - 477,478,458,301,615,440,121,517,327,608, - 596,150,649,648,708,477,777,777,794,1008, - 885,227,216,227,790,790,705,369,426,515, - 704,478,209,718,636,701,1159,207,207,141, - 596,478,517,415,369,798,800,369,369,792, - 792,792,792,259,369,478,726,954,954,121, - 578,47,89,477,369,514,516,514,369,47, - 666,666,664,664,664,671,671,671,671,669, - 669,676,673,673,679,678,680,209,681,615, - 439,209,478,209,705,438,1155,1155,1155,440, - 1155,517,838,705,705,517,192,369,477,150, - 649,708,477,477,798,765,227,90,90,326, - 705,1159,478,478,701,701,1159,1159,599,120, - 142,517,369,800,1155,1155,1155,1155,517,517, - 517,305,478,90,662,381,369,517,516,305, - 477,430,1155,430,440,209,440,458,458,456, - 883,458,705,705,724,615,595,710,791,701, - 701,141,517,121,121,517,784,369,477,477, - 477,477,1155,1155,259,515,369,662,1008,123, - 517,515,885,440,369,1005,369,456,1100,1155, - 369,615,594,149,710,836,517,517,517,784, - 784,369,369,369,369,327,327,517,662,663, - 662,477,381,309,658,123,369,369,1002,440, - 724,440,705,1100,477,440,437,594,594,1155, - 588,517,517,786,784,369,369,989,662,327, - 478,47,309,192,192,1004,477,438,327,705, - 369,801,790,786,786,663,369,47,440,369, - 705,426,514,786,440,90 + 1096,62,1087,70,221,1130,483,1047,119,176, + 1095,252,638,1186,967,1186,1186,1186,978,178, + 978,924,978,935,978,962,978,252,641,121, + 1130,1035,542,726,726,181,641,726,641,1186, + 377,952,260,437,178,256,641,639,116,714, + 366,119,433,926,480,924,176,252,935,485, + 641,641,481,254,13,13,775,808,1,1, + 1038,668,774,1035,1035,641,860,367,485,485, + 723,59,367,726,726,377,726,641,302,869, + 449,438,438,437,437,437,252,641,639,652, + 308,651,656,366,365,367,433,641,10,954, + 370,481,178,674,641,485,481,641,298,13, + 178,252,808,17,1035,1041,641,600,135,1035, + 808,298,719,485,485,1038,59,59,639,869, + 449,437,381,437,641,775,775,116,775,1141, + 119,429,428,366,381,641,433,15,176,377, + 637,907,433,10,371,13,10,13,481,674, + 674,641,952,418,1186,377,377,377,377,252, + 1186,581,544,601,601,601,601,601,601,601, + 601,601,601,601,728,734,739,736,743,741, + 748,746,750,749,751,314,752,951,641,254, + 641,178,562,549,641,1186,59,766,1035,1042, + 367,600,381,178,1035,808,1045,719,952,952, + 723,367,793,778,792,951,377,64,64,381, + 381,641,642,367,656,367,323,367,302,909, + 13,13,13,13,641,674,381,644,380,1038, + 865,789,788,581,221,221,221,221,641,324, + 367,367,581,1144,220,302,581,581,581,728, + 73,73,324,600,601,601,601,601,601,601, + 601,601,601,601,601,601,601,601,601,601, + 601,601,601,600,600,600,600,600,600,600, + 600,600,600,600,600,601,581,298,797,563, + 252,641,324,649,381,135,719,718,799,600, + 790,790,863,1038,80,449,438,449,950,950, + 775,367,429,639,774,601,15,809,662,771, + 909,13,13,126,381,601,641,418,367,867, + 869,367,367,952,952,952,952,481,367,601, + 679,984,984,252,544,59,220,600,367,367, + 367,638,640,638,367,59,736,736,734,734, + 734,741,741,741,741,739,739,746,743,743, + 749,748,750,15,751,797,562,15,601,15, + 775,561,1186,1186,1186,563,1186,641,817,775, + 775,641,178,367,600,135,719,799,600,600, + 867,778,449,221,221,323,775,909,601,601, + 771,771,909,909,549,251,127,641,367,869, + 1186,1186,1186,1186,641,641,641,302,601,221, + 732,384,367,641,640,302,600,553,1186,553, + 563,15,563,581,581,579,922,581,775,775, + 815,797,380,801,951,771,771,126,641,252, + 252,641,944,367,600,600,600,600,1186,1186, + 481,639,367,732,1038,254,641,639,80,563, + 367,1035,367,579,1130,1186,367,797,379,134, + 801,905,641,641,641,944,944,367,367,367, + 367,324,324,641,732,733,732,600,384,306, + 728,254,367,367,1032,563,815,563,775,1130, + 600,563,560,379,379,1186,64,641,641,946, + 944,367,367,1019,732,324,601,59,306,178, + 178,1034,600,561,324,775,367,870,950,946, + 946,733,367,59,563,367,775,429,638,946, + 563,221 }; }; public final static char asb[] = Asb.asb; @@ -2118,124 +2152,125 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Asr { public final static char asr[] = {0, - 3,27,0,123,0,70,71,3,13,47, - 51,49,46,54,15,24,14,20,18,19, - 21,22,17,16,23,55,58,56,57,40, - 53,48,52,8,9,4,41,42,12,11, - 38,39,45,50,1,2,120,10,0,71, - 70,38,39,11,95,96,101,12,102,8, - 45,75,62,72,113,114,110,111,112,118, - 117,119,91,90,115,116,99,100,97,98, - 103,104,41,42,69,93,108,67,3,13, - 59,43,60,61,15,24,14,20,18,19, - 21,22,17,16,23,29,35,36,31,34, - 33,30,25,27,5,7,6,32,37,26, - 1,2,4,0,9,4,44,8,1,2, - 0,10,73,74,77,0,10,74,75,0, - 26,1,2,4,105,106,107,0,76,70, - 71,64,41,42,12,11,38,39,8,45, - 50,3,4,9,55,58,56,57,40,53, - 48,52,15,24,14,20,18,19,21,22, - 17,16,23,13,47,51,49,46,54,1, - 2,74,10,0,77,3,72,92,75,69, - 68,28,67,6,7,5,10,74,73,0, - 105,106,107,73,76,9,10,3,12,11, - 8,28,66,63,89,65,5,29,14,15, - 43,25,16,59,30,31,17,32,33,18, - 19,34,35,20,21,36,60,37,13,61, - 22,26,23,27,24,6,7,4,1,2, - 44,0,29,14,15,43,25,16,59,30, - 89,31,17,32,33,18,19,34,63,35, - 20,21,36,60,37,13,61,22,65,26, - 23,27,24,3,12,4,28,66,74,10, - 5,11,6,7,9,44,1,2,8,0, - 10,73,69,68,3,0,5,72,73,92, - 120,76,28,6,7,69,14,15,46,70, - 16,47,48,17,18,19,71,9,49,20, - 21,50,51,52,64,53,54,13,22,23, - 24,55,56,57,40,2,41,42,12,11, - 38,39,8,45,4,58,3,1,68,10, - 0,4,10,73,74,6,7,5,62,0, - 93,38,39,95,96,90,91,62,97,98, - 99,100,101,102,103,104,109,73,92,75, - 110,111,112,113,114,115,116,117,118,119, - 120,76,28,94,72,5,1,2,12,11, - 4,6,7,67,3,68,10,69,0,89, - 105,106,107,44,73,123,121,124,76,66, - 77,65,63,79,81,87,85,78,83,84, - 86,88,74,80,82,28,10,5,29,43, - 25,59,30,31,32,33,34,35,36,60, - 37,61,26,27,6,7,64,70,71,47, - 51,49,46,54,15,24,14,20,18,19, - 21,22,17,16,23,55,58,56,57,40, - 53,48,52,3,41,42,12,11,38,39, - 45,50,13,4,9,8,2,1,0,5, - 29,14,15,43,25,46,16,47,59,30, - 31,48,17,32,33,18,19,34,35,49, - 20,21,50,36,51,60,52,64,53,37, - 54,13,61,22,26,23,27,24,55,56, - 57,40,3,41,42,12,11,38,39,45, - 72,4,6,7,58,9,8,1,2,71, - 70,0,1,2,10,76,0,72,75,69, - 1,2,0,28,69,76,10,0,10,74, - 69,0,10,69,76,75,0,120,28,69, - 68,10,73,0,121,0,10,69,68,1, - 25,0,4,10,73,74,6,7,5,0, - 10,73,68,40,0,73,5,67,6,7, - 62,10,69,28,75,3,0,64,25,9, - 27,8,1,2,4,77,74,122,108,41, - 42,67,3,94,93,11,95,96,38,39, - 91,90,62,97,98,99,100,12,101,102, - 103,72,92,68,75,110,111,112,113,114, - 115,116,117,118,119,73,120,76,104,109, - 6,7,5,69,28,10,0,25,27,64, - 77,72,73,92,68,74,3,5,10,69, - 28,6,7,75,0,5,29,14,15,25, - 16,30,31,17,32,33,18,19,34,9, - 35,20,21,36,37,22,26,23,27,24, - 1,2,67,12,11,8,4,28,6,7, - 68,10,3,0,5,12,11,6,7,9, - 8,4,1,2,3,67,72,75,69,10, - 68,92,0,25,27,64,10,92,68,75, - 69,72,0,8,9,3,67,11,12,92, - 5,29,14,15,25,16,59,30,31,17, - 32,33,18,19,34,35,20,21,36,60, - 37,13,61,22,26,23,27,24,1,2, - 4,6,7,68,10,43,0,14,15,46, - 70,16,47,48,17,18,19,71,9,49, - 20,21,50,51,52,64,53,54,13,22, - 23,24,55,56,57,40,1,2,3,41, - 42,38,39,8,45,4,58,28,10,11, - 12,0,78,0,5,29,14,15,43,25, - 16,59,30,31,17,32,33,18,19,34, - 35,20,21,36,60,37,13,61,22,26, - 23,27,24,1,2,4,6,7,92,0, - 44,4,5,10,73,74,6,7,1,2, - 0,13,59,43,60,61,15,24,14,20, - 18,19,21,22,17,16,23,77,73,92, - 120,76,74,122,94,108,93,41,42,38, - 39,95,96,90,91,62,72,97,98,99, - 100,101,102,103,104,109,75,110,111,112, - 113,114,115,116,117,118,119,69,29,25, - 30,31,32,33,34,35,36,37,26,27, - 28,10,68,67,8,9,3,1,2,4, - 12,6,7,5,11,0,16,59,30,17, - 32,33,18,19,34,35,20,21,36,60, - 37,61,22,26,23,27,24,25,43,15, - 14,29,10,3,12,11,28,65,89,31, - 66,62,6,7,5,44,9,1,2,8, - 4,13,63,0,76,29,14,15,43,25, - 16,59,30,17,32,33,18,19,34,35, - 20,21,36,60,37,13,61,22,26,23, - 27,24,123,66,63,31,89,65,44,5, - 10,12,28,6,7,8,9,2,4,3, - 1,11,0,70,71,41,42,12,11,38, - 39,8,45,50,4,9,55,58,56,57, - 40,53,48,52,15,24,14,20,18,19, - 21,22,17,16,23,13,47,51,49,46, - 54,67,1,2,3,0,28,10,3,9, - 8,73,12,11,4,1,2,6,7,5, - 0,4,10,74,6,7,5,1,2,0 + 78,3,73,93,76,70,69,30,68,6, + 7,5,10,75,74,0,71,72,3,13, + 46,50,48,45,53,15,24,14,20,18, + 19,21,22,17,16,23,54,55,56,31, + 52,47,51,8,9,4,41,42,12,11, + 28,29,43,49,58,57,1,2,121,10, + 0,124,0,73,76,70,1,2,0,3, + 27,0,9,4,59,8,1,2,0,5, + 32,14,15,44,25,16,60,33,34,17, + 35,36,18,19,37,38,20,21,39,61, + 40,13,62,22,26,23,27,24,1,2, + 4,6,7,93,0,10,74,69,31,0, + 10,74,75,78,0,26,1,2,4,106, + 107,108,0,77,71,72,65,41,42,12, + 11,28,29,8,43,49,58,57,3,4, + 9,54,55,56,31,52,47,51,15,24, + 14,20,18,19,21,22,17,16,23,13, + 46,50,48,45,53,1,2,75,10,0, + 72,71,28,29,11,96,97,102,12,103, + 8,43,76,63,73,114,115,111,112,113, + 119,118,120,92,91,116,117,100,101,98, + 99,104,105,41,42,70,94,109,68,3, + 13,60,44,61,62,15,24,14,20,18, + 19,21,22,17,16,23,32,38,39,34, + 37,36,33,25,27,5,7,6,35,40, + 26,1,2,4,0,10,75,76,0,32, + 14,15,44,25,16,60,33,90,34,17, + 35,36,18,19,37,64,38,20,21,39, + 61,40,13,62,22,66,26,23,27,24, + 3,12,4,30,67,75,10,5,11,6, + 7,9,59,1,2,8,0,10,74,70, + 69,3,0,5,73,74,93,121,77,30, + 6,7,70,14,15,45,71,16,46,47, + 17,18,19,72,9,48,20,21,49,50, + 51,65,52,53,13,22,23,24,54,55, + 56,31,2,41,42,12,11,28,29,8, + 43,4,57,58,3,1,69,10,0,4, + 10,74,75,6,7,5,63,0,30,70, + 77,10,0,94,28,29,96,97,91,92, + 63,98,99,100,101,102,103,104,105,110, + 74,93,76,111,112,113,114,115,116,117, + 118,119,120,121,77,30,95,73,5,1, + 2,12,11,4,6,7,68,3,69,10, + 70,0,106,107,108,74,77,9,10,3, + 12,11,8,30,67,64,90,66,5,32, + 14,15,44,25,16,60,33,34,17,35, + 36,18,19,37,38,20,21,39,61,40, + 13,62,22,26,23,27,24,6,7,4, + 1,2,59,0,5,32,14,15,44,25, + 45,16,46,60,33,34,47,17,35,36, + 18,19,37,38,48,20,21,49,39,50, + 61,51,65,52,40,53,13,62,22,26, + 23,27,24,54,55,56,31,3,41,42, + 12,11,28,29,43,73,4,57,58,6, + 7,9,8,1,2,72,71,0,10,75, + 70,0,90,106,107,108,59,74,124,122, + 125,77,67,78,66,64,80,82,88,86, + 79,84,85,87,89,75,81,83,30,10, + 5,32,44,25,60,33,34,35,36,37, + 38,39,61,40,62,26,27,6,7,65, + 71,72,46,50,48,45,53,15,24,14, + 20,18,19,21,22,17,16,23,54,55, + 56,31,52,47,51,3,41,42,12,11, + 28,29,43,49,58,57,13,4,9,8, + 2,1,0,10,70,77,76,0,121,30, + 70,69,10,74,0,10,70,69,1,25, + 0,74,5,68,6,7,63,10,70,30, + 76,3,0,1,2,10,77,0,5,32, + 14,15,25,16,33,34,17,35,36,18, + 19,37,9,38,20,21,39,40,22,26, + 23,27,24,1,2,68,12,11,8,4, + 30,6,7,69,10,3,0,65,25,9, + 27,8,1,2,4,78,75,123,109,41, + 42,68,3,95,94,11,96,97,28,29, + 92,91,63,98,99,100,101,12,102,103, + 104,73,93,69,76,111,112,113,114,115, + 116,117,118,119,120,74,121,77,105,110, + 6,7,5,70,30,10,0,5,12,11, + 6,7,9,8,4,1,2,3,68,73, + 76,70,10,69,93,0,122,0,25,27, + 65,78,73,74,93,69,75,3,5,10, + 70,30,6,7,76,0,14,15,45,71, + 16,46,47,17,18,19,72,9,48,20, + 21,49,50,51,65,52,53,13,22,23, + 24,54,55,56,31,1,2,3,41,42, + 28,29,8,43,4,57,58,30,10,11, + 12,0,8,9,3,68,11,12,93,5, + 32,14,15,25,16,60,33,34,17,35, + 36,18,19,37,38,20,21,39,61,40, + 13,62,22,26,23,27,24,1,2,4, + 6,7,69,10,44,0,30,10,3,9, + 8,74,12,11,4,1,2,6,7,5, + 0,79,0,59,4,5,10,74,75,6, + 7,1,2,0,4,10,75,6,7,5, + 1,2,0,25,27,65,10,93,69,76, + 70,73,0,4,10,74,75,6,7,5, + 0,13,60,44,61,62,15,24,14,20, + 18,19,21,22,17,16,23,78,74,93, + 121,77,75,123,95,109,94,41,42,28, + 29,96,97,91,92,63,73,98,99,100, + 101,102,103,104,105,110,76,111,112,113, + 114,115,116,117,118,119,120,70,32,25, + 33,34,35,36,37,38,39,40,26,27, + 30,10,69,68,8,9,3,1,2,4, + 12,6,7,5,11,0,16,60,33,17, + 35,36,18,19,37,38,20,21,39,61, + 40,62,22,26,23,27,24,25,44,15, + 14,32,10,3,12,11,30,66,90,34, + 67,63,6,7,5,59,9,1,2,8, + 4,13,64,0,77,32,14,15,44,25, + 16,60,33,17,35,36,18,19,37,38, + 20,21,39,61,40,13,62,22,26,23, + 27,24,124,67,64,34,90,66,59,5, + 10,12,30,6,7,8,9,2,4,3, + 1,11,0,71,72,41,42,12,11,28, + 29,8,43,49,58,57,4,9,54,55, + 56,31,52,47,51,15,24,14,20,18, + 19,21,22,17,16,23,13,46,50,48, + 45,53,68,1,2,3,0 }; }; public final static char asr[] = Asr.asr; @@ -2243,65 +2278,66 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Nasb { public final static char nasb[] = {0, - 209,12,37,13,5,255,12,239,12,81, - 239,73,73,12,236,12,12,12,237,179, - 237,138,237,138,237,230,12,10,169,189, - 131,184,157,12,12,25,251,12,169,12, - 12,12,178,189,179,12,227,227,144,193, - 116,12,189,165,73,225,81,73,225,189, - 169,11,12,12,189,32,204,138,79,79, - 271,77,12,153,219,169,12,193,189,189, - 22,20,193,12,12,12,12,11,163,189, - 189,239,239,189,209,189,73,88,157,193, - 12,12,142,93,12,193,262,166,138,138, - 12,227,179,189,227,45,59,166,127,32, - 90,53,225,15,153,225,169,102,67,132, - 138,244,189,45,45,271,20,20,157,216, - 216,209,35,209,227,204,204,144,204,12, - 144,193,12,193,35,169,204,12,87,12, - 37,254,262,138,138,189,225,189,59,189, - 252,11,12,147,12,12,12,12,12,73, - 12,285,169,69,69,247,69,69,69,69, - 69,69,12,12,12,12,12,12,12,12, - 12,12,12,69,12,12,166,12,11,90, - 34,12,227,12,20,12,220,138,193,69, - 189,179,219,225,12,140,12,12,277,193, - 12,182,12,12,12,119,119,35,35,88, - 12,193,142,193,69,193,163,131,189,189, - 75,75,166,252,35,12,12,271,146,79, - 79,285,50,50,50,50,169,172,193,193, - 1,69,105,163,285,12,39,39,172,199, - 69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69, - 69,69,69,69,69,69,69,69,69,69, - 199,69,45,127,189,175,53,11,172,12, - 35,189,189,140,189,69,12,12,181,271, - 216,216,239,189,12,12,204,193,193,157, - 204,69,12,96,12,138,219,75,75,62, - 35,69,252,275,193,269,189,193,193,12, - 12,12,12,162,193,69,12,12,12,10, - 169,20,50,102,193,156,169,156,193,20, + 220,12,30,34,5,200,12,254,12,17, + 254,88,88,12,251,12,12,12,252,176, + 252,120,252,120,252,245,12,10,153,190, + 113,185,142,12,12,90,263,12,153,12, + 12,12,175,190,176,12,210,210,54,215, + 207,12,190,107,88,236,17,88,236,190, + 153,11,12,12,190,77,180,120,15,15, + 275,65,12,138,230,153,12,215,190,190, + 27,25,215,12,12,12,12,11,58,190, + 190,254,254,190,220,190,88,61,142,215, + 12,12,128,125,12,215,266,108,120,120, + 12,210,176,190,210,36,122,108,130,77, + 96,44,236,20,138,236,153,156,82,114, + 120,161,190,36,36,275,25,25,142,227, + 227,220,75,220,210,180,180,54,180,12, + 54,215,12,215,75,153,180,12,60,12, + 30,199,266,120,120,190,236,190,122,190, + 264,11,12,147,12,12,12,12,12,88, + 12,285,153,84,84,84,84,259,84,84, + 84,84,84,84,12,12,12,12,12,12, + 12,12,12,12,12,84,12,12,108,12, + 11,96,74,12,210,12,25,12,231,120, + 215,84,190,176,230,236,12,164,12,12, + 281,215,12,183,12,12,12,32,32,75, + 75,61,12,215,128,215,84,215,58,113, + 190,190,134,134,108,264,75,12,12,275, + 146,15,15,285,41,41,41,41,153,217, + 215,215,1,84,79,58,285,285,285,12, + 48,48,217,196,84,84,84,84,84,84, + 84,84,84,84,84,84,84,84,84,84, + 84,84,84,84,84,84,84,84,84,84, + 84,84,84,84,196,84,36,130,190,172, + 44,11,217,12,75,190,190,164,190,84, + 12,12,182,275,227,227,254,190,12,12, + 180,215,215,142,180,84,12,13,12,120, + 230,134,134,67,75,84,264,279,215,273, + 190,215,215,12,12,12,12,57,215,84, + 12,12,12,10,153,25,41,156,215,215, + 215,141,153,141,215,25,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,109, - 195,12,69,12,204,12,12,12,12,196, - 12,252,202,204,204,252,84,193,69,67, - 140,140,69,69,269,151,216,50,50,69, - 204,132,69,69,225,138,219,12,12,73, - 107,227,193,216,12,12,12,12,166,11, - 169,163,69,50,189,111,193,169,206,163, - 69,114,12,12,196,12,196,289,289,214, - 12,289,204,204,12,189,35,189,12,138, - 225,98,227,73,73,11,189,193,199,199, - 199,199,12,12,161,166,193,125,277,12, - 251,166,50,196,193,184,193,281,189,12, - 193,109,123,66,121,12,11,227,227,140, - 189,193,193,193,193,172,172,166,189,57, - 12,199,277,207,12,12,193,193,189,196, - 12,196,204,132,199,196,114,123,12,12, - 119,11,11,189,140,193,193,12,125,172, - 69,20,207,84,84,182,69,12,29,204, - 193,191,12,121,189,57,193,20,196,193, - 204,193,156,121,196,50 + 12,12,12,12,12,159,192,12,84,12, + 180,12,12,12,12,193,12,264,178,180, + 180,264,71,215,84,82,164,164,84,84, + 273,136,227,41,41,84,180,114,84,84, + 236,120,230,12,12,88,94,210,215,227, + 12,12,12,12,108,11,153,58,84,41, + 190,101,215,153,104,58,84,111,12,12, + 193,12,193,289,289,225,12,289,180,180, + 12,190,75,190,12,120,236,168,210,88, + 88,11,190,215,196,196,196,196,12,12, + 56,108,215,166,281,12,263,108,41,193, + 215,185,215,238,190,12,215,159,99,81, + 63,12,11,210,210,164,190,215,215,215, + 215,217,217,108,190,151,12,196,281,105, + 12,12,215,215,190,193,12,193,180,114, + 196,193,111,99,12,12,32,11,11,190, + 164,215,215,12,166,217,84,25,105,71, + 71,183,84,12,242,180,215,213,12,63, + 190,151,215,25,193,215,180,215,141,63, + 193,41 }; }; public final static char nasb[] = Nasb.nasb; @@ -2310,34 +2346,34 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface Nasr { public final static char nasr[] = {0, 3,13,10,9,162,160,130,159,158,5, - 2,0,214,0,13,2,9,10,5,89, - 0,4,207,0,4,50,208,0,4,190, - 0,169,0,4,74,0,166,0,5,2, - 9,10,149,0,5,10,9,2,13,4, - 50,0,179,5,178,0,151,0,2,72, - 0,5,108,204,0,74,138,47,13,2, - 9,10,5,0,118,0,196,0,87,0, - 1,47,0,47,67,0,47,112,0,47, - 170,0,30,184,0,203,0,5,108,175, - 0,4,37,0,187,0,205,0,171,0, - 4,189,0,124,0,213,30,0,116,0, - 135,0,172,0,153,0,72,148,147,0, - 96,4,5,10,9,2,64,42,0,71, - 0,182,0,145,0,30,100,101,4,0, - 101,100,42,64,69,5,10,9,2,0, - 2,146,72,0,49,2,3,0,2,49, - 0,4,103,0,53,44,191,4,47,0, - 30,101,100,64,5,2,9,10,4,0, - 50,4,30,0,74,47,53,75,4,44, - 0,4,44,43,0,2,125,0,111,88, - 53,4,0,44,193,23,4,0,4,5, - 10,9,2,64,24,0,2,68,0,2, - 5,130,126,127,128,13,93,0,4,53, - 88,90,0,42,72,0,5,10,9,13, - 3,1,0,43,5,2,9,10,4,168, - 0,4,53,88,108,51,5,0,23,4, - 5,42,96,0,101,100,42,5,69,0, - 50,4,192,0,4,50,44,0,4,50, + 2,0,203,0,87,0,1,47,0,13, + 2,9,10,5,89,0,4,207,0,166, + 0,116,0,214,0,5,10,9,2,13, + 4,48,0,179,5,178,0,5,2,9, + 10,149,0,145,0,2,146,72,0,47, + 112,0,135,0,196,0,5,108,204,0, + 47,67,0,4,74,0,169,0,187,0, + 74,138,47,13,2,9,10,5,0,4, + 48,208,0,205,0,47,170,0,172,0, + 4,189,0,2,125,0,50,2,3,0, + 124,0,96,4,5,10,9,2,65,42, + 0,2,72,0,29,184,0,182,0,72, + 148,147,0,118,0,101,100,42,65,69, + 5,10,9,2,0,29,100,101,4,0, + 151,0,2,50,0,4,35,0,171,0, + 42,72,0,71,0,153,0,5,108,175, + 0,53,43,191,4,47,0,4,43,44, + 0,29,101,100,65,5,2,9,10,4, + 0,74,47,53,75,4,43,0,44,5, + 2,9,10,4,168,0,213,29,0,2, + 68,0,48,4,29,0,4,103,0,111, + 88,53,4,0,43,193,22,4,0,4, + 5,10,9,2,65,24,0,48,4,192, + 0,4,190,0,2,5,130,126,127,128, + 13,93,0,4,53,88,90,0,5,10, + 9,13,3,1,0,4,53,88,108,51, + 5,0,22,4,5,42,96,0,101,100, + 42,5,69,0,4,48,43,0,4,48, 110,0 }; }; @@ -2348,17 +2384,17 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public final static char terminalIndex[] = {0, 113,114,2,31,46,126,127,13,79,115, 10,9,100,48,52,60,68,74,75,86, - 87,102,105,107,54,104,106,120,47,64, - 66,70,73,76,83,89,98,11,12,112, - 7,8,53,93,14,55,61,67,84,88, - 90,94,97,99,109,110,111,129,63,91, - 101,19,77,95,103,128,1,118,44,58, - 78,20,30,121,33,119,96,108,49,50, - 56,57,59,69,71,72,85,92,65,17, - 18,32,6,4,15,16,21,22,23,24, - 25,26,27,28,80,81,82,5,29,34, - 35,36,37,38,39,40,41,42,43,117, - 51,3,130,62,116,122,123,124,125 + 87,102,105,107,54,104,106,11,12,120, + 112,47,64,66,70,73,76,83,89,98, + 7,8,14,53,55,61,67,84,88,90, + 94,97,99,109,110,111,122,123,93,63, + 91,101,19,77,95,103,128,1,118,44, + 58,78,20,30,121,33,119,96,108,49, + 50,56,57,59,69,71,72,85,92,65, + 17,18,32,6,4,15,16,21,22,23, + 24,25,26,27,28,80,81,82,5,29, + 34,35,36,37,38,39,40,41,42,43, + 117,51,3,129,62,116,124,125 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2366,28 +2402,28 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 136,141,142,0,0,140,0,0,235,241, - 139,0,149,138,0,0,148,154,0,0, - 155,164,186,250,0,0,0,165,166,132, - 167,168,169,170,171,172,157,173,174,0, - 147,251,134,137,175,0,135,144,143,158, - 183,0,0,0,0,0,0,0,0,210, - 0,0,207,211,0,151,178,0,161,181, - 193,0,0,133,177,0,0,0,0,0, - 0,0,0,0,0,0,212,0,131,184, - 0,0,192,0,0,208,218,163,214,215, - 216,0,0,152,0,0,213,226,0,180, - 185,202,0,0,217,0,0,0,230,0, - 232,0,246,247,153,195,196,197,198,199, - 201,204,0,205,0,220,223,0,225,0, - 244,0,245,0,255,0,145,146,150,0, - 0,160,162,0,176,0,187,188,189,190, - 191,194,0,0,200,0,203,209,0,221, - 222,0,0,227,234,0,238,239,240,243, - 0,252,0,254,0,0,0,156,159,0, - 179,0,182,0,0,206,219,224,0,0, - 228,229,231,233,0,236,237,242,248,249, - 0,0,253,0,0,0,0,0 + 135,140,141,0,0,139,0,0,234,240, + 138,0,148,137,0,0,147,153,0,0, + 154,185,163,249,0,0,0,164,131,165, + 166,167,168,169,156,170,171,172,173,0, + 146,250,136,133,174,0,134,157,143,142, + 182,0,0,0,0,0,0,0,0,209, + 0,0,150,206,210,0,177,0,160,180, + 192,0,0,132,176,0,0,0,0,0, + 0,0,0,0,0,0,211,0,130,183, + 0,0,191,0,0,207,217,162,213,214, + 215,0,0,151,0,0,212,225,0,179, + 184,201,0,0,216,0,0,0,229,0, + 231,0,245,246,152,194,195,196,197,198, + 200,203,0,204,0,219,222,0,224,0, + 243,0,244,0,254,0,144,145,149,0, + 0,159,161,0,175,0,186,187,188,189, + 190,193,0,0,199,0,202,208,0,220, + 221,0,0,226,233,0,237,238,239,242, + 0,251,0,253,0,0,0,155,158,0, + 178,0,181,0,0,205,218,223,0,0, + 227,228,230,232,0,235,236,241,247,248, + 0,0,252,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2395,20 +2431,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 218,666,685,366,617,633,644,655,449,324, - 338,360,382,400,86,349,469,507,226,674, - 560,64,95,115,124,129,134,189,254,355, - 393,408,413,39,203,330,344,588,71,203, - 459,413,693,71,276,305,1,33,47,58, - 105,120,150,418,438,442,525,553,582,609, - 613,703,707,711,141,51,141,487,503,516, - 537,601,288,160,160,516,624,640,651,662, - 266,571,13,25,100,100,215,281,7,100, - 300,321,7,7,100,446,550,557,215,100, - 726,7,154,422,491,531,544,100,169,373, - 422,169,169,373,478,236,18,18,148,296, - 428,428,428,428,529,715,722,18,18,715, - 722,109,296,497,196,148,148,310 + 226,674,693,374,625,641,652,663,457,332, + 346,368,390,408,94,357,477,515,234,682, + 568,72,103,123,132,137,142,197,262,363, + 401,416,421,47,211,338,352,596,79,211, + 467,421,701,79,284,313,1,33,39,43, + 55,66,113,128,158,426,446,450,533,561, + 590,617,621,711,715,719,149,59,149,495, + 511,524,545,609,296,168,168,524,632,648, + 659,670,274,579,13,25,108,108,223,289, + 7,108,308,329,7,7,108,454,558,565, + 223,108,734,7,162,430,499,539,552,108, + 177,381,430,177,177,381,486,244,18,18, + 156,304,436,436,436,436,537,723,730,18, + 18,723,730,117,304,505,204,156,156,318 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2416,20 +2452,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 62,37,37,194,37,37,37,37,456,194, - 139,194,194,406,92,335,475,513,232,111, - 566,69,69,69,103,103,139,194,259,194, - 398,398,406,44,208,335,145,593,82,211, - 464,680,698,76,270,270,5,37,37,62, - 37,103,139,398,139,139,194,303,37,37, - 37,37,37,303,724,55,145,456,456,456, - 541,593,292,164,178,520,628,628,628,628, - 270,575,16,16,103,103,37,37,284,286, - 303,37,5,5,286,139,37,303,37,586, - 37,10,157,425,494,534,547,605,164,388, - 596,172,183,376,481,239,23,31,139,298, - 430,432,434,436,139,717,717,20,28,719, - 719,111,292,499,198,261,246,312 + 70,37,37,202,37,37,37,37,464,202, + 147,202,202,414,100,343,483,521,240,119, + 574,77,77,77,111,111,147,202,267,202, + 406,406,414,52,216,343,153,601,90,219, + 472,688,706,84,278,278,5,37,37,37, + 37,70,37,111,147,406,147,147,202,311, + 37,37,37,37,37,311,732,63,153,464, + 464,464,549,601,300,172,186,528,636,636, + 636,636,278,583,16,16,111,111,37,37, + 292,294,311,37,5,5,294,147,37,311, + 37,594,37,10,165,433,502,542,555,613, + 172,396,604,180,191,384,489,247,23,31, + 147,306,438,440,442,444,147,725,725,20, + 28,727,727,119,300,507,206,269,254,320 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2441,16 +2477,16 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym 52,85,128,127,82,57,78,77,51,17, 19,3,7,8,175,175,174,126,51,86, 127,127,129,25,137,58,52,149,142,137, - 78,17,17,142,102,59,70,181,144,81, - 178,175,174,129,194,55,67,153,18,17, - 17,17,17,17,12,124,174,78,77,77, - 40,149,69,139,139,77,17,17,17,17, - 102,19,119,134,179,175,196,100,107,61, - 87,60,168,70,129,79,154,153,187,149, - 16,70,174,129,110,76,21,149,139,128, - 149,139,139,128,78,51,119,134,174,69, - 161,160,159,158,73,147,49,119,134,147, - 49,178,69,110,126,51,51,59 + 78,17,17,142,102,59,70,18,18,181, + 144,81,178,175,174,129,194,55,67,153, + 18,17,17,17,17,17,12,124,174,78, + 77,77,40,149,69,139,139,77,17,17, + 17,17,102,19,119,134,179,175,196,100, + 107,61,87,60,168,70,129,79,154,153, + 187,149,16,70,174,129,110,76,21,149, + 139,128,149,139,139,128,78,51,119,134, + 174,69,161,160,159,158,73,147,50,119, + 134,147,50,178,69,110,126,51,51,59 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2458,20 +2494,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeLa { public final static char scopeLa[] = { - 121,68,68,76,68,68,68,68,68,76, - 28,76,76,1,72,1,68,124,74,3, - 68,72,72,72,1,1,28,76,74,76, - 1,1,1,68,76,1,1,4,72,69, - 28,1,1,72,68,68,1,68,68,121, - 68,1,28,1,28,28,76,120,68,68, - 68,68,68,120,1,68,1,68,68,68, - 73,4,11,1,1,68,72,72,72,72, - 68,3,6,6,1,1,68,68,3,1, - 120,68,1,1,1,28,68,120,68,8, - 68,6,1,44,75,73,68,1,1,74, - 44,1,1,1,78,77,1,1,28,12, - 1,59,43,43,28,4,4,1,1,4, - 4,3,11,1,74,1,1,3 + 122,69,69,77,69,69,69,69,69,77, + 30,77,77,1,73,1,69,125,75,3, + 69,73,73,73,1,1,30,77,75,77, + 1,1,1,69,77,1,1,4,73,70, + 30,1,1,73,69,69,1,69,69,69, + 69,122,69,1,30,1,30,30,77,121, + 69,69,69,69,69,121,1,69,1,69, + 69,69,74,4,11,1,1,69,73,73, + 73,73,69,3,6,6,1,1,69,69, + 3,1,121,69,1,1,1,30,69,121, + 69,8,69,6,1,59,76,74,69,1, + 1,75,59,1,1,1,79,78,1,1, + 30,12,1,60,44,44,30,4,4,1, + 1,4,4,3,11,1,75,1,1,3 }; }; public final static char scopeLa[] = ScopeLa.scopeLa; @@ -2479,20 +2515,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 340,214,214,283,214,214,214,214,351,365, - 340,363,283,283,363,342,351,351,340,214, - 214,141,185,185,21,21,69,283,340,363, - 283,283,283,287,279,342,340,37,42,279, - 351,214,214,42,81,117,123,72,4,351, - 46,21,69,283,35,342,49,8,214,214, - 214,214,214,214,189,16,69,351,351,351, - 246,37,324,283,283,351,214,214,214,214, - 81,214,133,89,46,21,75,81,83,117, - 77,117,138,123,283,351,1,8,40,37, - 214,123,69,283,11,351,215,37,283,283, - 37,283,283,283,351,340,133,89,69,324, - 284,284,284,284,24,66,93,133,89,66, - 93,46,324,11,283,340,340,117 + 342,214,214,285,214,214,214,214,353,367, + 342,365,285,285,365,344,353,353,342,214, + 214,141,185,185,21,21,69,285,342,365, + 285,285,285,289,281,344,342,37,42,281, + 353,214,214,42,81,117,123,214,214,72, + 4,353,46,21,69,285,35,344,49,8, + 214,214,214,214,214,214,189,16,69,353, + 353,353,248,37,326,285,285,353,214,214, + 214,214,81,214,133,89,46,21,75,81, + 83,117,77,117,138,123,285,353,1,8, + 40,37,214,123,69,285,11,353,217,37, + 285,285,37,285,285,285,353,342,133,89, + 69,326,286,286,286,286,24,66,93,133, + 89,66,93,46,326,11,285,342,342,117 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2500,79 +2536,80 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 171,225,133,0,207,0,225,133,0,251, - 207,0,248,171,0,251,0,171,0,230, - 251,0,230,0,199,171,0,181,251,0, - 181,0,341,3,311,0,132,0,340,3, - 3,6,0,132,132,0,339,3,64,0, - 338,3,121,0,132,178,0,133,196,77, - 0,222,0,269,133,62,131,0,20,0, - 309,133,62,44,0,20,53,0,33,138, - 0,20,53,0,0,309,133,62,44,217, - 0,20,184,0,269,133,62,139,0,197, - 134,0,147,0,232,3,308,0,308,0, - 2,0,132,0,269,133,62,138,0,197, - 134,237,0,197,134,26,237,0,197,134, - 334,26,0,135,201,178,134,0,134,0, - 201,178,134,0,140,134,0,182,0,330, - 133,182,0,133,182,0,228,134,0,178, - 329,259,0,142,0,0,0,0,329,259, - 0,143,142,0,0,0,0,141,0,0, - 0,0,143,141,0,0,0,0,328,133, - 176,268,0,133,0,268,0,135,0,0, - 133,0,327,133,176,267,0,133,0,0, - 44,133,0,0,166,3,0,133,299,298, - 133,77,297,182,0,298,133,77,297,182, - 0,221,0,222,0,297,182,0,96,0, - 0,221,0,222,0,209,96,0,0,221, - 0,222,0,298,133,297,182,0,221,0, - 209,0,0,221,0,242,133,3,0,132, - 0,0,0,0,0,242,133,3,229,0, - 236,3,0,214,0,152,0,194,178,134, - 0,10,0,0,0,194,0,9,0,227, - 67,0,131,0,242,133,3,189,0,189, - 0,2,0,0,132,0,0,0,0,0, - 199,3,0,238,133,176,40,31,0,197, - 134,63,65,0,202,134,0,135,197,134, - 295,65,0,197,134,295,65,0,197,134, - 75,130,63,0,238,133,176,63,0,238, - 133,176,241,63,0,293,133,176,130,324, - 59,0,324,59,0,136,135,0,0,133, - 0,293,133,176,324,59,0,135,0,0, - 133,0,197,134,292,59,0,141,0,201, - 197,134,292,259,0,142,0,197,134,292, - 259,0,201,178,134,13,0,178,134,13, - 0,178,134,0,93,142,0,291,0,198, - 0,197,0,196,0,195,0,285,133,152, - 0,285,133,182,0,173,87,0,319,172, - 321,322,3,84,0,132,177,0,321,322, - 3,84,0,134,0,132,177,0,173,3, - 78,204,83,0,132,134,0,204,83,0, - 108,2,137,132,134,0,239,3,78,0, - 199,179,0,33,175,0,179,0,181,33, - 175,0,239,3,88,0,204,159,239,3, - 86,0,62,177,0,239,3,86,0,132, - 177,62,177,0,320,133,176,0,173,0, - 227,80,0,30,177,0,173,109,168,0, - 30,175,0,195,3,0,132,155,0,232, - 3,0,227,67,282,0,173,67,0,195, - 3,316,71,134,0,132,0,0,0,0, - 316,71,134,0,2,151,132,0,0,0, - 0,195,3,50,0,153,0,132,44,178, - 134,0,31,153,0,93,142,31,153,0, - 233,197,134,0,152,31,153,0,195,3, - 54,0,173,3,54,0,173,3,72,195, - 62,46,0,195,62,46,0,20,2,137, - 132,0,173,3,72,195,62,49,0,195, - 62,49,0,173,3,72,195,62,51,0, - 195,62,51,0,173,3,72,195,62,47, - 0,195,62,47,0,232,3,132,201,178, - 134,13,0,132,201,178,134,13,0,142, - 2,0,132,0,232,3,131,275,178,134, - 13,0,275,178,134,13,0,141,2,0, - 132,0,232,3,142,0,232,3,146,0, - 173,67,146,0,277,0,31,0,31,145, - 0,177,0,140,0,173,3,0 + 170,224,132,0,206,0,224,132,0,250, + 206,0,247,170,0,250,0,170,0,229, + 250,0,229,0,198,170,0,180,250,0, + 180,0,191,3,57,0,131,0,191,3, + 58,0,340,3,310,0,339,3,3,6, + 0,131,131,0,338,3,65,0,337,3, + 122,0,131,177,0,132,195,78,0,221, + 0,268,132,63,130,0,20,0,308,132, + 63,59,0,20,53,0,33,137,0,20, + 53,0,0,308,132,63,59,216,0,20, + 183,0,268,132,63,138,0,196,133,0, + 146,0,231,3,307,0,307,0,2,0, + 131,0,268,132,63,137,0,196,133,236, + 0,196,133,26,236,0,196,133,333,26, + 0,134,200,178,133,0,133,0,200,178, + 133,0,139,133,0,181,0,329,132,181, + 0,132,181,0,227,133,0,178,328,258, + 0,141,0,0,0,0,328,258,0,142, + 141,0,0,0,0,140,0,0,0,0, + 142,140,0,0,0,0,327,132,175,267, + 0,132,0,267,0,134,0,0,132,0, + 326,132,175,266,0,132,0,0,44,132, + 0,0,163,3,0,132,298,297,132,78, + 296,181,0,297,132,78,296,181,0,220, + 0,221,0,296,181,0,96,0,0,220, + 0,221,0,208,96,0,0,220,0,221, + 0,297,132,296,181,0,220,0,208,0, + 0,220,0,241,132,3,0,131,0,0, + 0,0,0,241,132,3,228,0,235,3, + 0,213,0,151,0,194,178,133,0,10, + 0,0,0,194,0,9,0,226,68,0, + 130,0,241,132,3,188,0,188,0,2, + 0,0,131,0,0,0,0,0,198,3, + 0,237,132,175,31,34,0,196,133,64, + 66,0,201,133,0,134,196,133,294,66, + 0,196,133,294,66,0,196,133,76,129, + 64,0,237,132,175,64,0,237,132,175, + 240,64,0,292,132,175,129,323,60,0, + 323,60,0,135,134,0,0,132,0,292, + 132,175,323,60,0,134,0,0,132,0, + 196,133,291,60,0,140,0,200,196,133, + 291,258,0,141,0,196,133,291,258,0, + 200,178,133,13,0,178,133,13,0,178, + 133,0,93,141,0,290,0,197,0,196, + 0,195,0,194,0,284,132,150,0,284, + 132,181,0,171,88,0,318,172,320,321, + 3,85,0,131,176,0,320,321,3,85, + 0,133,0,131,176,0,171,3,79,203, + 84,0,131,133,0,203,84,0,108,2, + 136,131,133,0,238,3,79,0,198,176, + 0,33,174,0,176,0,180,33,174,0, + 238,3,89,0,203,157,238,3,87,0, + 62,176,0,238,3,87,0,131,176,62, + 176,0,319,132,175,0,171,0,226,81, + 0,30,176,0,171,110,167,0,30,174, + 0,191,3,0,131,154,0,231,3,0, + 226,68,281,0,171,68,0,191,3,315, + 72,133,0,131,0,0,0,0,315,72, + 133,0,2,150,131,0,0,0,0,191, + 3,49,0,152,0,131,59,178,133,0, + 31,152,0,93,141,31,152,0,232,196, + 133,0,151,31,152,0,191,3,53,0, + 171,3,53,0,171,3,73,191,63,45, + 0,191,63,45,0,20,2,136,131,0, + 171,3,73,191,63,48,0,191,63,48, + 0,171,3,73,191,63,50,0,191,63, + 50,0,171,3,73,191,63,46,0,191, + 63,46,0,231,3,131,200,178,133,13, + 0,131,200,178,133,13,0,141,2,0, + 131,0,231,3,130,274,178,133,13,0, + 274,178,133,13,0,140,2,0,131,0, + 231,3,141,0,231,3,145,0,171,68, + 145,0,276,0,31,0,31,144,0,177, + 0,139,0,171,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2580,44 +2617,44 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 1013,792,0,2986,2870,2146,0,2618,2268,0, - 5420,5818,5815,5780,0,2770,1729,1824,1728,0, - 1582,937,0,3993,3948,3903,3858,3813,3768,3723, - 3678,3633,3496,3347,4163,0,800,727,0,1636, - 0,4318,717,3231,0,1031,774,0,3993,3948, - 1831,1737,3903,3858,3813,3768,3723,3678,1299,3633, - 3496,3347,3567,1332,0,2901,2469,0,5300,5293, - 0,999,2612,0,1212,0,1535,1488,1455,1285, - 2749,5389,2908,3429,2739,3177,3408,0,2795,2933, - 2473,0,5725,5721,5708,5809,5799,5704,5692,5671, - 5794,5649,5734,4643,5635,4463,5621,5617,5607,2842, - 2783,5369,4365,3601,2827,0,2749,5048,5162,4170, - 4124,3357,2908,2795,4094,3429,3177,4468,2933,4300, - 3442,2473,3202,3131,3102,2502,0,5162,3357,0, - 3747,3651,1709,5725,5721,3479,1680,1662,1615,2455, - 5708,3657,5809,5799,1568,5704,5692,5671,2226,5794, - 1492,5649,986,1474,5734,4643,5635,4463,1445,5621, - 5617,1130,2632,5607,840,2842,2783,5369,4365,3601, - 1113,2827,4582,2861,2379,2285,1383,877,2545,2908, - 2795,4094,3202,3131,2749,1235,1014,3102,3429,800, - 727,2502,3177,4468,5048,5162,2933,4170,4300,4124, - 3442,2473,3357,5272,5250,5176,2636,2676,3024,2713, - 3324,3280,3068,4270,4240,3610,3578,3455,2573,4649, - 4619,686,4558,4534,5135,5113,5076,5026,5004,4982, - 4960,4938,4916,4894,4872,2156,2432,2109,2391,2338, - 1451,1404,1342,2062,2297,2244,2203,1295,962,2015, - 1968,1921,1874,1827,1780,1733,1686,1639,1592,1545, - 586,1185,1248,1498,895,816,633,749,1089,1041, - 1137,0,4582,586,2861,0,2795,3827,4693,3202, - 4680,3640,3131,3102,4416,586,3243,4468,3354,5048, - 3091,4120,3232,4785,4405,2933,2763,2600,2675,2493, - 4300,1040,2390,2296,4582,3738,5204,3648,4038,3122, - 2853,2740,2861,5564,5528,2749,5338,5331,5389,5518, - 5482,2502,5574,5472,4170,4124,5436,2473,0,5300, - 5293,5157,4399,4335,4293,4779,4763,4690,4674,4031, - 3993,3948,3903,3858,3813,3768,3723,3678,3633,3496, - 3347,0,5300,5293,5157,4399,4335,4293,4779,4763, - 4690,4674,4031,0 + 2855,2814,0,2819,2135,932,0,3685,3233,0, + 4449,5776,5769,5753,0,2612,3524,2362,2892,0, + 3299,1005,0,4188,4128,3984,3924,3864,3804,3744, + 3684,3624,3488,3338,4154,0,1235,801,0,1065, + 0,5666,3636,4460,0,2456,776,0,4188,4128, + 1324,1299,3984,3924,3864,3804,3744,3684,1016,3624, + 3488,3338,1661,1426,0,2755,2700,0,5442,5421, + 0,2183,2698,0,985,0,1878,1480,1085,624, + 2751,5548,4066,3420,2784,3213,4254,0,2797,2970, + 2473,0,5711,5660,5656,3437,2009,5640,5636,5626, + 1774,5604,1680,1586,5584,1445,4597,4526,4106,1289, + 2150,4093,3594,2832,2828,0,2751,5154,3493,4298, + 4270,5428,4066,2797,5269,3420,3213,4603,2970,4430, + 2940,2473,3170,3141,3070,2502,0,3493,5428,0, + 3356,3098,2086,5711,5660,2490,1992,1898,1804,2379, + 5656,1915,3437,2009,1757,5640,5636,5626,2227,1774, + 1663,5604,2738,1616,1680,1586,5584,1445,1569,4597, + 4526,1522,2660,4106,2103,1289,2150,4093,3594,2832, + 857,2828,4717,2863,2285,1392,1025,880,2545,4066, + 2797,5269,3170,3141,2751,2608,730,3070,3420,1235, + 801,2502,3213,4603,5154,3493,2970,4298,4430,4270, + 2940,2473,5428,5400,5379,3108,5357,5282,2636,2676, + 2905,2714,3316,3236,3036,4399,4368,3602,3570,3445, + 2573,4784,4754,689,4693,4669,5242,5220,5182,5132, + 5110,5088,5066,5044,5022,5000,4978,2156,2432,2109, + 2391,2338,1451,1404,1342,2062,2297,2244,2203,1295, + 961,2015,1968,1921,1874,1827,1780,1733,1686,1639, + 1592,1545,589,1185,1248,1498,897,816,636,752, + 1089,1041,1137,0,4717,589,2863,0,2797,3639, + 3491,3170,3345,3353,3141,3070,3161,589,2818,4603, + 2494,5154,2765,4536,4194,2961,987,2970,2600,2360, + 3983,2743,4430,842,922,661,4717,3341,3683,3281, + 3627,3065,3061,3269,2863,5555,3927,2751,5496,5444, + 5548,3867,3807,2502,3987,3747,4298,4270,3687,2473, + 0,5442,5421,5264,4534,4463,4421,4885,4868,4826, + 4809,4030,4188,4128,3984,3924,3864,3804,3744,3684, + 3624,3488,3338,0,5442,5421,5264,4534,4463,4421, + 4885,4868,4826,4809,4030,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2625,65 +2662,66 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,315,65,5,133,182,217,44,31,63, - 240,63,295,343,286,6,7,5,287,268, - 288,259,289,59,290,291,131,13,134,297, - 133,3,4,139,138,9,8,131,134,189, - 44,62,40,176,241,130,134,134,3,3, - 3,3,176,329,292,171,324,292,171,62, - 134,197,178,177,77,133,285,199,193,189, - 133,263,296,225,171,134,194,199,62,62, - 179,67,3,70,71,131,130,197,178,3, - 62,72,133,176,133,176,75,197,197,344, - 40,274,3,342,1,40,133,178,245,132, - 131,134,130,176,134,133,178,44,4,133, - 298,73,171,67,225,171,134,3,75,69, - 199,178,11,133,133,133,67,67,201,133, - 133,133,238,133,134,241,135,73,159,3, - 69,340,311,3,328,134,180,237,63,44, - 65,182,331,132,131,246,171,246,197,176, - 133,197,269,179,54,46,49,51,47,13, - 142,3,134,50,45,8,39,38,11,12, - 42,41,146,151,158,157,161,160,163,162, - 165,164,167,64,168,272,201,277,201,298, - 176,307,134,308,227,168,171,178,166,133, - 176,267,171,171,194,133,269,269,225,242, - 243,152,244,309,44,13,43,238,238,197, - 11,1,69,159,3,1,178,133,246,246, - 133,133,201,133,293,130,294,133,3,230, - 229,3,62,62,62,62,134,3,195,173, - 133,70,71,178,3,132,108,122,3,67, - 93,94,39,38,96,95,11,98,97,72, - 62,90,91,12,100,99,102,101,103,119, - 118,117,116,115,114,113,112,111,110,75, - 109,104,69,4,299,133,69,197,3,284, - 133,176,11,200,159,75,236,199,3,133, - 69,69,72,62,245,245,241,1,341,201, - 330,73,250,199,131,248,171,133,133,73, - 293,75,69,225,236,133,3,195,173,195, - 195,195,195,178,232,159,142,132,131,13, - 134,67,316,3,195,44,134,44,232,173, - 157,157,151,151,151,160,160,160,160,158, - 158,162,161,161,164,163,165,173,167,133, - 320,82,80,1,173,10,88,86,84,83, - 78,85,87,81,79,63,77,232,69,133, - 133,133,75,75,133,225,133,75,75,69, - 135,69,73,75,171,248,171,153,333,237, - 26,134,242,133,72,72,72,72,201,275, - 134,178,218,3,317,179,166,134,197,178, - 73,300,121,10,73,227,73,3,3,3, - 204,3,130,173,130,196,327,234,309,248, - 171,69,134,26,334,197,159,242,3,3, - 3,3,132,131,178,44,195,133,133,233, - 8,44,3,73,239,179,239,322,152,78, - 239,133,203,69,133,72,197,134,134,133, - 159,173,173,173,173,3,3,201,159,279, - 282,67,198,4,130,132,92,338,179,159, - 199,159,321,133,3,159,300,203,10,64, - 43,197,197,234,133,232,232,132,133,3, - 67,173,4,159,159,133,75,204,172,285, - 173,3,245,133,234,279,232,227,124,319, - 159,339,75,133,159,69 + 0,314,66,5,132,181,216,59,34,64, + 239,64,294,342,285,6,7,5,286,267, + 287,258,288,60,289,290,130,13,133,296, + 132,3,4,138,137,9,8,130,133,188, + 59,63,31,175,240,129,133,133,3,3, + 3,3,175,328,291,170,323,291,170,63, + 133,196,178,177,78,132,284,198,193,188, + 132,262,295,224,170,133,194,198,63,63, + 176,68,3,71,72,130,129,196,178,3, + 63,73,132,175,132,175,76,196,196,343, + 31,273,3,341,1,31,132,178,244,131, + 130,133,129,175,133,132,178,59,4,132, + 297,74,170,68,224,170,133,3,76,70, + 198,178,11,132,132,132,68,68,200,132, + 132,132,237,132,133,240,134,74,157,3, + 70,339,310,3,327,133,179,236,64,59, + 66,181,330,131,130,245,170,245,196,175, + 132,196,268,176,53,45,48,50,46,13, + 141,3,133,57,58,49,43,8,29,28, + 11,12,42,41,145,151,158,156,160,159, + 162,161,165,164,166,65,167,271,200,276, + 200,297,175,306,133,307,226,167,170,178, + 163,132,175,266,170,170,194,132,268,268, + 224,241,242,150,243,308,59,13,44,237, + 237,196,11,1,70,157,3,1,178,132, + 245,245,132,132,200,132,292,129,293,132, + 3,229,228,3,63,63,63,63,133,3, + 191,171,132,71,72,178,3,3,3,131, + 109,123,3,68,94,95,29,28,97,96, + 11,99,98,73,63,91,92,12,101,100, + 103,102,104,120,119,118,117,116,115,114, + 113,112,111,76,110,105,70,4,298,132, + 70,196,3,283,132,175,11,199,157,76, + 235,198,3,132,70,70,73,63,244,244, + 240,1,340,200,329,74,249,198,130,247, + 170,132,132,74,292,76,70,224,235,132, + 3,191,171,191,191,191,191,178,231,157, + 141,131,130,13,133,68,315,3,191,191, + 191,59,133,59,231,171,156,156,151,151, + 151,159,159,159,159,158,158,161,160,160, + 164,162,165,171,166,132,319,83,81,1, + 171,10,89,87,85,84,79,86,88,82, + 80,64,78,231,70,132,132,132,76,76, + 132,224,132,76,76,70,134,70,74,76, + 170,247,170,152,332,236,26,133,241,132, + 73,73,73,73,200,274,133,178,217,3, + 316,176,163,133,196,178,74,299,122,10, + 74,226,74,3,3,3,203,3,129,171, + 129,195,326,233,308,247,170,70,133,26, + 333,196,157,241,3,3,3,3,131,130, + 178,59,191,132,132,232,8,59,3,74, + 238,176,238,321,150,79,238,132,202,70, + 132,73,196,133,133,132,157,171,171,171, + 171,3,3,200,157,278,281,68,197,4, + 129,131,93,337,176,157,198,157,320,132, + 3,157,299,202,10,65,44,196,196,233, + 132,231,231,131,132,3,68,171,4,157, + 157,132,76,203,172,284,171,3,244,132, + 233,278,231,226,125,318,157,338,76,132, + 157,70 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2820,7 +2858,6 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym "__attribute__", "__declspec", "ERROR_TOKEN", - "0", "EOF_TOKEN", "]", ")", @@ -2960,9 +2997,9 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 66, - SCOPE_UBOUND = 137, - SCOPE_SIZE = 138, + ERROR_SYMBOL = 67, + SCOPE_UBOUND = 139, + SCOPE_SIZE = 140, MAX_NAME_LENGTH = 37; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -2971,20 +3008,20 @@ public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 586, - NT_OFFSET = 129, - LA_STATE_OFFSET = 7028, + NUM_STATES = 592, + NT_OFFSET = 128, + LA_STATE_OFFSET = 6989, MAX_LA = 2147483647, - NUM_RULES = 585, + NUM_RULES = 588, NUM_NONTERMINALS = 218, - NUM_SYMBOLS = 347, + NUM_SYMBOLS = 346, SEGMENT_SIZE = 8192, - START_STATE = 4031, + START_STATE = 4030, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 123, - EOLT_SYMBOL = 123, - ACCEPT_ACTION = 5930, - ERROR_ACTION = 6443; + EOFT_SYMBOL = 124, + EOLT_SYMBOL = 124, + ACCEPT_ACTION = 5888, + ERROR_ACTION = 6401; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java index 2a5bfecb437..e0d5f2a06d9 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java @@ -16,134 +16,133 @@ package org.eclipse.cdt.internal.core.dom.lrparser.gpp; public interface GPPParsersym { public final static int TK_asm = 5, - TK_auto = 29, + TK_auto = 32, TK_bool = 14, - TK_break = 79, - TK_case = 80, - TK_catch = 121, + TK_break = 80, + TK_case = 81, + TK_catch = 122, TK_char = 15, - TK_class = 43, + TK_class = 44, TK_const = 25, - TK_const_cast = 46, - TK_continue = 81, - TK_default = 82, - TK_delete = 70, - TK_do = 83, + TK_const_cast = 45, + TK_continue = 82, + TK_default = 83, + TK_delete = 71, + TK_do = 84, TK_double = 16, - TK_dynamic_cast = 47, - TK_else = 124, - TK_enum = 59, - TK_explicit = 30, - TK_export = 89, - TK_extern = 31, - TK_false = 48, + TK_dynamic_cast = 46, + TK_else = 125, + TK_enum = 60, + TK_explicit = 33, + TK_export = 90, + TK_extern = 34, + TK_false = 47, TK_float = 17, - TK_for = 84, - TK_friend = 32, - TK_goto = 85, - TK_if = 86, - TK_inline = 33, + TK_for = 85, + TK_friend = 35, + TK_goto = 86, + TK_if = 87, + TK_inline = 36, TK_int = 18, TK_long = 19, - TK_mutable = 34, - TK_namespace = 63, - TK_new = 71, + TK_mutable = 37, + TK_namespace = 64, + TK_new = 72, TK_operator = 9, - TK_private = 105, - TK_protected = 106, - TK_public = 107, - TK_register = 35, - TK_reinterpret_cast = 49, - TK_return = 87, + TK_private = 106, + TK_protected = 107, + TK_public = 108, + TK_register = 38, + TK_reinterpret_cast = 48, + TK_return = 88, TK_short = 20, TK_signed = 21, - TK_sizeof = 50, - TK_static = 36, - TK_static_cast = 51, - TK_struct = 60, - TK_switch = 88, - TK_template = 44, - TK_this = 52, - TK_throw = 64, - TK_try = 77, - TK_true = 53, - TK_typedef = 37, - TK_typeid = 54, + TK_sizeof = 49, + TK_static = 39, + TK_static_cast = 50, + TK_struct = 61, + TK_switch = 89, + TK_template = 59, + TK_this = 51, + TK_throw = 65, + TK_try = 78, + TK_true = 52, + TK_typedef = 40, + TK_typeid = 53, TK_typename = 13, - TK_union = 61, + TK_union = 62, TK_unsigned = 22, - TK_using = 65, + TK_using = 66, TK_virtual = 26, TK_void = 23, TK_volatile = 27, TK_wchar_t = 24, - TK_while = 78, - TK_integer = 55, - TK_floating = 56, - TK_charconst = 57, - TK_stringlit = 40, + TK_while = 79, + TK_integer = 54, + TK_floating = 55, + TK_charconst = 56, + TK_stringlit = 31, TK_identifier = 1, TK_Completion = 2, TK_EndOfCompletion = 10, - TK_Invalid = 125, - TK_LeftBracket = 67, + TK_Invalid = 126, + TK_LeftBracket = 68, TK_LeftParen = 3, - TK_Dot = 122, - TK_DotStar = 94, - TK_Arrow = 108, - TK_ArrowStar = 93, + TK_Dot = 123, + TK_DotStar = 95, + TK_Arrow = 109, + TK_ArrowStar = 94, TK_PlusPlus = 41, TK_MinusMinus = 42, TK_And = 12, TK_Star = 11, - TK_Plus = 38, - TK_Minus = 39, + TK_Plus = 28, + TK_Minus = 29, TK_Tilde = 8, - TK_Bang = 45, - TK_Slash = 95, - TK_Percent = 96, - TK_RightShift = 90, - TK_LeftShift = 91, - TK_LT = 62, - TK_GT = 72, - TK_LE = 97, - TK_GE = 98, - TK_EQ = 99, - TK_NE = 100, - TK_Caret = 101, - TK_Or = 102, - TK_AndAnd = 103, - TK_OrOr = 104, - TK_Question = 109, - TK_Colon = 73, + TK_Bang = 43, + TK_Slash = 96, + TK_Percent = 97, + TK_RightShift = 91, + TK_LeftShift = 92, + TK_LT = 63, + TK_GT = 73, + TK_LE = 98, + TK_GE = 99, + TK_EQ = 100, + TK_NE = 101, + TK_Caret = 102, + TK_Or = 103, + TK_AndAnd = 104, + TK_OrOr = 105, + TK_Question = 110, + TK_Colon = 74, TK_ColonColon = 4, - TK_DotDotDot = 92, - TK_Assign = 75, - TK_StarAssign = 110, - TK_SlashAssign = 111, - TK_PercentAssign = 112, - TK_PlusAssign = 113, - TK_MinusAssign = 114, - TK_RightShiftAssign = 115, - TK_LeftShiftAssign = 116, - TK_AndAssign = 117, - TK_CaretAssign = 118, - TK_OrAssign = 119, - TK_Comma = 69, - TK_RightBracket = 120, - TK_RightParen = 68, - TK_RightBrace = 76, - TK_SemiColon = 28, - TK_LeftBrace = 74, - TK_typeof = 126, - TK___alignof__ = 127, - TK_MAX = 128, - TK_MIN = 129, + TK_DotDotDot = 93, + TK_Assign = 76, + TK_StarAssign = 111, + TK_SlashAssign = 112, + TK_PercentAssign = 113, + TK_PlusAssign = 114, + TK_MinusAssign = 115, + TK_RightShiftAssign = 116, + TK_LeftShiftAssign = 117, + TK_AndAssign = 118, + TK_CaretAssign = 119, + TK_OrAssign = 120, + TK_Comma = 70, + TK_RightBracket = 121, + TK_RightParen = 69, + TK_RightBrace = 77, + TK_SemiColon = 30, + TK_LeftBrace = 75, + TK_typeof = 57, + TK___alignof__ = 58, + TK_MAX = 127, + TK_MIN = 128, TK___attribute__ = 6, TK___declspec = 7, - TK_ERROR_TOKEN = 66, - TK_0 = 58, - TK_EOF_TOKEN = 123; + TK_ERROR_TOKEN = 67, + TK_EOF_TOKEN = 124; public final static String orderedTerminalSymbols[] = { "", @@ -174,7 +173,10 @@ public interface GPPParsersym { "const", "virtual", "volatile", + "Plus", + "Minus", "SemiColon", + "stringlit", "auto", "explicit", "extern", @@ -184,14 +186,10 @@ public interface GPPParsersym { "register", "static", "typedef", - "Plus", - "Minus", - "stringlit", "PlusPlus", "MinusMinus", - "class", - "template", "Bang", + "class", "const_cast", "dynamic_cast", "false", @@ -204,7 +202,9 @@ public interface GPPParsersym { "integer", "floating", "charconst", - "0", + "typeof", + "__alignof__", + "template", "enum", "struct", "union", @@ -272,8 +272,6 @@ public interface GPPParsersym { "EOF_TOKEN", "else", "Invalid", - "typeof", - "__alignof__", "MAX", "MIN" }; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java new file mode 100644 index 00000000000..3eb8b63c745 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java @@ -0,0 +1,2007 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.gpp; + +import lpg.lpgjavaruntime.*; + +import java.util.*; +import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.IParser; +import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; +import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; + +import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; +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; + +import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction; +import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory; + +public class GPPSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +{ + private static ParseTable prs = new GPPSizeofExpressionParserprs(); + private FixedBacktrackingParser btParser; + + public FixedBacktrackingParser getParser() { return btParser; } + private void setResult(Object object) { btParser.setSym1(object); } + public Object getRhsSym(int i) { return btParser.getSym(i); } + + public int getRhsTokenIndex(int i) { return btParser.getToken(i); } + public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); } + + public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); } + public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); } + + public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); } + public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); } + + public int getLeftSpan() { return btParser.getFirstToken(); } + public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); } + + public int getRightSpan() { return btParser.getLastToken(); } + public IToken getRightIToken() { return super.getIToken(getRightSpan()); } + + public int getRhsErrorTokenIndex(int i) + { + int index = btParser.getToken(i); + IToken err = super.getIToken(index); + return (err instanceof ErrorToken ? index : 0); + } + public ErrorToken getRhsErrorIToken(int i) + { + int index = btParser.getToken(i); + IToken err = super.getIToken(index); + return (ErrorToken) (err instanceof ErrorToken ? err : null); + } + + public GPPSizeofExpressionParser(LexStream lexStream) + { + super(lexStream); + + try + { + super.remapTerminalSymbols(orderedTerminalSymbols(), GPPSizeofExpressionParserprs.EOFT_SYMBOL); + } + catch(NullExportedSymbolsException e) { + } + catch(NullTerminalSymbolsException e) { + } + catch(UnimplementedTerminalsException e) + { + java.util.ArrayList unimplemented_symbols = e.getSymbols(); + System.out.println("The Lexer will not scan the following token(s):"); + for (int i = 0; i < unimplemented_symbols.size(); i++) + { + Integer id = (Integer) unimplemented_symbols.get(i); + System.out.println(" " + GPPSizeofExpressionParsersym.orderedTerminalSymbols[id.intValue()]); + } + System.out.println(); + } + catch(UndefinedEofSymbolException e) + { + throw new Error(new UndefinedEofSymbolException + ("The Lexer does not implement the Eof symbol " + + GPPSizeofExpressionParsersym.orderedTerminalSymbols[GPPSizeofExpressionParserprs.EOFT_SYMBOL])); + } + } + + public String[] orderedTerminalSymbols() { return GPPSizeofExpressionParsersym.orderedTerminalSymbols; } + public String getTokenKindName(int kind) { return GPPSizeofExpressionParsersym.orderedTerminalSymbols[kind]; } + public int getEOFTokenKind() { return GPPSizeofExpressionParserprs.EOFT_SYMBOL; } + public PrsStream getParseStream() { return (PrsStream) this; } + + // + // Report error message for given error_token. + // + public final void reportErrorTokenMessage(int error_token, String msg) + { + int firsttok = super.getFirstErrorToken(error_token), + lasttok = super.getLastErrorToken(error_token); + String location = super.getFileName() + ':' + + (firsttok > lasttok + ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok)) + : (super.getLine(error_token) + ":" + + super.getColumn(error_token) + ":" + + super.getEndLine(error_token) + ":" + + super.getEndColumn(error_token))) + + ": "; + super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg); + } + + public Object parser() + { + return parser(null, 0); + } + + public Object parser(Monitor monitor) + { + return parser(monitor, 0); + } + + public Object parser(int error_repair_count) + { + return parser(null, error_repair_count); + } + + public Object parser(Monitor monitor, int error_repair_count) + { + try + { + btParser = new FixedBacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) this); + } + catch (NotBacktrackParseTableException e) + { + throw new Error(new NotBacktrackParseTableException + ("Regenerate GPPSizeofExpressionParserprs.java with -BACKTRACK option")); + } + catch (BadParseSymFileException e) + { + throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- GPPSizeofExpressionParsersym.java")); + } + + try + { + return (Object) btParser.parse(error_repair_count); + } + catch (BadParseException e) + { + reset(e.error_token); // point to error token + DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs); + diagnoseParser.diagnose(e.error_token); + } + + return null; + } + + +private CPPBuildASTParserAction action; +private ScopedStack<Object> astStack = new ScopedStack<Object>(); + +public GPPSizeofExpressionParser() { // constructor +} + +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { + action = new CPPBuildASTParserAction (this, tu, astStack, CPPNodeFactory.getDefault() , GPPSecondaryParserFactory.getDefault() ); + action.setParserOptions(options); + + + + gnuAction = new GNUBuildASTParserAction (this, tu, astStack, CPPNodeFactory.getDefault() ); + gnuAction.setParserOptions(options); + + +} + + +public void addToken(IToken token) { + token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? + super.addToken(token); +} + + +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { + // this has to be done, or... kaboom! + setStreamLength(getSize()); + initActions(tu, options); + + final int errorRepairCount = -1; // -1 means full error handling + parser(null, errorRepairCount); // do the actual parse + super.resetTokenStream(); // allow tokens to be garbage collected + + // the completion node may be null + IASTCompletionNode compNode = action.getASTCompletionNode(); + + //action = null; + //parserAction = null; + return compNode; +} + +// uncomment this method to use with backtracking parser +public List<IToken> getRuleTokens() { + return getTokens().subList(getLeftSpan(), getRightSpan() + 1); +} + +public IASTNode getSecondaryParseResult() { + return (IASTNode) astStack.pop(); +} + +public String[] getOrderedTerminalSymbols() { + return GPPSizeofExpressionParsersym.orderedTerminalSymbols; +} + +@SuppressWarnings("nls") +public String getName() { + return "GPPSizeofExpressionParser"; +} + + + +private ITokenMap tokenMap = null; + +public void setTokens(List<IToken> tokens) { + resetTokenStream(); + addToken(new Token(null, 0, 0, 0)); // dummy token + for(IToken token : tokens) { + token.setKind(tokenMap.mapKind(token.getKind())); + addToken(token); + } + addToken(new Token(null, 0, 0, GPPSizeofExpressionParsersym.TK_EOF_TOKEN)); +} + +public GPPSizeofExpressionParser(IParserActionTokenProvider parser) { // constructor + tokenMap = new TokenMap(GPPSizeofExpressionParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols()); +} + + + +private GNUBuildASTParserAction gnuAction; + + public void ruleAction(int ruleNumber) + { + switch (ruleNumber) + { + + // + // Rule 1: <openscope-ast> ::= $Empty + // + case 1: { action. openASTScope(); break; + } + + // + // Rule 2: <empty> ::= $Empty + // + case 2: { action. consumeEmpty(); break; + } + + // + // Rule 13: translation_unit ::= declaration_seq_opt + // + case 13: { action. consumeTranslationUnit(); break; + } + + // + // Rule 16: literal ::= integer + // + case 16: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 17: literal ::= floating + // + case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; + } + + // + // Rule 18: literal ::= charconst + // + case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; + } + + // + // Rule 19: literal ::= stringlit + // + case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; + } + + // + // Rule 20: literal ::= true + // + case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; + } + + // + // Rule 21: literal ::= false + // + case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; + } + + // + // Rule 22: literal ::= this + // + case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; + } + + // + // Rule 24: primary_expression ::= ( expression ) + // + case 24: { action. consumeExpressionBracketed(); break; + } + + // + // Rule 26: id_expression ::= qualified_or_unqualified_name + // + case 26: { action. consumeExpressionName(); break; + } + + // + // Rule 33: unqualified_id_name ::= ~ identifier_token + // + case 33: { action. consumeDestructorName(); break; + } + + // + // Rule 34: unqualified_id_name ::= ~ template_id_name + // + case 34: { action. consumeDestructorNameTemplateId(); break; + } + + // + // Rule 35: identifier_name ::= identifier_token + // + case 35: { action. consumeIdentifierName(); break; + } + + // + // Rule 36: template_opt ::= template + // + case 36: { action. consumePlaceHolder(); break; + } + + // + // Rule 37: template_opt ::= $Empty + // + case 37: { action. consumeEmpty(); break; + } + + // + // Rule 38: dcolon_opt ::= :: + // + case 38: { action. consumeToken(); break; + } + + // + // Rule 39: dcolon_opt ::= $Empty + // + case 39: { action. consumeEmpty(); break; + } + + // + // Rule 40: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 40: { action. consumeQualifiedId(true); break; + } + + // + // Rule 41: qualified_id_name ::= :: unqualified_id_name + // + case 41: { action. consumeGlobalQualifiedId(); break; + } + + // + // Rule 42: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // + case 42: { action. consumeNestedNameSpecifier(true); break; + } + + // + // Rule 43: nested_name_specifier ::= class_or_namespace_name :: + // + case 43: { action. consumeNestedNameSpecifier(false); break; + } + + // + // Rule 44: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // + case 44: { action. consumeNestedNameSpecifier(true); break; + } + + // + // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 45: { action. consumeNestedNameSpecifier(false); break; + } + + // + // Rule 46: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 46: { action. consumeNameWithTemplateKeyword(); break; + } + + // + // Rule 48: nested_name_specifier_opt ::= $Empty + // + case 48: { action. consumeNestedNameSpecifierEmpty(); break; + } + + // + // Rule 51: postfix_expression ::= postfix_expression [ expression ] + // + case 51: { action. consumeExpressionArraySubscript(); break; + } + + // + // Rule 52: postfix_expression ::= postfix_expression ( expression_list_opt ) + // + case 52: { action. consumeExpressionFunctionCall(); break; + } + + // + // Rule 53: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // + case 53: { action. consumeExpressionSimpleTypeConstructor(); break; + } + + // + // Rule 54: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) + // + case 54: { action. consumeExpressionTypeName(); break; + } + + // + // 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 ::= postfix_expression . qualified_or_unqualified_name + // + case 56: { action. consumeExpressionFieldReference(false, false); break; + } + + // + // Rule 57: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // + case 57: { action. consumeExpressionFieldReference(true, false); break; + } + + // + // Rule 58: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // + case 58: { action. consumeExpressionFieldReference(false, true); break; + } + + // + // Rule 59: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // + case 59: { action. consumeExpressionFieldReference(true, true); break; + } + + // + // Rule 60: postfix_expression ::= postfix_expression . pseudo_destructor_name + // + case 60: { action. consumeExpressionFieldReference(false, false); break; + } + + // + // Rule 61: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // + case 61: { action. consumeExpressionFieldReference(true, false); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression ++ + // + case 62: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + } + + // + // Rule 63: postfix_expression ::= postfix_expression -- + // + case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + } + + // + // Rule 64: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // + case 64: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; + } + + // + // Rule 65: postfix_expression ::= static_cast < type_id > ( expression ) + // + case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; + } + + // + // Rule 66: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // + case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; + } + + // + // Rule 67: postfix_expression ::= const_cast < type_id > ( expression ) + // + case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; + } + + // + // Rule 68: postfix_expression ::= typeid ( expression ) + // + case 68: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; + } + + // + // Rule 69: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 69: { action. consumePsudoDestructorName(true); break; + } + + // + // Rule 70: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 70: { action. consumePsudoDestructorName(true); break; + } + + // + // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name + // + case 71: { action. consumePsudoDestructorName(false); break; + } + + // + // Rule 72: destructor_type_name ::= ~ identifier_token + // + case 72: { action. consumeDestructorName(); break; + } + + // + // Rule 73: destructor_type_name ::= ~ template_id_name + // + case 73: { action. consumeDestructorNameTemplateId(); break; + } + + // + // Rule 77: unary_expression ::= ++ cast_expression + // + case 77: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + } + + // + // Rule 78: unary_expression ::= -- cast_expression + // + case 78: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + } + + // + // Rule 79: unary_expression ::= & cast_expression + // + case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + } + + // + // Rule 80: unary_expression ::= * cast_expression + // + case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + } + + // + // Rule 81: unary_expression ::= + cast_expression + // + case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + } + + // + // Rule 82: unary_expression ::= - cast_expression + // + case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + } + + // + // Rule 83: unary_expression ::= ~ cast_expression + // + case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + } + + // + // Rule 84: unary_expression ::= ! cast_expression + // + case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + } + + // + // Rule 85: unary_expression ::= sizeof unary_expression + // + case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + } + + // + // Rule 86: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt + // + case 86: { action. consumeExpressionNew(true); break; + } + + // + // Rule 87: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt + // + case 87: { action. consumeExpressionNew(false); break; + } + + // + // Rule 89: new_placement_opt ::= $Empty + // + case 89: { action. consumeEmpty(); break; + } + + // + // Rule 90: new_type_id ::= type_specifier_seq + // + case 90: { action. consumeTypeId(false); break; + } + + // + // Rule 91: new_type_id ::= type_specifier_seq new_declarator + // + case 91: { action. consumeTypeId(true); break; + } + + // + // Rule 92: new_declarator ::= <openscope-ast> new_pointer_operators + // + case 92: { action. consumeNewDeclarator(); break; + } + + // + // Rule 99: new_initializer ::= ( expression_list_opt ) + // + case 99: { action. consumeNewInitializer(); break; + } + + // + // Rule 101: new_initializer_opt ::= $Empty + // + case 101: { action. consumeEmpty(); break; + } + + // + // Rule 102: delete_expression ::= dcolon_opt delete cast_expression + // + case 102: { action. consumeExpressionDelete(false); break; + } + + // + // Rule 103: delete_expression ::= dcolon_opt delete [ ] cast_expression + // + case 103: { action. consumeExpressionDelete(true); break; + } + + // + // Rule 105: cast_expression ::= ( type_id ) cast_expression + // + case 105: { action. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; + } + + // + // Rule 107: pm_expression ::= pm_expression .* cast_expression + // + case 107: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; + } + + // + // Rule 108: pm_expression ::= pm_expression ->* cast_expression + // + case 108: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; + } + + // + // Rule 110: multiplicative_expression ::= multiplicative_expression * pm_expression + // + case 110: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; + } + + // + // Rule 111: multiplicative_expression ::= multiplicative_expression / pm_expression + // + case 111: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; + } + + // + // Rule 112: multiplicative_expression ::= multiplicative_expression % pm_expression + // + case 112: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; + } + + // + // Rule 114: additive_expression ::= additive_expression + multiplicative_expression + // + case 114: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; + } + + // + // Rule 115: additive_expression ::= additive_expression - multiplicative_expression + // + case 115: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; + } + + // + // Rule 117: shift_expression ::= shift_expression << additive_expression + // + case 117: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; + } + + // + // Rule 118: shift_expression ::= shift_expression >> additive_expression + // + case 118: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; + } + + // + // Rule 120: relational_expression ::= relational_expression < shift_expression + // + case 120: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; + } + + // + // Rule 121: relational_expression ::= relational_expression > shift_expression + // + case 121: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; + } + + // + // Rule 122: relational_expression ::= relational_expression <= shift_expression + // + case 122: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; + } + + // + // Rule 123: relational_expression ::= relational_expression >= shift_expression + // + case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; + } + + // + // Rule 125: equality_expression ::= equality_expression == relational_expression + // + case 125: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; + } + + // + // Rule 126: equality_expression ::= equality_expression != relational_expression + // + case 126: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; + } + + // + // Rule 128: and_expression ::= and_expression & equality_expression + // + case 128: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; + } + + // + // Rule 130: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // + case 130: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; + } + + // + // Rule 132: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // + case 132: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; + } + + // + // Rule 134: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // + case 134: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; + } + + // + // Rule 136: logical_or_expression ::= logical_or_expression || logical_and_expression + // + case 136: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; + } + + // + // Rule 138: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // + case 138: { action. consumeExpressionConditional(); break; + } + + // + // Rule 139: throw_expression ::= throw + // + case 139: { action. consumeExpressionThrow(false); break; + } + + // + // Rule 140: throw_expression ::= throw assignment_expression + // + case 140: { action. consumeExpressionThrow(true); break; + } + + // + // Rule 143: assignment_expression ::= logical_or_expression = assignment_expression + // + case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + } + + // + // Rule 144: assignment_expression ::= logical_or_expression *= assignment_expression + // + case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + } + + // + // Rule 145: assignment_expression ::= logical_or_expression /= assignment_expression + // + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + } + + // + // Rule 146: assignment_expression ::= logical_or_expression %= assignment_expression + // + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + } + + // + // Rule 147: assignment_expression ::= logical_or_expression += assignment_expression + // + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + } + + // + // Rule 148: assignment_expression ::= logical_or_expression -= assignment_expression + // + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + } + + // + // Rule 149: assignment_expression ::= logical_or_expression >>= assignment_expression + // + case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + } + + // + // Rule 150: assignment_expression ::= logical_or_expression <<= assignment_expression + // + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + } + + // + // Rule 151: assignment_expression ::= logical_or_expression &= assignment_expression + // + case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + } + + // + // Rule 152: assignment_expression ::= logical_or_expression ^= assignment_expression + // + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + } + + // + // Rule 153: assignment_expression ::= logical_or_expression |= assignment_expression + // + case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + } + + // + // Rule 155: expression_list ::= <openscope-ast> expression_list_actual + // + case 155: { action. consumeExpressionList(); break; + } + + // + // Rule 159: expression_list_opt ::= $Empty + // + case 159: { action. consumeEmpty(); break; + } + + // + // Rule 161: expression_opt ::= $Empty + // + case 161: { action. consumeEmpty(); break; + } + + // + // Rule 164: constant_expression_opt ::= $Empty + // + case 164: { action. consumeEmpty(); break; + } + + // + // Rule 173: statement ::= ERROR_TOKEN + // + case 173: { action. consumeStatementProblem(); break; + } + + // + // Rule 174: labeled_statement ::= identifier : statement + // + case 174: { action. consumeStatementLabeled(); break; + } + + // + // Rule 175: labeled_statement ::= case constant_expression : statement + // + case 175: { action. consumeStatementCase(); break; + } + + // + // Rule 176: labeled_statement ::= default : statement + // + case 176: { action. consumeStatementDefault(); break; + } + + // + // Rule 177: expression_statement ::= expression ; + // + case 177: { action. consumeStatementExpression(); break; + } + + // + // Rule 178: expression_statement ::= ; + // + case 178: { action. consumeStatementNull(); break; + } + + // + // Rule 179: compound_statement ::= { <openscope-ast> statement_seq } + // + case 179: { action. consumeStatementCompoundStatement(true); break; + } + + // + // Rule 180: compound_statement ::= { } + // + case 180: { action. consumeStatementCompoundStatement(false); break; + } + + // + // Rule 183: selection_statement ::= if ( condition ) statement + // + case 183: { action. consumeStatementIf(false); break; + } + + // + // Rule 184: selection_statement ::= if ( condition ) statement else statement + // + case 184: { action. consumeStatementIf(true); break; + } + + // + // Rule 185: selection_statement ::= switch ( condition ) statement + // + case 185: { action. consumeStatementSwitch(); break; + } + + // + // Rule 187: condition ::= type_specifier_seq declarator = assignment_expression + // + case 187: { action. consumeConditionDeclaration(); break; + } + + // + // Rule 189: condition_opt ::= $Empty + // + case 189: { action. consumeEmpty(); break; + } + + // + // Rule 190: iteration_statement ::= while ( condition ) statement + // + case 190: { action. consumeStatementWhileLoop(); break; + } + + // + // Rule 191: iteration_statement ::= do statement while ( expression ) ; + // + case 191: { action. consumeStatementDoLoop(); break; + } + + // + // Rule 192: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // + case 192: { action. consumeStatementForLoop(); break; + } + + // + // Rule 194: for_init_statement ::= simple_declaration_with_declspec + // + case 194: { action. consumeStatementDeclaration(); break; + } + + // + // Rule 195: jump_statement ::= break ; + // + case 195: { action. consumeStatementBreak(); break; + } + + // + // Rule 196: jump_statement ::= continue ; + // + case 196: { action. consumeStatementContinue(); break; + } + + // + // Rule 197: jump_statement ::= return expression ; + // + case 197: { action. consumeStatementReturn(true); break; + } + + // + // Rule 198: jump_statement ::= return ; + // + case 198: { action. consumeStatementReturn(false); break; + } + + // + // Rule 199: jump_statement ::= goto identifier_token ; + // + case 199: { action. consumeStatementGoto(); break; + } + + // + // Rule 200: declaration_statement ::= block_declaration + // + case 200: { action. consumeStatementDeclarationWithDisambiguation(); break; + } + + // + // Rule 201: declaration_statement ::= function_definition + // + case 201: { action. consumeStatementDeclaration(); break; + } + + // + // Rule 209: declaration ::= ERROR_TOKEN + // + case 209: { action. consumeDeclarationProblem(); break; + } + + // + // Rule 219: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; + // + case 219: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 220: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ; + // + case 220: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 221: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers + // + case 221: { action. consumeDeclarationSpecifiersSimple(); break; + } + + // + // Rule 222: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers + // + case 222: { action. consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 223: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers + // + case 223: { action. consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 224: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers + // + case 224: { action. consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 225: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers + // + case 225: { action. consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 227: declaration_specifiers_opt ::= $Empty + // + case 227: { action. consumeEmpty(); break; + } + + // + // Rule 231: no_type_declaration_specifier ::= friend + // + case 231: { action. consumeToken(); break; + } + + // + // Rule 232: no_type_declaration_specifier ::= typedef + // + case 232: { action. consumeToken(); break; + } + + // + // Rule 252: storage_class_specifier ::= auto + // + case 252: { action. consumeToken(); break; + } + + // + // Rule 253: storage_class_specifier ::= register + // + case 253: { action. consumeToken(); break; + } + + // + // Rule 254: storage_class_specifier ::= static + // + case 254: { action. consumeToken(); break; + } + + // + // Rule 255: storage_class_specifier ::= extern + // + case 255: { action. consumeToken(); break; + } + + // + // Rule 256: storage_class_specifier ::= mutable + // + case 256: { action. consumeToken(); break; + } + + // + // Rule 257: function_specifier ::= inline + // + case 257: { action. consumeToken(); break; + } + + // + // Rule 258: function_specifier ::= virtual + // + case 258: { action. consumeToken(); break; + } + + // + // Rule 259: function_specifier ::= explicit + // + case 259: { action. consumeToken(); break; + } + + // + // Rule 260: simple_type_specifier ::= char + // + case 260: { action. consumeToken(); break; + } + + // + // Rule 261: simple_type_specifier ::= wchar_t + // + case 261: { action. consumeToken(); break; + } + + // + // Rule 262: simple_type_specifier ::= bool + // + case 262: { action. consumeToken(); break; + } + + // + // Rule 263: simple_type_specifier ::= short + // + case 263: { action. consumeToken(); break; + } + + // + // Rule 264: simple_type_specifier ::= int + // + case 264: { action. consumeToken(); break; + } + + // + // Rule 265: simple_type_specifier ::= long + // + case 265: { action. consumeToken(); break; + } + + // + // Rule 266: simple_type_specifier ::= signed + // + case 266: { action. consumeToken(); break; + } + + // + // Rule 267: simple_type_specifier ::= unsigned + // + case 267: { action. consumeToken(); break; + } + + // + // Rule 268: simple_type_specifier ::= float + // + case 268: { action. consumeToken(); break; + } + + // + // Rule 269: simple_type_specifier ::= double + // + case 269: { action. consumeToken(); break; + } + + // + // Rule 270: simple_type_specifier ::= void + // + case 270: { action. consumeToken(); break; + } + + // + // Rule 273: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // + case 273: { action. consumeQualifiedId(false); break; + } + + // + // Rule 274: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // + case 274: { action. consumeQualifiedId(false); break; + } + + // + // Rule 275: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 275: { action. consumeQualifiedId(false); break; + } + + // + // Rule 276: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 276: { action. consumeQualifiedId(true); break; + } + + // + // Rule 278: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // + case 278: { action. consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 279: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name + // + case 279: { action. consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 280: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name + // + case 280: { action. consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 282: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt } + // + case 282: { action. consumeTypeSpecifierEnumeration(false); break; + } + + // + // Rule 283: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt } + // + case 283: { action. consumeTypeSpecifierEnumeration(true); break; + } + + // + // Rule 289: enumerator_definition ::= identifier_token + // + case 289: { action. consumeEnumerator(false); break; + } + + // + // Rule 290: enumerator_definition ::= identifier_token = constant_expression + // + case 290: { action. consumeEnumerator(true); break; + } + + // + // Rule 294: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt } + // + case 294: { action. consumeNamespaceDefinition(true); break; + } + + // + // Rule 295: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } + // + case 295: { action. consumeNamespaceDefinition(false); break; + } + + // + // Rule 296: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // + case 296: { action. consumeNamespaceAliasDefinition(); break; + } + + // + // Rule 297: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // + case 297: { action. consumeUsingDeclaration(); break; + } + + // + // Rule 298: typename_opt ::= typename + // + case 298: { action. consumePlaceHolder(); break; + } + + // + // Rule 299: typename_opt ::= $Empty + // + case 299: { action. consumeEmpty(); break; + } + + // + // Rule 300: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // + case 300: { action. consumeUsingDirective(); break; + } + + // + // Rule 301: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } + // + case 301: { action. consumeLinkageSpecification(); break; + } + + // + // Rule 302: linkage_specification ::= extern stringlit <openscope-ast> declaration + // + case 302: { action. consumeLinkageSpecification(); break; + } + + // + // Rule 307: init_declarator_complete ::= init_declarator + // + case 307: { action. consumeInitDeclaratorComplete(); break; + } + + // + // Rule 309: init_declarator ::= complete_declarator initializer + // + case 309: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 312: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator + // + case 312: { action. consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 314: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator + // + case 314: { action. consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 318: basic_direct_declarator ::= declarator_id_name + // + case 318: { action. consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 319: basic_direct_declarator ::= ( declarator ) + // + case 319: { action. consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 320: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // + case 320: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 321: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 321: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 322: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 322: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 323: array_modifier ::= [ constant_expression ] + // + case 323: { action. consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 324: array_modifier ::= [ ] + // + case 324: { action. consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 325: ptr_operator ::= pointer_hook * <openscope-ast> cv_qualifier_seq_opt + // + case 325: { action. consumePointer(); break; + } + + // + // Rule 326: ptr_operator ::= pointer_hook & + // + case 326: { action. consumeReferenceOperator(); break; + } + + // + // Rule 327: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * <openscope-ast> cv_qualifier_seq_opt + // + case 327: { action. consumePointerToMember(); break; + } + + // + // Rule 334: cv_qualifier ::= const + // + case 334: { action. consumeToken(); break; + } + + // + // Rule 335: cv_qualifier ::= volatile + // + case 335: { action. consumeToken(); break; + } + + // + // Rule 337: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // + case 337: { action. consumeQualifiedId(false); break; + } + + // + // Rule 338: type_id ::= type_specifier_seq + // + case 338: { action. consumeTypeId(false); break; + } + + // + // Rule 339: type_id ::= type_specifier_seq abstract_declarator + // + case 339: { action. consumeTypeId(true); break; + } + + // + // Rule 342: abstract_declarator ::= <openscope-ast> ptr_operator_seq + // + case 342: { action. consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator + // + case 343: { action. consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 347: { action. consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 348: basic_direct_abstract_declarator ::= ( ) + // + case 348: { action. consumeAbstractDeclaratorEmpty(); break; + } + + // + // Rule 349: array_direct_abstract_declarator ::= array_modifier + // + case 349: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 350: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + case 351: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 352: 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 352: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 353: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // + case 353: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; + } + + // + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 354: { action. consumePlaceHolder(); break; + } + + // + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 355: { action. consumeEmpty(); break; + } + + // + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 356: { action. consumePlaceHolder(); break; + } + + // + // Rule 362: abstract_declarator_opt ::= $Empty + // + case 362: { action. consumeEmpty(); break; + } + + // + // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 363: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 364: parameter_declaration ::= declaration_specifiers + // + case 364: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer + // + case 366: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 368: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 369: parameter_init_declarator ::= = parameter_initializer + // + case 369: { action. consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 370: parameter_initializer ::= assignment_expression + // + case 370: { action. consumeInitializer(); break; + } + + // + // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body + // + case 371: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq + // + case 372: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 375: initializer ::= ( expression_list ) + // + case 375: { action. consumeInitializerConstructor(); break; + } + + // + // Rule 376: initializer_clause ::= assignment_expression + // + case 376: { action. consumeInitializer(); break; + } + + // + // Rule 377: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list + // + case 377: { action. consumeInitializerList(); break; + } + + // + // Rule 378: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list + // + case 378: { action. consumeInitializerList(); break; + } + + // + // Rule 379: initializer_clause ::= { <openscope-ast> } + // + case 379: { action. consumeInitializerList(); break; + } + + // + // Rule 380: start_initializer_list ::= $Empty + // + case 380: { action. initializerListStart(); break; + } + + // + // Rule 381: end_initializer_list ::= $Empty + // + case 381: { action. initializerListEnd(); break; + } + + // + // Rule 386: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // + case 386: { action. consumeClassSpecifier(); break; + } + + // + // Rule 387: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt + // + case 387: { action. consumeClassHead(false); break; + } + + // + // Rule 388: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt + // + case 388: { action. consumeClassHead(false); break; + } + + // + // Rule 389: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt + // + case 389: { action. consumeClassHead(true); break; + } + + // + // Rule 390: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt + // + case 390: { action. consumeClassHead(true); break; + } + + // + // Rule 394: identifier_name_opt ::= $Empty + // + case 394: { action. consumeEmpty(); break; + } + + // + // Rule 398: visibility_label ::= access_specifier_keyword : + // + case 398: { action. consumeVisibilityLabel(); break; + } + + // + // Rule 399: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // + case 399: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 400: member_declaration ::= declaration_specifiers_opt ; + // + case 400: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // + case 403: { action. consumeMemberDeclarationQualifiedId(); break; + } + + // + // Rule 409: member_declaration ::= ERROR_TOKEN + // + case 409: { action. consumeDeclarationProblem(); break; + } + + // + // Rule 418: member_declarator ::= declarator constant_initializer + // + case 418: { action. consumeMemberDeclaratorWithInitializer(); break; + } + + // + // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // + case 419: { action. consumeBitField(true); break; + } + + // + // Rule 420: member_declarator ::= : constant_expression + // + case 420: { action. consumeBitField(false); break; + } + + // + // Rule 421: bit_field_declarator ::= identifier_name + // + case 421: { action. consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 422: constant_initializer ::= = constant_expression + // + case 422: { action. consumeInitializer(); break; + } + + // + // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // + case 428: { action. consumeBaseSpecifier(false, false); break; + } + + // + // Rule 429: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // + case 429: { action. consumeBaseSpecifier(true, true); break; + } + + // + // Rule 430: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // + case 430: { action. consumeBaseSpecifier(true, true); break; + } + + // + // Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // + case 431: { action. consumeBaseSpecifier(true, false); break; + } + + // + // Rule 432: access_specifier_keyword ::= private + // + case 432: { action. consumeToken(); break; + } + + // + // Rule 433: access_specifier_keyword ::= protected + // + case 433: { action. consumeToken(); break; + } + + // + // Rule 434: access_specifier_keyword ::= public + // + case 434: { action. consumeToken(); break; + } + + // + // Rule 436: access_specifier_keyword_opt ::= $Empty + // + case 436: { action. consumeEmpty(); break; + } + + // + // Rule 438: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > + // + case 438: { action. consumeTemplateId(); break; + } + + // + // Rule 439: conversion_function_id ::= operator conversion_type_id + // + case 439: { action. consumeConversionName(); break; + } + + // + // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator + // + case 440: { action. consumeTypeId(true); break; + } + + // + // Rule 441: conversion_type_id ::= type_specifier_seq + // + case 441: { action. consumeTypeId(false); break; + } + + // + // Rule 442: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // + case 442: { action. consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // + case 448: { action. consumeConstructorChainInitializer(); break; + } + + // + // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // + case 449: { action. consumeQualifiedId(false); break; + } + + // + // Rule 452: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // + case 452: { action. consumeTemplateId(); break; + } + + // + // Rule 453: operator_id_name ::= operator overloadable_operator + // + case 453: { action. consumeOperatorName(); break; + } + + // + // Rule 496: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // + case 496: { action. consumeTemplateDeclaration(); break; + } + + // + // Rule 497: export_opt ::= export + // + case 497: { action. consumePlaceHolder(); break; + } + + // + // Rule 498: export_opt ::= $Empty + // + case 498: { action. consumeEmpty(); break; + } + + // + // Rule 502: template_parameter ::= parameter_declaration + // + case 502: { action. consumeTemplateParamterDeclaration(); break; + } + + // + // Rule 503: type_parameter ::= class identifier_name_opt + // + case 503: { action. consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 504: type_parameter ::= class identifier_name_opt = type_id + // + case 504: { action. consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 505: type_parameter ::= typename identifier_name_opt + // + case 505: { action. consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 506: type_parameter ::= typename identifier_name_opt = type_id + // + case 506: { action. consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 507: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt + // + case 507: { action. consumeTemplatedTypeTemplateParameter(false); break; + } + + // + // Rule 508: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // + case 508: { action. consumeTemplatedTypeTemplateParameter(true); break; + } + + // + // Rule 509: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > + // + case 509: { action. consumeTemplateId(); break; + } + + // + // Rule 514: template_argument ::= assignment_expression + // + case 514: { action. consumeTemplateArgumentExpression(); break; + } + + // + // Rule 515: template_argument ::= type_id + // + case 515: { action. consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 516: explicit_instantiation ::= template declaration + // + case 516: { action. consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 517: explicit_specialization ::= template < > declaration + // + case 517: { action. consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 518: try_block ::= try compound_statement <openscope-ast> handler_seq + // + case 518: { action. consumeStatementTryBlock(); break; + } + + // + // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // + case 521: { action. consumeStatementCatchHandler(false); break; + } + + // + // Rule 522: handler ::= catch ( ... ) compound_statement + // + case 522: { action. consumeStatementCatchHandler(true); break; + } + + // + // Rule 523: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // + case 523: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // + case 524: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 525: exception_declaration ::= type_specifier_seq + // + case 525: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 527: exception_specification ::= throw ( ) + // + case 527: { action. consumePlaceHolder(); break; + } + + // + // Rule 548: attribute_parameter ::= assignment_expression + // + case 548: { action. consumeIgnore(); break; + } + + // + // Rule 558: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; + // + case 558: { gnuAction.consumeDeclarationASM(); break; + } + + // + // Rule 569: unary_expression ::= __alignof__ unary_expression + // + case 569: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; + } + + // + // Rule 570: unary_expression ::= typeof unary_expression + // + case 570: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + } + + // + // Rule 583: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator + // + case 583: { action. consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 586: no_sizeof_type_id_start ::= ERROR_TOKEN + // + case 586: { action. consumeExpressionProblem(); break; + } + + + default: + break; + } + return; + } +} + diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java new file mode 100644 index 00000000000..42b4908f6a0 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java @@ -0,0 +1,3039 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.gpp; + +public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, GPPSizeofExpressionParsersym { + + public interface IsKeyword { + public final static byte isKeyword[] = {0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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; + public final boolean isKeyword(int index) { return isKeyword[index] != 0; } + + public interface BaseCheck { + 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,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,5,6, + 3,2,2,1,1,1,2,2,2,2, + 2,2,2,2,2,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, + 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,2,2,7,1,0,1,3, + 1,1,2,4,2,4,7,9,5,1, + 3,1,0,1,1,2,4,4,1,2, + 5,5,3,3,1,4,3,1,0,1, + 3,1,1,1,1,2,6,3,1,3, + 1,4,0,1,1,1,3,1,0,4, + 3,1,2,1,3,4,4,6,1,0, + 1,3,1,3,0,1,4,5,2,2, + 1,1,2,2,3,2,2,3,1,1, + 1,1,4,1,1,1,-64,0,0,0, + -502,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-124,0,0,-10,0,0, + 0,0,0,0,0,0,0,0,-428,0, + 0,0,0,-139,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-521,-187, + 0,0,0,0,-242,0,0,0,0,-417, + 0,0,0,0,-1,-481,0,0,0,0, + 0,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,-191, + 0,0,0,0,0,0,0,-2,0,-131, + 0,0,0,-394,0,0,-4,-73,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-116, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-55,-252,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -60,0,0,0,0,0,-245,0,0,0, + -74,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-18,0,0,0,0,-117, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-182,0,0,0,0,0,0,0, + -133,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-152,-399,0,0, + 0,0,-580,0,0,0,0,0,0,0, + 0,0,0,0,0,-567,0,-272,0,0, + -215,-114,0,0,0,0,-135,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -141,-5,0,0,0,0,0,-196,0,0, + 0,0,-66,0,0,0,0,0,0,0, + 0,0,0,-146,0,0,0,-6,0,0, + 0,0,0,0,-51,-403,0,0,0,0, + 0,0,0,0,0,0,-229,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-181, + 0,0,0,0,0,0,0,-7,0,0, + 0,0,0,0,0,0,0,0,0,0, + -56,0,0,0,0,-8,0,0,-153,0, + 0,0,-9,0,0,0,0,0,0,0, + 0,-237,0,0,0,0,0,0,-301,0, + -142,0,0,-554,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-149,-197,0, + 0,0,0,0,-415,0,0,0,0,0, + 0,0,0,0,-290,0,0,0,0,0, + 0,-579,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-332,0,-11,0,0,0, + 0,0,0,0,0,0,0,-12,0,0, + 0,0,0,0,0,0,0,0,0,-474, + 0,0,0,-67,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-463,0,0,0,0,0,0,0, + -195,0,0,0,0,0,0,0,0,0, + 0,0,0,-279,0,0,0,-318,0,0, + 0,-13,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -246,0,0,0,0,0,0,0,-198,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-52,0,0,0,0,-15,-155,0,0, + 0,0,0,0,0,0,0,0,0,0, + -30,-3,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-497,0,0,0,0,0, + 0,0,-333,0,0,0,0,-134,0,0, + 0,0,-253,0,0,0,0,0,-293,0, + 0,0,-450,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-276,0,0,-377,0,-31,0,0,0, + 0,0,0,0,-32,0,0,0,0,0, + 0,0,-369,0,0,-340,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-150, + 0,-33,0,0,0,0,0,0,0,0, + 0,-61,0,0,0,0,-16,0,0,0, + 0,0,0,0,0,0,0,-473,0,0, + -575,0,0,-50,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-259, + 0,0,0,0,0,-388,0,0,0,-34, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-429,0, + 0,0,0,-322,0,0,-305,0,0,0, + 0,-35,0,0,0,0,-380,0,0,0, + 0,0,-41,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-556,0,0,0,0, + 0,0,0,-325,0,0,0,0,0,0, + 0,0,0,-148,0,0,-62,0,0,-43, + 0,0,0,-511,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-260,0,0,0,0,0,0,0, + -316,0,0,0,0,-36,0,0,0,0, + 0,-309,0,-109,0,0,-96,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-291, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-97,0,0,0,-570,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-303,0,0,0, + 0,-157,0,0,-385,0,0,0,0,-205, + 0,0,0,0,-334,0,0,0,0,0, + -98,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-53,0,-414,0,0,0, + 0,0,0,0,0,0,-353,0,0,0, + 0,-387,-485,-364,-115,0,0,-99,0,0, + 0,-571,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,0,-37,0,0,0,0,-156,-553, + -401,-38,0,0,-100,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-420,0, + -221,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-190,-39,0,0, + 0,-101,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-40,0,0,-42, + 0,0,-424,0,0,0,0,0,0,0, + 0,0,-57,-207,-336,-216,0,0,-102,0, + 0,0,0,0,0,0,0,0,0,0, + 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, + -235,0,-247,0,0,-103,0,0,0,-378, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-58,0,0,0,0,-254,-261,-296,-68, + 0,0,-104,0,0,0,-69,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-71,-432,0,0,0, + 0,0,0,0,0,0,0,0,-72,0, + 0,0,0,-262,-263,-297,-110,0,0,-105, + 0,0,0,-111,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-112,-59,0,0,0,0,0,0, + 0,0,0,0,0,-113,0,0,0,0, + -264,-269,-390,-425,0,0,-106,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-120, + -193,0,0,0,0,0,0,0,0,0, + 0,0,-578,0,0,0,0,-289,0,-121, + -233,0,0,-222,0,0,0,-122,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-136,-514, + 0,0,0,0,-143,0,0,0,0,-354, + 0,0,0,0,-144,-271,-145,-302,0,0, + -573,0,0,0,-158,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-395,0,0,0,0,0,0, + 0,-441,0,0,0,0,0,0,0,0, + 0,-335,0,-501,0,0,0,-352,0,0, + 0,-159,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-209,-160,-274,0,0,0,0,0,0, + 0,0,0,-445,0,0,0,0,-367,0, + 0,0,-508,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-232, + 0,0,0,0,0,0,0,0,0,-151, + 0,0,0,0,0,0,0,0,0,0, + -161,-379,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-214,0,-366,0,0, + 0,0,0,0,0,0,0,-312,0,0, + 0,0,-405,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-162,0,0, + 0,0,0,-163,0,0,0,0,0,0, + 0,0,0,-357,0,0,0,0,-164,0, + 0,0,0,0,-165,-406,0,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,-268,0,0,-166,0,0,0, + 0,-313,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,0, + 0,0,0,0,-167,0,0,-517,0,0, + 0,0,-199,0,0,0,0,-421,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-168,-255,0,0,0,0,0,0,-320, + 0,0,0,0,-287,0,0,-344,-400,0, + 0,0,-317,-119,0,0,0,0,0,0, + -231,-375,0,-63,0,-396,0,0,0,0, + -438,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-169,0,-538,0,-108,0, + 0,0,-170,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-537,0,-171,0,0,0,0,0, + 0,0,0,0,0,0,0,-132,0,0, + 0,-172,-327,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-173,-454,0,0,0,0,0, + 0,-174,0,0,0,0,-285,-243,0,-257, + 0,0,-175,0,0,0,0,0,0,-456, + -402,0,0,0,0,0,0,0,0,0, + 0,0,0,-176,0,0,0,0,-319,-389, + 0,-177,0,-95,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-178,0,0,0, + 0,0,0,0,-430,0,0,0,0,-284, + 0,0,0,0,-286,0,0,0,0,0, + 0,0,-93,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-448,0,0,-123,0, + -179,0,0,-125,0,0,0,0,-347,0, + 0,0,-180,0,0,0,0,0,0,0, + 0,0,0,0,0,-183,0,0,0,0, + -568,0,0,0,0,-127,0,0,0,-75, + 0,0,-409,0,-350,-288,-184,-292,-185,0, + 0,0,-431,0,-220,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-564,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-189,0,0,0,0,0, + 0,0,0,0,0,-192,0,0,0,0, + 0,-54,0,0,0,-345,0,-251,0,0, + -202,0,-304,-314,0,-129,0,0,0,0, + 0,0,0,0,0,0,0,0,-203,-321, + 0,0,0,0,-206,0,0,0,0,0, + 0,0,0,-217,-94,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-227,0,-584, + -228,0,0,0,0,-326,0,0,0,0, + -442,0,0,0,0,-234,0,0,-330,-44, + -373,-240,0,0,0,0,0,-248,-331,0, + 0,0,0,-342,0,0,-250,0,0,0, + 0,-258,0,0,0,0,0,-267,0,0, + 0,0,-348,0,-270,0,0,0,0,0, + 0,0,0,0,0,-275,-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,0,0,-90,0,0,0,-277,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-278,-359,-356, + -294,0,0,0,0,-490,0,0,-374,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-140,-499,-295,-306,0,-147,0,0,0, + 0,0,0,0,0,-404,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-500, + 0,0,0,-194,0,0,0,-437,0,0, + 0,0,0,0,0,0,-361,0,-310,-382, + 0,0,0,0,0,0,-515,0,0,-315, + 0,0,0,0,-363,-518,0,0,0,0, + 0,0,0,0,0,-311,-45,0,0,0, + 0,0,0,0,-323,0,-411,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-475,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-381,0,-453, + 0,0,0,0,0,-519,0,0,0,0, + 0,0,0,-324,-329,0,0,0,-472,0, + 0,-337,-338,-419,-444,0,0,0,0,-447, + 0,0,0,0,0,0,-70,0,0,0, + 0,0,0,0,0,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,0,0,0,0,0,0,-349,0,0, + 0,0,-92,0,0,0,-368,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-343,0,0,0,0, + -370,0,0,-391,0,0,0,0,-249,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-299,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-386,0,-418,-280,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-458,0,-532,-412,0,-413,-154,0,0, + 0,-461,0,0,0,0,0,-422,0,-477, + -423,0,0,-426,0,0,0,0,0,-427, + -376,0,-265,-462,0,0,0,0,-533,-542, + 0,0,0,0,0,-563,0,-46,0,0, + 0,0,-433,0,0,0,0,0,0,0, + 0,0,-507,-339,-435,0,0,-443,0,0, + 0,0,0,0,0,0,0,0,0,-451, + 0,0,0,-498,0,0,0,0,0,-503, + 0,0,0,0,0,0,-459,0,-407,0, + -486,-76,-460,-478,0,0,0,-230,0,0, + 0,0,0,0,0,-479,0,-506,-487,0, + 0,0,0,0,0,-510,0,0,0,0, + 0,0,0,0,0,0,0,0,-535,-355, + 0,-489,0,0,0,0,0,0,0,0, + 0,0,0,0,-491,0,0,0,0,0, + 0,0,0,0,-492,-493,0,-539,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-84,0,0,0,-494,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-464,0,0,0,0, + 0,0,0,-496,-466,0,0,0,-516,-520, + -85,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-509,0,0,0,0,-541,0, + 0,-86,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-522,-546,-548,0,0, + 0,0,-87,0,0,0,-552,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-555,-495,0,0,0, + 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,-523,0,-504,0,0, + 0,-550,0,-559,-525,0,-576,0,-530,0, + 0,-128,-524,0,-534,-540,0,0,0,0, + -557,-558,-543,0,0,0,0,0,0,-14, + -577,-551,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -561,0,0,0,-384,0,0,0,-526,0, + -569,0,0,0,0,0,-582,-574,-585,0, + 0,0,0,0,0,0,0,0,0,0, + -49,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-583,-469, + 0,0,0,0,-545,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -560,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-47,0,-107, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-562,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-188,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-566,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-223,0,0,-544,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -266,0,0,0,0,0,0,-513,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-572,0,0,0,0,0, + 0,0,0,0,0,0,0,-351,-581,0, + 0,0,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,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-586,0,-224,0,0,0,0,0,-410, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-505,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-89,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-365,0,0,0,0,0,0, + 0,0,0,0,0,0,-225,0,0,0, + 0,-241,0,0,0,0,0,0,0,0, + -408,0,0,0,0,0,0,0,0,0, + 0,0,0,-226,0,0,0,0,-200,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,0,0,0,0,0,0,0, + 0,0,-80,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-358,-126,0,0, + 0,0,-529,0,0,0,0,0,-398,-256, + 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,0,0,0,0, + 0,0,0,-470,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-452,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-471,-436,0,0, + 0,0,0,0,0,0,0,0,-449,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-393,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-512, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-218,0,0,0, + 0,0,0,0,0,0,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,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,-83,0, + 0,0,0,0,0,0,0,0,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,0,-465, + 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,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,0,0,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,0,0,0,0,0,0, + 0,0,0,0,0,0,-26,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-27,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -28,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-29,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-65,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-77,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-78,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -137,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-212,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-360,-208,0,0,0,0, + 0,0,0,-383,0,0,0,-476,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-392,0,0,-565, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-397,0,0,0,0,0,0,0,0, + 0,0,0,-446,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-457,0, + 0,0,0,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,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-328,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-547,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-236,0,0,0,0, + 0,0,0,0,-281,0,0,0,0,0, + 0,0,0,0,0,0,0,-244,0,0, + 0,0,0,0,0,0,0,-298,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-362, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-346,0,0,0,0,0,-204, + 0,0,0,0,0,0,-118,0,0,0, + 0,0,0,0,-238,0,0,0,0,0, + -239,0,0,0,0,0,0,0,-138,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-300,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-308,0, + 0,0,0,0,0,-372,0,0,0,0, + 0,-186,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-371,0, + 0,0,0,0,-416,0,0,0,-434,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,-455,0,0,0,0, + -467,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -468,0,0,0,0,0,0,0,0,-549, + 0,0,0,0,0,0,0,0,-17,0, + 0,0,0,0,0,0,0,0,0,0, + -480,0,0,0,0,-482,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-210,0,0,0,0, + 0,0,0,0,0,-282,0,0,0,-283, + 0,0,-219,0,0,0,0,0,0,0, + 0,-273,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-527,0, + 0,0,0,0,0,-528,0,0,-531,0, + -48,0,0,0,0,0,0,0,0,-213, + 0,0,0,0,0,0,0,0,0,0, + 0,-483,0,0,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,0, + 0,0,-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, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,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; + public final int baseCheck(int index) { return baseCheck[index]; } + public final static short rhs[] = baseCheck; + public final int rhs(int index) { return rhs[index]; }; + + public interface BaseAction { + public final static char baseAction[] = { + 186,4,146,89,89,31,31,74,74,43, + 43,47,47,217,1,1,15,15,15,15, + 15,15,15,16,16,16,14,11,11,6, + 6,6,6,6,6,2,72,72,5,5, + 12,12,49,49,147,147,148,67,67,48, + 17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,149, + 149,149,124,124,18,18,18,18,18,18, + 18,18,18,18,18,18,19,19,187,187, + 188,188,189,152,152,153,153,150,150,154, + 151,151,20,20,21,21,22,22,22,27, + 27,27,27,29,29,29,30,30,30,32, + 32,32,32,32,33,33,33,34,34,35, + 35,37,37,38,38,39,39,40,40,46, + 46,45,45,45,45,45,45,45,45,45, + 45,45,45,45,44,36,155,155,103,103, + 190,190,98,218,218,75,75,75,75,75, + 75,75,75,75,76,76,76,73,73,66, + 66,191,191,77,77,77,109,109,192,192, + 78,78,78,193,193,79,79,79,79,79, + 80,80,90,90,90,90,90,90,90,90, + 57,57,57,57,57,125,125,123,123,58, + 194,28,28,28,28,28,53,53,93,93, + 93,93,93,162,162,157,157,157,157,157, + 158,158,158,159,159,159,160,160,160,161, + 161,161,94,94,94,94,94,95,95,95, + 13,13,13,13,13,13,13,13,13,13, + 13,104,129,129,129,129,129,129,127,127, + 127,163,128,128,195,165,165,164,164,131, + 131,110,85,85,86,87,60,52,166,166, + 61,92,92,167,167,156,156,132,133,133, + 134,70,70,168,168,63,63,63,55,55, + 54,64,64,82,82,68,68,68,65,96, + 96,106,105,105,71,71,56,56,69,69, + 50,107,107,107,99,99,99,100,100,101, + 101,101,102,102,111,111,111,113,113,112, + 112,219,219,97,97,197,197,197,197,197, + 136,51,51,170,196,196,137,137,137,137, + 138,172,198,198,41,41,126,139,139,139, + 139,200,115,114,114,130,130,130,173,174, + 174,174,174,174,174,174,174,174,174,174, + 202,202,199,199,201,201,117,118,118,118, + 118,119,203,120,116,116,204,204,175,175, + 175,175,108,108,108,205,205,8,8,9, + 206,206,207,176,169,169,177,177,178,179, + 179,7,7,10,208,208,208,208,208,208, + 208,208,208,208,208,208,208,208,208,208, + 208,208,208,208,208,208,208,208,208,208, + 208,208,208,208,208,208,208,208,208,208, + 208,208,208,208,208,208,83,88,88,180, + 180,141,141,142,142,142,142,142,142,3, + 143,143,140,140,121,121,91,84,81,171, + 171,122,122,209,209,209,144,144,135,135, + 210,210,23,23,23,42,42,24,24,211, + 211,181,181,181,182,182,212,212,183,183, + 25,25,213,213,184,184,184,26,62,214, + 214,215,215,185,185,185,145,145,145,18, + 18,59,93,134,134,134,117,117,117,195, + 200,115,65,70,163,186,186,1171,35,2157, + 2155,2464,3067,27,30,31,1192,1237,26,28, + 2145,25,23,50,1251,104,75,76,106,1327, + 572,532,533,534,1372,2464,1335,1492,1284,1460, + 1774,1586,1828,3771,1782,1857,1860,141,271,1323, + 35,393,156,142,2942,35,1128,32,1997,815, + 27,30,31,1192,1237,26,28,1117,25,23, + 50,1251,104,75,76,106,1327,3489,230,3537, + 1454,1372,2091,1335,1492,2464,1460,1774,1586,1828, + 3184,1782,1857,2885,162,2395,523,35,291,1252, + 233,228,229,536,532,533,534,3411,35,1128, + 32,272,815,27,30,31,1192,1237,26,28, + 1117,25,23,50,1251,104,75,76,106,2233, + 1935,154,2786,240,243,246,249,4348,1293,585, + 73,35,277,324,3334,4249,615,618,2969,35, + 1128,32,1680,3358,27,30,31,1192,1237,57, + 28,551,727,3447,2514,2739,2744,2776,2866,4672, + 2467,35,1128,32,2852,815,27,30,31,1192, + 1237,26,28,1117,25,23,50,1251,104,75, + 76,106,1327,1140,3152,35,275,1372,340,1335, + 1492,520,1460,1774,1586,1828,3196,1782,1857,1860, + 141,523,1996,2139,34,514,142,3040,35,275, + 2524,3085,35,1128,32,353,3358,27,30,31, + 1192,1237,56,28,528,1724,35,1977,385,515, + 2467,35,1128,32,2852,815,27,30,31,1192, + 1237,26,28,1117,25,23,50,1251,104,75, + 76,106,1327,523,35,2921,1667,1372,340,1335, + 1492,1140,1460,1774,1586,1828,49,1782,1857,1860, + 141,718,495,1970,1144,514,142,2846,1708,1620, + 2524,510,2852,2422,35,1128,32,61,5693,27, + 30,31,1192,1237,26,28,3587,508,1934,515, + 2766,1604,2776,2787,552,4360,3309,2467,35,1128, + 32,2852,815,27,30,31,1192,1237,26,28, + 1117,25,23,50,1251,104,75,76,106,1327, + 843,2602,884,2111,1372,340,1335,1492,2710,1460, + 1774,1586,1828,1498,1782,1857,1860,141,3368,4577, + 457,510,514,142,73,35,277,2524,1202,5676, + 60,536,532,533,534,60,73,35,450,750, + 2789,5569,386,2787,990,502,515,2676,35,1128, + 32,2852,815,27,30,31,1192,1237,26,28, + 1117,25,23,50,1251,104,75,76,106,1327, + 523,35,2139,2918,1372,340,1335,1492,1311,1460, + 1774,1586,1828,350,1782,1857,1860,141,520,499, + 501,3323,514,142,42,2894,1675,2524,510,2383, + 35,1128,32,1833,5693,27,30,31,1192,1237, + 59,28,523,35,5690,5686,515,2879,843,2072, + 2787,1337,494,2852,2874,35,1128,32,3374,815, + 27,30,31,1192,1237,26,28,1117,25,23, + 50,1251,104,75,76,106,1327,3309,2913,2638, + 665,1372,2852,1335,1492,2673,1460,1774,1586,1828, + 91,1782,1857,1860,141,523,35,280,511,376, + 142,3476,2541,35,1128,32,340,815,27,30, + 31,1192,1237,26,28,1117,25,23,50,1251, + 104,75,76,106,1327,2579,2628,885,891,1372, + 1068,1335,1492,351,1460,1774,1586,1828,1844,1782, + 1857,1860,141,443,3403,3415,358,376,142,3476, + 2806,35,1128,32,1981,815,27,30,31,1192, + 1237,26,28,1117,25,23,50,1251,104,75, + 76,106,1327,163,35,450,2920,1372,5569,1335, + 1492,1284,1460,1774,1586,1828,4222,1782,1857,1860, + 141,382,1554,435,2608,376,142,3476,2741,35, + 1128,32,1886,815,27,30,31,1192,1237,26, + 28,1117,25,23,50,1251,104,75,76,106, + 1327,523,35,2139,274,1372,2290,1335,1492,1284, + 1460,1774,1586,1828,5318,1782,1857,1860,141,383, + 1554,387,60,548,142,424,820,2015,2383,35, + 1128,32,2771,5693,27,30,31,1192,1237,58, + 28,2277,3000,35,1128,32,2326,815,27,30, + 31,1192,1237,26,28,1117,25,23,50,1251, + 104,75,76,106,1327,523,3354,374,1554,1372, + 2192,1335,1492,2579,1460,1774,1586,1828,1140,1782, + 1857,1860,141,1537,35,2139,274,156,142,3000, + 35,1128,32,795,815,27,30,31,1192,1237, + 26,28,1117,25,23,50,1251,104,75,76, + 106,1327,2638,35,291,2098,1372,159,1335,1492, + 5565,1460,1774,1586,1828,1266,1782,1857,1860,141, + 447,3403,3415,3282,370,142,3000,35,1128,32, + 1534,815,27,30,31,1192,1237,26,28,1117, + 25,23,50,1251,104,75,76,106,1327,2880, + 60,546,1607,1372,1252,1335,1492,456,1460,1774, + 1586,1828,3323,1782,1857,1860,141,1281,35,1128, + 32,370,142,41,30,31,1192,1237,60,388, + 3040,3438,1252,424,1572,1252,1876,727,1252,3000, + 35,1128,32,4961,815,27,30,31,1192,1237, + 26,28,1117,25,23,50,1251,104,75,76, + 106,1327,1484,1717,3594,369,1372,154,1335,1492, + 158,1460,1774,1586,1828,160,1782,1857,1860,141, + 523,3109,2139,73,370,142,2741,35,1128,32, + 1398,815,27,30,31,1192,1237,26,28,1117, + 25,23,50,1251,104,75,76,106,1327,1323, + 35,393,368,1372,2464,1335,1492,3237,1460,1774, + 1586,1828,343,1782,1857,1860,141,523,3212,309, + 426,548,142,2611,35,1128,32,1735,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,104,75,76,106,1327,1323,35,393,3357, + 1372,3039,1335,1492,1284,1460,1774,1586,1828,5360, + 1782,1857,1860,141,1140,366,418,3323,140,142, + 3000,35,1128,32,2464,815,27,30,31,1192, + 1237,26,28,1117,25,23,50,1251,104,75, + 76,106,1327,1537,35,2139,3136,1372,24,1335, + 1492,2505,1460,1774,1586,1828,1490,1782,1857,1860, + 141,3757,61,3453,3323,157,142,3000,35,1128, + 32,3518,815,27,30,31,1192,1237,26,28, + 1117,25,23,50,1251,104,75,76,106,1327, + 523,35,2139,276,1372,68,1335,1492,286,1460, + 1774,1586,1828,4983,1782,1857,1860,141,86,547, + 3751,100,153,142,3000,35,1128,32,2464,815, + 27,30,31,1192,1237,26,28,1117,25,23, + 50,1251,104,75,76,106,1327,523,35,2139, + 3268,1372,1140,1335,1492,3237,1460,1774,1586,1828, + 1140,1782,1857,1860,141,523,35,2139,279,152, + 142,3000,35,1128,32,1997,815,27,30,31, + 1192,1237,26,28,1117,25,23,50,1251,104, + 75,76,106,1327,522,1482,69,1153,1372,5407, + 1335,1492,5592,1460,1774,1586,1828,1140,1782,1857, + 1860,141,1140,2813,3479,3323,151,142,3000,35, + 1128,32,2464,815,27,30,31,1192,1237,26, + 28,1117,25,23,50,1251,104,75,76,106, + 1327,51,540,2975,3037,1372,53,1335,1492,323, + 1460,1774,1586,1828,1519,1782,1857,1860,141,3323, + 2813,3479,1710,150,142,3000,35,1128,32,1997, + 815,27,30,31,1192,1237,26,28,1117,25, + 23,50,1251,104,75,76,106,1327,521,2599, + 52,1447,1372,5124,1335,1492,95,1460,1774,1586, + 1828,96,1782,1857,1860,141,87,1914,1268,100, + 149,142,3000,35,1128,32,2290,815,27,30, + 31,1192,1237,26,28,1117,25,23,50,1251, + 104,75,76,106,1327,519,3220,151,538,1372, + 1738,1335,1492,1284,1460,1774,1586,1828,5596,1782, + 1857,1860,141,2027,3323,1934,3323,148,142,3000, + 35,1128,32,2290,815,27,30,31,1192,1237, + 26,28,1117,25,23,50,1251,104,75,76, + 106,1327,519,2641,659,347,1372,88,1335,1492, + 444,1460,1774,1586,1828,1284,1782,1857,1860,141, + 5601,3323,440,3323,147,142,3000,35,1128,32, + 1934,815,27,30,31,1192,1237,26,28,1117, + 25,23,50,1251,104,75,76,106,1327,282, + 2793,886,557,1372,2788,1335,1492,444,1460,1774, + 1586,1828,2536,1782,1857,1860,141,3323,3323,3267, + 1624,146,142,3000,35,1128,32,2106,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,104,75,76,106,1327,1431,3147,2863,67, + 1372,3384,1335,1492,283,1460,1774,1586,1828,1553, + 1782,1857,1860,141,3323,3323,2501,257,145,142, + 3000,35,1128,32,707,815,27,30,31,1192, + 1237,26,28,1117,25,23,50,1251,104,75, + 76,106,1327,708,60,66,65,1372,897,1335, + 1492,321,1460,1774,1586,1828,797,1782,1857,1860, + 141,3323,2600,1934,1934,144,142,3000,35,1128, + 32,180,815,27,30,31,1192,1237,26,28, + 1117,25,23,50,1251,104,75,76,106,1327, + 1614,60,64,2513,1372,5296,1335,1492,322,1460, + 1774,1586,1828,70,1782,1857,1860,141,1659,3212, + 2390,1935,143,142,3000,35,1128,32,2683,815, + 27,30,31,1192,1237,26,28,1117,25,23, + 50,1251,104,75,76,106,1327,295,294,2739, + 2770,1372,550,1335,1492,2912,1460,1774,1586,1828, + 61,1782,1857,1860,141,3677,2833,3634,3323,138, + 142,3116,35,1128,32,1815,815,27,30,31, + 1192,1237,26,28,1117,25,23,50,1251,104, + 75,76,106,1327,2638,3371,291,555,1372,2973, + 1335,1492,1284,1460,1774,1586,1828,5621,1782,1857, + 1860,141,1659,3212,523,3705,187,142,3411,35, + 1128,32,2707,815,27,30,31,1192,1237,26, + 28,1117,25,23,50,1251,104,75,76,106, + 1327,2880,60,250,2348,1372,2858,1335,1492,285, + 1460,1774,1586,1828,3184,1782,1857,2885,162,3411, + 35,1128,32,1934,815,27,30,31,1192,1237, + 26,28,1117,25,23,50,1251,104,75,76, + 106,1327,1875,3213,70,378,1372,401,1335,1492, + 2505,1460,1774,1586,1828,3466,1782,1857,2885,162, + 2494,35,1128,32,1484,553,40,30,31,1192, + 1237,433,3411,35,1128,32,1732,815,27,30, + 31,1192,1237,26,28,1117,25,23,50,1251, + 104,75,76,106,1327,562,60,301,1269,1372, + 2493,1335,1492,285,1460,1774,1586,1828,3323,1782, + 1857,2885,162,3411,35,1128,32,420,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,104,75,76,106,1327,1930,3213,699,55, + 1372,399,1335,1492,883,1460,1774,1586,1828,352, + 1782,1857,2885,162,2494,35,1128,32,528,973, + 2660,30,31,1192,1237,1063,3411,35,1128,32, + 290,815,27,30,31,1192,1237,26,28,1117, + 25,23,50,1251,104,75,76,106,1327,523, + 35,1977,385,1372,2842,1335,1492,1378,1460,1774, + 1586,1828,3323,1782,1857,2885,162,3469,35,1128, + 32,419,815,27,30,31,1192,1237,26,28, + 1117,25,23,50,1251,104,75,76,106,1327, + 271,539,2975,54,1372,1903,1335,1492,3570,1460, + 1774,1586,1828,2123,1782,1857,2885,162,1388,35, + 1128,32,5516,5559,27,30,31,1192,1237,336, + 28,2062,1907,2880,422,3120,536,532,533,534, + 1981,535,532,533,534,3201,35,278,3221,2494, + 35,1128,32,3323,3720,2695,30,31,1192,1237, + 4452,60,2579,273,2772,2424,2388,237,5429,325, + 332,2098,316,2016,318,3695,5565,572,532,533, + 534,311,1969,2835,537,2372,329,1934,4479,3411, + 35,1128,32,2508,815,27,30,31,1192,1237, + 26,28,1117,25,23,50,1251,104,75,76, + 106,1327,2384,3184,4204,3156,1372,1685,1335,1492, + 2290,1460,1774,1586,1828,230,1782,2654,613,35, + 1977,385,2210,1327,35,3301,32,5516,5559,27, + 30,31,1192,1237,336,28,349,238,228,229, + 303,307,1303,564,1711,1284,535,532,533,534, + 5651,379,1812,341,1041,921,346,2429,60,49, + 3192,339,2108,617,2736,3049,1970,2861,390,1717, + 1708,2464,424,1487,2852,3430,3065,316,2016,318, + 536,532,533,534,2074,2419,311,1969,2835,3323, + 2572,329,2933,1343,3411,35,1128,32,3309,815, + 27,30,31,1192,1237,26,28,1117,25,23, + 50,1251,104,75,76,106,1327,3007,1997,4204, + 556,1372,1534,1335,1492,2572,1460,1774,1586,1828, + 60,2622,4577,403,1115,60,427,373,320,1283, + 2941,416,3277,3411,35,1128,32,528,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,104,75,76,106,1327,2572,502,297,1280, + 1372,3031,1335,1492,1439,1460,1774,1586,2592,1509, + 35,1128,32,3065,5559,27,30,31,1192,1237, + 336,28,572,532,533,534,977,572,532,533, + 534,1485,535,532,533,534,1561,44,2894,219, + 1572,500,501,3225,1252,2880,60,1158,60,978, + 2202,5014,3414,2464,2328,1304,35,1977,385,572, + 532,533,534,316,2016,318,536,532,533,534, + 230,371,312,1969,2835,230,158,330,2180,35, + 1128,32,5516,5328,27,30,31,1192,1237,336, + 28,349,242,228,229,1418,271,245,228,229, + 1997,535,532,533,534,2103,1908,230,343,1041, + 921,346,3527,35,1977,385,3323,2588,2278,373, + 4560,2163,2852,60,60,235,1722,2785,3490,248, + 228,229,316,2016,318,572,532,533,534,1068, + 60,311,1969,1779,4347,2284,3309,319,4479,572, + 532,533,534,271,1730,3411,35,1128,32,2962, + 815,27,30,31,1192,1237,26,28,1117,25, + 23,50,1251,104,75,76,106,1327,3092,71, + 70,3097,1372,230,1335,1492,2705,1460,1774,2614, + 1734,523,35,1977,385,1675,3178,230,3065,60, + 60,2903,1916,2522,1252,233,228,229,1799,60, + 303,307,1303,3381,60,357,272,2437,3110,251, + 228,229,1742,3362,535,532,533,534,1612,2158, + 2948,2957,428,60,3697,3236,154,3745,240,243, + 246,249,4348,2783,1594,3430,2433,3411,35,1128, + 32,615,815,27,30,31,1192,1237,26,28, + 1117,25,23,50,1251,104,75,76,84,2514, + 2739,2744,2776,2866,4672,3411,35,1128,32,2879, + 815,27,30,31,1192,1237,26,28,1117,25, + 23,50,1251,104,75,76,106,1327,2249,60, + 3233,3122,1372,4359,1335,1492,2572,1460,2545,1994, + 35,3301,32,5516,5328,27,30,31,1192,1237, + 336,28,2937,2572,3150,3269,5006,1731,35,1977, + 385,542,3355,532,533,534,1816,35,3301,32, + 5516,5328,27,30,31,1192,1237,336,28,177, + 2572,3147,377,348,1323,35,2942,5421,2570,535, + 532,533,534,316,2016,318,196,60,49,3098, + 2278,868,311,1969,2852,1970,1764,2572,3147,1343, + 2842,536,532,533,534,60,523,35,291,1781, + 316,2016,318,195,2419,49,2250,60,3309,311, + 1969,2852,1970,1032,349,1377,1343,2267,35,3301, + 32,5516,5328,27,30,31,1192,1237,336,28, + 558,341,1041,921,346,340,4100,416,3277,1874, + 3355,532,533,534,2361,35,1128,32,5516,5328, + 27,30,31,1192,1237,336,28,2524,60,3147, + 2770,3120,670,4468,416,3277,2572,535,532,533, + 534,316,2016,318,3123,3238,2017,357,5415,3382, + 311,1969,3151,3228,60,60,4560,1343,2244,4394, + 60,3338,2948,2957,4467,331,332,60,316,2016, + 318,1252,536,532,533,534,3390,311,1969,300, + 3411,35,1128,32,4479,815,27,30,31,1192, + 1237,26,28,1117,25,23,50,1251,104,75, + 76,106,1327,154,4100,416,3277,1372,3281,1335, + 1492,1547,2553,3411,35,1128,32,3497,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,104,75,76,106,1327,523,35,1977,385, + 1372,2039,1335,1492,2402,2575,304,307,1303,1837, + 35,1128,32,5487,5328,27,30,31,1192,1237, + 336,28,1939,35,1128,32,5394,5328,27,30, + 31,1192,1237,336,28,3466,3323,271,3323,3187, + 35,1128,32,2593,5328,27,30,31,1192,1237, + 336,28,60,348,2572,2085,5656,3381,703,35, + 1977,385,60,316,2016,318,1733,99,3418,3215, + 3697,3476,311,1969,348,561,316,2016,318,3064, + 3204,2579,400,1572,271,311,1969,1252,587,2572, + 2572,349,2856,313,3205,318,2572,199,60,49, + 337,3117,2852,3439,349,3370,1970,1811,341,1041, + 921,346,226,60,2842,3535,3041,2573,3536,158, + 154,341,1041,921,346,2795,340,178,3046,1874, + 3500,1997,197,296,2901,201,213,4533,1252,1401, + 3323,200,210,211,212,214,571,3508,2524,2300, + 167,1,60,3510,3557,587,1252,166,1747,181, + 165,168,169,170,171,172,3509,2024,3322,3574, + 154,448,535,532,533,534,60,198,3389,226, + 2547,535,532,533,534,3120,2338,154,154,60, + 2842,660,3576,1780,178,3046,1672,389,1997,526, + 660,424,201,213,4533,91,363,2926,200,210, + 211,212,214,571,2968,3575,3577,167,60,3188, + 332,2290,1044,2968,166,179,182,165,168,169, + 170,171,172,3411,35,1128,32,3579,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,104,75,76,106,1327,523,35,1977,385, + 1372,3120,1335,2374,3599,523,35,1977,385,2737, + 438,3411,35,1128,32,3451,815,27,30,31, + 1192,1237,26,28,1117,25,23,50,1251,104, + 75,76,106,1327,3323,327,332,449,1372,3323, + 1335,2389,3411,35,1128,32,431,815,27,30, + 31,1192,1237,26,28,1117,25,23,50,1251, + 104,75,76,106,1327,375,3621,3323,3323,1372, + 567,1335,2395,3411,35,1128,32,3323,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,104,75,76,106,1327,3323,361,3841,3887, + 1372,587,1335,2427,3295,35,1128,32,3933,815, + 27,30,31,1192,1237,26,28,1117,25,23, + 50,1251,570,75,76,226,181,568,523,35, + 1977,385,60,154,3380,3583,2818,2572,4015,1296, + 178,3046,2019,451,1997,3616,240,587,201,213, + 4533,3323,3323,2477,200,210,211,212,214,571, + 3174,3323,3655,167,2852,535,532,533,534,430, + 166,226,3699,165,168,169,170,171,172,154, + 220,3617,1648,1742,2473,2842,178,3046,340,541, + 1997,3622,3789,587,201,213,4533,3323,3603,3496, + 200,210,211,212,214,571,6367,6367,6367,167, + 1715,523,35,1977,385,6367,166,226,176,165, + 168,169,170,171,172,154,6367,6367,4092,2572, + 3326,6367,178,3046,2852,631,1997,6367,6367,587, + 201,213,4533,6367,6367,6367,200,210,211,212, + 214,571,49,6367,6367,167,3120,6367,340,1970, + 892,527,166,226,174,165,168,169,170,171, + 172,154,191,6367,6367,6367,6367,6367,178,3046, + 2524,721,1997,6367,6367,587,201,213,4533,6367, + 3214,332,200,210,211,212,214,571,60,530, + 60,167,2852,6367,1252,1219,6367,6367,166,226, + 175,165,168,169,170,171,172,154,6367,6367, + 6367,6367,6367,6367,178,3046,340,811,1997,6367, + 6367,587,201,213,4533,6367,154,1069,200,210, + 211,212,214,571,2633,6367,6367,167,2524,523, + 35,1977,385,6367,166,226,185,165,168,169, + 170,171,172,154,6367,6367,439,2043,453,6367, + 178,3046,6367,901,1997,6367,6367,587,201,213, + 4533,6367,6367,6367,200,210,211,212,214,571, + 49,6367,60,167,6367,2578,1252,1970,3458,2852, + 166,226,3758,165,168,169,170,171,172,154, + 6367,1572,6367,6367,6367,1252,178,3046,3498,6367, + 1997,6367,6367,340,201,213,4533,6367,154,6367, + 200,210,211,212,214,571,1968,6367,6367,167, + 3468,536,532,533,534,3694,166,158,190,165, + 168,169,170,171,172,1424,35,1128,32,5487, + 5328,27,30,31,1192,1237,336,28,1572,991, + 6367,6367,1252,587,3411,35,1128,32,6367,815, + 27,30,31,1192,1237,26,28,1117,25,23, + 50,1251,104,75,76,106,1327,226,6367,6367, + 6367,1372,6367,2465,158,154,6367,6367,6367,316, + 2016,318,178,3046,2432,6367,1997,6367,311,1969, + 201,213,4533,6367,6367,523,200,210,211,212, + 214,571,1081,6367,60,167,587,349,1252,6367, + 3252,6367,166,6367,184,165,168,169,170,171, + 172,6367,6367,6367,341,1041,921,346,6367,6367, + 226,6367,524,535,532,533,534,6367,154,6367, + 154,3336,6367,6367,6367,178,3046,6367,2014,1997, + 6367,6367,3098,201,213,4533,6367,6367,6367,200, + 210,211,212,214,571,6367,6367,6367,167,523, + 35,1977,385,6367,3712,166,6367,192,165,168, + 169,170,171,172,3411,35,1128,32,6367,815, + 27,30,31,1192,1237,26,28,1117,25,23, + 50,1251,104,75,76,106,1327,6367,6367,6367, + 429,1372,6367,2492,2029,35,1128,32,6367,5559, + 27,30,31,1192,1237,336,28,60,6367,6367, + 6367,1252,703,35,1977,385,6367,535,532,533, + 534,2029,35,1128,32,6367,5559,27,30,31, + 1192,1237,336,28,60,6367,660,6367,1252,523, + 35,1977,385,154,535,532,533,534,316,2016, + 318,2015,6367,49,6367,6367,6367,314,1969,2835, + 1970,47,330,5014,6367,6367,6367,6367,6367,6367, + 154,6367,6367,6367,6367,316,2016,318,2061,2505, + 49,6367,6367,6367,312,1969,2835,1970,797,330, + 3411,35,1128,32,6367,815,27,30,31,1192, + 1237,26,28,1117,25,23,50,1251,104,75, + 76,106,1327,3411,35,1128,32,2165,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,104,75,76,106,1327,6367,1678,2645,6367, + 2212,2852,6367,2901,6367,6367,6367,587,6367,1951, + 1409,6367,6367,2852,6367,3909,6367,6367,6367,6367, + 6367,535,532,533,534,226,6367,6367,60,6367, + 6367,3692,1252,535,532,533,534,226,6367,154, + 928,6367,6367,6367,2842,6367,178,3046,203,213, + 4533,6367,660,6367,202,210,211,212,214,571, + 203,213,4533,6367,154,6367,202,210,211,212, + 214,571,1727,6367,6367,2835,193,6367,5509,6367, + 204,206,208,292,293,3038,6367,215,205,207, + 6367,6367,204,206,208,292,293,3038,6367,215, + 205,207,1631,35,1128,32,5516,5328,27,30, + 31,1192,1237,336,28,3120,6367,2042,3256,6367, + 2063,2852,5112,6367,6367,536,532,533,534,3324, + 6367,6367,2064,6367,5112,6367,6367,6367,6367,6367, + 6367,535,532,533,534,226,6367,6367,6367,3413, + 332,6367,535,532,533,534,316,2016,318,6367, + 2783,1171,92,6367,6367,311,1969,6367,203,213, + 4533,3209,5018,6367,202,210,211,212,214,571, + 6367,6367,6367,2525,35,1128,32,2478,5328,27, + 30,31,1192,1237,336,28,5630,194,3094,6367, + 204,206,208,292,293,3038,6367,215,205,207, + 2361,35,1128,32,5516,5328,27,30,31,1192, + 1237,336,28,6367,6367,6367,6367,523,35,1977, + 385,6367,6367,536,532,533,534,313,3205,318, + 2253,6367,5112,3295,35,1128,32,6367,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,569,75,76,316,2016,318,6367,49,6367, + 6367,6367,6367,311,1969,46,3411,35,1128,32, + 5018,815,27,30,31,1192,1237,26,28,1117, + 25,23,50,1251,104,75,76,106,2301,3411, + 35,1128,32,6367,815,27,30,31,1192,1237, + 26,28,1117,25,23,50,1251,104,75,76, + 106,2368,3591,35,1977,385,6367,2588,6367,6367, + 6367,6367,6367,6367,6367,236,6367,6367,6367,6367, + 6367,6367,6367,6367,6367,572,532,533,534,6367, + 1572,2926,6367,6367,1252,6367,6367,6367,6367,3411, + 1996,1128,2009,271,815,27,30,31,1192,1237, + 26,28,1117,25,23,50,1251,104,75,76, + 83,6367,6367,6367,6367,6367,158,6367,6367,3411, + 35,1128,32,230,815,27,30,31,1192,1237, + 26,28,1117,25,23,50,1251,104,75,76, + 82,6367,6367,6367,6367,234,228,229,6367,6367, + 6367,6367,3411,35,1128,32,272,815,27,30, + 31,1192,1237,26,28,1117,25,23,50,1251, + 104,75,76,81,6367,6367,6367,6367,241,244, + 247,250,4348,3440,6367,6367,6367,3411,35,1128, + 32,615,815,27,30,31,1192,1237,26,28, + 1117,25,23,50,1251,104,75,76,80,3411, + 35,1128,32,6367,815,27,30,31,1192,1237, + 26,28,1117,25,23,50,1251,104,75,76, + 79,3411,35,1128,32,6367,815,27,30,31, + 1192,1237,26,28,1117,25,23,50,1251,104, + 75,76,78,3411,35,1128,32,6367,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,104,75,76,77,3058,35,1128,32,6367, + 815,27,30,31,1192,1237,26,28,1117,25, + 23,50,1251,104,75,76,102,3411,35,1128, + 32,6367,815,27,30,31,1192,1237,26,28, + 1117,25,23,50,1251,104,75,76,108,3411, + 35,1128,32,6367,815,27,30,31,1192,1237, + 26,28,1117,25,23,50,1251,104,75,76, + 107,3411,35,1128,32,6367,815,27,30,31, + 1192,1237,26,28,1117,25,23,50,1251,104, + 75,76,105,3411,35,1128,32,6367,815,27, + 30,31,1192,1237,26,28,1117,25,23,50, + 1251,104,75,76,103,2133,2110,6367,6367,2852, + 2852,3909,6367,6367,2212,35,1128,32,3440,5328, + 27,30,31,1192,1237,336,28,6367,6367,535, + 532,533,534,226,3309,6367,6367,536,532,533, + 534,535,532,533,534,6367,6367,1769,660,6367, + 60,2852,6367,6367,1252,6367,203,213,4533,6367, + 3978,6367,202,210,211,212,214,571,316,2016, + 318,2835,6367,6367,329,226,6367,583,1969,6367, + 6367,6367,6367,6367,6367,6367,154,6367,204,206, + 208,292,293,3038,3721,517,205,207,203,213, + 4533,6367,5400,357,202,210,211,212,214,571, + 6367,6367,1860,6367,6367,6367,2852,1923,2948,2957, + 6367,6367,6367,6367,2224,6367,6367,6367,2852,6367, + 204,206,208,292,293,3038,6367,516,205,207, + 226,6367,6367,6367,6367,6367,6367,6367,6367,6367, + 6367,6367,226,6367,6367,6367,6367,6367,6367,6367, + 6367,6367,6367,203,213,4533,6367,6367,6367,202, + 210,211,212,214,571,203,213,4533,6367,6367, + 6367,202,210,211,212,214,571,6367,6367,2315, + 6367,6367,6367,2852,6367,204,206,208,292,293, + 3038,6367,216,205,207,6367,6367,204,206,208, + 292,293,3038,6367,302,205,207,226,3353,35, + 1128,32,6367,815,27,30,31,1192,1237,26, + 28,1117,25,23,50,1251,85,75,76,6367, + 203,213,4533,6367,6367,6367,202,210,211,212, + 214,571,2454,35,1128,32,5516,5328,27,30, + 31,1192,1237,336,28,6367,6367,6367,6367,6367, + 6367,6367,204,206,208,292,293,3038,6367,496, + 205,207,2864,35,1128,32,5516,5328,27,30, + 31,1192,1237,336,28,6367,1236,6367,6367,6367, + 2852,5702,6367,6367,6367,1345,316,2016,318,2852, + 5702,6367,6367,6367,6367,311,1969,6367,613,35, + 1977,385,2856,6367,226,6367,6367,6367,613,35, + 1977,385,6367,226,6367,6367,316,2016,318,6367, + 6367,6367,6367,6367,6367,311,1969,2234,404,3339, + 6367,6367,3741,6367,6367,6367,2234,404,3339,49, + 703,35,1977,385,6367,6367,1970,47,6367,49, + 6367,6367,6367,6367,6367,6367,1970,2508,6367,405, + 406,407,292,293,3038,1085,6367,6367,405,406, + 407,292,293,3038,2110,3296,6367,6367,2852,3909, + 2292,49,6367,6367,2986,3909,6367,1409,1970,47, + 6367,6367,3909,2986,6367,2202,6367,535,532,533, + 534,1587,3309,535,532,533,534,2509,6367,1409, + 535,532,533,534,3909,6367,660,6367,535,532, + 533,534,660,6367,535,532,533,534,6367,660, + 6367,6367,535,532,533,534,6367,2627,6367,2835, + 6367,6367,329,2627,6367,2835,6367,6367,330,408, + 410,660,2835,6367,6367,329,6367,6367,408,411, + 6367,6367,349,6367,6367,6367,6367,1409,6367,6367, + 2749,357,3909,6367,2835,888,6367,329,5305,343, + 1041,921,346,5522,6367,1923,2948,2957,6367,3208, + 535,532,533,534,3909,6367,1409,6367,6367,6367, + 6367,3909,1569,6367,6367,5400,6367,3909,6367,660, + 2700,6367,535,532,533,534,2705,6367,6367,535, + 532,533,534,6367,6367,535,532,533,534,6367, + 6367,660,2835,6367,6367,329,6367,6367,660,613, + 35,1977,385,6367,660,613,35,1977,385,613, + 35,1977,385,6367,2835,6367,6367,5509,6367,6367, + 6367,2835,6367,2749,329,6367,6367,2835,6367,6367, + 330,6367,613,35,1977,385,2546,35,1977,385, + 49,613,35,1977,385,6367,49,1970,3449,6367, + 49,6367,4231,1970,47,6367,6367,1970,47,6367, + 6367,613,35,1977,385,6367,3296,6367,6367,6367, + 3145,6367,2931,49,587,6367,3556,49,6367,60, + 1970,47,49,587,1970,47,6367,6367,6367,1970, + 47,2734,35,1977,385,6367,2118,6367,340,3565, + 2852,94,49,676,6367,6367,154,340,3688,1970, + 47,6367,6367,6367,186,154,523,35,1977,385, + 5282,6367,6367,1547,3309,6367,2202,6367,4159,2524, + 2976,6367,49,523,35,1977,385,6367,6367,1970, + 47,6367,523,35,1977,385,6367,6367,1382,535, + 532,533,534,535,532,533,534,49,3126,60, + 6367,6367,6367,587,1970,774,60,6367,2627,60, + 587,60,2627,587,49,2852,6367,6367,6367,188, + 60,1970,1144,49,2852,6367,6367,340,6367,6367, + 1970,2500,60,502,340,154,2852,340,6367,340, + 60,6367,154,186,2852,154,6367,6367,340,5282, + 186,6367,6367,186,6367,6367,5282,6367,6367,5282, + 340,2524,6367,60,6367,6367,6367,2852,340,6367, + 2524,6367,6367,6367,6367,6367,6367,499,501,6367, + 2056,2939,2524,6367,6367,2949,6367,6367,6367,1967, + 2524,340,6367,6367,6367,6367,6367,6367,6367,6367, + 6367,506,3396,6367,6367,6367,6367,6367,3627,504, + 6367,6367,6367,2524,6367,3628,3570,6367,3637,6367, + 6367,6367,6367,6367,6367,6367,6367,6367,6367,6367, + 6367,6367,531,6367,0,39,6382,0,39,6381, + 0,955,29,0,437,1232,0,451,2044,0, + 38,791,0,38,6382,0,38,6381,0,3602, + 124,0,1,441,0,455,851,0,454,1288, + 0,1370,89,0,955,384,0,35,33,0, + 32,34,0,39,791,0,1,618,0,1, + 6637,0,1,6636,0,1,6635,0,1,6634, + 0,1,6633,0,1,6632,0,1,6631,0, + 1,6630,0,1,6629,0,1,6628,0,1, + 6627,0,39,1,6382,0,39,1,6381,0, + 1387,1,0,2090,221,0,2110,221,0,2118, + 221,0,2090,222,0,2110,222,0,2118,222, + 0,2090,223,0,2110,223,0,2118,223,0, + 2118,391,0,2110,391,0,2090,391,0,281, + 391,0,2090,224,0,2110,224,0,2118,224, + 0,281,284,0,2090,225,0,2110,225,0, + 2118,225,0,6599,239,0,6598,239,0,2090, + 239,0,2110,239,0,2118,239,0,6702,239, + 0,6701,239,0,6626,239,0,6625,239,0, + 6624,239,0,6623,239,0,6622,239,0,6621, + 239,0,6620,239,0,6619,239,0,6637,239, + 0,6636,239,0,6635,239,0,6634,239,0, + 6633,239,0,6632,239,0,6631,239,0,6630, + 239,0,6629,239,0,6628,239,0,6627,239, + 0,39,6382,239,0,39,6381,239,0,6405, + 239,0,6382,48,0,6381,48,0,6373,1, + 0,6372,1,0,1404,235,0,32,385,0, + 29,384,0,43,6403,0,43,37,0,3602, + 126,0,3602,125,0,2118,442,0,2110,442, + 0,2090,442,0,328,442,0,2118,580,0, + 2110,580,0,2090,580,0,584,580,0,584, + 579,0,1,2118,0,1,2110,0,1,2090, + 0,6405,1,0,39,1,0,47,37,0, + 1,90,0,498,3019,0,6405,1,227,0, + 1,227,0,39,1,227,0,227,413,0, + 6382,37,0,6381,37,0,6382,2,37,0, + 6381,2,37,0,6382,36,0,6381,36,0, + 6403,45,0,37,45,0,6377,402,0,6376, + 402,0,1,5252,0,1,3720,0,1,791, + 0,227,412,0,2954,315,0,2118,93,0, + 2110,93,0,2090,93,0,328,93,0,35, + 72,0,1,328,0,3383,276,0,498,5047, + 0,1,227,724,0,227,218,0,1,582, + 0,227,217,0,1,629,0,1,1479,0, + 2118,577,0,2110,577,0,2090,577,0,2118, + 576,0,2110,576,0,2090,576,0,535,536, + 0,6379,1,0,6375,1,0,2118,577,578, + 0,2110,577,578,0,2090,577,578,0,577, + 578,0,1,227,3492,0,6376,227,0,3505, + 227,0,6379,380,0,6378,380,0,3686,227, + 0,10,12,0,8,10,12,0,183,4029, + 0,3759,380,0,8,12,0 + }; + }; + public final static char baseAction[] = BaseAction.baseAction; + public final int baseAction(int index) { return baseAction[index]; } + public final static char lhs[] = baseAction; + public final int lhs(int index) { return lhs[index]; }; + + public interface TermCheck { + public final static char termCheck[] = {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,48,49, + 50,51,52,53,54,55,56,57,58,0, + 0,61,62,63,64,65,66,67,8,0, + 70,71,0,1,2,75,4,77,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 0,61,62,63,64,65,66,67,0,0, + 70,71,0,1,2,75,4,77,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 1,61,62,63,64,65,66,67,0,0, + 70,71,94,95,104,75,0,77,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,73, + 0,61,62,63,64,65,66,67,0,0, + 70,71,0,94,95,75,0,0,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,72, + 73,61,62,63,64,65,66,67,0,0, + 70,71,0,91,92,75,0,0,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,72, + 73,61,62,63,64,65,66,67,0,0, + 70,71,0,1,2,75,94,95,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 0,61,62,63,64,65,66,67,0,0, + 70,71,0,1,2,75,0,0,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,72, + 74,61,62,63,64,65,66,67,0,0, + 70,71,0,1,2,75,0,0,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,73, + 73,61,62,63,64,65,66,67,0,0, + 70,71,94,95,0,75,0,3,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,73, + 76,61,62,63,64,65,66,67,0,0, + 70,71,0,0,0,75,3,3,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 0,61,62,63,64,65,66,67,0,0, + 70,71,0,91,92,75,0,0,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,73, + 73,61,62,63,64,65,66,67,0,0, + 70,71,0,91,92,75,0,0,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 73,61,62,63,64,65,66,67,0,10, + 70,71,0,91,92,75,4,0,78,79, + 80,81,82,83,84,85,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 28,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,0,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,72, + 0,61,62,63,64,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 121,60,27,28,29,0,31,0,0,34, + 35,36,37,38,39,40,41,42,10,0, + 0,1,2,0,5,6,7,4,8,9, + 25,26,0,58,59,0,61,62,63,31, + 65,66,67,0,1,2,27,28,29,74, + 0,8,77,34,35,36,37,38,39,40, + 41,42,0,1,2,90,0,1,2,3, + 4,5,6,7,8,9,0,11,12,3, + 72,106,107,108,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,102, + 60,27,28,29,79,31,0,0,34,35, + 36,37,38,39,40,41,42,0,1,2, + 3,4,5,6,7,8,9,0,11,12, + 74,0,58,59,68,61,62,63,0,65, + 66,67,4,5,6,7,124,0,74,11, + 12,77,0,0,1,2,3,4,11,12, + 0,8,9,3,90,5,6,7,0,0, + 10,11,12,5,6,7,0,1,2,73, + 106,107,108,0,8,25,26,60,5,6, + 7,31,32,33,0,27,28,29,91,92, + 73,0,34,35,36,37,38,39,40,41, + 42,0,1,2,0,4,5,6,7,0, + 60,68,11,12,10,98,99,0,68,69, + 3,12,72,73,74,59,76,77,0,1, + 2,3,4,5,6,7,8,9,0,11, + 12,91,92,93,94,95,96,97,98,99, + 100,101,102,103,104,105,0,1,2,109, + 110,111,112,113,114,115,116,117,118,119, + 120,121,0,123,124,3,72,5,6,7, + 0,77,10,11,12,5,6,7,0,1, + 2,0,4,5,6,7,68,25,26,11, + 12,10,0,31,32,33,0,27,28,29, + 4,5,6,7,34,35,36,37,38,39, + 40,41,42,0,1,2,0,4,5,6, + 7,0,60,0,11,12,3,11,100,101, + 68,69,11,0,72,73,74,4,76,77, + 0,1,2,3,4,5,6,7,8,9, + 69,11,12,91,92,93,94,95,96,97, + 98,99,100,101,102,103,104,105,0,1, + 2,109,110,111,112,113,114,115,116,117, + 118,119,120,121,0,123,124,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,96,97,27,28,29,0,31,0, + 0,34,35,36,37,38,39,40,41,42, + 13,0,12,0,1,2,5,6,7,0, + 0,1,2,4,60,58,59,0,61,62, + 63,0,65,66,67,4,0,0,27,28, + 29,5,6,7,77,34,35,36,37,38, + 39,40,41,42,0,58,59,90,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,0,31, + 70,71,34,35,36,37,38,39,40,41, + 42,0,103,76,0,0,1,2,3,4, + 5,6,7,8,9,11,58,59,60,61, + 62,63,0,65,66,67,0,1,2,3, + 4,0,105,0,8,9,10,110,111,112, + 113,114,115,116,117,118,119,120,90,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,74, + 31,93,60,34,35,36,37,38,39,40, + 41,42,0,60,68,69,0,0,72,73, + 96,97,76,0,103,0,3,58,59,4, + 61,62,63,10,65,66,67,25,26,93, + 0,25,26,0,0,1,77,30,0,1, + 2,3,4,10,10,60,8,9,10,90, + 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,60,0,27,28,29, + 0,31,69,0,34,35,36,37,38,39, + 40,41,42,0,1,2,3,4,5,6, + 7,8,9,69,11,12,68,69,58,59, + 77,61,62,63,0,65,66,67,0,1, + 2,0,4,5,6,7,0,77,0,1, + 2,3,4,5,6,7,8,9,0,59, + 90,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,74,27,28, + 29,0,31,0,60,34,35,36,37,38, + 39,40,41,42,0,1,2,3,4,5, + 6,7,8,9,68,11,12,0,60,58, + 59,4,61,62,63,0,65,66,67,0, + 1,2,74,4,5,6,7,0,77,10, + 11,12,0,1,2,28,4,5,6,7, + 13,90,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,74,27, + 28,29,0,31,93,60,34,35,36,37, + 38,39,40,41,42,58,59,104,69,0, + 1,2,3,4,5,6,7,8,9,10, + 58,59,0,61,62,63,0,65,66,67, + 4,0,93,106,107,108,5,6,7,0, + 31,0,1,2,3,4,5,6,7,8, + 9,59,90,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,4,31,0,60,34,35,36, + 37,38,39,40,41,42,0,1,2,3, + 4,5,6,7,8,9,0,0,0,3, + 0,58,59,0,61,62,63,10,65,66, + 67,0,1,2,3,4,5,6,7,0, + 1,2,11,12,5,6,7,59,32,33, + 11,102,0,90,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, + 74,27,28,29,68,31,69,0,34,35, + 36,37,38,39,40,41,42,10,59,68, + 0,1,2,3,4,5,6,7,8,9, + 93,0,58,59,0,61,62,63,31,65, + 66,67,0,1,2,109,4,0,105,0, + 8,9,3,110,0,1,2,3,4,123, + 13,0,8,9,90,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,0,1,2,30,4,32,33,0,8, + 9,30,0,5,6,7,0,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,65,0,1,2,3,4,64,0, + 66,8,9,0,70,71,0,1,2,3, + 4,100,101,10,8,9,0,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,0,1,2,30,0,32,33, + 0,8,9,3,0,1,74,0,72,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,0,1,2,3,4,0, + 64,27,8,9,58,0,70,71,75,73, + 0,1,2,3,4,0,1,2,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,60,68,0, + 30,0,32,33,5,6,7,0,0,10, + 73,10,0,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,0,0, + 31,0,31,68,64,98,99,0,10,10, + 0,1,2,3,4,75,0,77,8,9, + 13,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,0,1,2, + 30,72,32,33,0,1,2,10,4,5, + 6,7,74,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,69,68, + 93,72,0,75,64,0,1,2,3,4, + 70,71,0,8,9,3,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,0,59,0,30,0,32,33,0, + 1,2,75,4,5,6,7,11,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,0,1,2,0,1,0,64, + 0,1,2,3,4,70,71,11,8,9, + 0,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,0,59,0, + 30,0,32,33,3,0,1,2,106,107, + 108,10,78,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,60,30, + 0,0,96,97,64,0,1,2,3,4, + 70,71,0,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,0,1,59,30,0,32,33,68, + 69,0,10,72,73,0,1,2,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,0,1,2,3,4,27,64, + 29,8,9,0,1,2,3,4,0,0, + 75,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 0,69,0,30,59,32,33,5,6,7, + 10,0,0,0,3,3,43,44,45,46, + 47,48,49,50,51,52,53,54,55,56, + 57,31,0,0,122,3,0,64,60,3, + 0,0,1,2,3,4,10,68,75,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,0,1, + 2,30,4,32,33,0,8,9,0,0, + 5,6,7,0,43,44,45,46,47,48, + 49,50,51,52,53,54,55,56,57,0, + 1,2,3,4,68,69,0,8,9,3, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,0,59,0,30, + 0,32,33,3,0,60,0,1,2,0, + 1,2,43,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,0,1,2, + 3,4,121,64,0,8,9,3,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,0,1,2,30,4,32, + 33,0,8,9,3,59,0,0,59,3, + 43,44,45,46,47,48,49,50,51,52, + 53,54,55,56,57,0,1,2,3,4, + 0,0,0,8,9,68,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,0,59,0,30,0,32,33,0, + 0,0,1,2,10,0,10,60,43,44, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,0,0,31,3,0,4,64, + 3,8,60,0,11,12,0,1,2,3, + 4,0,1,2,8,9,10,76,25,26, + 0,1,2,0,0,32,33,0,1,2, + 59,4,5,6,7,60,43,31,11,12, + 0,1,2,77,0,76,76,0,73,5, + 6,7,0,60,60,0,0,0,3,3, + 3,68,10,70,71,72,73,64,0,76, + 59,0,0,98,99,0,5,6,7,59, + 5,6,7,60,91,92,0,94,0,96, + 97,98,99,100,101,102,103,104,105,59, + 0,0,109,3,111,112,113,114,115,116, + 117,118,119,120,0,1,2,3,4,72, + 0,69,8,9,72,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,0,0,0,30,0,32,33,5,6, + 7,10,10,0,68,10,68,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,0,1,2,3,4,76,0,0, + 8,9,29,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,0, + 0,0,30,0,32,33,5,6,7,10, + 69,69,0,72,69,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 0,1,2,3,4,0,0,0,8,9, + 3,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,0,0,0, + 30,0,32,33,5,6,7,10,69,0, + 0,0,72,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,0,1, + 2,3,4,0,0,0,8,9,0,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,0,0,0,30,0, + 32,33,5,6,7,10,69,0,0,0, + 72,43,44,45,46,47,48,49,50,51, + 52,53,54,55,56,57,0,1,2,0, + 4,5,6,7,0,0,0,3,3,13, + 14,15,16,17,18,19,20,21,22,23, + 24,76,74,27,28,29,0,0,0,3, + 34,35,36,37,38,39,40,41,42,0, + 74,72,77,0,0,0,0,3,0,3, + 72,3,0,76,58,76,0,61,62,63, + 0,1,2,0,4,5,6,7,0,30, + 0,3,0,13,14,15,16,17,18,19, + 20,21,22,23,24,0,0,27,28,29, + 0,0,0,3,34,35,36,37,38,39, + 40,41,42,0,1,2,3,4,5,6, + 7,8,9,10,11,12,0,74,58,74, + 0,61,62,63,0,0,74,3,122,0, + 27,28,29,0,31,0,0,34,35,36, + 37,38,39,40,41,42,0,1,2,3, + 4,5,6,7,8,9,10,11,12,30, + 0,76,76,60,0,0,0,76,0,0, + 0,68,69,27,28,29,10,31,122,0, + 34,35,36,37,38,39,40,41,42,0, + 0,0,0,60,5,6,7,125,0,0, + 0,0,0,14,15,16,17,18,19,20, + 21,22,23,24,68,69,27,28,29,0, + 0,0,0,34,35,36,37,38,39,40, + 41,42,0,0,0,69,0,0,0,0, + 74,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0 + }; + }; + public final static char termCheck[] = TermCheck.termCheck; + public final int termCheck(int index) { return termCheck[index]; } + + public interface TermAction { + public final static char termAction[] = {0, + 6367,6332,6190,6190,6190,6271,6190,6190,6190,6190, + 6348,6190,6190,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6336,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, + 6367,1,1,1,1,2204,6540,2526,1450,381, + 1,1,6367,5858,5855,6378,6405,6374,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 10,6351,6351,6351,6351,6351,6351,6351,6351,6351, + 6351,6351,6351,6351,6351,6351,6351,6351,6351,6351, + 6351,6351,6351,6351,6351,6351,6351,6351,6351,6351, + 6351,6351,6351,6351,6351,6351,6351,6351,6351,6351, + 6351,6351,6351,6351,6351,6351,6351,6351,6351,6351, + 6351,6351,6351,6351,6351,6351,6351,6351,6351,6367, + 135,6351,6351,6351,6351,6351,6351,6351,109,6367, + 6351,6351,6367,5858,5855,6351,6405,6351,6351,6351, + 6351,6351,6351,6351,6351,6351,6351,6351,6351,6351, + 8,6354,6354,6354,6354,6354,6354,6354,6354,6354, + 6354,6354,6354,6354,6354,6354,6354,6354,6354,6354, + 6354,6354,6354,6354,6354,6354,6354,6354,6354,6354, + 6354,6354,6354,6354,6354,6354,6354,6354,6354,6354, + 6354,6354,6354,6354,6354,6354,6354,6354,6354,6354, + 6354,6354,6354,6354,6354,6354,6354,6354,6354,6367, + 3656,6354,6354,6354,6354,6354,6354,6354,6367,112, + 6354,6354,4917,4939,2664,6354,6367,6354,6354,6354, + 6354,6354,6354,6354,6354,6354,6354,6354,6354,6354, + 6367,6332,6190,6190,6190,6271,6190,6190,6190,6190, + 6339,6190,6190,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6336,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,2662, + 6367,1,1,1,1,2204,6540,2526,6367,6367, + 1,1,119,4917,4939,6378,6367,6367,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 6367,6332,6190,6190,6190,6271,6190,6190,6190,6190, + 6339,6190,6190,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6336,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,2640, + 5189,1,1,1,1,2204,6540,2526,6367,6367, + 1,1,111,4034,4174,6378,6367,6367,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 6367,6332,6190,6190,6190,6271,6190,6190,6190,6190, + 6339,6190,6190,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6336,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,2640, + 3713,1,1,1,1,2204,6540,2526,6367,6367, + 1,1,6367,6381,6382,6378,4917,4939,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 6367,6332,6190,6190,6190,6271,6190,6190,6190,6190, + 6339,6190,6190,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6336,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,6367, + 6367,1,1,1,1,2204,6540,2526,6367,6367, + 1,1,6367,6105,6102,6378,6367,155,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 6367,6332,6190,6190,6190,6271,6190,6190,6190,6190, + 6339,6190,6190,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6336,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,1550, + 2114,1,1,1,1,2204,6540,2526,110,6367, + 1,1,48,6105,6102,6378,6367,6367,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 6367,6332,6190,6190,6190,6271,6190,6190,6190,6190, + 6339,6190,6190,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6336,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,2687, + 2741,1,1,1,1,2204,6540,2526,6367,6367, + 1,1,4917,4939,308,6378,6367,1398,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 6367,6332,6190,6190,6190,6271,6190,6190,6190,6190, + 6339,6190,6190,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6336,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,2753, + 1140,1,1,1,1,2204,6540,2526,6367,6367, + 1,1,123,6367,6367,6378,2940,1404,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 6367,6332,6190,6190,6190,6271,6190,6190,6190,6190, + 6339,6190,6190,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6336,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,6367, + 6367,1,1,1,1,2204,6540,2526,6367,6367, + 1,1,122,4034,4174,6378,6367,6367,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 6367,6332,6190,6190,6190,6271,6190,6190,6190,6190, + 6339,6190,6190,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6336,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,6876, + 6805,1,1,1,1,2204,6540,2526,6367,6367, + 1,1,121,4034,4174,6378,6367,6367,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 6367,3492,1,1,1,724,1,1,1,1, + 3505,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6376,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,6367, + 6819,1,1,1,1,2204,6540,2526,6367,6371, + 1,1,39,4034,4174,6378,6405,512,591,3564, + 3090,2437,3063,3469,3657,3537,1275,3516,3434,3515, + 39,5858,5855,5639,1387,2118,2090,2110,4709,3720, + 1915,4807,4829,944,6629,6627,6636,6635,6631,6632, + 6630,6633,6634,6637,6628,4772,4739,6701,6625,6702, + 6386,6367,4873,4851,6619,6626,6622,6598,6624,6623, + 6620,6621,6599,2987,948,1023,6388,998,5218,1016, + 6389,6387,922,6383,6384,6385,3664,4593,6762,967, + 6367,3702,6763,6764,1503,6367,6193,6193,227,6186, + 6190,6190,6190,227,227,6197,227,227,1,1, + 1,1,1,1,1,1,1,1,1,1, + 6370,3137,1,1,1,116,227,131,6367,1, + 1,1,1,1,1,1,1,1,6377,222, + 38,5876,5873,39,5968,5962,5965,6405,5870,3720, + 4323,4300,6367,1,6183,6367,1,1,1,6376, + 1322,6776,1184,6367,6381,6382,6701,6625,6702,227, + 6367,1450,413,6619,6626,6622,6598,6624,6623,6620, + 6621,6599,394,6381,6382,6864,6367,5946,5942,5252, + 5950,6162,6168,6165,791,3720,344,6262,6262,2232, + 3076,6799,6800,6801,6367,6193,6193,227,6186,6190, + 6190,6190,227,227,6241,227,227,1,1,1, + 1,1,1,1,1,1,1,1,1,2895, + 3398,1,1,1,3722,227,6367,120,1,1, + 1,1,1,1,1,1,1,306,5946,5942, + 5252,5950,6162,6168,6165,791,3720,124,6262,6262, + 2249,6367,1,6183,634,1,1,1,39,1322, + 6776,1184,6405,2118,2090,2110,5854,6367,227,328, + 328,412,6367,1,5946,5942,3322,5950,2521,6693, + 33,791,3720,5897,6864,5897,5897,5897,223,6367, + 5897,5897,5897,5977,5971,5974,37,6177,6177,5005, + 6799,6800,6801,582,6177,5897,5897,3633,2118,2090, + 2110,5897,5897,5897,6367,6701,6625,6702,4034,4174, + 5879,6367,6619,6626,6622,6598,6624,6623,6620,6621, + 6599,441,1,1,6367,1,5882,5882,5882,129, + 5897,634,5882,5882,6375,3571,3533,89,5897,5897, + 5891,3015,5897,5897,5897,1573,5897,5897,342,5858, + 5855,3322,1387,2118,2090,2110,791,3720,127,328, + 328,5897,5897,5897,5897,5897,5897,5897,5897,5897, + 5897,5897,5897,5897,5897,5897,36,6217,6214,5897, + 5897,5897,5897,5897,5897,5897,5897,5897,5897,5897, + 5897,5897,6367,5897,5897,5900,1092,5900,5900,5900, + 224,6374,5900,5900,5900,5998,5992,5995,442,39, + 39,1,6405,6135,6141,6138,634,5900,5900,6144, + 6144,159,6367,5900,5900,5900,392,6701,6625,6702, + 385,2118,2090,2110,6619,6626,6622,6598,6624,6623, + 6620,6621,6599,90,1,1,113,1,6180,6180, + 6180,6367,5900,6367,6180,6180,1827,4649,3273,3240, + 5900,5900,2864,6367,5900,5900,5900,867,5900,5900, + 6367,5946,5942,5252,5950,6162,6168,6165,791,3720, + 159,6278,6278,5900,5900,5900,5900,5900,5900,5900, + 5900,5900,5900,5900,5900,5900,5900,5900,288,6381, + 6382,5900,5900,5900,5900,5900,5900,5900,5900,5900, + 5900,5900,5900,5900,6367,5900,5900,6367,6190,6190, + 227,6190,6271,6190,6190,227,227,6275,227,227, + 1,1,1,1,1,1,1,1,1,1, + 1,1,4626,687,1,1,1,1,227,133, + 130,1,1,10613,1,1,1,1,1,1, + 6284,225,3015,6367,6381,6382,6010,6004,6007,6367, + 6367,6105,6102,2630,3858,1,6268,137,1,1, + 1,6367,2184,6576,2526,1592,328,6367,6701,6625, + 6702,2118,2090,2110,218,6619,6626,6622,6598,6624, + 6623,6620,6621,6599,6367,6287,3380,6864,6367,6190, + 6190,227,6190,6271,6190,6190,227,227,227,227, + 227,1,1,1,1,1,1,1,1,1, + 1,1,1,4895,933,1,1,1,355,227, + 4895,933,1,1,10613,1,1,1,1,1, + 1,134,2713,2067,115,1,5946,5942,5252,5950, + 6162,6168,6165,791,3720,4649,1,6268,3145,1, + 1,1,6367,2184,6576,2526,1,5946,5942,3322, + 5950,6367,2549,29,791,3720,364,3860,2020,1973, + 1926,1879,1832,1785,1738,1691,1644,1597,6864,6367, + 6190,6190,227,6190,6271,6190,6190,227,227,6281, + 227,227,1,1,1,1,1,1,1,1, + 1,1,1,1,6367,437,1,1,1,2249, + 227,6721,5731,1,1,10613,1,1,1,1, + 1,1,118,5861,634,364,117,6367,364,364, + 4626,687,1299,6367,2713,393,2280,1,6268,384, + 1,1,1,6373,2184,6576,2526,4323,4300,364, + 6367,4323,4300,6367,6367,2936,217,1921,1,5946, + 5942,3322,5950,6375,6373,5864,791,3720,6108,6864, + 6367,6190,6190,227,6190,6271,6190,6190,227,227, + 6275,227,227,1,1,1,1,1,1,1, + 1,1,1,1,1,955,6367,1,1,1, + 37,227,6372,6367,1,1,10613,1,1,1, + 1,1,1,6367,5946,5942,5252,5950,6162,6168, + 6165,791,3720,6372,6278,6278,634,6111,1,6268, + 6374,1,1,1,451,2184,6576,2526,284,6001, + 6001,6367,281,2118,2090,2110,455,218,328,5858, + 5855,5252,1387,2118,2090,2110,791,3720,29,6403, + 6864,6367,6190,6190,227,6190,6271,6190,6190,227, + 227,6275,227,227,1,1,1,1,1,1, + 1,1,1,1,1,1,6367,2249,1,1, + 1,1,227,136,5867,1,1,10613,1,1, + 1,1,1,1,6367,6308,6308,6308,6308,6308, + 6308,6308,6308,6308,5885,6308,6308,39,955,1, + 6268,6405,1,1,1,384,2184,6576,2526,1, + 6174,6174,421,6171,6162,6168,6165,1,218,360, + 328,328,579,6159,6159,1075,584,2118,2090,2110, + 6284,6864,6367,6190,6190,227,6190,6271,6190,6190, + 227,227,227,227,227,1,1,1,1,1, + 1,1,1,1,1,1,1,6367,6308,1, + 1,1,47,227,6723,5894,1,1,10613,1, + 1,1,1,1,1,6287,3380,2664,360,1, + 5946,5942,5252,5950,6162,6168,6165,791,3720,306, + 1,6268,6367,1,1,1,48,2184,6576,2526, + 6382,392,360,6799,6800,6801,2118,2090,2110,132, + 306,582,5858,5855,5252,1387,2118,2090,2110,791, + 3720,1211,6864,6367,6190,6190,227,6190,6271,6190, + 6190,227,227,227,227,227,1,1,1,1, + 1,1,1,1,1,1,1,1,6367,6367, + 1,1,1,2150,227,6367,6382,1,1,10613, + 1,1,1,1,1,1,1,5946,5942,5252, + 5950,6162,6168,6165,791,3720,74,1,6367,2780, + 6367,1,6268,137,1,1,1,360,2184,6576, + 2526,342,39,39,3062,6405,2118,2090,2110,37, + 6177,6177,328,328,2118,2090,2110,3204,6429,6430, + 328,2895,6367,6864,6367,6190,6190,227,6190,6271, + 6190,6190,227,227,227,227,227,1,1,1, + 1,1,1,1,1,1,1,1,1,6367, + 2249,1,1,1,3452,227,360,402,1,1, + 10613,1,1,1,1,1,1,6226,6403,634, + 1,5946,5942,5252,5950,6162,6168,6165,791,3720, + 360,128,1,6268,6367,1,1,1,6229,2184, + 6576,2526,6367,5858,5855,728,1387,299,2549,6367, + 791,3720,710,3860,6367,1,1,1,1,801, + 6665,6367,1,1,6864,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,6367,5858,5855,1,1387,1,1,581,791, + 3720,1809,6367,2118,2090,2110,359,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1863,1,5946,5942,5252,5950,1,6367, + 6953,791,3720,6367,1,1,1,5946,5942,5639, + 5950,3273,3240,6379,4709,3720,6367,4807,4829,5906, + 5933,5939,5912,5915,5927,5924,5930,5921,5918,5909, + 5936,4772,4739,6367,6381,6382,6386,6367,4873,4851, + 315,791,3720,6244,543,6911,6765,126,1039,2987, + 948,1023,6388,998,5218,1016,6389,6387,922,6383, + 6384,6385,3664,4593,1,5946,5942,6232,5950,6367, + 1503,6912,6238,6235,1526,454,39,39,6378,513, + 39,5858,5855,5639,1387,6367,10128,9150,4709,3720, + 6361,4807,4829,618,6629,6627,6636,6635,6631,6632, + 6630,6633,6634,6637,6628,4772,4739,3633,634,6367, + 6386,6367,4873,4851,6317,6325,6321,1,425,6329, + 6129,6377,6367,2987,948,1023,6388,998,5218,1016, + 6389,6387,922,6383,6384,6385,3664,4593,1,6367, + 6329,345,6376,5888,1503,3571,3533,299,6311,6373, + 139,5858,5855,5639,1387,6345,6367,6374,4709,3720, + 6665,4807,4829,618,6629,6627,6636,6635,6631,6632, + 6630,6633,6634,6637,6628,4772,4739,6367,6381,6382, + 6386,6329,4873,4851,391,5989,5989,6379,281,5980, + 5986,5983,1325,2987,948,1023,6388,998,5218,1016, + 6389,6387,922,6383,6384,6385,3664,4593,6372,634, + 3711,1581,436,6378,1503,1,5946,5942,5639,5950, + 39,39,6367,4709,3720,2846,4807,4829,5906,5933, + 5939,5912,5915,5927,5924,5930,5921,5918,5909,5936, + 4772,4739,6367,281,1,6386,114,4873,4851,580, + 6156,6156,6378,584,6147,6153,6150,4649,2987,948, + 1023,6388,998,5218,1016,6389,6387,922,6383,6384, + 6385,3664,4593,6367,10128,9150,6367,3599,6367,1503, + 549,5858,5855,5639,1387,39,39,3706,4709,3720, + 6367,4807,4829,618,6629,6627,6636,6635,6631,6632, + 6630,6633,6634,6637,6628,4772,4739,6367,584,565, + 6386,1,4873,4851,3062,6367,10617,10617,6799,6800, + 6801,338,3125,2987,948,1023,6388,998,5218,1016, + 6389,6387,922,6383,6384,6385,3664,4593,955,3454, + 6367,6367,4626,687,1503,39,5858,5855,5639,1387, + 39,39,6367,4709,3720,6342,4807,4829,618,6629, + 6627,6636,6635,6631,6632,6630,6633,6634,6637,6628, + 4772,4739,6367,2659,6403,6386,6367,4873,4851,634, + 338,333,6373,338,338,43,6126,6126,2987,948, + 1023,6388,998,5218,1016,6389,6387,922,6383,6384, + 6385,3664,4593,1,5946,5942,5252,5950,6701,1503, + 6702,791,3720,39,5858,5855,5639,1387,6367,98, + 6345,4709,3720,6342,4807,4829,618,6629,6627,6636, + 6635,6631,6632,6630,6633,6634,6637,6628,4772,4739, + 1,6372,414,6386,6123,4873,4851,2118,2090,2110, + 6377,235,1,6367,6114,5740,2987,948,1023,6388, + 998,5218,1016,6389,6387,922,6383,6384,6385,3664, + 4593,6376,6367,6367,3626,3952,1,1503,3145,3062, + 6367,39,5858,5855,5639,1387,6108,4378,6345,4709, + 3720,6371,4807,4829,618,6629,6627,6636,6635,6631, + 6632,6630,6633,6634,6637,6628,4772,4739,6367,5858, + 5855,6386,1387,4873,4851,392,5903,3720,6367,6367, + 2118,2090,2110,6367,2987,948,1023,6388,998,5218, + 1016,6389,6387,922,6383,6384,6385,3664,4593,39, + 5858,5855,5639,1387,634,6111,6367,4709,3720,4094, + 4807,4829,618,6629,6627,6636,6635,6631,6632,6630, + 6633,6634,6637,6628,4772,4739,6367,1019,6367,6386, + 6367,4873,4851,4217,6367,955,37,6177,6177,6367, + 6203,6200,2987,948,1023,6388,998,5218,1016,6389, + 6387,922,6383,6384,6385,3664,4593,39,5858,5855, + 5639,1387,6370,1503,6367,4709,3720,4244,4807,4829, + 618,6629,6627,6636,6635,6631,6632,6630,6633,6634, + 6637,6628,4772,4739,6367,5858,5855,6386,1387,4873, + 4851,6367,5903,3720,3383,1293,6367,72,6403,3971, + 2987,948,1023,6388,998,5218,1016,6389,6387,922, + 6383,6384,6385,3664,4593,39,5858,5855,5639,1387, + 6367,367,6367,4709,3720,1544,4807,4829,618,6629, + 6627,6636,6635,6631,6632,6630,6633,6634,6637,6628, + 4772,4739,6367,1238,1,6386,1,4873,4851,365, + 289,6367,6210,6206,189,125,6314,6259,2987,948, + 1023,6388,998,5218,1016,6389,6387,922,6383,6384, + 6385,3664,4593,1,48,189,1011,554,6381,1503, + 2156,6833,3107,529,6827,6831,1,5946,5942,6232, + 5950,45,6223,6223,6238,6235,6377,1346,6825,6826, + 6367,6203,6200,6367,6367,6856,6857,93,39,39, + 6403,6405,6247,6253,6250,3633,6834,6376,6256,6256, + 37,6177,6177,6374,577,1409,2302,287,6132,6290, + 6296,6293,6367,6836,6381,541,101,6367,1188,4028, + 2954,773,6373,1873,1962,6858,6837,3418,6367,6835, + 6220,576,6367,3571,3533,415,6299,6305,6302,6403, + 2118,2090,2110,3352,6847,6846,317,6859,97,6828, + 6829,6852,6853,6850,6851,6830,6832,6854,6855,6403, + 276,417,6860,6265,6840,6841,6842,6838,6839,6848, + 6849,6844,6843,6845,39,5858,5855,3227,1387,1497, + 6367,6372,4709,3720,1456,4807,4829,618,6629,6627, + 6636,6635,6631,6632,6630,6633,6634,6637,6628,4772, + 4739,6367,6367,310,6386,1,4873,4851,2118,2090, + 2110,6373,6373,560,634,6373,2208,2987,948,1023, + 6388,998,5218,1016,6389,6387,922,6383,6384,6385, + 3664,4593,39,5858,5855,3227,1387,2396,6367,6367, + 4709,3720,6926,4807,4829,618,6629,6627,6636,6635, + 6631,6632,6630,6633,6634,6637,6628,4772,4739,1, + 423,574,6386,6367,4873,4851,2118,2090,2110,525, + 6372,6372,6367,5783,6372,2987,948,1023,6388,998, + 5218,1016,6389,6387,922,6383,6384,6385,3664,4593, + 39,5858,5855,5639,1387,6367,6367,6367,4709,3720, + 3190,4807,4829,618,6629,6627,6636,6635,6631,6632, + 6630,6633,6634,6637,6628,4772,4739,1,446,573, + 6386,6367,4873,4851,2118,2090,2110,161,525,6367, + 6367,6367,2531,2987,948,1023,6388,998,5218,1016, + 6389,6387,922,6383,6384,6385,3664,4593,39,5858, + 5855,5639,1387,6367,6367,35,4709,3720,445,4807, + 4829,618,6629,6627,6636,6635,6631,6632,6630,6633, + 6634,6637,6628,4772,4739,8,6367,575,6386,305, + 4873,4851,2118,2090,2110,6364,161,505,563,503, + 1163,2987,948,1023,6388,998,5218,1016,6389,6387, + 922,6383,6384,6385,3664,4593,6367,5858,5855,6367, + 6405,2118,2090,2110,6367,6367,372,4700,3790,720, + 6629,6627,6636,6635,6631,6632,6630,6633,6634,6637, + 6628,2615,956,6701,6625,6702,566,6367,6367,3569, + 6619,6626,6622,6598,6624,6623,6620,6621,6599,6367, + 2343,3174,6364,6367,6367,6367,6367,5719,6367,5726, + 2468,4353,6367,5752,6762,5760,518,3702,6763,6764, + 239,6095,6091,6367,6099,6025,6019,6022,6367,3454, + 6367,5729,183,720,6082,6088,6061,6064,6076,6073, + 6079,6070,6067,6058,6085,6367,6367,6031,6037,6028, + 6367,507,6367,3955,6055,6034,6046,6016,6040,6043, + 6052,6049,6013,29,384,384,6120,384,384,384, + 384,384,384,6120,6120,6120,6367,3703,6762,3749, + 6367,3702,6763,6764,6367,6367,3795,5050,3626,1, + 384,384,384,2,6120,6367,6367,384,384,384, + 384,384,384,384,384,384,32,385,385,6117, + 385,385,385,385,385,385,6117,6117,6117,3304, + 6367,2615,2161,5861,6367,6367,6367,873,6367,6367, + 6367,6120,6120,385,385,385,6373,6117,3626,6367, + 385,385,385,385,385,385,385,385,385,221, + 6367,6367,6367,37,5959,5953,5956,6358,6367,6367, + 6367,6367,6367,6629,6627,6636,6635,6631,6632,6630, + 6633,6634,6637,6628,6117,6117,6701,6625,6702,6367, + 6367,6367,6367,6619,6626,6622,6598,6624,6623,6620, + 6621,6599,6367,6367,6367,6372,6367,6367,6367,6367, + 2140 + }; + }; + public final static char termAction[] = TermAction.termAction; + public final int termAction(int index) { return termAction[index]; } + + public interface Asb { + public final static char asb[] = {0, + 142,187,98,192,1138,670,670,670,670,995, + 1138,680,680,924,680,314,79,316,99,99, + 99,99,99,99,99,99,99,99,99,682, + 688,693,690,697,695,702,700,704,703,705, + 412,706,98,98,964,964,964,964,139,423, + 257,257,677,964,49,466,680,680,257,139, + 466,466,242,79,1096,963,1182,997,1026,98, + 680,682,200,200,423,98,99,99,99,99, + 99,99,99,99,99,99,99,99,99,99, + 99,99,99,99,99,98,98,98,98,98, + 98,98,98,98,98,98,98,99,466,656, + 656,656,656,581,466,257,257,1087,1015,1138, + 1138,1138,1026,401,1026,999,1026,915,1026,1010, + 995,139,49,49,257,670,99,1087,7,794, + 784,783,590,1033,1033,995,316,49,963,98, + 137,1178,136,138,136,466,49,690,690,688, + 688,688,695,695,695,695,693,693,700,697, + 697,703,702,704,531,705,1138,1138,1138,1138, + 139,139,656,655,656,677,1090,139,904,625, + 465,185,533,1001,580,999,399,995,915,139, + 139,581,656,242,49,721,466,796,798,139, + 1182,99,964,686,207,466,997,139,139,138, + 1182,98,98,98,98,98,1138,1138,79,1091, + 673,629,465,464,466,533,139,526,1188,663, + 581,401,643,139,581,139,466,788,773,787, + 798,581,137,466,686,1087,1178,997,139,137, + 466,466,466,466,423,423,1094,673,253,252, + 465,587,139,533,531,399,670,583,135,836, + 533,526,664,529,526,529,581,643,643,139, + 139,648,98,785,785,517,517,139,792,1087, + 321,466,139,686,687,686,98,207,1186,682, + 997,466,466,673,672,629,466,422,466,1182, + 537,401,656,670,136,658,838,1084,1138,529, + 529,529,529,139,643,587,738,586,648,98, + 98,798,139,1182,466,796,773,648,1068,686, + 423,99,49,1186,673,253,137,537,537,538, + 549,137,529,529,1084,729,99,531,753,761, + 139,1087,726,838,529,529,404,587,99,139, + 650,798,1084,648,687,466,49,422,730,587, + 185,1140,503,189,399,635,537,537,549,137, + 529,401,995,838,99,99,1178,1084,726,726, + 838,838,851,994,405,139,650,466,650,469, + 503,1138,857,995,587,655,670,1,1,730, + 401,60,851,139,1138,726,726,404,139,995, + 995,139,1138,743,650,538,537,730,752,767, + 729,1084,733,995,139,549,538,549,654,654, + 855,61,995,139,423,139,139,139,799,743, + 537,752,98,358,1084,752,196,907,195,139, + 139,549,964,964,855,60,531,99,531,730, + 59,1138,1138,1138,61,1138,139,861,730,730, + 139,401,466,139,139,253,745,587,466,587, + 401,1084,752,733,730,514,185,139,730,655, + 52,1138,52,61,531,61,79,79,77,913, + 79,730,730,759,855,964,745,587,358,140, + 466,730,834,321,61,466,1084,466,77,503, + 1138,466,855,358,466,1,466,466,1081,61, + 759,61,730,503,98,61,58,586,654,401, + 401,1083,98,59,423,730,466,585,357,136, + 61,466,730,585,585,61 + }; + }; + public final static char asb[] = Asb.asb; + public final int asb(int index) { return asb[index]; } + + public interface Asr { + public final static char asr[] = {0, + 73,76,72,1,2,0,70,71,3,13, + 45,49,47,44,52,15,24,14,20,18, + 19,21,22,17,16,23,53,54,55,30, + 51,46,50,8,9,4,32,33,12,11, + 25,26,43,48,57,56,1,2,121,10, + 0,90,106,107,108,59,74,122,125,77, + 66,78,67,65,80,82,88,86,79,84, + 85,87,89,75,81,83,31,10,5,34, + 58,27,61,35,36,37,38,39,40,41, + 62,42,63,28,29,6,7,64,70,71, + 45,49,47,44,52,15,24,14,20,18, + 19,21,22,17,16,23,53,54,55,30, + 51,46,50,3,32,33,12,11,25,26, + 43,48,57,56,13,4,9,8,2,1, + 0,14,15,44,70,16,45,46,17,18, + 19,71,9,47,20,21,48,49,50,64, + 51,52,13,22,23,24,53,54,55,1, + 2,3,32,33,12,11,25,26,8,43, + 4,56,57,66,30,0,124,0,3,29, + 0,121,31,124,72,69,10,74,0,9, + 4,59,8,1,2,0,94,25,26,96, + 97,91,92,60,98,99,100,101,102,103, + 104,105,110,74,93,76,111,112,113,114, + 115,116,117,118,119,120,121,77,31,95, + 124,73,5,1,2,12,11,4,6,7, + 68,3,69,10,72,0,5,34,14,15, + 58,27,44,16,45,61,35,36,46,17, + 37,38,18,19,39,40,47,20,21,48, + 41,49,62,50,64,51,42,52,13,63, + 22,28,23,29,24,53,54,55,30,3, + 32,33,12,11,25,26,43,73,4,56, + 57,6,7,9,8,1,2,71,70,0, + 5,34,14,15,58,27,16,61,35,36, + 17,37,38,18,19,39,40,20,21,41, + 62,42,13,63,22,28,23,29,24,1, + 2,4,6,7,93,0,77,70,71,64, + 32,33,12,11,25,26,8,43,48,57, + 56,3,4,9,53,54,55,30,51,46, + 50,15,24,14,20,18,19,21,22,17, + 16,23,13,45,49,47,44,52,1,2, + 75,10,0,28,1,2,4,106,107,108, + 0,5,73,74,93,121,77,31,6,7, + 124,72,14,15,44,70,16,45,46,17, + 18,19,71,9,47,20,21,48,49,50, + 64,51,52,13,22,23,24,53,54,55, + 30,2,32,33,12,11,25,26,8,43, + 4,56,57,3,1,69,10,0,34,14, + 15,58,27,16,61,35,90,36,17,37, + 38,18,19,39,65,40,20,21,41,62, + 59,42,13,63,22,67,28,23,29,24, + 66,75,5,10,12,31,6,7,8,9, + 2,4,3,1,11,0,78,3,73,93, + 76,72,69,31,68,6,7,5,10,75, + 74,0,106,107,108,74,77,9,10,3, + 12,11,8,31,67,65,90,66,5,34, + 14,15,58,27,16,61,35,36,17,37, + 38,18,19,39,40,20,21,41,62,42, + 13,63,22,28,23,29,24,6,7,4, + 1,2,59,0,31,72,77,10,0,5, + 34,14,15,27,16,35,36,17,37,38, + 18,19,39,9,40,20,21,41,42,22, + 28,23,29,24,1,2,68,12,11,8, + 4,31,6,7,69,10,3,0,10,72, + 69,1,27,0,9,1,2,8,4,13, + 65,0,1,2,10,77,0,27,29,64, + 10,93,69,76,72,73,0,10,74,75, + 78,0,4,10,74,75,6,7,5,60, + 0,64,27,9,29,8,1,2,4,78, + 75,123,109,32,33,68,3,95,94,11, + 96,97,25,26,92,91,60,98,99,100, + 101,12,102,103,104,73,93,69,124,76, + 111,112,113,114,115,116,117,118,119,120, + 74,121,77,105,110,6,7,5,72,31, + 10,0,10,74,69,30,0,10,72,77, + 76,0,27,29,64,78,73,74,93,69, + 75,3,5,10,72,31,6,7,76,0, + 74,5,68,6,7,60,10,72,31,76, + 3,0,5,12,11,6,7,9,8,4, + 1,2,3,68,73,76,72,10,69,93, + 0,8,9,3,68,11,12,93,5,34, + 14,15,27,16,61,35,36,17,37,38, + 18,19,39,40,20,21,41,62,42,13, + 63,22,28,23,29,24,1,2,4,6, + 7,69,10,58,0,31,10,3,9,8, + 74,12,11,4,1,2,6,7,5,0, + 10,75,72,0,122,0,10,75,76,0, + 14,15,44,70,16,45,46,17,18,19, + 71,9,47,20,21,48,49,50,64,51, + 52,13,22,23,24,53,54,55,30,1, + 2,3,32,33,25,26,8,43,4,56, + 57,31,10,11,12,0,10,74,72,69, + 3,0,79,0,4,10,75,6,7,5, + 1,2,0,71,70,25,26,11,96,97, + 102,12,103,8,43,76,60,73,114,115, + 111,112,113,119,118,120,92,91,116,117, + 100,101,98,99,104,105,32,33,72,94, + 109,68,3,5,34,14,15,58,27,16, + 61,35,36,17,37,38,18,19,39,40, + 20,21,41,62,42,13,63,22,23,29, + 24,6,7,28,1,2,4,0,59,4, + 5,10,74,75,6,7,1,2,0,13, + 61,58,62,63,15,24,14,20,18,19, + 21,22,17,16,23,78,74,93,121,77, + 75,124,123,95,109,94,32,33,25,26, + 96,97,91,92,60,73,98,99,100,101, + 102,103,104,105,110,76,111,112,113,114, + 115,116,117,118,119,120,72,34,27,35, + 36,37,38,39,40,41,42,28,29,31, + 10,69,68,8,9,3,1,2,4,12, + 6,7,5,11,0,70,71,32,33,12, + 11,25,26,8,43,48,57,56,4,9, + 53,54,55,30,51,46,50,15,24,14, + 20,18,19,21,22,17,16,23,13,45, + 49,47,44,52,68,1,2,3,0,16, + 61,35,17,37,38,18,19,39,40,20, + 21,41,62,42,13,63,22,28,23,29, + 24,27,58,15,14,34,10,3,12,31, + 67,65,90,36,66,60,4,5,11,6, + 7,9,1,2,59,8,0,4,10,74, + 75,6,7,5,0 + }; + }; + public final static char asr[] = Asr.asr; + public final int asr(int index) { return asr[index]; } + + public interface Nasb { + public final static char nasb[] = {0, + 29,12,84,12,12,12,12,12,12,88, + 12,12,12,223,12,159,288,55,84,84, + 84,84,253,84,84,84,84,84,84,12, + 12,12,12,12,12,12,12,12,12,12, + 84,12,84,206,48,48,48,48,55,111, + 193,193,116,5,23,229,12,12,193,257, + 229,229,175,1,84,70,53,12,12,206, + 12,12,37,37,111,206,84,84,84,84, + 84,84,84,84,84,84,84,84,84,84, + 84,84,84,84,84,84,84,84,84,84, + 84,84,84,84,84,84,206,84,229,12, + 12,12,12,65,229,43,43,267,250,12, + 12,12,251,221,251,148,251,148,251,244, + 10,55,23,23,43,12,84,267,18,174, + 68,68,12,12,12,10,55,23,48,105, + 159,58,158,55,158,229,23,12,12,12, + 12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12, + 180,11,12,12,12,280,172,55,12,229, + 32,12,193,179,88,172,76,88,172,55, + 11,12,12,278,23,12,229,265,193,55, + 53,84,48,193,62,229,12,11,55,163, + 53,84,206,206,206,206,12,12,43,148, + 193,131,128,12,229,271,180,148,148,12, + 231,221,193,231,52,180,229,12,186,12, + 241,51,180,229,135,280,58,12,257,180, + 229,229,229,229,111,111,12,133,229,12, + 229,124,55,211,12,96,12,12,92,195, + 271,148,148,193,172,193,52,193,258,11, + 180,193,84,12,12,68,68,55,185,267, + 241,229,180,193,114,12,206,280,164,12, + 12,229,229,193,133,131,229,84,229,53, + 193,221,12,12,88,193,141,188,12,193, + 193,90,90,180,258,124,12,12,133,84, + 84,193,11,53,229,265,153,193,12,135, + 111,84,23,164,133,229,159,234,193,260, + 193,231,193,121,155,211,84,12,103,12, + 55,267,148,166,90,90,99,124,84,258, + 193,241,167,133,114,229,23,84,211,124, + 12,260,196,35,76,92,260,234,241,159, + 121,150,72,142,84,84,213,155,172,148, + 166,12,12,88,79,231,27,229,193,220, + 141,12,12,88,124,12,12,16,16,211, + 150,123,12,231,12,148,172,137,231,88, + 88,11,12,193,27,260,193,211,148,94, + 12,166,183,88,231,241,260,193,12,12, + 193,203,72,11,111,11,231,231,227,133, + 234,172,105,82,142,148,229,12,12,231, + 97,241,48,48,119,216,12,84,12,211, + 12,12,12,12,217,12,258,209,211,211, + 258,13,229,11,11,229,193,124,229,193, + 221,166,172,183,211,12,183,97,211,12, + 25,12,12,217,12,217,292,292,239,12, + 292,211,211,12,193,48,27,124,193,12, + 229,211,12,48,217,229,188,229,284,193, + 12,229,119,82,229,16,229,229,193,217, + 12,217,211,142,206,217,25,124,12,13, + 13,186,84,12,108,211,229,126,81,158, + 217,229,211,126,12,217 + }; + }; + public final static char nasb[] = Nasb.nasb; + public final int nasb(int index) { return nasb[index]; } + + public interface Nasr { + public final static char nasr[] = {0, + 3,13,10,9,162,160,130,159,158,5, + 2,0,47,66,0,114,0,13,2,9, + 10,5,89,0,122,0,135,0,4,186, + 0,213,31,0,214,0,5,2,9,10, + 149,0,5,10,9,2,13,4,50,0, + 146,2,72,0,2,49,0,72,148,147, + 0,4,189,0,146,72,0,82,0,187, + 0,179,5,178,0,47,1,0,205,0, + 74,138,47,10,9,2,13,5,0,116, + 0,166,0,196,0,47,110,0,5,108, + 204,0,203,0,4,36,0,4,190,0, + 4,103,0,151,0,4,207,0,171,0, + 169,0,4,74,0,172,0,31,184,0, + 182,0,71,0,153,0,5,108,175,0, + 96,2,64,5,9,10,4,42,0,47, + 170,0,101,100,42,64,68,5,10,9, + 2,0,2,124,0,4,5,10,9,2, + 64,23,0,31,100,101,4,0,49,2, + 3,0,145,0,31,101,100,64,5,2, + 9,10,4,0,43,5,2,9,10,4, + 168,0,53,47,191,4,44,0,4,44, + 43,0,42,72,0,74,44,53,75,4, + 47,0,4,50,208,0,50,4,31,0, + 2,67,0,125,4,53,88,0,44,193, + 28,4,0,2,5,130,126,127,128,13, + 93,0,5,10,9,13,3,1,0,4, + 53,88,90,0,28,4,5,42,96,0, + 4,53,88,108,51,5,0,101,100,42, + 5,68,0,50,4,192,0,4,50,44, + 0,4,50,109,0 + }; + }; + public final static char nasr[] = Nasr.nasr; + public final int nasr(int index) { return nasr[index]; } + + public interface TerminalIndex { + public final static char terminalIndex[] = {0, + 113,114,2,31,46,126,127,13,79,115, + 10,9,100,48,52,60,68,74,75,86, + 87,102,105,107,11,12,54,104,106,112, + 120,7,8,47,64,66,70,73,76,83, + 89,98,14,55,61,67,84,88,90,94, + 97,99,109,110,111,122,123,53,93,19, + 63,91,101,95,77,128,103,1,118,58, + 78,44,20,30,121,33,119,96,108,49, + 50,56,57,59,69,71,72,85,92,65, + 17,18,32,6,4,15,16,21,22,23, + 24,25,26,27,28,80,81,82,5,29, + 34,35,36,37,38,39,40,41,42,43, + 117,51,3,129,62,116,124,125 + }; + }; + public final static char terminalIndex[] = TerminalIndex.terminalIndex; + public final int terminalIndex(int index) { return terminalIndex[index]; } + + public interface NonterminalIndex { + public final static char nonterminalIndex[] = {0, + 136,141,142,0,0,140,0,0,235,241, + 139,0,149,138,0,0,148,154,0,0, + 155,164,250,0,0,0,165,186,166,167, + 132,168,169,170,171,157,172,173,174,0, + 147,251,134,137,175,0,135,144,143,158, + 183,0,0,0,210,0,0,0,0,0, + 0,0,207,211,0,178,0,161,151,181, + 193,0,0,133,177,0,0,0,0,0, + 0,212,0,0,0,0,0,0,131,184, + 0,0,192,0,0,208,218,163,214,215, + 216,0,0,152,0,0,213,226,180,202, + 0,0,217,0,0,0,230,0,232,0, + 246,247,0,153,185,195,196,197,198,199, + 201,204,0,205,0,220,223,0,225,0, + 244,0,245,0,255,0,145,146,150,0, + 0,160,162,0,176,0,187,188,189,190, + 191,194,0,0,200,0,203,209,0,221, + 222,0,0,227,234,0,238,239,240,243, + 0,252,0,254,0,130,0,156,159,0, + 179,0,182,0,0,206,219,224,0,0, + 228,229,231,233,0,236,237,242,248,249, + 0,0,253,0,0,0,0,0,0 + }; + }; + public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; + public final int nonterminalIndex(int index) { return nonterminalIndex[index]; } + + public interface ScopePrefix { + public final static char scopePrefix[] = { + 218,658,677,366,609,625,636,647,449,324, + 338,360,382,400,86,349,469,507,226,666, + 560,64,95,115,124,129,134,189,254,355, + 393,408,413,39,203,330,344,584,71,203, + 459,413,685,71,276,305,1,33,47,58, + 105,120,150,418,438,442,525,553,605,695, + 699,703,141,51,141,487,503,516,537,597, + 288,160,160,516,616,632,643,654,266,571, + 13,25,100,100,215,281,7,100,300,321, + 7,7,100,446,550,557,215,100,718,7, + 154,422,491,531,544,100,169,373,422,169, + 169,373,478,236,18,18,148,296,428,428, + 428,428,529,707,714,18,18,707,714,109, + 296,497,196,148,148,310 + }; + }; + public final static char scopePrefix[] = ScopePrefix.scopePrefix; + public final int scopePrefix(int index) { return scopePrefix[index]; } + + public interface ScopeSuffix { + public final static char scopeSuffix[] = { + 62,37,37,194,37,37,37,37,456,194, + 139,194,194,406,92,335,475,513,232,111, + 566,69,69,69,103,103,139,194,259,194, + 398,398,406,44,208,335,145,589,82,211, + 464,672,690,76,270,270,5,37,37,62, + 37,103,139,398,139,139,194,303,37,37, + 37,303,716,55,145,456,456,456,541,589, + 292,164,178,520,620,620,620,620,270,575, + 16,16,103,103,37,37,284,286,303,37, + 5,5,286,139,37,303,37,582,37,10, + 157,425,494,534,547,601,164,388,592,172, + 183,376,481,239,23,31,139,298,430,432, + 434,436,139,709,709,20,28,711,711,111, + 292,499,198,261,246,312 + }; + }; + public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; + public final int scopeSuffix(int index) { return scopeSuffix[index]; } + + public interface ScopeLhs { + public final static char scopeLhs[] = { + 51,17,17,128,17,17,17,17,78,92, + 52,86,128,127,83,60,78,77,51,17, + 19,3,7,8,175,175,174,126,51,87, + 127,127,129,24,137,61,52,149,142,137, + 78,17,17,142,102,54,70,181,144,81, + 178,175,174,129,194,58,66,153,17,17, + 17,17,12,122,174,78,77,77,40,149, + 68,139,139,77,17,17,17,17,102,19, + 117,134,179,175,196,100,107,56,82,55, + 168,70,129,79,154,153,187,149,16,70, + 174,129,109,76,21,149,139,128,149,139, + 139,128,78,51,117,134,174,68,161,160, + 159,158,73,147,49,117,134,147,49,178, + 68,109,126,51,51,54 + }; + }; + public final static char scopeLhs[] = ScopeLhs.scopeLhs; + public final int scopeLhs(int index) { return scopeLhs[index]; } + + public interface ScopeLa { + public final static char scopeLa[] = { + 122,69,69,77,69,69,69,69,69,77, + 31,77,77,1,73,1,69,125,75,3, + 69,73,73,73,1,1,31,77,75,77, + 1,1,1,69,77,1,1,4,73,72, + 31,1,1,73,69,69,1,69,69,122, + 69,1,31,1,31,31,77,121,69,69, + 69,121,1,69,1,69,69,69,74,4, + 11,1,1,69,73,73,73,73,69,3, + 6,6,1,1,69,69,3,1,121,69, + 1,1,1,31,69,121,69,8,69,6, + 1,59,76,74,69,1,1,75,59,1, + 1,1,79,78,1,1,31,12,1,61, + 58,58,31,4,4,1,1,4,4,3, + 11,1,75,1,1,3 + }; + }; + public final static char scopeLa[] = ScopeLa.scopeLa; + public final int scopeLa(int index) { return scopeLa[index]; } + + public interface ScopeStateSet { + public final static char scopeStateSet[] = { + 105,304,304,150,304,304,304,304,115,96, + 105,94,150,150,94,107,115,115,105,304, + 304,231,275,275,58,58,91,150,105,94, + 150,150,150,154,371,107,105,133,54,371, + 115,304,304,54,142,70,76,127,30,115, + 34,58,91,150,22,107,37,67,304,304, + 304,304,279,6,91,115,115,115,338,133, + 191,150,150,115,304,304,304,304,142,304, + 86,26,34,58,24,142,144,70,138,70, + 64,76,150,115,61,67,136,133,304,76, + 91,150,1,115,307,133,150,150,133,150, + 150,150,115,105,86,26,91,191,151,151, + 151,151,11,130,207,86,26,130,207,34, + 191,1,150,105,105,70 + }; + }; + public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; + public final int scopeStateSet(int index) { return scopeStateSet[index]; } + + public interface ScopeRhs { + public final static char scopeRhs[] = {0, + 170,224,132,0,207,0,224,132,0,251, + 207,0,245,170,0,251,0,170,0,230, + 251,0,230,0,198,170,0,181,251,0, + 181,0,340,3,310,0,132,0,339,3, + 3,6,0,132,132,0,338,3,64,0, + 337,3,122,0,132,178,0,132,194,78, + 0,222,0,268,132,60,130,0,20,0, + 308,132,60,59,0,20,53,0,33,138, + 0,20,53,0,0,308,132,60,59,216, + 0,20,184,0,268,132,60,138,0,195, + 133,0,147,0,231,3,307,0,307,0, + 2,0,132,0,268,132,60,137,0,195, + 133,236,0,195,133,28,236,0,195,133, + 333,28,0,134,200,177,133,0,134,0, + 200,177,133,0,140,134,0,181,0,329, + 132,181,0,132,181,0,228,134,0,177, + 328,258,0,142,0,0,0,0,328,258, + 0,143,142,0,0,0,0,141,0,0, + 0,0,143,141,0,0,0,0,327,132, + 175,267,0,133,0,267,0,135,0,0, + 133,0,326,132,175,266,0,133,0,0, + 44,133,0,0,164,3,0,132,298,297, + 132,78,296,181,0,297,132,78,296,181, + 0,221,0,222,0,296,181,0,96,0, + 0,221,0,222,0,209,96,0,0,221, + 0,222,0,297,132,296,181,0,221,0, + 209,0,0,221,0,239,132,3,0,132, + 0,0,0,0,0,239,132,3,228,0, + 235,3,0,214,0,152,0,193,177,133, + 0,10,0,0,0,193,0,9,0,226, + 68,0,131,0,239,132,3,183,0,183, + 0,2,0,0,132,0,0,0,0,0, + 198,3,0,251,132,175,30,36,0,195, + 133,65,67,0,202,134,0,134,195,133, + 294,67,0,195,133,294,67,0,195,133, + 76,129,65,0,251,132,175,65,0,251, + 132,175,238,65,0,292,132,175,129,323, + 61,0,323,61,0,136,135,0,0,133, + 0,292,132,175,323,61,0,135,0,0, + 133,0,195,133,291,61,0,141,0,200, + 195,133,291,258,0,142,0,195,133,291, + 258,0,200,177,133,13,0,177,133,13, + 0,177,133,0,93,142,0,290,0,198, + 0,197,0,196,0,195,0,284,132,156, + 0,284,132,181,0,172,88,0,318,171, + 320,321,3,85,0,132,177,0,320,321, + 3,85,0,134,0,132,177,0,172,3, + 79,203,84,0,132,134,0,203,84,0, + 108,2,137,132,134,0,237,3,79,0, + 198,178,0,33,175,0,178,0,181,33, + 175,0,237,3,89,0,203,159,237,3, + 87,0,62,177,0,237,3,87,0,132, + 177,62,177,0,319,132,175,0,172,0, + 226,81,0,30,177,0,172,110,167,0, + 30,175,0,197,3,0,132,155,0,231, + 3,0,226,68,281,0,172,68,0,197, + 3,315,71,133,0,132,0,0,0,0, + 315,71,133,0,2,151,132,0,0,0, + 0,153,0,131,59,177,133,0,31,153, + 0,93,142,31,153,0,232,195,133,0, + 152,31,153,0,172,3,52,0,172,3, + 73,197,60,44,0,197,60,44,0,20, + 2,137,132,0,172,3,73,197,60,47, + 0,197,60,47,0,172,3,73,197,60, + 49,0,197,60,49,0,172,3,73,197, + 60,45,0,197,60,45,0,231,3,131, + 200,177,133,13,0,131,200,177,133,13, + 0,142,2,0,132,0,231,3,130,274, + 177,133,13,0,274,177,133,13,0,141, + 2,0,132,0,231,3,141,0,231,3, + 145,0,172,68,145,0,276,0,31,0, + 31,145,0,176,0,140,0,172,3,0 + }; + }; + public final static char scopeRhs[] = ScopeRhs.scopeRhs; + public final int scopeRhs(int index) { return scopeRhs[index]; } + + public interface ScopeState { + public final static char scopeState[] = {0, + 5630,5729,5726,5719,0,886,1780,659,1733,0, + 4092,4029,3933,3887,3841,3795,3749,3703,3657,3451, + 3384,4353,0,1303,0,2818,3174,2478,0,2573, + 2244,670,0,1163,956,0,4092,4029,1742,1648, + 3933,3887,3841,3795,3749,3703,591,3657,3451,3384, + 2793,2641,0,5656,2640,868,0,2531,1325,0, + 1675,1487,0,4533,3339,0,2785,2493,0,4231, + 4533,5014,4204,2749,3339,4015,2818,5282,4560,3174, + 4452,2478,5252,3322,3309,3147,3076,3049,2593,0, + 5305,5296,0,5305,5296,4467,5189,5124,4359,5112, + 5047,5005,4347,0,5305,5296,4467,5189,5124,4359, + 5112,5047,5005,4347,4092,4029,3933,3887,3841,3795, + 3749,3703,3657,3451,3384,0,1581,2280,0,2630, + 867,0,801,728,0,933,0,2016,1969,1041, + 921,2749,5400,4015,3322,3309,3062,2524,0,4672, + 587,2852,0,2818,3978,4560,5018,3174,3209,4452, + 4479,3098,4468,3147,4100,2783,3449,3076,5014,3049, + 2941,2627,5690,5686,5421,5415,3458,2473,928,660, + 4672,2866,3702,2776,4348,2744,2739,2514,587,2852, + 2478,4231,5516,4204,2749,5394,2593,5509,5487,4360, + 5006,5400,5522,5429,5407,0,5651,5621,5601,5596, + 5592,5569,5565,5559,5360,5328,5702,5318,4222,5693, + 5676,4249,3094,3909,3358,3067,2588,3771,815,0, + 4159,3688,5651,5621,5601,3565,3556,5596,2931,5592, + 5569,5565,5559,5360,3296,1685,1667,5328,1620,5702, + 1573,1450,1293,1211,5318,4222,1032,2795,5693,4577, + 5676,2419,4249,3094,3909,990,3358,3067,2588,4672, + 791,2852,3771,815,2509,2384,2290,1387,873,4015, + 2818,5282,4560,3174,4452,2478,3147,4231,3076,4533, + 5014,3049,4204,2749,5252,2593,3322,3339,3309,1238, + 1019,801,728,5218,4593,3664,4983,4961,2549,2664, + 2895,2713,3273,3240,3015,4174,4034,3633,3602,3571, + 3533,4649,4626,687,4323,4300,4939,4917,4895,4873, + 4851,4829,4807,4772,4739,4709,2987,2161,2437,2396, + 2343,1456,2302,2249,2208,1409,1346,1188,1299,967, + 2114,634,897,820,750,2067,2020,1973,1926,1879, + 1832,1785,1738,1691,1644,1597,587,1550,1503,1252, + 1092,1044,1140,0 + }; + }; + public final static char scopeState[] = ScopeState.scopeState; + public final int scopeState(int index) { return scopeState[index]; } + + public interface InSymb { + public final static char inSymb[] = {0, + 0,314,132,283,52,44,47,49,45,13, + 141,130,137,9,138,4,3,133,56,57, + 48,43,8,26,25,11,12,33,32,145, + 150,157,155,160,158,162,161,165,163,166, + 64,167,72,3,60,60,60,60,133,3, + 60,60,178,132,68,3,70,71,60,8, + 197,172,178,132,70,71,177,176,130,3, + 129,131,109,123,3,68,94,95,26,25, + 97,96,11,99,98,73,60,91,92,12, + 101,100,103,102,104,120,119,118,117,116, + 115,114,113,112,111,76,110,105,172,197, + 197,197,197,177,231,132,132,132,285,6, + 7,5,286,267,287,258,288,61,289,290, + 13,133,68,68,132,130,159,132,68,3, + 229,228,141,131,130,13,133,68,315,3, + 200,4,59,133,59,231,172,155,155,150, + 150,150,158,158,158,158,157,157,161,160, + 160,163,162,165,172,166,73,73,73,73, + 200,274,268,271,268,224,170,133,193,3, + 3,3,175,328,291,170,323,291,170,133, + 195,177,268,224,226,167,235,132,3,133, + 177,217,3,316,178,164,276,200,133,195, + 177,74,3,3,3,3,131,130,72,177, + 11,3,341,1,30,132,177,242,131,130, + 133,129,175,133,177,59,239,240,156,241, + 132,177,59,197,132,132,4,232,8,59, + 172,172,172,172,3,3,193,132,339,310, + 3,327,133,179,236,65,59,216,67,181, + 330,131,130,243,170,243,195,175,132,195, + 200,159,76,235,198,192,183,133,3,132, + 72,239,200,159,278,281,68,196,4,129, + 131,231,231,11,199,72,159,3,1,177, + 175,238,60,59,294,296,132,3,183,243, + 243,132,132,200,132,292,129,293,132,76, + 76,3,195,177,198,132,224,159,131,132, + 3,68,172,4,132,340,200,132,175,73, + 60,133,78,132,224,329,74,247,198,130, + 133,132,245,170,132,132,74,292,76,72, + 233,132,170,132,278,231,226,72,134,251, + 36,59,181,5,65,67,253,132,132,195, + 132,297,74,72,74,76,177,224,170,245, + 170,151,332,236,28,133,132,239,233,30, + 132,342,129,65,251,308,59,13,58,134, + 297,175,306,133,307,245,170,72,133,28, + 333,195,64,159,132,132,175,284,198,262, + 295,170,3,76,133,72,73,60,242,242, + 298,132,72,195,3,195,133,133,3,132, + 132,170,3,76,72,198,343,30,273,133, + 195,132,76,76,132,319,83,81,1,172, + 10,89,87,85,84,79,86,88,82,80, + 65,78,231,195,195,338,233,251,164,175, + 266,170,170,74,159,3,72,195,238,308, + 299,122,10,74,226,74,3,3,3,203, + 3,129,172,129,194,72,132,132,175,11, + 1,238,73,3,74,237,178,237,321,156, + 79,237,132,132,1,58,93,337,178,159, + 198,159,320,132,3,159,299,326,242,159, + 159,132,76,203,171,284,172,202,72,76, + 125,318,159,202,10,159 + }; + }; + public final static char inSymb[] = InSymb.inSymb; + public final int inSymb(int index) { return inSymb[index]; } + + public interface Name { + public final static String name[] = { + "", + "[", + "(", + ".", + ".*", + "->", + "->*", + "++", + "--", + "&", + "*", + "+", + "-", + "~", + "!", + "/", + "%", + ">>", + "<<", + "<", + ">", + "<=", + ">=", + "==", + "!=", + "^", + "|", + "&&", + "||", + "?", + ":", + "::", + "...", + "=", + "*=", + "/=", + "%=", + "+=", + "-=", + ">>=", + "<<=", + "&=", + "^=", + "|=", + ",", + "$empty", + "asm", + "auto", + "bool", + "break", + "case", + "catch", + "char", + "class", + "const", + "const_cast", + "continue", + "default", + "delete", + "do", + "double", + "dynamic_cast", + "else", + "enum", + "explicit", + "export", + "extern", + "false", + "float", + "for", + "friend", + "goto", + "if", + "inline", + "int", + "long", + "mutable", + "namespace", + "new", + "operator", + "private", + "protected", + "public", + "register", + "reinterpret_cast", + "return", + "short", + "signed", + "sizeof", + "static", + "static_cast", + "struct", + "switch", + "template", + "this", + "throw", + "try", + "true", + "typedef", + "typeid", + "typename", + "union", + "unsigned", + "using", + "virtual", + "void", + "volatile", + "wchar_t", + "while", + "integer", + "floating", + "charconst", + "stringlit", + "identifier", + "Completion", + "EndOfCompletion", + "Invalid", + "RightBracket", + "RightParen", + "RightBrace", + "SemiColon", + "LeftBrace", + "typeof", + "__alignof__", + "MAX", + "MIN", + "__attribute__", + "__declspec", + "ERROR_TOKEN", + "EOF_TOKEN", + "no_sizeof_type_id_start", + "]", + ")", + "}", + ";", + "{", + "identifier_token", + "expression", + "id_expression", + "qualified_or_unqualified_name", + "unqualified_id_name", + "identifier_name", + "template_id_name", + "nested_name_specifier", + "class_or_namespace_name", + "nested_name_specifier_with_tem" + + "plate", + "class_or_namespace_name_with_t" + + "emplate", + "class_name", + "postfix_expression", + "simple_type_specifier", + "pseudo_destructor_name", + "type_id", + "type_name", + "destructor_type_name", + "unary_expression", + "cast_expression", + "new_type_id", + "expression_list", + "type_specifier_seq", + "new_declarator", + "new_pointer_operators", + "ptr_operator", + "new_array_expressions", + "constant_expression", + "pm_expression", + "multiplicative_expression", + "additive_expression", + "shift_expression", + "relational_expression", + "equality_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", + "assignment_expression", + "expression_list_actual", + "statement", + "compound_statement", + "statement_seq", + "condition", + "declarator", + "for_init_statement", + "function_definition", + "declaration", + "declaration_seq", + "declaration_specifiers", + "simple_declaration_specifiers", + "class_declaration_specifiers", + "elaborated_declaration_specifi" + + "ers", + "enum_declaration_specifiers", + "type_name_declaration_specifie" + + "rs", + "no_type_declaration_specifier", + "cv_qualifier", + "no_type_declaration_specifiers", + "class_specifier", + "elaborated_type_specifier", + "enum_specifier", + "type_name_specifier", + "class_keyword", + "enumerator_list", + "enumerator_definition", + "namespace_name", + "init_declarator_list", + "init_declarator_complete", + "complete_declarator", + "initializer", + "direct_declarator", + "ptr_operator_seq", + "function_declarator", + "basic_direct_declarator", + "array_direct_declarator", + "array_modifier", + "abstract_declarator", + "direct_abstract_declarator", + "basic_direct_abstract_declarat" + + "or", + "array_direct_abstract_declarat" + + "or", + "parameter_declaration_list", + "parameter_declaration", + "parameter_init_declarator", + "parameter_initializer", + "function_body", + "handler_seq", + "initializer_clause", + "initializer_list", + "class_head", + "access_specifier_keyword", + "member_declaration", + "member_declarator_list", + "member_declaration_list", + "member_declarator_complete", + "constant_initializer", + "bit_field_declarator", + "base_specifier_list", + "base_specifier", + "conversion_function_id", + "conversion_type_id", + "conversion_declarator", + "mem_initializer_list", + "mem_initializer", + "mem_initializer_name", + "operator_id_name", + "overloadable_operator", + "template_parameter_list", + "template_parameter", + "template_argument_list", + "template_argument", + "handler", + "exception_declaration", + "type_id_list", + "attribute_or_decl_specifier", + "attribute_or_decl_specifier_se" + + "q", + "word", + "extended_decl_modifier_seq", + "extended_decl_modifier", + "extended_asm_param" + }; + }; + public final static String name[] = Name.name; + public final String name(int index) { return name[index]; } + + public final static int + ERROR_SYMBOL = 66, + SCOPE_UBOUND = 135, + SCOPE_SIZE = 136, + MAX_NAME_LENGTH = 37; + + public final int getErrorSymbol() { return ERROR_SYMBOL; } + public final int getScopeUbound() { return SCOPE_UBOUND; } + public final int getScopeSize() { return SCOPE_SIZE; } + public final int getMaxNameLength() { return MAX_NAME_LENGTH; } + + public final static int + NUM_STATES = 586, + NT_OFFSET = 128, + LA_STATE_OFFSET = 6953, + MAX_LA = 2147483647, + NUM_RULES = 586, + NUM_NONTERMINALS = 219, + NUM_SYMBOLS = 347, + SEGMENT_SIZE = 8192, + START_STATE = 675, + IDENTIFIER_SYMBOL = 0, + EOFT_SYMBOL = 124, + EOLT_SYMBOL = 124, + ACCEPT_ACTION = 5854, + ERROR_ACTION = 6367; + + public final static boolean BACKTRACK = true; + + public final int getNumStates() { return NUM_STATES; } + public final int getNtOffset() { return NT_OFFSET; } + public final int getLaStateOffset() { return LA_STATE_OFFSET; } + public final int getMaxLa() { return MAX_LA; } + public final int getNumRules() { return NUM_RULES; } + public final int getNumNonterminals() { return NUM_NONTERMINALS; } + public final int getNumSymbols() { return NUM_SYMBOLS; } + public final int getSegmentSize() { return SEGMENT_SIZE; } + public final int getStartState() { return START_STATE; } + public final int getStartSymbol() { return lhs[0]; } + public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } + public final int getEoftSymbol() { return EOFT_SYMBOL; } + public final int getEoltSymbol() { return EOLT_SYMBOL; } + public final int getAcceptAction() { return ACCEPT_ACTION; } + public final int getErrorAction() { return ERROR_ACTION; } + public final boolean isValidForParser() { return isValidForParser; } + public final boolean getBacktrack() { return BACKTRACK; } + + public final int originalState(int state) { + return -baseCheck[state]; + } + public final int asi(int state) { + return asb[originalState(state)]; + } + public final int nasi(int state) { + return nasb[originalState(state)]; + } + public final int inSymbol(int state) { + return inSymb[originalState(state)]; + } + + public final int ntAction(int state, int sym) { + return baseAction[state + sym]; + } + + public final int tAction(int state, int sym) { + int i = baseAction[state], + k = i + sym; + return termAction[termCheck[k] == sym ? k : i]; + } + public final int lookAhead(int la_state, int sym) { + int k = la_state + sym; + return termAction[termCheck[k] == sym ? k : la_state]; + } +} diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java new file mode 100644 index 00000000000..0245c2f0a22 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java @@ -0,0 +1,280 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.gpp; + +public interface GPPSizeofExpressionParsersym { + public final static int + TK_asm = 5, + TK_auto = 34, + TK_bool = 14, + TK_break = 80, + TK_case = 81, + TK_catch = 122, + TK_char = 15, + TK_class = 58, + TK_const = 27, + TK_const_cast = 44, + TK_continue = 82, + TK_default = 83, + TK_delete = 70, + TK_do = 84, + TK_double = 16, + TK_dynamic_cast = 45, + TK_else = 125, + TK_enum = 61, + TK_explicit = 35, + TK_export = 90, + TK_extern = 36, + TK_false = 46, + TK_float = 17, + TK_for = 85, + TK_friend = 37, + TK_goto = 86, + TK_if = 87, + TK_inline = 38, + TK_int = 18, + TK_long = 19, + TK_mutable = 39, + TK_namespace = 65, + TK_new = 71, + TK_operator = 9, + TK_private = 106, + TK_protected = 107, + TK_public = 108, + TK_register = 40, + TK_reinterpret_cast = 47, + TK_return = 88, + TK_short = 20, + TK_signed = 21, + TK_sizeof = 48, + TK_static = 41, + TK_static_cast = 49, + TK_struct = 62, + TK_switch = 89, + TK_template = 59, + TK_this = 50, + TK_throw = 64, + TK_try = 78, + TK_true = 51, + TK_typedef = 42, + TK_typeid = 52, + TK_typename = 13, + TK_union = 63, + TK_unsigned = 22, + TK_using = 67, + TK_virtual = 28, + TK_void = 23, + TK_volatile = 29, + TK_wchar_t = 24, + TK_while = 79, + TK_integer = 53, + TK_floating = 54, + TK_charconst = 55, + TK_stringlit = 30, + TK_identifier = 1, + TK_Completion = 2, + TK_EndOfCompletion = 10, + TK_Invalid = 126, + TK_LeftBracket = 68, + TK_LeftParen = 3, + TK_Dot = 123, + TK_DotStar = 95, + TK_Arrow = 109, + TK_ArrowStar = 94, + TK_PlusPlus = 32, + TK_MinusMinus = 33, + TK_And = 12, + TK_Star = 11, + TK_Plus = 25, + TK_Minus = 26, + TK_Tilde = 8, + TK_Bang = 43, + TK_Slash = 96, + TK_Percent = 97, + TK_RightShift = 91, + TK_LeftShift = 92, + TK_LT = 60, + TK_GT = 73, + TK_LE = 98, + TK_GE = 99, + TK_EQ = 100, + TK_NE = 101, + TK_Caret = 102, + TK_Or = 103, + TK_AndAnd = 104, + TK_OrOr = 105, + TK_Question = 110, + TK_Colon = 74, + TK_ColonColon = 4, + TK_DotDotDot = 93, + TK_Assign = 76, + TK_StarAssign = 111, + TK_SlashAssign = 112, + TK_PercentAssign = 113, + TK_PlusAssign = 114, + TK_MinusAssign = 115, + TK_RightShiftAssign = 116, + TK_LeftShiftAssign = 117, + TK_AndAssign = 118, + TK_CaretAssign = 119, + TK_OrAssign = 120, + TK_Comma = 72, + TK_RightBracket = 121, + TK_RightParen = 69, + TK_RightBrace = 77, + TK_SemiColon = 31, + TK_LeftBrace = 75, + TK_typeof = 56, + TK___alignof__ = 57, + TK_MAX = 127, + TK_MIN = 128, + TK___attribute__ = 6, + TK___declspec = 7, + TK_ERROR_TOKEN = 66, + TK_EOF_TOKEN = 124; + + public final static String orderedTerminalSymbols[] = { + "", + "identifier", + "Completion", + "LeftParen", + "ColonColon", + "asm", + "__attribute__", + "__declspec", + "Tilde", + "operator", + "EndOfCompletion", + "Star", + "And", + "typename", + "bool", + "char", + "double", + "float", + "int", + "long", + "short", + "signed", + "unsigned", + "void", + "wchar_t", + "Plus", + "Minus", + "const", + "virtual", + "volatile", + "stringlit", + "SemiColon", + "PlusPlus", + "MinusMinus", + "auto", + "explicit", + "extern", + "friend", + "inline", + "mutable", + "register", + "static", + "typedef", + "Bang", + "const_cast", + "dynamic_cast", + "false", + "reinterpret_cast", + "sizeof", + "static_cast", + "this", + "true", + "typeid", + "integer", + "floating", + "charconst", + "typeof", + "__alignof__", + "class", + "template", + "LT", + "enum", + "struct", + "union", + "throw", + "namespace", + "ERROR_TOKEN", + "using", + "LeftBracket", + "RightParen", + "delete", + "new", + "Comma", + "GT", + "Colon", + "LeftBrace", + "Assign", + "RightBrace", + "try", + "while", + "break", + "case", + "continue", + "default", + "do", + "for", + "goto", + "if", + "return", + "switch", + "export", + "RightShift", + "LeftShift", + "DotDotDot", + "ArrowStar", + "DotStar", + "Slash", + "Percent", + "LE", + "GE", + "EQ", + "NE", + "Caret", + "Or", + "AndAnd", + "OrOr", + "private", + "protected", + "public", + "Arrow", + "Question", + "StarAssign", + "SlashAssign", + "PercentAssign", + "PlusAssign", + "MinusAssign", + "RightShiftAssign", + "LeftShiftAssign", + "AndAssign", + "CaretAssign", + "OrAssign", + "RightBracket", + "catch", + "Dot", + "EOF_TOKEN", + "else", + "Invalid", + "MAX", + "MIN" + }; + + public final static boolean isValidForParser = true; +} |