diff options
author | Mike Kucera | 2009-01-02 14:58:24 +0000 |
---|---|---|
committer | Mike Kucera | 2009-01-02 14:58:24 +0000 |
commit | cfa1a4f42e74dc726e6e91d6cc448804e9a59fa3 (patch) | |
tree | 780ed0cc4fc26831b221f79647dfc01548c641da | |
parent | 60d92373d09eba3d2b19baf4fa52d8a60fc8ab4d (diff) | |
download | org.eclipse.cdt-cfa1a4f42e74dc726e6e91d6cc448804e9a59fa3.tar.gz org.eclipse.cdt-cfa1a4f42e74dc726e6e91d6cc448804e9a59fa3.tar.xz org.eclipse.cdt-cfa1a4f42e74dc726e6e91d6cc448804e9a59fa3.zip |
Added ability to pass ILanguage options to LR parser, refactored ParseHelper, partial fix for bug 253690
69 files changed, 18870 insertions, 18267 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java index 158faea8471..5e6a70d901b 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java @@ -5775,7 +5775,7 @@ public class AST2Tests extends AST2BaseTest { // 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // }; - public void testScalabilityOfLargeTrivialInitializer_Bug252970() throws Exception { + public void testScalabilityOfLargeTrivialInitializer_Bug253690() throws Exception { final StringBuffer[] input = getContents(3); StringBuilder buf= new StringBuilder(); buf.append(input[0].toString()); diff --git a/core/org.eclipse.cdt.core/.settings/org.eclipse.pde.api.tools.prefs b/core/org.eclipse.cdt.core/.settings/org.eclipse.pde.api.tools.prefs index d5b8dfc896f..f80fa9f5a85 100644 --- a/core/org.eclipse.cdt.core/.settings/org.eclipse.pde.api.tools.prefs +++ b/core/org.eclipse.cdt.core/.settings/org.eclipse.pde.api.tools.prefs @@ -1,10 +1,10 @@ -#Wed Jun 18 09:56:19 CEST 2008 +#Fri Jan 02 09:55:15 EST 2009 ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error -ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Warning ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error @@ -15,108 +15,120 @@ ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Warning ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error -ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Warning ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Warning ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error -ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Warning ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error -API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error -API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Warning +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Warning CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error -CLASS_ELEMENT_TYPE_ADDED_METHOD=Error -CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Warning +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Warning +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Warning CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error -CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error -CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Warning +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Warning CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error -CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error -CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Warning +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Warning CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Warning CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error -CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error -CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Warning +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Warning CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error -CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error -CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error -CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Warning +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Warning +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Warning +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Warning CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error -CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Warning CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error -CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Warning CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error -CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Warning CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error -CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Warning CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error -ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Warning ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error -ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error -ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error -ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error -ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error -FIELD_ELEMENT_TYPE_ADDED_VALUE=Error -FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error -FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error -FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error -FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error -FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error -FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error -FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Warning +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Warning +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Warning +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Warning +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Warning +FIELD_ELEMENT_TYPE_ADDED_VALUE=Warning +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Warning +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Warning +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Warning +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Warning +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Warning +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Warning +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Warning +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Warning FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error -FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Warning ILLEGAL_EXTEND=Warning ILLEGAL_IMPLEMENT=Warning ILLEGAL_INSTANTIATE=Warning ILLEGAL_OVERRIDE=Warning ILLEGAL_REFERENCE=Warning INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error -INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Warning INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error -INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Warning +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Warning +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Warning INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error -INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Warning INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error -INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Warning INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Warning INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error -INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Warning INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error -INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error -INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error -INVALID_JAVADOC_TAG=Ignore +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Warning +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Warning +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Warning +INVALID_JAVADOC_TAG=Warning +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning LEAK_EXTEND=Warning LEAK_FIELD_DECL=Warning LEAK_IMPLEMENT=Warning @@ -125,26 +137,36 @@ LEAK_METHOD_RETURN_TYPE=Warning METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error -METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Warning +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Warning METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error -METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Warning METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error -METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error -METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error -METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error -METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Warning +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Warning +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Warning +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Warning METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error -METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error -METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Warning +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Warning METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error -METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Warning METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Warning +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Warning +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Warning +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Warning +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Warning +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Warning +UNUSED_PROBLEM_FILTERS=Warning eclipse.preferences.version=1 -incompatible_api_component_version=Error +incompatible_api_component_version=Warning incompatible_api_component_version_include_major_without_breaking_change=Disabled incompatible_api_component_version_include_minor_without_api_change=Disabled -invalid_since_tag_version=Error -malformed_since_tag=Error -missing_since_tag=Error +invalid_since_tag_version=Warning +malformed_since_tag=Warning +missing_since_tag=Warning +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecFailingTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecFailingTest.java index 2ca06bdf816..c869f5e4b5b 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecFailingTest.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecFailingTest.java @@ -41,13 +41,18 @@ public class LRCPPSpecFailingTest extends AST2CPPSpecFailingTest { @Override protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean checkBindings, int expectedProblemBindings ) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage(); - return ParseHelper.parse(code, language, true, checkBindings, expectedProblemBindings ); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckBindings(checkBindings); + options.setExpectedProblemBindings(expectedProblemBindings); + return ParseHelper.parse(code, language, options); } @Override protected IASTTranslationUnit parse(String code, ParserLanguage lang, String[] problems) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage(); - return ParseHelper.parse(code, language, problems); + ParseHelper.Options options = new ParseHelper.Options(); + options.setProblems(problems); + return ParseHelper.parse(code, language, options); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java index bc2477fecd8..2e36c90f831 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java @@ -38,16 +38,22 @@ public class LRCPPSpecTest extends AST2CPPSpecTest { parse(code, ParserLanguage.CPP, checkBindings, expectedProblemBindings); } + @Override protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean checkBindings, int expectedProblemBindings ) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage(); - return ParseHelper.parse(code, language, true, checkBindings, expectedProblemBindings ); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckBindings(checkBindings); + options.setExpectedProblemBindings(expectedProblemBindings); + return ParseHelper.parse(code, language, options); } @Override protected IASTTranslationUnit parse(String code, ParserLanguage lang, String[] problems) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage(); - return ParseHelper.parse(code, language, problems); + ParseHelper.Options options = new ParseHelper.Options(); + options.setProblems(problems); + return ParseHelper.parse(code, language, options); } protected BaseExtensibleLanguage getCLanguage() { diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java index ed439fbd562..bdf4affdb25 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java @@ -39,9 +39,13 @@ public class LRCPPTests extends AST2CPPTests { @Override - protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, @SuppressWarnings("unused") boolean parseComments) throws ParserException { + protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - return ParseHelper.parse(code, language, expectNoProblems); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(expectNoProblems); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setSkipTrivialInitializers(skipTrivialInitializers); + return ParseHelper.parse(code, language, options); } protected ILanguage getC99Language() { diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java index 6c3833ff6f5..c5910b620a0 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java @@ -37,17 +37,26 @@ public class LRCSpecTests extends AST2CSpecTest { parse(code, ParserLanguage.C, checkBindings, expectedProblemBindings); parse(code, ParserLanguage.CPP, checkBindings, expectedProblemBindings); } - + @Override protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean checkBindings, int expectedProblemBindings ) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage(); - return ParseHelper.parse(code, language, true, checkBindings, expectedProblemBindings ); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(true); + options.setCheckPreprocessorProblems(true); + options.setCheckBindings(checkBindings); + options.setExpectedProblemBindings(expectedProblemBindings); + return ParseHelper.parse(code, language, options); } - + @Override protected IASTTranslationUnit parse(String code, ParserLanguage lang, String[] problems) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage(); - return ParseHelper.parse(code, language, problems); + ParseHelper.Options options = new ParseHelper.Options(); + options.setProblems(problems); + options.setCheckSyntaxProblems(true); + options.setCheckPreprocessorProblems(true); + return ParseHelper.parse(code, language, options); } protected ILanguage getCLanguage() { diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java index 087c2a91961..305d702508e 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java @@ -42,9 +42,13 @@ public class LRCommentTests extends CommentTests { @SuppressWarnings("unused") protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, - boolean parseComments) throws ParserException { + boolean skipTrivialInitializers) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(expectNoProblems); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setSkipTrivialInitializers(skipTrivialInitializers); return ParseHelper.commentParse(code, language); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java index 8fcc5d505f9..e498795b2e4 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java @@ -35,7 +35,8 @@ public class LRDOMLocationMacroTests extends DOMLocationMacroTests { @SuppressWarnings("unused") protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - return ParseHelper.parse(code, language, expectNoProblems); + ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems); + return ParseHelper.parse(code, language, options); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java index 11af2e14cef..c4ae424ad8d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java @@ -35,7 +35,8 @@ public class LRDOMLocationTests extends DOMLocationTests { @SuppressWarnings("unused") protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - return ParseHelper.parse(code, language, expectNoProblems); + ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems); + return ParseHelper.parse(code, language, options); } protected ILanguage getC99Language() { diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java index b6b7cce7716..1d8a151a114 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java @@ -31,7 +31,8 @@ public class LRDOMPreprocessorInformationTest extends DOMPreprocessorInformation @SuppressWarnings("unused") protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - return ParseHelper.parse(code, language, expectNoProblems); + ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems); + return ParseHelper.parse(code, language, options); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java index fafc19cd4d7..4bfb085b178 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java @@ -52,7 +52,10 @@ public class LRDigraphTrigraphTests extends TestCase { protected IASTTranslationUnit parse(String code) { - return ParseHelper.parse(code, getCLanguage(), true); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(true); + options.setCheckPreprocessorProblems(true); + return ParseHelper.parse(code, getCLanguage(), options); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java index 0b6603470de..bad5ea5b4dc 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java @@ -35,7 +35,8 @@ public class LRGCCTests extends GCCTests { @SuppressWarnings("unused") protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - return ParseHelper.parse(code, language, expectNoProblems); + ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems); + return ParseHelper.parse(code, language, options); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java index 2bca1e7c61a..73966c7e981 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java @@ -32,9 +32,13 @@ public class LRImageLocationTests extends ImageLocationTests { @Override @SuppressWarnings("unused") protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, - boolean expectNoProblems, boolean parseComments) throws ParserException { + boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - return ParseHelper.parse(code, language, expectNoProblems); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(expectNoProblems); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setSkipTrivialInitializers(skipTrivialInitializers); + return ParseHelper.parse(code, language, options); } protected ILanguage getC99Language() { diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java index 9e47a0dc9f7..790a53a5d5f 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java @@ -34,9 +34,13 @@ public class LRNodeSelectorTest extends ASTNodeSelectorTest { @Override - protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, @SuppressWarnings("unused") boolean parseComments) throws ParserException { + protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializer) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - return ParseHelper.parse(code, language, expectNoProblems); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(expectNoProblems); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setSkipTrivialInitializers(skipTrivialInitializer); + return ParseHelper.parse(code, language, options); } @Override diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java index 7ddb87c712f..7dff08ca8bf 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java @@ -13,11 +13,8 @@ import junit.framework.AssertionFailedError; import org.eclipse.cdt.core.dom.lrparser.c99.C99Language; import org.eclipse.cdt.core.dom.lrparser.cpp.ISOCPPLanguage; import org.eclipse.cdt.core.model.ILanguage; -import org.eclipse.cdt.core.parser.CodeReader; import org.eclipse.cdt.core.parser.ParserLanguage; -import org.eclipse.cdt.core.parser.ScannerInfo; import org.eclipse.cdt.core.parser.tests.ast2.QuickParser2Tests; -import org.eclipse.cdt.core.parser.tests.scanner.FileCodeReaderFactory; public class LRQuickParser2Tests extends QuickParser2Tests { @@ -29,9 +26,11 @@ public class LRQuickParser2Tests extends QuickParser2Tests { protected void parse(String code, boolean expectedToPass, ParserLanguage lang, @SuppressWarnings("unused") boolean gcc) throws Exception { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - CodeReader reader = new CodeReader(code.toCharArray()); // don't check preprocessor problems for this test suite (causes tons of failures) - ParseHelper.parse(reader, language, new ScannerInfo(), FileCodeReaderFactory.getInstance(), expectedToPass, false, 0, null, false); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(expectedToPass); + options.setCheckPreprocessorProblems(false); + ParseHelper.parse(code, language, options); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java index 40dc773e455..c7839c8144c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java @@ -56,8 +56,10 @@ public class LRSelectionParseTest extends AST2SelectionParseTest { @Override protected IASTNode parse(String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, int offset, int length) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - - IASTTranslationUnit tu = ParseHelper.parse(code, language, useGNUExtensions, expectNoProblems, 0); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setCheckSyntaxProblems(expectNoProblems); + IASTTranslationUnit tu = ParseHelper.parse(code, language, options); return tu.selectNodeForLocation(tu.getFilePath(), offset, length); } @@ -68,7 +70,13 @@ public class LRSelectionParseTest extends AST2SelectionParseTest { String fileName = file.getLocation().toOSString(); ICodeReaderFactory fileCreator = SavedCodeReaderFactory.getInstance(); CodeReader reader = fileCreator.createCodeReaderForTranslationUnit(fileName); - return ParseHelper.parse(reader, language, scanInfo, fileCreator, expectNoProblems, true, 0, null, true); + + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setCheckSyntaxProblems(expectNoProblems); + options.setCheckBindings(true); + + return ParseHelper.parse(reader, language, scanInfo, fileCreator, options); } @Override diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java index c5ffa32c1cd..0064cb64247 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java @@ -32,9 +32,13 @@ public class LRSemanticsTests extends SemanticsTests { @SuppressWarnings("unused") @Override protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, - boolean expectNoProblems, boolean parseComments) throws ParserException { + boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - return ParseHelper.parse(code, language, expectNoProblems); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(expectNoProblems); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setSkipTrivialInitializers(skipTrivialInitializers); + return ParseHelper.parse(code, language, options); } protected ILanguage getC99Language() { diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java index 1882fc7a1ed..2340cd3cddd 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java @@ -30,14 +30,17 @@ public class LRTaskParserTest extends TaskParserTest { @Override @SuppressWarnings("unused") protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException { - ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - - return ParseHelper.parse(code, language, expectNoProblems); + return parse(code, lang, useGNUExtensions, expectNoProblems, false); } @Override - protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, @SuppressWarnings("unused") boolean parseComments) throws ParserException { - return parse(code,lang, useGNUExtensions, expectNoProblems ); + protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException { + ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(expectNoProblems); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setSkipTrivialInitializers(skipTrivialInitializers); + return ParseHelper.parse(code, language, options); } protected ILanguage getC99Language() { diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java index 4ccf6596ea0..03d977111fe 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java @@ -31,9 +31,13 @@ public class LRTemplateTests extends AST2TemplateTests { @Override @SuppressWarnings("unused") - protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, boolean parseComments) throws ParserException { + protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException { ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - return ParseHelper.parse(code, language, expectNoProblems); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(expectNoProblems); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setSkipTrivialInitializers(skipTrivialInitializers); + return ParseHelper.parse(code, language, options); } protected ILanguage getC99Language() { diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java index 85609357d57..de0fe373b1d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java @@ -42,14 +42,18 @@ public class LRTests extends AST2Tests { @Override - protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException { - ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); - return ParseHelper.parse(code, language, expectNoProblems); + protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException { + return parse(code, lang, useGNUExtensions, expectNoProblems, false); } @Override - protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, @SuppressWarnings("unused") boolean parseComments) throws ParserException { - return parse(code,lang, useGNUExtensions, expectNoProblems ); + protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException { + ILanguage language = lang.isCPP() ? getCPPLanguage() : getC99Language(); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(expectNoProblems); + options.setCheckPreprocessorProblems(expectNoProblems); + options.setSkipTrivialInitializers(skipTrivialInitializers); + return ParseHelper.parse(code, language, options); } protected ILanguage getC99Language() { diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java index 8ce2fbcad4c..66b022a7f7c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java @@ -75,56 +75,84 @@ public class ParseHelper { } - - public static IASTTranslationUnit parse(char[] code, ILanguage lang, boolean expectNoProblems, boolean checkBindings, int expectedProblemBindings) { - CodeReader codeReader = new CodeReader(code); - return parse(codeReader, lang, new ScannerInfo(), null, expectNoProblems, checkBindings, expectedProblemBindings, null, expectNoProblems); - } - public static IASTTranslationUnit parse(String code, ILanguage lang, boolean expectNoProblems, boolean checkBindings, int expectedProblemBindings) { - return parse(code.toCharArray(), lang, expectNoProblems, checkBindings, expectedProblemBindings); + public static class Options { + + boolean checkSyntaxProblems = true; + boolean checkPreprocessorProblems = true; + boolean checkBindings = false; + + int expectedProblemBindings; + String[] problems; + boolean skipTrivialInitializers; + + public Options setCheckSyntaxProblems(boolean checkSyntaxProblems) { + this.checkSyntaxProblems = checkSyntaxProblems; + return this; + } + public Options setCheckBindings(boolean checkBindings) { + this.checkBindings = checkBindings; + return this; + } + public Options setCheckPreprocessorProblems(boolean checkPreprocessorProblems) { + this.checkPreprocessorProblems = checkPreprocessorProblems; + return this; + } + public Options setExpectedProblemBindings(int expectedProblemBindings) { + this.expectedProblemBindings = expectedProblemBindings; + return this; + } + public Options setProblems(String[] problems) { + this.problems = problems; + setExpectedProblemBindings(problems.length); + setCheckBindings(true); + return this; + } + public Options setSkipTrivialInitializers(boolean skipTrivialInitializers) { + this.skipTrivialInitializers = skipTrivialInitializers; + return this; + } + } + public static IASTTranslationUnit parse(String code, ILanguage lang, boolean expectNoProblems) { - return parse(code, lang, expectNoProblems, false, 0); + Options options = new Options().setCheckSyntaxProblems(expectNoProblems).setCheckPreprocessorProblems(expectNoProblems); + return parse(code.toCharArray(), lang, options); } - public static IASTTranslationUnit parse(String code, ILanguage lang, String[] problems) { - CodeReader codeReader = new CodeReader(code.toCharArray()); - return parse(codeReader, lang, new ScannerInfo(), null, true, true, problems.length, problems, true); + public static IASTTranslationUnit parse(String code, ILanguage lang, Options options) { + return parse(code.toCharArray(), lang, options); } - + + public static IASTTranslationUnit parse(char[] code, ILanguage lang, Options options) { + CodeReader codeReader = new CodeReader(code); + return parse(codeReader, lang, new ScannerInfo(), null, options); + } + + /** * TODO thats WAY too many parameters, need to use a parameter object, need to refactor the * DOM parser test suite so that its a lot cleaner. - * - * @param codeReader - * @param language - * @param scanInfo - * @param fileCreator - * @param checkSyntaxProblems - * @param checkBindings - * @param expectedProblemBindings - * @param problems - * @param checkPreprocessorProblems - * @return */ public static IASTTranslationUnit parse(CodeReader codeReader, ILanguage language, IScannerInfo scanInfo, - ICodeReaderFactory fileCreator, boolean checkSyntaxProblems, - boolean checkBindings, int expectedProblemBindings, String[] problems, - boolean checkPreprocessorProblems) { + ICodeReaderFactory fileCreator, Options options) { testsRun++; IASTTranslationUnit tu; try { - tu = language.getASTTranslationUnit(codeReader, scanInfo, fileCreator, null, ParserUtil.getParserLogService()); + int languageOptions = 0; + if(options.skipTrivialInitializers) + languageOptions |= ILanguage.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS; + + tu = language.getASTTranslationUnit(codeReader, scanInfo, fileCreator, null, languageOptions, ParserUtil.getParserLogService()); } catch (CoreException e) { throw new AssertionFailedError(e.toString()); } // should parse correctly first before we look at the bindings - if(checkSyntaxProblems) { + if(options.checkSyntaxProblems) { // this should work for C++ also, CVisitor.getProblems() and CPPVisitor.getProblems() are exactly the same code! if (CVisitor.getProblems(tu).length != 0) { @@ -132,22 +160,22 @@ public class ParseHelper { } } - if(checkPreprocessorProblems) { + if(options.checkPreprocessorProblems) { if (tu.getPreprocessorProblems().length != 0) { throw new AssertionFailedError(language.getName() + " TranslationUnit has Preprocessor Problems " ); } } // resolve all bindings - if (checkBindings) { + if (options.checkBindings) { NameResolver res = new NameResolver(); tu.accept( res ); - if(res.problemBindings.size() != expectedProblemBindings) - throw new AssertionFailedError("Expected " + expectedProblemBindings + " problem(s), encountered " + res.problemBindings.size()); + if(res.problemBindings.size() != options.expectedProblemBindings) + throw new AssertionFailedError("Expected " + options.expectedProblemBindings + " problem(s), encountered " + res.problemBindings.size()); - if(problems != null) { - for(int i = 0; i < problems.length; i++) { - String expected = problems[i]; + if(options.problems != null) { + for(int i = 0; i < options.problems.length; i++) { + String expected = options.problems[i]; String actual = res.problemBindings.get(i); if(!expected.equals(actual)) throw new AssertionFailedError(String.format("Problem binding not equal, expected: %s, got: %s", expected, actual)); 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 eaf874b007a..c909bd88eef 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g @@ -890,9 +890,20 @@ function_direct_abstract_declarator initializer ::= assignment_expression /. $Build consumeInitializer(); $EndBuild ./ - | '{' <openscope-ast> initializer_list comma_opt '}' + | start_initializer_list '{' <openscope-ast> initializer_list comma_opt '}' end_initializer_list /. $Build consumeInitializerList(); $EndBuild ./ + | '{' <openscope-ast> '}' + /. $Build consumeInitializerList(); $EndBuild ./ + +start_initializer_list + ::= $empty + /. $Build initializerListStart(); $EndBuild ./ + +end_initializer_list + ::= $empty + /. $Build initializerListEnd(); $EndBuild ./ + initializer_list ::= initializer diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/common.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/common.g index 3cd0fe8bd94..5da31bbf3b6 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/common.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/common.g @@ -66,8 +66,9 @@ $Headers public $action_type() { // constructor } - private void initActions(IASTTranslationUnit tu) { + private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { action = new $build_action_class($node_factory_create_expression, this, tu); + action.setParserOptions(options); } @@ -77,10 +78,10 @@ $Headers } - public IASTCompletionNode parse(IASTTranslationUnit tu) { + public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse 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 f9da445b835..3264a9fcfc4 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -178,13 +178,15 @@ $Headers public $action_type() { // constructor } - private void initActions(IASTTranslationUnit tu) { + private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { // binding resolution actions need access to IASTName nodes, temporary action = new $action_class(); //action.resolver = new $resolve_action_class(this); action.builder = new $build_action_class($node_factory_create_expression, this, tu); //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); + action.builder.setParserOptions(options); + // comment this line to use with backtracking parser //setParserAction(action); } @@ -196,10 +198,10 @@ $Headers } - public IASTCompletionNode parse(IASTTranslationUnit tu) { + public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // _1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1451,14 +1453,22 @@ initializer initializer_clause ::= assignment_expression /. $Build consumeInitializer(); $EndBuild ./ - | '{' <openscope-ast> initializer_list ',' '}' + | start_initializer_list '{' <openscope-ast> initializer_list ',' '}' end_initializer_list /. $Build consumeInitializerList(); $EndBuild ./ - | '{' <openscope-ast> initializer_list '}' + | start_initializer_list '{' <openscope-ast> initializer_list '}' end_initializer_list /. $Build consumeInitializerList(); $EndBuild ./ | '{' <openscope-ast> '}' /. $Build consumeInitializerList(); $EndBuild ./ +start_initializer_list + ::= $empty + /. $Build initializerListStart(); $EndBuild ./ + +end_initializer_list + ::= $empty + /. $Build initializerListEnd(); $EndBuild ./ + initializer_list ::= initializer_clause | initializer_list ',' initializer_clause diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java index db0aca142ad..0e95a9d4d09 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java @@ -10,11 +10,16 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser; +import java.util.EnumSet; +import java.util.HashSet; +import java.util.Set; + import org.eclipse.cdt.core.dom.ICodeReaderFactory; import org.eclipse.cdt.core.dom.ast.IASTCompletionNode; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage; +import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage; import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.model.AbstractLanguage; @@ -41,8 +46,8 @@ import org.eclipse.core.runtime.CoreException; public abstract class BaseExtensibleLanguage extends AbstractLanguage { - private static final boolean DEBUG_PRINT_GCC_AST = false; - private static final boolean DEBUG_PRINT_AST = false; + private static final boolean DEBUG_PRINT_GCC_AST = true; + private static final boolean DEBUG_PRINT_AST = true; /** @@ -96,8 +101,8 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { IASTTranslationUnit gtu = null; if(DEBUG_PRINT_GCC_AST) { - ILanguage gppLanguage = GCCLanguage.getDefault(); - gtu = gppLanguage.getASTTranslationUnit(reader, scanInfo, fileCreator, index, log); + ILanguage gppLanguage = getParserLanguage() == ParserLanguage.CPP ? GPPLanguage.getDefault() : GCCLanguage.getDefault(); + gtu = gppLanguage.getASTTranslationUnit(reader, scanInfo, fileCreator, index, options, log); System.out.println(); System.out.println("********************************************************"); @@ -121,7 +126,16 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { IParser parser = getParser(); CPreprocessorAdapter.runCPreprocessor(preprocessor, parser, getTokenMap(), tu); - parser.parse(tu); // The parser will fill in the rest of the AST + Set<IParser.Options> parserOptions = new HashSet<IParser.Options>(); + //if((options & OPTION_SKIP_FUNCTION_BODIES) != 0) + // parserOptions.add(IParser.Options.OPTION_SKIP_FUNCTION_BODIES); + if((options & OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS) != 0) + parserOptions.add(IParser.Options.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS); + + if(!parserOptions.isEmpty()) + parserOptions = EnumSet.copyOf(parserOptions); + + parser.parse(tu, parserOptions); // The parser will fill in the rest of the AST // the TU is marked as either a source file or a header file tu.setIsHeaderUnit((options & OPTION_IS_SOURCE_UNIT) == 0); @@ -172,18 +186,14 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { CPreprocessorAdapter.runCPreprocessor(preprocessor, parser, getTokenMap(), tu); // the parser will fill in the rest of the AST - IASTCompletionNode completionNode = parser.parse(tu); + Set<IParser.Options> parserOptions = EnumSet.of(IParser.Options.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS); + IASTCompletionNode completionNode = parser.parse(tu, parserOptions); if(DEBUG_PRINT_AST) { System.out.println("Base Extensible Language AST:"); printCompletionNode(completionNode); } -// List<String> messages = ASTComparer.compare(completionNode.getTranslationUnit(), cn.getTranslationUnit()); -// for(String m : messages) { -// System.out.println(m); -// } - return completionNode; } 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 c713971342f..61ffd482daa 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 @@ -10,9 +10,13 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser; +import java.util.EnumSet; +import java.util.Set; + import org.eclipse.cdt.core.dom.ast.IASTCompletionNode; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; +import org.eclipse.cdt.core.model.ILanguage; /** @@ -23,6 +27,30 @@ import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; public interface IParser extends ITokenCollector { /** + * Options used by implementations of IParser. Some of the options + * may be duplicates of the options in ILanguage. + * @see ILanguage + */ + public enum Options { + + /** + * 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. + */ + //OPTION_SKIP_FUNCTION_BODIES, + + /** + * Instructs the parser not to create AST nodes for expressions + * within aggregate initializers when they do not contain names. + * + * https://bugs.eclipse.org/bugs/show_bug.cgi?id=253690 + */ + OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS, + } + + + /** * Performs the actual parse. * * The given translation unit is assumed to not have any children, during the parse @@ -34,10 +62,13 @@ public interface IParser extends ITokenCollector { * If the parser encounters a completion token then a completion node * is returned, null is returned otherwise. * - * @param tu An IASTTranslationUnit instance that will have its declarators filled in. + * @param tu An IASTTranslationUnit instance that will have its declarations filled in. + * @param options a Set of parser options, use an EnumSet * @return a completion node if a completion token is encountered during the parser, null otherwise. + * @throws NullPointerException if either parameter is null + * @see EnumSet */ - public IASTCompletionNode parse(IASTTranslationUnit tu); + public IASTCompletionNode parse(IASTTranslationUnit tu, Set<Options> options); /** 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 6a5f0ca11c7..edc2e2537e1 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java @@ -10,7 +10,9 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.action; +import java.util.EnumSet; import java.util.List; +import java.util.Set; import lpg.lpgjavaruntime.IToken; @@ -71,6 +73,7 @@ import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.parser.IProblem; import org.eclipse.cdt.core.parser.util.DebugUtil; import org.eclipse.cdt.internal.core.dom.parser.ASTNode; +import org.eclipse.cdt.internal.core.dom.parser.ASTQueries; import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit; import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousExpression; import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousStatement; @@ -118,6 +121,9 @@ public abstract class BuildASTParserAction { /** Abstract factory for creating AST node objects */ private final INodeFactory nodeFactory; + /** Options that change the behavior of the parser actions */ + protected Set<IParser.Options> options = EnumSet.noneOf(IParser.Options.class); + /** * Completion tokens are represented by different kinds by different parsers. @@ -171,6 +177,10 @@ public abstract class BuildASTParserAction { } + public void setParserOptions(Set<IParser.Options> options) { + this.options = options == null ? EnumSet.noneOf(IParser.Options.class) : options; + } + /** * Creates a completion node if one does not yet exist and adds the * given name to it. @@ -296,7 +306,7 @@ public abstract class BuildASTParserAction { secondaryParser.setTokens(tokens); // need to pass tu because any new completion nodes need to be linked directly to the root - IASTCompletionNode compNode = secondaryParser.parse(tu); + IASTCompletionNode compNode = secondaryParser.parse(tu, options); addNameToCompletionNode(compNode); IASTNode result = secondaryParser.getSecondaryParseResult(); @@ -1389,6 +1399,16 @@ public abstract class BuildASTParserAction { } + private int initializerListNestingLevel = 0; + + public void initializerListStart() { + initializerListNestingLevel++; + } + + public void initializerListEnd() { + initializerListNestingLevel--; + } + /** * initializer ::= assignment_expression */ @@ -1396,14 +1416,27 @@ public abstract class BuildASTParserAction { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); IASTExpression expr = (IASTExpression) astStack.pop(); + if(discardInitializer(expr)) { + astStack.push(null); + return; + } + IASTInitializerExpression initializer = nodeFactory.newInitializerExpression(expr); - setOffsetAndLength(initializer); - astStack.push(initializer); + setOffsetAndLength(initializer); + astStack.push(initializer); if(TRACE_AST_STACK) System.out.println(astStack); } + private boolean discardInitializer(IASTExpression expression) { + return initializerListNestingLevel > 0 + && options.contains(IParser.Options.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS) + && !ASTQueries.canContainName(expression); + } + + + /** * initializer ::= '{' <openscope> initializer_list '}' * | '{' <openscope> initializer_list ',' '}' @@ -1424,6 +1457,8 @@ public abstract class BuildASTParserAction { + + /** * struct_declarator * ::= ':' constant_expression 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 552826550d8..06e9548e715 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 @@ -169,8 +169,9 @@ private C99BuildASTParserAction action; public C99ExpressionParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu); + action.setParserOptions(options); } @@ -180,10 +181,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1159,99 +1160,117 @@ public C99ExpressionParser(String[] mapFrom) { // constructor } // - // Rule 279: initializer ::= { <openscope-ast> initializer_list comma_opt } + // Rule 279: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 279: { action. consumeInitializerList(); break; } // - // Rule 284: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 280: initializer ::= { <openscope-ast> } // - case 284: { action. consumeInitializerDesignated(); break; + case 280: { action. consumeInitializerList(); break; } // - // Rule 288: designator_base ::= [ constant_expression ] + // Rule 281: start_initializer_list ::= $Empty // - case 288: { action. consumeDesignatorArray(); break; + case 281: { action. initializerListStart(); break; } // - // Rule 289: designator_base ::= . identifier_or_typedefname + // Rule 282: end_initializer_list ::= $Empty // - case 289: { action. consumeDesignatorField(); break; + case 282: { action. initializerListEnd(); break; } // - // Rule 290: designator ::= [ constant_expression ] + // Rule 287: designated_initializer ::= <openscope-ast> designation = initializer // - case 290: { action. consumeDesignatorArray(); break; + case 287: { action. consumeInitializerDesignated(); break; } // - // Rule 291: designator ::= . identifier_or_typedefname + // Rule 291: designator_base ::= [ constant_expression ] // - case 291: { action. consumeDesignatorField(); break; + case 291: { action. consumeDesignatorArray(); break; } // - // Rule 292: translation_unit ::= external_declaration_list + // Rule 292: designator_base ::= . identifier_or_typedefname // - case 292: { action. consumeTranslationUnit(); break; + case 292: { action. consumeDesignatorField(); break; + } + + // + // Rule 293: designator ::= [ constant_expression ] + // + case 293: { action. consumeDesignatorArray(); break; + } + + // + // Rule 294: designator ::= . identifier_or_typedefname + // + case 294: { action. consumeDesignatorField(); break; + } + + // + // Rule 295: translation_unit ::= external_declaration_list + // + case 295: { action. consumeTranslationUnit(); break; } // - // Rule 293: translation_unit ::= $Empty + // Rule 296: translation_unit ::= $Empty // - case 293: { action. consumeTranslationUnit(); break; + case 296: { action. consumeTranslationUnit(); break; } // - // Rule 298: external_declaration ::= ; + // Rule 301: external_declaration ::= ; // - case 298: { action. consumeDeclarationEmpty(); break; + case 301: { action. consumeDeclarationEmpty(); break; } // - // Rule 299: external_declaration ::= ERROR_TOKEN + // Rule 302: external_declaration ::= ERROR_TOKEN // - case 299: { action. consumeDeclarationProblem(); break; + case 302: { action. consumeDeclarationProblem(); break; } // - // Rule 302: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 305: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 302: { action. consumeFunctionDefinition(true); break; + case 305: { action. consumeFunctionDefinition(true); break; } // - // Rule 303: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 306: function_definition ::= <openscope-ast> function_declarator function_body // - case 303: { action. consumeFunctionDefinition(false); break; + case 306: { action. consumeFunctionDefinition(false); break; } // - // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 304: { action. consumeFunctionDefinitionKnR(); break; + case 307: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 305: function_body ::= { } + // Rule 308: function_body ::= { } // - case 305: { action. consumeStatementCompoundStatement(false); break; + case 308: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 306: function_body ::= { <openscope-ast> block_item_list } + // Rule 309: function_body ::= { <openscope-ast> block_item_list } // - case 306: { action. consumeStatementCompoundStatement(true); break; + case 309: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 308: expression_parser_start ::= ERROR_TOKEN + // Rule 311: expression_parser_start ::= ERROR_TOKEN // - case 308: { action. consumeExpressionProblem(); break; + case 311: { action. consumeExpressionProblem(); 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 4425b19d9b7..ddaefc6eb48 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 @@ -61,152 +61,151 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 4,6,6,3,5,1,1,2,3,4, 1,2,1,3,1,1,3,2,1,1, 1,1,2,1,2,3,1,1,1,3, - 1,2,2,2,3,4,5,1,5,1, - 1,3,3,4,1,1,2,3,2,3, - 2,1,0,1,2,1,1,1,1,1, - 2,4,3,6,2,4,1,1,-37,0, - 0,0,0,0,0,0,-2,0,0,0, - 0,0,0,0,0,0,0,0,-73,0, - 0,-4,-14,-30,-16,-17,0,0,0,0, - -124,0,0,0,0,0,0,0,0,0, + 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,-2, 0,0,0,0,0,0,0,0,0,0, - 0,-180,0,-113,0,0,0,0,0,0, - 0,0,0,0,-34,-18,-19,0,-20,0, - 0,0,0,0,0,0,0,0,-35,-68, - -21,-172,-22,0,0,0,0,0,0,0, + 0,-73,0,0,-4,-14,-16,-81,-17,0, + 0,0,0,-124,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-173,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-38,0,0,0, + 0,0,0,0,0,0,0,0,-18,-19, + 0,-20,-21,0,0,0,0,0,0,0, + -5,0,0,0,0,0,0,-6,0,0, + 0,0,0,0,0,-12,0,0,0,0, + 0,0,-30,-22,0,-194,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-168,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-169,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-31,-23,-194,-76,-130,-3,0,0,0, + 0,0,0,0,0,-182,-130,-188,-82,-23, + -56,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-143, + 0,-34,0,0,0,0,0,-31,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-71,0,-74,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -143,0,0,-24,0,-49,0,0,0,0, - 0,0,0,-158,0,0,0,0,0,-74, + 0,0,0,0,0,-24,0,-25,0,-190, + 0,0,0,0,0,0,0,-26,0,0, + 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,0, - 0,0,-154,0,-25,-26,-87,0,-110,0, + 0,0,-87,-88,-52,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-89, + 0,-110,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-129,0, - 0,0,0,0,0,0,-88,0,0,0, + 0,-76,-147,-129,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,-69,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,-89,-90,-91,-92,-93,-57,0, + 0,0,0,0,0,-90,0,0,-27,0, + 0,0,0,0,0,0,-35,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,-58,0, - 0,0,0,0,0,0,-70,0,0,0, + 0,0,0,0,0,0,-68,0,0,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,-60,0, - 0,0,0,0,0,0,-114,0,0,0, + 0,0,0,0,0,0,-69,0,0,0, 0,0,0,0,0,0,0,0,-61,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-62,0, - 0,0,0,0,0,0,-131,0,0,0, + 0,0,0,0,0,0,-70,0,0,0, 0,0,0,0,0,0,0,0,-63,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-64,0, - 0,0,0,0,0,0,-156,0,0,0, + 0,0,0,0,0,0,-114,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,-66,0, - 0,0,0,0,0,0,-94,0,0,0, + 0,0,0,0,0,0,-91,0,0,0, 0,0,0,0,0,0,0,0,-67,0, 0,0,0,0,0,0,-133,0,0,0, - 0,0,0,0,0,0,0,0,-38,0, - 0,0,0,0,0,0,-177,0,0,-95, - -96,-97,-81,-98,0,0,0,0,-147,0, - 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,-131,0,0,-92, + -93,-94,-84,-95,0,0,0,0,-148,0, 0,0,0,0,0,0,0,0,0,0, - 0,-6,0,0,0,0,0,0,0,0, - 0,0,-5,0,0,0,0,0,0,0, - 0,0,0,0,-148,0,0,0,0,0, - 0,0,-202,0,0,0,0,0,0,0, - 0,0,0,0,-171,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,-99,0,0,0,0,0,0,0,0, - 0,0,-191,0,0,0,0,0,0,0, + 0,-7,0,0,0,0,0,0,-77,0, + 0,0,0,-13,0,0,0,0,0,0, + 0,0,0,0,0,-149,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-195,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-172,0,0,0,0, + 0,0,0,-96,0,0,0,0,0,0, + 0,0,0,0,-187,0,0,0,0,0, + 0,0,-173,0,0,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, - -205,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-123, + 0,0,-197,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-100,-132, - -12,0,0,0,0,0,0,0,-56,0, - 0,0,0,0,0,0,-101,0,0,0, - 0,0,0,0,0,-150,0,0,0,0, - 0,0,-151,0,0,0,0,0,0,0, - 0,0,0,0,0,-116,0,-107,-77,0, - -142,-102,0,0,-71,0,-109,0,-82,0, - -79,-103,-146,-111,0,0,0,0,0,0, + 0,-207,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -104,0,0,0,0,0,0,0,0,0, - 0,0,0,-55,0,0,0,0,0,0, + -123,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-97, + -132,-142,-176,-98,-99,0,-155,0,0,-53, + 0,0,0,0,0,0,0,-100,0,0, + 0,0,0,0,0,0,-113,0,0,0, + 0,0,0,-152,0,0,0,0,0,0, + 0,0,0,0,0,0,-33,0,-160,-107, + 0,-109,0,0,0,0,0,0,0,0, + 0,-86,-101,-126,-211,-164,-116,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -52,0,0,0,0,0,0,0,-86,0, - 0,0,0,0,0,-53,0,0,0,0, - 0,0,0,-80,0,0,0,0,0,0, - 0,-186,-84,-198,-118,-120,0,0,0,0, - -182,-75,0,0,0,0,-174,-105,0,0, - -106,0,0,0,0,-204,-159,-121,0,0, - 0,0,0,0,0,0,0,0,0,-163, + 0,-102,0,0,0,0,0,0,0,0, + 0,0,0,0,-55,0,0,0,0,0, + 0,0,-157,0,0,0,0,0,0,0, + 0,-184,-118,0,-140,0,0,0,-111,0, + 0,0,0,-103,0,0,0,0,-49,0, + 0,0,0,0,0,0,-206,0,0,0, + 0,0,0,-128,0,0,0,0,0,0, + 0,0,-104,0,-105,-150,-79,-153,0,-43, 0,0,0,0,0,0,0,0,0,0, - 0,-117,0,0,0,0,0,0,-125,0, - 0,0,0,0,0,0,0,0,-128,-119, - -122,0,0,-50,0,0,0,0,0,0, - 0,-134,0,0,0,-136,-164,-162,0,0, - 0,-165,0,0,0,0,-7,0,0,0, - 0,0,0,0,0,-51,0,0,0,0, - 0,0,0,0,0,0,0,-43,0,0, - 0,0,0,0,0,-169,0,0,-44,0, - 0,0,0,0,0,0,-152,0,0,-45, - 0,0,0,0,0,0,0,-196,0,0, - -46,0,0,0,0,0,0,0,-197,0, - 0,0,-167,-149,-153,-207,0,-47,0,0, - 0,0,0,0,0,0,0,-48,0,0, - 0,0,0,0,0,-78,0,0,0,0, - 0,-179,0,0,0,0,0,0,0,0, - -36,-138,-32,0,0,0,0,0,0,0, - 0,0,-206,0,0,0,0,-39,0,0, - 0,0,0,0,0,0,-8,0,0,0, - 0,0,0,-141,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-9,0,0,0,0,0,0, - 0,-10,0,0,0,0,0,0,-11,0, - 0,0,0,0,0,-15,-144,-28,-170,-29, - -175,0,-176,0,0,0,0,0,-40,0, - 0,0,0,0,0,-189,0,-187,0,0, - 0,-192,0,0,0,0,0,0,0,0, - 0,0,0,-200,0,0,0,0,0,0, - 0,-41,0,0,0,0,0,0,-42,0, - 0,0,0,0,0,-83,0,0,0,-85, - 0,-72,0,0,0,0,0,0,0,0, - -115,-33,0,-190,-54,-181,0,0,0,0, + -32,0,0,0,0,0,0,0,0,-106, + 0,0,-179,-117,-119,0,0,0,-50,0, + 0,0,0,0,0,0,-120,0,0,0, + -122,-134,0,0,0,0,0,-51,0,0, + 0,0,0,0,0,-189,0,0,0,-44, + 0,0,0,0,0,0,0,-167,0,0, + -45,0,0,0,0,0,0,0,-145,0, + 0,-46,0,0,0,0,0,0,0,-199, + 0,0,-171,-154,0,0,-177,0,-47,0, + 0,0,0,0,0,0,0,0,-48,0, + 0,0,0,0,0,0,-165,0,0,0, + 0,-196,-75,0,0,0,0,0,0,0, + 0,-78,-36,-112,0,-121,0,-125,-181,-178, + 0,-166,0,0,-108,0,0,0,0,0, + -80,-170,0,0,0,0,-198,0,0,0, + 0,0,0,0,0,0,0,0,-208,0, + -210,0,0,-192,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-137,0,0,-139,-178,-183,0,-193,0, - 0,0,0,0,0,-157,0,0,-161,-184, - -199,0,0,0,0,0,0,0,0,0, + 0,0,0,-151,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-8, + 0,0,0,0,0,0,0,0,-9,0, + 0,0,0,0,0,-10,0,0,0,0, + 0,0,-11,0,0,0,0,0,0,-15, + -136,-28,-138,-29,-159,-204,0,0,0,0, + 0,0,-40,0,0,0,0,0,0,-141, + -144,-175,0,-205,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-191,0, + 0,0,0,0,0,-41,0,0,0,0, + 0,0,-42,0,0,0,0,0,0,-83, + -203,0,0,0,-85,0,-72,0,0,0, + 0,0,0,-163,-115,-54,-1,-168,0,-174, 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,-137,0,-139,0, + 0,0,-158,0,0,0,0,-200,0,0, + 0,0,-180,-183,-202,-127,0,0,-195,0, + 0,0,0,0,0,0,0,-146,0,0, + 0,0,-162,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,-140,0,0,-13,0,0,0,0, - 0,-1,-166,-112,0,0,0,0,0,0, - 0,-127,-160,-155,0,-201,0,-203,0,0, - 0,0,0,0,0,0,0,0,-126,0, - -145,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-135, + 0,0,0,-185,0,-186,-201,0,0,0, + -156,0,0,0,-209,0,-161,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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; @@ -216,180 +215,179 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface BaseAction { public final static char baseAction[] = { - 83,8,24,24,20,20,26,26,68,68, + 84,8,24,24,20,20,26,26,69,69, 1,1,1,1,2,2,2,3,3,4, - 4,4,4,4,4,4,4,51,51,69, - 69,5,5,5,5,5,5,5,5,5, + 4,4,4,4,4,4,4,51,51,70, + 70,5,5,5,5,5,5,5,5,5, 5,5,6,6,7,7,7,7,9,9, 9,10,10,10,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,93,41,33,84, - 84,71,71,46,94,94,94,94,94,94, - 94,95,95,95,96,96,101,101,102,102, - 97,97,98,98,98,104,104,99,99,99, - 99,100,100,100,100,100,103,103,23,23, - 23,23,23,28,28,28,77,77,72,72, - 72,72,73,73,73,74,74,74,75,75, - 75,76,76,76,105,105,106,106,107,29, + 19,19,19,19,19,19,95,41,33,85, + 85,72,72,46,96,96,96,96,96,96, + 96,97,97,97,98,98,103,103,104,104, + 99,99,100,100,100,106,106,101,101,101, + 101,102,102,102,102,102,105,105,23,23, + 23,23,23,28,28,28,78,78,73,73, + 73,73,74,74,74,75,75,75,76,76, + 76,77,77,77,107,107,108,108,109,29, 31,31,31,31,31,52,54,54,54,54, - 54,54,54,54,54,54,54,54,65,65, - 27,27,62,62,62,62,63,63,63,55, - 55,56,56,48,48,48,32,85,85,78, - 79,79,79,64,64,80,80,81,81,66, - 66,21,22,22,22,30,47,47,34,34, + 54,54,54,54,54,54,54,54,66,66, + 27,27,63,63,63,63,64,64,64,55, + 55,56,56,48,48,48,32,86,86,79, + 80,80,80,65,65,81,81,82,82,67, + 67,21,22,22,22,30,47,47,34,34, 34,34,37,37,39,35,35,36,40,40, - 108,108,38,109,109,86,86,25,25,25, - 25,25,25,25,25,25,82,49,49,49, + 110,110,38,111,111,87,87,25,25,25, + 25,25,25,25,25,25,83,49,49,49, 49,58,58,57,57,57,59,59,50,50, - 87,87,61,61,60,60,60,42,42,42, + 88,88,62,62,60,60,60,42,42,42, 43,44,44,44,45,45,45,45,53,53, - 70,70,70,70,67,88,89,89,90,90, - 91,91,110,110,111,111,112,112,112,112, - 114,114,113,113,113,115,115,83,83,1, - 14,19,15,333,526,44,336,107,335,377, - 376,391,379,453,393,525,484,74,91,260, - 134,211,42,831,248,192,209,136,133,135, - 159,554,14,19,15,333,526,44,336,481, - 335,377,376,391,379,453,393,525,484,74, - 278,138,429,165,463,14,19,15,333,42, - 35,142,145,148,151,470,13,56,1594,386, - 332,1366,1101,1174,1516,1520,1159,271,244,470, - 470,139,734,91,280,1522,217,1317,219,1345, - 221,222,227,23,266,1089,455,269,281,16, - 1198,1091,554,14,19,15,333,526,44,336, - 481,335,377,376,391,379,453,393,525,484, - 74,278,434,14,19,15,333,526,44,336, - 481,335,377,376,391,379,453,393,525,484, - 74,278,248,57,165,279,331,612,14,19, - 15,333,526,44,336,280,335,377,376,391, - 379,453,393,525,484,74,91,252,211,281, - 272,673,1482,287,374,282,612,14,19,15, - 333,42,44,336,309,335,377,376,852,283, - 368,14,19,15,333,526,44,336,1634,335, - 377,376,391,379,453,393,525,484,74,1104, - 183,22,193,260,237,218,702,724,332,696, - 14,19,15,333,526,44,336,1642,335,377, - 376,391,379,453,393,525,484,74,1249,401, - 14,19,15,333,526,44,336,743,335,377, - 376,391,379,453,393,525,484,74,1344,1306, - 392,286,362,238,583,14,19,15,333,526, - 44,336,470,335,377,376,391,379,453,393, - 525,484,74,278,612,14,19,15,333,526, - 44,336,1201,335,377,376,391,379,453,393, - 525,484,74,92,212,257,492,512,569,612, - 14,19,15,333,526,44,336,284,335,377, - 376,391,379,453,393,525,484,74,85,612, - 14,19,15,333,526,44,336,470,335,377, - 376,391,379,453,393,525,484,74,84,612, - 14,19,15,333,526,44,336,21,335,377, - 376,391,379,453,393,525,484,74,83,612, - 14,19,15,333,526,44,336,470,335,377, - 376,391,379,453,393,525,484,74,82,612, - 14,19,15,333,526,44,336,270,335,377, - 376,391,379,453,393,525,484,74,81,612, - 14,19,15,333,526,44,336,470,335,377, - 376,391,379,453,393,525,484,74,80,612, - 14,19,15,333,526,44,336,276,335,377, - 376,391,379,453,393,525,484,74,79,612, - 14,19,15,333,526,44,336,470,335,377, - 376,391,379,453,393,525,484,74,78,612, - 14,19,15,333,526,44,336,277,335,377, - 376,391,379,453,393,525,484,74,77,612, - 14,19,15,333,526,44,336,571,335,377, - 376,391,379,453,393,525,484,74,76,612, - 14,19,15,333,526,44,336,286,335,377, - 376,391,379,453,393,525,484,74,75,612, - 14,19,15,333,42,44,614,470,134,211, - 407,440,501,118,58,136,133,135,159,612, - 14,19,15,333,526,44,336,223,335,377, - 376,391,379,453,393,525,484,74,1461,138, - 1232,165,612,14,19,15,333,42,39,142, - 145,148,151,640,14,19,15,333,40,1366, - 1101,1174,1516,1520,1159,612,14,19,15,333, - 526,44,336,470,335,377,376,391,379,453, - 393,525,484,74,1463,612,14,19,15,333, - 42,44,336,228,335,377,376,391,379,453, - 393,525,484,93,612,14,19,15,333,42, - 44,336,106,335,377,376,391,379,453,393, - 525,484,93,612,14,19,15,333,42,44, - 336,1476,335,377,376,391,379,453,393,525, - 484,93,612,14,19,15,333,42,44,336, - 210,335,377,376,391,379,453,393,525,484, - 93,612,14,19,15,333,42,44,336,1494, - 335,377,376,391,379,453,393,525,484,93, - 612,14,19,15,333,42,44,336,201,335, - 377,376,391,379,453,393,525,484,73,385, - 396,668,14,19,15,333,33,202,523,612, - 14,19,15,333,42,44,336,524,335,377, - 376,391,379,453,1121,271,463,14,19,15, - 333,42,35,840,216,1317,219,1345,221,222, - 227,1556,264,1089,455,269,472,260,6,469, - 245,682,446,274,1612,117,341,59,271,166, - 261,782,413,340,117,1659,275,216,1317,219, - 1345,221,222,227,273,264,1089,455,269,20, - 847,415,134,211,252,211,1250,258,239,144, - 133,135,159,687,612,14,19,15,333,42, - 44,336,1343,335,377,376,391,379,453,393, - 1102,612,14,19,15,333,42,44,336,286, - 335,377,376,391,379,1039,612,14,19,15, - 333,42,44,336,795,335,377,376,391,1057, - 134,211,597,214,260,6,6,137,133,135, - 159,152,844,1552,1555,134,211,376,531,1184, - 1531,601,147,133,135,159,152,647,6,1267, - 1251,139,274,165,1184,1191,1623,271,252,211, - 708,143,146,149,152,216,1317,219,1345,221, - 222,227,621,1393,264,1089,455,269,1328,299, - 216,1317,219,1345,221,222,227,1661,208,117, - 628,675,687,1328,612,14,19,15,333,42, - 44,336,449,335,377,854,6,508,309,197, - 199,1570,711,241,1566,194,454,612,14,19, - 15,333,42,38,198,199,612,14,19,15, - 333,42,44,336,182,335,377,952,612,14, - 19,15,333,42,44,336,510,335,616,612, - 14,19,15,333,42,44,336,674,335,617, - 612,14,19,15,333,42,44,336,533,335, - 618,612,14,19,15,333,42,44,336,72, - 335,807,226,309,117,646,258,1184,612,14, - 19,15,333,42,44,336,1739,850,612,14, - 19,15,333,42,44,336,327,851,240,26, - 225,1739,472,216,1317,219,1345,221,222,227, - 1559,491,6,375,1739,1739,847,134,211,329, - 1569,457,229,350,141,133,135,159,612,14, - 19,15,333,42,44,615,271,612,14,19, - 15,333,42,37,6,1739,89,1739,140,1739, - 165,1739,1633,264,1089,455,269,217,1317,219, - 1345,221,222,227,612,14,19,15,333,42, - 36,263,612,14,19,15,333,42,35,612, - 14,19,15,333,42,34,6,6,6,597, - 6,117,1739,117,309,412,309,647,309,612, - 14,19,15,333,42,47,117,1739,708,196, - 1739,196,682,196,1739,242,289,243,1381,87, - 1381,87,1381,87,117,1739,1739,389,1739,389, - 288,389,612,14,19,15,333,42,46,612, - 14,19,15,333,42,45,808,375,290,390, - 821,582,525,14,19,15,333,42,43,1571, - 1739,595,6,1646,597,6,309,134,211,827, - 457,134,211,457,150,133,135,159,153,133, - 135,159,46,1739,1040,94,595,309,1739,626, - 827,291,185,827,827,87,142,827,87,238, - 309,309,1739,1095,827,196,1092,827,196,1040, - 1594,256,1040,184,1207,1739,1739,1207,727,196, - 1262,1739,196,1739,530,1739,203,204,1207,1739, - 191,1207,1739,191,1739,362,256,494,1643,256, - 1268,1643,48,727,191,1262,913,191,1262,271, - 827,1536,1643,588,1557,1643,668,14,19,15, - 333,32,496,588,290,1040,266,1089,455,269, - 457,1739,290,190,630,1648,309,1739,308,1739, - 1267,827,827,1739,1739,251,211,1739,1739,290, - 1267,290,256,251,211,87,196,1040,232,767, - 1739,1262,279,307,1739,1207,1739,1739,1739,1739, - 251,211,251,211,1739,1739,1739,1739,1739,207, - 1739,192,456,1739,257,1739,1739,1739,1739,207, - 456,1739,1739,1220,1272,1739,1739,1739,1739,1739, - 1739,1739,1739,1478,1272,317,549,1103,1739,1197, - 1739,1739,1739,1739,859,1739,0,17,179,0, - 18,178,0,1,1963,0,1,1974,0 + 53,61,89,71,71,71,71,68,90,91, + 91,92,92,93,93,112,112,113,113,114, + 114,114,114,116,116,115,115,115,117,117, + 84,84,1,14,19,15,336,538,44,339, + 109,337,380,379,383,382,460,414,528,526, + 74,91,412,134,211,42,338,51,215,104, + 136,133,135,159,546,14,19,15,336,538, + 44,339,480,337,380,379,383,382,460,414, + 528,526,74,278,138,1274,165,633,14,19, + 15,336,42,44,590,142,145,148,151,14, + 107,1395,93,280,335,1382,1237,1401,1550,1555, + 1142,662,14,19,15,336,40,283,633,14, + 19,15,336,42,39,1329,691,14,19,15, + 336,33,284,56,153,1082,604,14,19,15, + 336,538,44,339,480,337,380,379,383,382, + 460,414,528,526,74,278,429,14,19,15, + 336,538,44,339,480,337,380,379,383,382, + 460,414,528,526,74,278,772,348,651,263, + 343,633,14,19,15,336,42,44,339,283, + 337,380,379,383,382,460,1233,1329,252,211, + 501,271,377,23,284,1367,1275,1551,56,285, + 217,1238,219,1344,221,222,227,1329,266,929, + 612,269,1557,262,286,369,14,19,15,336, + 538,44,339,1384,337,380,379,383,382,460, + 414,528,526,74,1199,208,307,20,141,237, + 575,14,19,15,336,538,44,339,727,337, + 380,379,383,382,460,414,528,526,74,278, + 633,14,19,15,336,538,44,339,22,337, + 380,379,383,382,460,414,528,526,74,91, + 1402,993,289,749,775,633,14,19,15,336, + 42,44,339,287,337,380,379,383,382,1098, + 200,1329,720,14,19,15,336,538,44,339, + 1606,337,380,379,383,382,460,414,528,526, + 74,1224,219,487,399,14,19,15,336,538, + 44,339,335,337,380,379,383,382,460,414, + 528,526,74,1236,252,211,248,272,238,633, + 14,19,15,336,538,44,339,377,337,380, + 379,383,382,460,414,528,526,74,92,633, + 14,19,15,336,538,44,339,16,337,380, + 379,383,382,460,414,528,526,74,85,633, + 14,19,15,336,538,44,339,377,337,380, + 379,383,382,460,414,528,526,74,84,633, + 14,19,15,336,538,44,339,1235,337,380, + 379,383,382,460,414,528,526,74,83,633, + 14,19,15,336,538,44,339,377,337,380, + 379,383,382,460,414,528,526,74,82,633, + 14,19,15,336,538,44,339,1270,337,380, + 379,383,382,460,414,528,526,74,81,633, + 14,19,15,336,538,44,339,377,337,380, + 379,383,382,460,414,528,526,74,80,633, + 14,19,15,336,538,44,339,21,337,380, + 379,383,382,460,414,528,526,74,79,633, + 14,19,15,336,538,44,339,377,337,380, + 379,383,382,460,414,528,526,74,78,633, + 14,19,15,336,538,44,339,270,337,380, + 379,383,382,460,414,528,526,74,77,633, + 14,19,15,336,538,44,339,251,337,380, + 379,383,382,460,414,528,526,74,76,633, + 14,19,15,336,538,44,339,287,337,380, + 379,383,382,460,414,528,526,74,75,633, + 14,19,15,336,42,44,636,377,134,211, + 261,398,474,311,524,136,133,135,159,633, + 14,19,15,336,538,44,339,276,337,380, + 379,383,382,460,414,528,526,74,1347,138, + 1291,165,633,14,19,15,336,42,38,415, + 142,145,148,151,691,14,19,15,336,32, + 1382,1237,1401,1550,1555,1142,633,14,19,15, + 336,538,44,339,273,337,380,379,383,382, + 460,414,528,526,74,1390,633,14,19,15, + 336,42,44,339,611,337,380,379,383,382, + 460,414,528,526,93,633,14,19,15,336, + 42,44,339,712,337,380,379,383,382,460, + 414,528,526,93,633,14,19,15,336,42, + 44,339,1529,337,380,379,383,382,460,414, + 528,526,93,633,14,19,15,336,42,44, + 339,210,337,380,379,383,382,460,414,528, + 526,93,633,14,19,15,336,42,44,339, + 1605,337,380,379,383,382,460,414,528,526, + 93,633,14,19,15,336,42,44,339,201, + 337,380,379,383,382,460,414,528,526,73, + 588,737,763,557,62,110,290,412,202,1087, + 633,14,19,15,336,42,44,339,465,337, + 380,379,383,1143,252,211,271,458,14,19, + 15,336,42,35,435,216,1238,219,1344,221, + 222,227,1603,264,929,612,269,6,260,641, + 6,244,67,1568,274,550,456,1192,344,271, + 1144,261,287,237,115,27,771,581,216,1238, + 219,1344,221,222,227,1650,264,929,612,269, + 87,1273,136,134,211,251,211,275,503,258, + 137,133,135,159,807,633,14,19,15,336, + 42,44,339,377,337,380,379,383,382,460, + 414,1204,386,6,139,551,165,1656,194,262, + 1598,1587,613,277,285,143,146,149,152,633, + 14,19,15,336,42,44,339,386,337,380, + 379,1080,1367,239,262,1598,216,1238,219,1344, + 221,222,227,265,279,504,262,807,567,1407, + 633,14,19,15,336,42,44,339,241,337, + 847,216,1238,219,1344,221,222,227,134,211, + 240,292,207,226,1407,144,133,135,159,550, + 536,197,199,377,583,591,1146,1392,1372,633, + 14,19,15,336,42,44,339,6,337,380, + 1084,702,99,223,89,1589,198,199,633,14, + 19,15,336,42,44,339,771,337,380,1085, + 633,14,19,15,336,42,44,339,551,337, + 890,633,14,19,15,336,42,44,339,710, + 337,891,633,14,19,15,336,42,44,339, + 678,337,892,651,610,1367,767,262,1598,633, + 14,19,15,336,42,44,339,1657,894,633, + 14,19,15,336,42,44,339,499,974,225, + 292,242,147,464,216,1238,219,1344,221,222, + 227,1565,328,201,115,207,6,1273,163,581, + 262,332,784,274,1195,808,1618,1609,271,1306, + 1392,827,673,134,211,251,211,184,271,229, + 141,133,135,159,243,264,929,612,269,592, + 271,506,134,211,651,264,929,612,269,147, + 133,135,159,807,140,1730,165,266,929,612, + 269,193,457,263,458,14,19,15,336,42, + 35,294,1730,217,1238,219,1344,221,222,227, + 633,14,19,15,336,42,37,614,245,633, + 14,19,15,336,42,36,633,14,19,15, + 336,42,35,633,14,19,15,336,42,34, + 6,6,6,6,6,639,377,1730,312,1593, + 312,1623,312,633,14,19,15,336,42,47, + 6,6,6,196,831,196,228,196,1318,1570, + 416,183,1383,87,1383,87,1383,87,1730,262, + 1730,647,1730,647,232,647,633,14,19,15, + 336,42,46,633,14,19,15,336,42,45, + 847,763,482,291,687,867,727,517,14,19, + 15,336,42,43,639,475,6,488,639,1730, + 639,134,211,867,550,550,134,211,150,133, + 135,159,1730,153,133,135,159,47,1081,95, + 182,1730,1730,143,26,867,280,867,412,87, + 87,867,1665,475,639,262,115,1162,310,667, + 196,867,196,1730,1395,256,196,867,115,1129, + 1730,1129,887,239,1292,1129,1081,251,211,293, + 185,867,1081,1730,1730,191,1730,191,1730,251, + 211,191,1495,1667,1564,1667,196,1419,1604,1667, + 625,320,456,256,639,1129,639,639,867,256, + 887,638,1292,1730,457,639,1496,191,1292,867, + 1730,191,1730,1081,1730,867,1083,1730,1654,1667, + 184,1730,203,204,1081,1730,1730,1730,1730,899, + 196,1145,1730,1730,1730,1730,1514,1730,1730,1129, + 256,1730,1730,1730,1730,1730,1730,1183,1730,1292, + 1730,257,1730,1730,1730,192,1730,0,17,179, + 0,18,178,0,1,1954,0,1,1965,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -400,99 +398,101 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface TermCheck { public final static byte termCheck[] = {0, 0,1,2,3,4,0,6,7,8,9, - 10,11,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, + 10,11,12,0,14,15,16,17,18,19, + 20,21,22,23,24,25,0,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,0,0,43,44,45,0,1,0,3, + 0,5,6,7,8,0,1,11,3,9, + 10,0,16,17,18,19,0,21,55,56, + 57,58,6,7,8,29,30,31,32,33, + 34,35,36,37,38,39,40,46,42,43, + 44,45,0,47,0,1,0,3,0,5, + 6,7,8,0,12,11,0,4,0,0, + 16,17,18,19,0,21,55,56,57,58, + 6,7,8,29,30,31,32,33,34,35, + 36,37,38,39,40,0,42,43,44,45, + 0,47,0,1,46,3,0,5,6,7, + 8,5,0,11,48,49,53,54,16,17, + 18,19,0,21,55,56,57,58,6,7, + 8,29,30,31,32,33,34,35,36,37, + 38,39,40,0,42,43,44,45,80,47, + 0,1,46,3,59,5,6,7,8,0, + 0,11,2,4,4,65,16,17,18,19, + 0,21,66,13,0,1,64,3,0,29, 30,31,32,33,34,35,36,37,38,39, - 40,0,42,43,44,0,1,0,3,0, - 5,6,7,8,9,0,0,0,0,14, - 15,16,17,18,6,7,8,55,56,57, - 58,0,1,2,29,30,31,32,33,34, - 35,36,37,38,39,40,45,42,43,44, - 0,46,47,0,1,0,3,50,5,6, - 7,8,9,48,49,0,0,14,15,16, - 17,18,55,56,57,58,0,0,1,63, - 3,5,29,30,31,32,33,34,35,36, - 37,38,39,40,0,42,43,44,0,46, - 47,0,1,0,3,28,5,6,7,8, - 9,0,1,2,64,14,15,16,17,18, - 55,56,57,58,0,0,1,51,3,5, - 29,30,31,32,33,34,35,36,37,38, - 39,40,0,42,43,44,80,46,47,0, - 1,0,3,28,5,6,7,8,9,61, - 62,10,11,14,15,16,17,18,0,45, - 59,0,4,0,1,4,3,0,29,30, - 31,32,33,34,35,36,37,38,39,40, - 66,42,43,44,0,46,47,0,1,0, - 3,28,5,6,7,8,9,0,1,0, - 3,14,15,16,17,18,0,0,1,0, - 4,53,54,4,53,54,29,30,31,32, - 33,34,35,36,37,38,39,40,0,42, - 43,44,65,46,47,0,1,0,3,0, - 12,6,7,8,9,6,7,8,0,14, - 15,16,17,18,6,7,8,0,0,53, - 54,0,5,5,29,30,31,32,33,34, - 35,36,37,38,39,40,0,42,43,44, - 0,0,6,7,8,9,6,7,8,0, - 14,15,16,17,18,6,7,8,41,0, - 1,2,45,4,46,29,30,31,32,33, - 34,35,36,37,38,39,40,0,1,2, - 3,4,5,0,0,0,9,10,11,5, - 13,6,7,8,0,0,19,20,21,22, - 23,24,25,26,27,0,1,2,13,4, - 0,1,2,3,4,5,0,12,0,9, - 10,11,0,13,0,41,10,11,51,19, - 20,21,22,23,24,25,26,27,0,1, - 2,0,4,0,1,2,3,4,5,0, - 12,68,69,10,11,0,13,63,0,10, - 11,51,19,20,21,22,23,24,25,26, - 27,28,0,1,2,3,4,5,0,0, - 2,0,10,11,5,13,5,65,64,46, - 12,19,20,21,22,23,24,25,26,27, - 0,0,2,45,4,0,1,2,3,4, - 0,0,12,0,59,10,11,0,13,0, - 41,0,41,51,19,20,21,22,23,24, - 25,26,27,0,0,1,2,3,4,0, - 0,2,0,4,10,11,13,13,0,48, - 49,12,47,19,20,21,22,23,24,25, - 26,27,28,0,1,2,3,4,28,48, - 49,61,62,10,11,0,13,60,0,60, - 0,0,19,20,21,22,23,24,25,26, - 27,28,0,1,2,3,4,0,1,0, - 3,59,10,11,0,13,0,1,4,3, - 0,19,20,21,22,23,24,25,26,27, - 28,0,1,2,3,4,48,49,48,49, - 0,10,11,0,13,0,1,0,28,0, - 19,20,21,22,23,24,25,26,27,0, - 1,2,3,4,50,0,0,2,28,10, - 11,5,13,0,1,28,3,12,19,20, - 21,22,23,24,25,26,27,0,1,2, - 3,4,0,0,0,50,0,10,11,50, - 13,0,0,0,12,12,19,20,21,22, - 23,24,25,26,27,0,1,2,3,4, - 0,0,28,0,0,10,11,0,13,0, - 0,0,66,0,19,20,21,22,23,24, - 25,26,27,0,52,2,45,4,5,6, - 7,8,9,0,0,12,0,14,15,16, - 17,18,0,0,2,12,4,5,6,7, - 8,9,45,0,12,45,14,15,16,17, - 18,60,0,0,41,0,0,0,0,0, - 0,70,71,72,73,74,75,76,77,78, - 79,0,0,41,0,52,0,6,7,8, - 9,0,0,0,0,14,15,16,17,18, - 6,7,8,9,0,0,0,0,14,15, - 16,17,18,6,7,8,9,0,0,0, - 0,14,15,16,17,18,6,7,8,9, - 0,0,2,0,14,15,16,17,18,0, - 1,2,12,0,5,2,0,0,5,19, - 20,12,0,0,0,12,0,0,0,0, + 40,13,42,43,44,45,0,47,0,1, + 26,3,59,5,6,7,8,0,12,11, + 0,4,53,54,16,17,18,19,0,21, + 0,0,0,1,0,3,5,29,30,31, + 32,33,34,35,36,37,38,39,40,0, + 42,43,44,45,0,47,0,1,26,3, + 0,0,6,7,8,0,5,11,48,49, + 53,54,16,17,18,19,0,21,48,49, + 0,1,51,3,0,29,30,31,32,33, + 34,35,36,37,38,39,40,0,64,43, + 44,45,41,6,7,8,26,0,11,2, + 61,62,0,16,17,18,19,0,21,65, + 13,14,15,6,7,8,29,30,31,32, + 33,34,35,36,37,38,39,40,0,1, + 2,3,4,5,68,69,0,9,10,11, + 12,5,14,15,0,0,1,2,20,52, + 22,23,24,25,0,27,28,0,0,1, + 2,3,4,5,67,63,0,9,10,11, + 12,0,14,15,0,4,2,41,20,51, + 22,23,24,25,0,27,28,13,0,1, + 2,3,4,5,0,1,2,9,10,5, + 12,0,14,15,59,48,49,13,20,51, + 22,23,24,25,26,27,28,0,1,2, + 3,4,5,0,0,2,9,10,5,12, + 42,14,15,0,0,41,13,20,4,22, + 23,24,25,0,27,28,0,0,1,2, + 3,4,6,7,8,0,9,10,0,12, + 0,14,15,0,41,0,1,20,51,22, + 23,24,25,13,27,28,0,1,2,3, + 4,48,49,0,50,9,10,63,12,26, + 14,15,9,10,47,0,20,0,22,23, + 24,25,26,27,28,0,1,2,3,4, + 0,1,52,3,9,10,0,12,60,14, + 15,26,6,7,8,20,0,22,23,24, + 25,26,27,28,0,1,2,3,4,13, + 0,0,0,9,10,5,12,0,14,15, + 0,0,1,2,20,4,22,23,24,25, + 26,27,28,0,1,2,3,4,26,0, + 0,2,9,10,0,12,26,14,15,9, + 10,41,13,20,0,22,23,24,25,26, + 27,28,0,1,2,3,4,0,0,0, + 0,9,10,5,12,5,14,15,61,62, + 0,1,20,3,22,23,24,25,0,27, + 28,0,1,2,3,4,0,1,0,0, + 9,10,0,12,50,14,15,0,1,2, + 42,20,0,22,23,24,25,50,27,28, + 0,1,2,3,4,0,1,0,3,9, + 10,0,12,0,14,15,66,0,5,0, + 20,0,22,23,24,25,50,27,28,0, + 1,2,3,4,13,0,0,26,9,10, + 0,12,60,14,15,26,0,1,2,20, + 4,22,23,24,25,42,27,28,0,13, + 2,0,4,5,6,7,8,0,0,11, + 0,13,0,52,16,17,18,19,0,21, + 0,0,1,2,0,4,2,0,4,5, + 6,7,8,0,13,11,60,13,0,41, + 16,17,18,19,0,21,70,71,72,73, + 74,75,76,77,78,79,0,0,46,2, + 0,4,6,7,8,41,46,11,0,0, + 13,0,16,17,18,19,0,21,0,46, + 0,0,6,7,8,5,0,11,0,0, + 0,0,16,17,18,19,0,21,0,0, + 0,0,6,7,8,0,0,11,0,0, + 0,0,16,17,18,19,0,21,0,0, + 0,41,6,7,8,0,46,11,0,0, + 0,0,16,17,18,19,0,21,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 41,0,52,0,41,0,0,0,0,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, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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; @@ -500,96 +500,95 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface TermAction { public final static char termAction[] = {0, - 1739,527,1456,557,1442,1,1951,1952,1953,1901, - 1434,1407,59,1449,1902,1900,1954,1903,1899,1626, - 1041,893,1749,1750,1751,1752,1277,882,1739,1906, - 1911,1910,1908,1909,1907,1912,1913,1905,1914,1915, - 1916,88,1183,1099,853,1739,1,1,1,1739, - 190,1,1,1,1,54,66,61,247,1, - 1,1,1,1,1,1,1,1331,1320,1309, - 1298,1,1963,1339,1,1,1,1,1,1, - 1,1,1,1,1,1,594,1,1,1, - 68,190,1934,1739,1,1739,1,1994,190,1, - 1,1,1,1348,1358,60,1739,1,1,1, - 1,1,1331,1320,1309,1298,1739,1739,1919,1166, - 1920,1742,1,1,1,1,1,1,1,1, - 1,1,1,1,1739,1,1,1,62,190, - 1934,1739,1,1739,1,1185,190,1,1,1, - 1,1,1963,1339,1151,1,1,1,1,1, - 1331,1320,1309,1298,1739,1739,1919,1741,1920,1748, + 1730,573,1490,574,1476,1,1942,1943,1944,1469, + 1460,1892,1483,59,934,406,1893,1891,1945,1894, + 391,1890,1740,1741,1742,1743,282,922,398,1897, + 1902,1901,1899,1900,1898,1903,1904,1896,1905,1906, + 1907,88,1730,893,459,338,1730,1,1730,1, + 51,190,1,1,1,1730,1759,1,1760,879, + 367,61,1,1,1,1,247,1,1332,1321, + 1310,1240,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,639,190,1, + 1,1,64,1925,1730,1,1730,1,253,190, + 1,1,1,48,1209,1,54,1543,1730,60, + 1,1,1,1,1730,1,1332,1321,1310,1240, + 1942,1943,1944,1,1,1,1,1,1,1, + 1,1,1,1,1,1730,190,1,1,1, + 70,1925,1730,1,1661,1,1730,190,1,1, + 1,1739,68,1,1349,1359,1536,1503,1,1, + 1,1,248,1,1332,1321,1310,1240,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1739,1,1,1,1726,190,1934,1739, - 1,51,1,1186,189,1,1,1,1,1286, - 1254,1398,839,1,1,1,1,1,48,1206, - 982,50,1509,1739,1919,1509,1920,70,1,1, + 1,1,1,200,190,1,1,1,1717,1925, + 1730,1,1217,1,1061,189,1,1,1,50, + 262,1,1373,1543,1,461,1,1,1,1, + 1730,1,1738,505,1730,1910,575,1911,268,1, 1,1,1,1,1,1,1,1,1,1, - 1747,1,1,1,1739,189,1934,1739,1,1739, - 1,1208,190,1,1,1,1,1739,1768,1739, - 1769,1,1,1,1,1,49,1739,1975,1739, - 1509,1502,1469,1097,1502,1469,1,1,1,1, - 1,1,1,1,1,1,1,1,268,1, - 1,1,1049,190,1934,1739,1918,1739,1917,1739, - 500,1951,1952,1953,1901,1951,1952,1953,248,1902, - 1900,1954,1903,1899,1,1,1,1739,1739,1502, - 1469,1739,1744,1746,1906,1911,1910,1908,1909,1907, - 1912,1913,1905,1914,1915,1916,128,1183,1099,853, - 246,1739,1951,1952,1953,1901,1951,1952,1953,249, - 1902,1900,1954,1903,1899,1951,1952,1953,1743,1739, - 1963,1339,1346,1239,1745,1906,1911,1910,1908,1909, - 1907,1912,1913,1905,1914,1915,1916,1,1756,1456, - 1757,364,1742,72,1,250,529,1434,1407,90, - 1449,1951,1952,1953,67,64,1626,1041,893,1749, - 1750,1751,1752,1277,882,259,1963,1073,486,1, - 1739,1756,1456,1757,1066,1742,53,500,1739,905, - 1434,1407,71,1449,69,90,1398,839,1741,1626, - 1041,893,1749,1750,1751,1752,1277,882,265,1963, - 1073,1739,1239,1,1756,1456,1757,1442,27,52, - 500,1134,1535,1434,1407,1739,1449,1166,253,1398, - 839,1741,1626,1041,893,1749,1750,1751,1752,1277, - 882,1457,1739,1756,1456,1757,1442,1742,267,1739, - 1086,1,1434,1407,1744,1449,1744,1049,1151,27, - 500,1626,1041,893,1749,1750,1751,1752,1277,882, - 262,58,1192,1644,1,1739,1,1,1,1, - 63,1739,500,1739,1020,1,1,209,1,1739, - 1743,57,1743,1741,1,1,1,1,1,1, - 1,1,1,65,1739,1756,1456,1757,1442,265, - 41,1192,200,1239,1434,1407,486,1449,1739,1348, - 1358,500,2047,1626,1041,893,1749,1750,1751,1752, - 1277,882,1088,1,1756,1456,1757,1442,1088,1348, - 1358,1286,1254,1434,1407,1739,1449,944,56,574, - 55,1739,1626,1041,893,1749,1750,1751,1752,1277, - 882,1457,1739,1756,1456,1757,1442,206,1919,1739, - 1920,1001,1434,1407,1,1449,1739,1919,1097,1920, - 1739,1626,1041,893,1749,1750,1751,1752,1277,882, - 1457,1739,1756,1456,1757,1442,1348,1358,1348,1358, - 187,1434,1407,1739,1449,1,1736,186,1088,1, - 1626,1041,893,1749,1750,1751,1752,1277,882,1739, - 1756,1458,1757,1442,1994,220,1,1372,1266,1434, - 1407,1748,1449,205,1182,1382,1182,500,1626,1041, - 893,1749,1750,1751,1752,1277,882,1739,1756,1460, - 1757,1442,1739,218,188,1994,1739,1434,1407,1993, - 1449,28,1739,1739,925,500,1626,1041,893,1749, - 1750,1751,1752,1277,882,1,1756,1456,1757,1442, - 1739,42,1414,1739,1739,1434,1407,28,1449,1739, - 205,1739,1747,1739,1626,1041,893,1749,1750,1751, - 1752,1277,882,17,1459,1727,432,1727,1727,179, - 179,179,179,285,1739,1727,1739,179,179,179, - 179,179,18,1739,1730,963,1730,1730,178,178, - 178,178,1766,1739,1730,2701,178,178,178,178, - 178,819,1739,1739,1727,1739,1739,1739,1739,1739, - 1739,799,779,759,739,719,679,699,659,639, - 619,129,1739,1730,1739,1534,1739,1951,1952,1953, - 1901,1739,1739,1739,130,1902,1900,1954,1903,1899, - 1951,1952,1953,1901,1739,1739,1739,131,1902,1900, - 1954,1903,1899,1951,1952,1953,1901,1739,1739,1739, - 132,1902,1900,1954,1903,1899,1951,1952,1953,1901, - 31,1739,1383,1739,1902,1900,1954,1903,1899,1, - 1733,1073,1532,1,1744,1192,1739,1739,1744,1763, - 1764,500,1739,1739,1739,500,1739,1739,1739,1739, - 1739,1739,1739,1739,1739,1739,1739,1739,1739,1739, - 1739,1739,1739,1739,1739,1739,1739,1739,1739,1739, - 1743,1739,452,1739,1743,1739,1739,1739,1739,1739, - 1739,1739,1739,1739,1739,1739,1739,334 + 1,505,189,1,1,1,65,1925,1730,1, + 1193,1,1042,190,1,1,1,49,1209,1, + 58,1543,1536,1503,1,1,1,1,1730,1, + 57,1730,1730,1910,69,1911,1733,1,1,1, + 1,1,1,1,1,1,1,1,1,62, + 190,1,1,1,71,1925,1730,1909,1287,1908, + 1730,1,1942,1943,1944,1730,90,1892,1349,1359, + 1536,1503,1893,1891,1945,1894,72,1890,1349,1359, + 1730,1910,1732,1911,1730,1897,1902,1901,1899,1900, + 1898,1903,1904,1896,1905,1906,1907,128,575,893, + 459,338,90,1942,1943,1944,1386,31,1892,1261, + 1298,1279,66,1893,1891,1945,1894,246,1890,461, + 1127,1754,1755,1942,1943,1944,1897,1902,1901,1899, + 1900,1898,1903,1904,1896,1905,1906,1907,1,1747, + 1490,1748,1107,1733,1175,1566,1730,1469,1460,592, + 1483,1735,934,406,1730,1,1954,1340,391,488, + 1740,1741,1742,1743,1730,922,398,56,1730,1747, + 1490,1748,1444,1733,413,1090,1730,1469,1460,946, + 1483,1730,934,406,267,1132,1147,1734,391,1732, + 1740,1741,1742,1743,1730,922,398,505,1,1747, + 1490,1748,1476,27,1,1724,1114,1469,1460,1735, + 1483,1730,934,406,1023,1349,1359,505,391,1732, + 1740,1741,1742,1743,2745,922,398,1730,1747,1490, + 1748,1476,1733,1,67,1373,1469,1460,1735,1483, + 27,934,406,55,1,1734,505,391,1132,1740, + 1741,1742,1743,1730,922,398,249,1730,1,1, + 1,1,1942,1943,1944,1730,1,1,209,1, + 1730,1,1,41,1734,1730,1966,1,1732,1, + 1,1,1,966,1,1,1730,1747,1490,1748, + 1476,1349,1359,53,1985,1469,1460,1090,1483,1130, + 934,406,879,367,2041,1730,391,1730,1740,1741, + 1742,1743,1130,922,398,1,1747,1490,1748,1476, + 206,1910,1343,1911,1469,1460,250,1483,985,934, + 406,1130,1942,1943,1944,391,218,1740,1741,1742, + 1743,2745,922,398,1730,1747,1490,1748,1476,505, + 1,1730,187,1469,1460,1735,1483,63,934,406, + 186,1730,1954,1340,391,1388,1740,1741,1742,1743, + 2745,922,398,1,1747,1490,1748,1476,1491,220, + 52,1389,1469,1460,1730,1483,1493,934,406,879, + 367,1734,505,391,1,1740,1741,1742,1743,2745, + 922,398,1730,1747,1490,1748,1476,1,1730,1730, + 1,1469,1460,1737,1483,1739,934,406,1298,1279, + 1730,1910,391,1911,1740,1741,1742,1743,1730,922, + 398,1730,1747,1492,1748,1476,1,1727,1730,1730, + 1469,1460,1730,1483,1985,934,406,1,1954,1340, + 1736,391,1730,1740,1741,1742,1743,1984,922,398, + 1730,1747,1494,1748,1476,205,458,1730,458,1469, + 1460,188,1483,281,934,406,1738,1730,1511,1730, + 391,288,1740,1741,1742,1743,1985,922,398,1, + 1747,1490,1748,1476,1004,1730,42,1510,1469,1460, + 1730,1483,530,934,406,1512,259,1954,1114,391, + 1,1740,1741,1742,1743,1511,922,398,17,505, + 1718,1730,1718,1718,179,179,179,1730,1730,179, + 1730,1718,28,1424,179,179,179,179,1730,179, + 28,265,1954,1114,18,1388,1721,1730,1721,1721, + 178,178,178,205,505,178,859,1721,1730,1718, + 178,178,178,178,1730,178,839,819,799,779, + 759,719,739,699,679,659,129,265,436,1373, + 1730,1388,1942,1943,1944,1721,1757,1892,1730,1730, + 505,1730,1893,1891,1945,1894,130,1890,1730,2737, + 1730,1730,1942,1943,1944,1735,1730,1892,1730,1730, + 1730,1730,1893,1891,1945,1894,131,1890,1730,1730, + 1730,1730,1942,1943,1944,1730,1730,1892,1730,1730, + 1730,1730,1893,1891,1945,1894,132,1890,1730,1730, + 1730,1734,1942,1943,1944,1730,1421,1892,1730,1730, + 1730,1730,1893,1891,1945,1894,1730,1890 }; }; public final static char termAction[] = TermAction.termAction; @@ -597,27 +596,28 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface Asb { public final static char asb[] = {0, - 427,1,80,41,80,80,80,80,80,80, - 80,80,80,3,357,244,241,248,246,254, - 252,256,255,258,257,10,80,357,357,226, - 226,338,80,143,143,332,357,80,80,80, - 80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,143,143,143, - 45,56,336,74,196,141,140,307,319,319, - 70,70,319,70,319,371,97,97,241,241, - 246,246,246,246,244,244,252,248,248,255, - 254,300,257,256,229,72,54,332,327,146, - 45,394,78,143,398,199,282,166,282,166, - 276,282,80,54,327,394,394,45,77,74, - 143,330,371,142,201,166,166,166,166,276, - 276,278,49,54,394,327,80,80,45,78, - 196,295,294,336,201,143,166,193,269,166, - 166,193,278,302,278,276,193,52,305,226, - 80,48,54,327,45,45,143,398,199,330, - 193,271,193,193,80,226,278,56,45,226, - 80,278,201,265,80,264,93,336,193,45, - 193,143,142,271,80,93,227 + 427,1,76,41,76,76,76,76,76,76, + 76,76,76,3,357,218,215,222,220,228, + 226,230,229,232,231,10,76,357,357,317, + 317,243,76,139,139,345,357,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,139,139,139, + 45,52,349,70,287,137,136,320,332,332, + 66,66,332,66,332,371,93,93,215,215, + 220,220,220,220,218,218,226,222,222,229, + 228,280,231,230,203,68,50,345,340,142, + 45,394,74,139,398,290,262,173,262,173, + 351,262,76,50,340,394,394,45,73,70, + 139,343,371,138,292,173,173,173,173,351, + 351,353,163,200,68,394,340,76,76,45, + 74,287,275,274,349,292,139,173,200,166, + 173,173,200,353,282,353,351,200,48,285, + 317,76,162,200,50,340,45,45,139,398, + 290,343,200,168,200,200,76,317,353,52, + 45,317,76,50,292,239,76,238,89,349, + 200,45,353,139,138,168,76,89,200,318, + 353 }; }; public final static char asb[] = Asb.asb; @@ -625,51 +625,51 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface Asr { public final static byte asr[] = {0, - 80,0,66,12,2,52,67,19,20,13, - 4,10,11,53,54,48,49,55,56,57, - 58,61,62,63,64,65,68,69,46,60, + 80,0,66,13,2,52,67,14,15,12, + 4,9,10,53,54,48,49,55,56,57, + 58,61,62,63,64,65,68,69,42,60, 70,71,72,73,74,76,75,77,78,79, - 59,41,80,45,51,5,0,60,12,52, - 0,5,46,12,52,19,20,13,4,10, - 11,26,27,21,2,22,23,24,25,1, - 3,28,0,6,7,8,9,51,5,22, - 23,24,25,3,19,20,13,10,11,26, - 27,21,4,2,1,0,7,9,18,8, - 17,16,15,6,14,52,67,19,20,13, - 10,11,53,54,48,49,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,45,41,5,0,6,7,8,2,22, - 23,24,25,1,3,19,20,13,4,10, - 11,26,27,21,0,14,29,6,30,42, - 15,31,16,32,33,17,7,34,35,9, - 43,18,44,36,37,8,38,39,40,1, - 3,47,46,5,0,4,2,12,41,5, - 14,29,6,30,42,15,31,16,32,33, - 17,7,34,35,9,43,18,44,36,37, - 8,38,39,40,50,3,1,0,60,70, - 71,72,73,74,75,76,77,78,79,28, - 4,53,54,10,11,49,48,55,56,57, - 58,61,62,13,63,64,65,51,41,46, - 80,68,69,59,66,5,45,0,66,5, - 4,1,2,59,0,1,3,5,46,45, - 0,14,6,15,16,17,7,9,18,8, - 1,4,28,2,5,45,41,66,12,59, - 0,5,45,46,60,0,37,29,34,32, - 33,31,30,35,36,38,39,40,59,66, - 18,15,9,14,17,16,6,7,8,45, - 1,5,41,2,12,4,0,5,41,21, - 22,23,24,25,1,3,2,19,20,13, - 4,10,11,26,27,0,21,22,23,24, - 25,2,19,20,13,4,10,11,26,27, - 3,1,42,43,44,37,29,34,32,33, - 31,30,35,36,38,39,40,18,15,9, - 14,17,16,6,7,8,0,14,29,6, - 30,42,15,31,16,32,33,17,7,34, - 35,9,43,18,44,36,37,8,38,39, - 40,1,3,50,4,0,21,22,23,24, - 25,1,3,2,19,20,13,4,10,11, - 26,27,47,0 + 59,41,80,46,51,5,0,5,42,13, + 52,14,15,12,4,9,10,27,28,20, + 2,22,23,24,25,1,3,26,0,6, + 7,8,11,51,5,22,23,24,25,3, + 14,15,12,9,10,27,28,20,4,2, + 1,0,7,11,21,8,19,18,17,6, + 16,52,67,14,15,12,9,10,53,54, + 48,49,55,56,57,58,61,62,63,64, + 65,68,69,60,70,71,72,73,74,75, + 76,77,78,79,4,2,13,46,41,5, + 0,6,7,8,2,22,23,24,25,1, + 3,14,15,12,4,9,10,27,28,20, + 0,60,13,52,0,66,5,4,1,2, + 59,0,16,29,6,30,43,17,31,18, + 32,33,19,7,34,35,11,44,21,45, + 36,37,8,38,39,40,1,3,47,5, + 42,0,60,70,71,72,73,74,75,76, + 77,78,79,26,4,53,54,9,10,49, + 48,55,56,57,58,61,62,12,63,64, + 65,51,41,42,80,68,69,59,66,5, + 46,0,5,41,20,22,23,24,25,1, + 3,2,14,15,12,4,9,10,27,28, + 0,16,6,17,18,19,7,11,21,8, + 1,4,26,2,5,46,41,66,13,59, + 0,5,46,42,60,0,4,2,13,41, + 5,16,29,6,30,43,17,31,18,32, + 33,19,7,34,35,11,44,21,45,36, + 37,8,38,39,40,50,3,1,0,37, + 29,34,32,33,31,30,35,36,38,39, + 40,59,66,21,17,11,16,19,18,6, + 7,8,46,1,5,41,2,13,4,0, + 1,3,5,42,46,0,20,22,23,24, + 25,2,14,15,12,4,9,10,27,28, + 3,1,43,44,45,37,29,34,32,33, + 31,30,35,36,38,39,40,21,17,11, + 16,19,18,6,7,8,0,16,29,6, + 30,43,17,31,18,32,33,19,7,34, + 35,11,44,21,45,36,37,8,38,39, + 40,1,3,50,4,0,20,22,23,24, + 25,1,3,2,14,15,12,4,9,10, + 27,28,47,0 }; }; public final static byte asr[] = Asr.asr; @@ -677,27 +677,28 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface Nasb { public final static byte nasb[] = {0, - 81,8,15,8,15,15,15,15,15,15, - 15,15,15,8,65,8,8,8,8,8, - 8,8,8,8,8,8,15,65,65,9, - 9,62,66,39,39,55,1,15,15,15, - 15,15,15,15,15,15,15,15,15,15, - 15,15,15,66,15,15,15,15,15,15, - 15,15,15,15,15,15,15,39,39,39, - 27,15,71,25,54,17,17,47,48,48, - 29,29,48,29,48,43,8,8,8,8, + 81,8,16,8,16,16,16,16,16,16, + 16,16,16,8,71,8,8,8,8,8, + 8,8,8,8,8,8,16,71,71,11, + 11,61,72,55,55,65,1,16,16,16, + 16,16,16,16,16,16,16,16,16,16, + 16,16,16,72,16,16,16,16,16,16, + 16,16,16,16,16,16,16,55,55,55, + 24,16,79,22,64,29,29,49,50,50, + 9,9,50,9,50,45,8,8,8,8, 8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,79,56,79,14, - 27,84,26,39,69,38,8,79,8,79, - 79,8,15,14,79,84,84,27,26,19, - 39,32,2,8,78,79,73,79,73,29, - 79,41,21,79,84,19,15,15,27,26, - 31,17,17,71,78,39,73,23,59,86, - 73,23,41,8,8,29,23,13,8,29, - 15,11,14,19,27,27,39,69,38,33, - 23,50,23,23,15,29,41,15,27,29, - 15,41,77,60,15,8,50,71,23,27, - 23,39,39,50,15,35,8 + 8,8,8,8,8,8,90,66,90,26, + 24,69,23,55,77,54,8,90,8,90, + 90,8,16,14,90,69,69,24,23,18, + 55,36,2,8,89,90,84,90,84,9, + 90,33,20,90,8,69,18,16,16,24, + 23,35,29,29,79,89,55,84,75,42, + 92,84,75,33,8,8,9,75,13,8, + 9,16,31,75,90,18,24,24,55,77, + 54,37,75,57,75,75,16,9,33,15, + 24,9,16,14,88,43,16,8,57,79, + 75,24,33,55,55,57,16,39,75,8, + 52 }; }; public final static byte nasb[] = Nasb.nasb; @@ -705,15 +706,16 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface Nasr { public final static char nasr[] = {0, - 4,77,76,75,74,73,72,0,69,0, - 91,0,67,8,4,0,25,0,21,0, - 89,0,26,0,8,4,24,0,27,0, - 20,8,44,43,37,35,0,8,20,0, - 51,0,62,63,64,65,52,28,0,8, - 37,35,0,20,8,44,43,0,8,68, - 0,8,84,0,32,8,41,0,8,23, - 49,0,56,8,32,0,86,23,8,0, - 8,83,0,58,0,8,32,48,0 + 4,78,77,76,75,74,73,0,27,0, + 70,0,68,8,61,4,0,21,0,91, + 0,8,4,24,0,4,8,0,25,0, + 93,0,51,0,20,8,44,43,37,35, + 0,8,69,0,63,64,65,66,52,28, + 0,89,0,8,20,0,8,37,35,0, + 8,85,0,20,8,44,43,0,58,0, + 32,8,41,0,26,0,8,23,49,0, + 8,84,0,56,8,32,0,87,23,8, + 0,8,32,48,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -721,11 +723,11 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface TerminalIndex { public final static char terminalIndex[] = {0, - 85,2,86,9,87,48,64,76,69,10, - 11,1,8,44,55,60,63,72,6,7, - 68,81,82,83,84,12,13,3,47,52, + 85,2,86,9,87,48,64,76,10,11, + 69,8,1,6,7,44,55,60,63,68, + 72,81,82,83,84,3,12,13,47,52, 56,61,62,66,67,74,75,78,79,80, - 90,54,70,73,42,91,93,16,17,30, + 90,91,54,70,73,42,93,16,17,30, 89,4,14,15,18,19,20,21,29,31, 22,23,24,25,26,92,5,27,28,32, 33,34,35,36,37,38,39,40,41,94, @@ -744,12 +746,12 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 0,140,0,145,147,0,148,0,0,0, 100,158,159,160,0,120,137,139,146,155, 0,131,136,0,0,138,150,153,154,157, - 103,132,133,134,135,144,161,99,102,104, - 119,123,124,125,126,127,130,142,0,0, - 143,152,95,0,141,151,156,162,163,0, - 164,0,0,0,0,0,0,0,0,0, + 0,103,132,133,134,135,144,161,99,102, + 104,119,123,124,125,126,127,130,142,0, + 0,143,152,95,0,141,151,156,0,162, + 163,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 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -757,10 +759,10 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface ScopePrefix { public final static char scopePrefix[] = { - 164,80,33,39,87,107,113,138,12,19, - 49,67,119,124,26,45,97,160,179,183, - 147,1,1,30,54,77,187,6,101,154, - 129,154,93,57,57,57 + 168,82,35,41,91,111,117,12,142,21, + 51,69,123,128,28,47,101,164,183,187, + 151,1,1,32,56,79,191,6,105,158, + 133,158,97,59,59,59 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -768,10 +770,10 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface ScopeSuffix { public final static char scopeSuffix[] = { - 17,17,4,4,17,17,17,144,17,24, - 4,24,17,17,24,4,95,24,24,4, - 151,4,4,24,4,24,24,9,104,157, - 132,172,95,64,59,72 + 89,89,4,4,89,89,89,18,148,26, + 4,26,89,89,26,4,99,26,26,4, + 155,4,4,26,4,26,26,9,108,161, + 136,176,99,66,61,74 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -779,10 +781,10 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface ScopeLhs { public final static char scopeLhs[] = { - 4,64,25,25,64,62,62,98,53,45, - 25,40,62,62,45,25,48,5,4,4, - 18,91,90,43,25,37,2,67,48,6, - 99,4,48,40,38,40 + 4,65,25,25,65,63,63,53,100,45, + 25,40,63,63,45,25,48,5,4,4, + 18,93,92,43,25,37,2,68,48,6, + 101,4,48,40,38,40 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -790,8 +792,8 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface ScopeLa { public final static byte scopeLa[] = { - 46,46,51,51,46,46,46,86,46,41, - 51,41,46,46,41,51,66,41,41,51, + 42,42,51,51,42,42,42,42,86,41, + 51,41,42,42,41,51,66,41,41,51, 59,51,51,41,51,41,41,60,1,41, 92,41,66,2,2,2 }; @@ -801,7 +803,7 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface ScopeStateSet { public final static byte scopeStateSet[] = { - 34,19,23,23,19,19,19,-1,89,27, + 34,19,23,23,19,19,19,89,-1,27, 23,11,19,19,27,23,5,34,34,34, 64,1,3,27,23,11,34,90,5,37, -1,34,5,11,11,11 @@ -812,25 +814,26 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface ScopeRhs { public final static char scopeRhs[] = {0, - 139,12,0,96,0,181,101,0,31,136, - 0,144,163,101,28,0,98,0,150,101, - 2,136,0,97,0,150,101,2,0,153, - 2,0,112,9,175,101,12,0,112,175, - 101,9,12,0,112,9,12,0,112,175, - 101,12,0,112,12,0,130,0,2,0, - 151,97,0,2,97,0,150,101,2,130, - 0,2,0,150,97,0,140,2,0,144, - 173,101,28,120,42,0,144,173,101,28, - 42,0,125,0,99,0,178,101,125,0, - 101,125,0,141,99,0,148,101,28,120, - 44,0,148,101,28,120,43,0,148,101, - 28,44,0,148,101,28,43,0,187,85, - 0,77,2,100,97,99,0,187,113,134, - 2,89,0,53,0,0,134,69,110,0, - 29,117,0,154,2,0,97,106,0,154, - 2,21,0,144,163,101,28,113,154,2, - 0,97,3,0,104,0,98,0,177,2, - 97,0,134,12,97,0,134,2,0 + 139,13,0,96,0,183,101,0,31,136, + 0,144,164,101,26,154,0,98,0,0, + 150,101,2,136,0,97,0,150,101,2, + 0,153,2,0,112,11,176,101,13,0, + 112,176,101,11,13,0,112,11,13,0, + 112,176,101,13,0,112,13,0,130,0, + 2,0,151,97,0,2,97,0,150,101, + 2,130,0,2,0,150,97,0,140,2, + 0,144,174,101,26,120,43,0,98,0, + 144,174,101,26,43,0,125,0,99,0, + 179,101,125,0,101,125,0,141,99,0, + 148,101,26,120,45,0,148,101,26,120, + 44,0,148,101,26,45,0,148,101,26, + 44,0,189,85,0,77,2,100,97,99, + 0,189,113,134,2,89,0,53,0,0, + 134,69,110,0,29,117,0,155,2,0, + 97,106,0,155,2,20,0,144,164,101, + 26,113,155,2,0,97,3,0,104,0, + 98,0,178,2,97,0,134,13,97,0, + 134,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -838,16 +841,16 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface ScopeState { public final static char scopeState[] = {0, - 392,0,481,0,1569,1643,1566,1555,1552,0, - 1393,1206,1339,1191,362,1073,1040,0,827,1159, - 309,0,1345,1317,1089,455,362,1073,1040,1594, - 1192,1381,0,1626,1041,893,1066,364,1522,1049, - 1134,1166,1151,1286,1254,486,1358,1348,1331,1320, - 1309,1298,1509,1502,1469,1398,839,1449,1442,1434, - 1407,1277,882,1001,982,963,944,925,905,859, - 549,1020,529,500,819,799,779,759,739,719, - 699,679,659,639,619,309,594,457,574,412, - 432,341,0 + 993,0,480,0,1623,1667,1593,1589,1587,0, + 1419,1217,1340,1192,456,1114,1081,0,867,1142, + 312,0,1344,1238,929,612,456,1114,1081,1395, + 1373,1383,0,934,406,391,1444,1107,1557,461, + 1175,1090,575,1298,1279,1209,1359,1349,1332,1321, + 1310,1240,1543,1536,1503,879,367,1483,1476,1469, + 1460,922,398,1042,1023,1004,985,966,946,899, + 614,1061,592,505,859,839,819,799,779,759, + 739,719,699,679,659,312,639,550,530,416, + 436,344,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -855,27 +858,28 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public interface InSymb { public final static char inSymb[] = {0, - 0,176,101,164,21,27,26,11,10,4, - 13,20,19,97,2,102,100,104,103,106, - 105,108,107,110,109,98,45,2,2,67, - 52,2,12,154,134,125,101,11,10,54, - 53,4,58,57,56,55,48,49,13,62, + 0,177,101,165,20,28,27,10,9,4, + 12,15,14,97,2,102,100,104,103,106, + 105,108,107,110,109,98,46,2,2,67, + 52,2,13,155,134,125,101,10,9,54, + 53,4,58,57,56,55,48,49,12,62, 61,64,63,69,68,65,79,78,77,75, - 76,74,73,72,71,70,60,154,154,177, - 134,113,101,12,2,137,136,165,166,167, - 44,43,168,42,169,170,1,3,100,100, + 76,74,73,72,71,70,60,155,155,178, + 134,113,101,13,2,137,136,166,167,168, + 45,44,169,43,170,171,1,3,100,100, 103,103,103,103,102,102,105,104,104,107, - 106,134,109,108,113,113,28,142,4,9, - 112,101,4,153,101,2,120,28,120,28, - 28,120,59,101,4,101,101,112,175,151, - 150,116,101,152,101,28,101,28,101,101, - 28,163,101,28,101,151,175,9,112,4, - 2,128,130,101,45,150,101,148,125,149, - 101,148,173,120,174,101,144,45,181,52, - 12,182,101,151,112,112,140,101,2,142, - 148,101,148,144,60,45,173,60,139,52, - 12,163,101,178,59,140,2,101,144,139, - 144,150,179,45,59,142,45 + 106,134,109,108,113,113,26,142,4,11, + 112,101,4,153,101,2,120,26,120,26, + 26,120,59,101,4,101,101,112,176,151, + 150,116,101,152,101,26,101,26,101,101, + 26,164,101,26,154,101,151,176,11,112, + 4,2,128,130,101,46,150,101,148,125, + 149,101,148,174,120,175,101,144,46,183, + 52,13,184,101,26,151,112,112,140,101, + 2,142,148,101,148,144,60,46,174,60, + 139,52,13,101,101,179,59,140,2,101, + 144,139,164,150,180,46,59,142,144,46, + 119 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1070,20 +1074,20 @@ public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C9 public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 207, + NUM_STATES = 211, NT_OFFSET = 93, - LA_STATE_OFFSET = 2047, + LA_STATE_OFFSET = 2041, MAX_LA = 2, - NUM_RULES = 308, - NUM_NONTERMINALS = 115, - NUM_SYMBOLS = 208, + NUM_RULES = 311, + NUM_NONTERMINALS = 117, + NUM_SYMBOLS = 210, SEGMENT_SIZE = 8192, - START_STATE = 1632, + START_STATE = 1567, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 80, EOLT_SYMBOL = 80, - ACCEPT_ACTION = 1726, - ERROR_ACTION = 1739; + ACCEPT_ACTION = 1717, + ERROR_ACTION = 1730; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java index 9a85ef90c77..cb2f6b0e544 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java @@ -15,7 +15,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.c99; public interface C99ExpressionParsersym { public final static int - TK_auto = 14, + TK_auto = 16, TK_break = 81, TK_case = 82, TK_char = 29, @@ -25,26 +25,26 @@ public interface C99ExpressionParsersym { TK_do = 85, TK_double = 30, TK_else = 86, - TK_enum = 42, - TK_extern = 15, + TK_enum = 43, + TK_extern = 17, TK_float = 31, TK_for = 87, TK_goto = 88, TK_if = 89, - TK_inline = 16, + TK_inline = 18, TK_int = 32, TK_long = 33, - TK_register = 17, + TK_register = 19, TK_restrict = 7, TK_return = 90, TK_short = 34, TK_signed = 35, - TK_sizeof = 21, - TK_static = 9, - TK_struct = 43, + TK_sizeof = 20, + TK_static = 11, + TK_struct = 44, TK_switch = 91, - TK_typedef = 18, - TK_union = 44, + TK_typedef = 21, + TK_union = 45, TK_unsigned = 36, TK_void = 37, TK_volatile = 8, @@ -60,19 +60,19 @@ public interface C99ExpressionParsersym { TK_Completion = 3, TK_EndOfCompletion = 5, TK_Invalid = 93, - TK_LeftBracket = 12, + TK_LeftBracket = 13, TK_LeftParen = 2, - TK_LeftBrace = 28, + TK_LeftBrace = 26, TK_Dot = 52, TK_Arrow = 67, - TK_PlusPlus = 19, - TK_MinusMinus = 20, - TK_And = 13, + TK_PlusPlus = 14, + TK_MinusMinus = 15, + TK_And = 12, TK_Star = 4, - TK_Plus = 10, - TK_Minus = 11, - TK_Tilde = 26, - TK_Bang = 27, + TK_Plus = 9, + TK_Minus = 10, + TK_Tilde = 27, + TK_Bang = 28, TK_Slash = 53, TK_Percent = 54, TK_RightShift = 48, @@ -101,10 +101,10 @@ public interface C99ExpressionParsersym { TK_AndAssign = 77, TK_CaretAssign = 78, TK_OrAssign = 79, - TK_Comma = 45, + TK_Comma = 46, TK_RightBracket = 51, TK_RightParen = 41, - TK_RightBrace = 46, + TK_RightBrace = 42, TK_SemiColon = 66, TK_ERROR_TOKEN = 47, TK_EOF_TOKEN = 80; @@ -119,26 +119,26 @@ public interface C99ExpressionParsersym { "const", "restrict", "volatile", - "static", "Plus", "Minus", - "LeftBracket", + "static", "And", + "LeftBracket", + "PlusPlus", + "MinusMinus", "auto", "extern", "inline", "register", - "typedef", - "PlusPlus", - "MinusMinus", "sizeof", + "typedef", "integer", "floating", "charconst", "stringlit", + "LeftBrace", "Tilde", "Bang", - "LeftBrace", "char", "double", "float", @@ -152,11 +152,11 @@ public interface C99ExpressionParsersym { "_Complex", "_Imaginary", "RightParen", + "RightBrace", "enum", "struct", "union", "Comma", - "RightBrace", "ERROR_TOKEN", "RightShift", "LeftShift", 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 66da4593256..c083ab16472 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 @@ -169,8 +169,9 @@ private C99BuildASTParserAction action; public C99NoCastExpressionParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu); + action.setParserOptions(options); } @@ -180,10 +181,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1153,99 +1154,117 @@ public C99NoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 278: initializer ::= { <openscope-ast> initializer_list comma_opt } + // Rule 278: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 278: { action. consumeInitializerList(); break; } // - // Rule 283: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 279: initializer ::= { <openscope-ast> } // - case 283: { action. consumeInitializerDesignated(); break; + case 279: { action. consumeInitializerList(); break; } // - // Rule 287: designator_base ::= [ constant_expression ] + // Rule 280: start_initializer_list ::= $Empty // - case 287: { action. consumeDesignatorArray(); break; + case 280: { action. initializerListStart(); break; } // - // Rule 288: designator_base ::= . identifier_or_typedefname + // Rule 281: end_initializer_list ::= $Empty // - case 288: { action. consumeDesignatorField(); break; + case 281: { action. initializerListEnd(); break; } // - // Rule 289: designator ::= [ constant_expression ] + // Rule 286: designated_initializer ::= <openscope-ast> designation = initializer // - case 289: { action. consumeDesignatorArray(); break; + case 286: { action. consumeInitializerDesignated(); break; } // - // Rule 290: designator ::= . identifier_or_typedefname + // Rule 290: designator_base ::= [ constant_expression ] // - case 290: { action. consumeDesignatorField(); break; + case 290: { action. consumeDesignatorArray(); break; } // - // Rule 291: translation_unit ::= external_declaration_list + // Rule 291: designator_base ::= . identifier_or_typedefname // - case 291: { action. consumeTranslationUnit(); break; + case 291: { action. consumeDesignatorField(); break; + } + + // + // Rule 292: designator ::= [ constant_expression ] + // + case 292: { action. consumeDesignatorArray(); break; + } + + // + // Rule 293: designator ::= . identifier_or_typedefname + // + case 293: { action. consumeDesignatorField(); break; + } + + // + // Rule 294: translation_unit ::= external_declaration_list + // + case 294: { action. consumeTranslationUnit(); break; } // - // Rule 292: translation_unit ::= $Empty + // Rule 295: translation_unit ::= $Empty // - case 292: { action. consumeTranslationUnit(); break; + case 295: { action. consumeTranslationUnit(); break; } // - // Rule 297: external_declaration ::= ; + // Rule 300: external_declaration ::= ; // - case 297: { action. consumeDeclarationEmpty(); break; + case 300: { action. consumeDeclarationEmpty(); break; } // - // Rule 298: external_declaration ::= ERROR_TOKEN + // Rule 301: external_declaration ::= ERROR_TOKEN // - case 298: { action. consumeDeclarationProblem(); break; + case 301: { action. consumeDeclarationProblem(); break; } // - // Rule 301: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 301: { action. consumeFunctionDefinition(true); break; + case 304: { action. consumeFunctionDefinition(true); break; } // - // Rule 302: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 305: function_definition ::= <openscope-ast> function_declarator function_body // - case 302: { action. consumeFunctionDefinition(false); break; + case 305: { action. consumeFunctionDefinition(false); break; } // - // Rule 303: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 306: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 303: { action. consumeFunctionDefinitionKnR(); break; + case 306: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 304: function_body ::= { } + // Rule 307: function_body ::= { } // - case 304: { action. consumeStatementCompoundStatement(false); break; + case 307: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 305: function_body ::= { <openscope-ast> block_item_list } + // Rule 308: function_body ::= { <openscope-ast> block_item_list } // - case 305: { action. consumeStatementCompoundStatement(true); break; + case 308: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 307: no_cast_start ::= ERROR_TOKEN + // Rule 310: no_cast_start ::= ERROR_TOKEN // - case 307: { action. consumeExpressionProblem(); break; + case 310: { action. consumeExpressionProblem(); 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 79e3469959f..8ea9b4db7fa 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 @@ -61,148 +61,150 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 6,6,3,5,1,1,2,3,4,1, 2,1,3,1,1,3,2,1,1,1, 1,2,1,2,3,1,1,1,3,1, - 2,2,2,3,4,5,1,5,1,1, - 3,3,4,1,1,2,3,2,3,2, - 1,0,1,2,1,1,1,1,1,2, - 4,3,6,2,4,1,1,-32,0,0, - 0,0,0,0,0,0,-2,0,0,0, - 0,0,0,0,0,0,0,0,0,-5, - 0,0,0,0,0,0,0,0,0,-121, + 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, + -32,0,0,0,0,0,0,0,-208,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-5,0,0,0,0,0,0,0, + 0,0,-121,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -177,0,-12,0,0,0,0,0,0,0, - 0,0,-13,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-127,-4,-15,-140, - -169,-104,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-16,0, - -170,0,0,0,0,0,0,0,0,0, + 0,0,0,-196,0,-12,0,0,0,0, + 0,0,0,0,0,0,-13,0,0,0, + 0,0,0,0,0,0,0,0,0,-33, + -2,-127,-140,-4,-15,0,0,0,0,0, + 0,0,0,0,-16,-17,-18,0,-19,0, + 0,0,0,0,-191,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,-166,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -33,-34,-29,-30,-3,0,0,0,0,0, + 0,0,0,0,-34,-179,-144,-29,0,-55, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-113,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-17,0,-49,0,0,0,0,0, - 0,0,0,-18,0,0,0,-70,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-69,0,0, - 0,-19,-20,-21,-22,0,-107,0,0,0, + 0,0,-70,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-126,0,0,0, - 0,0,0,0,0,-23,0,0,0,0, - 0,0,0,0,0,0,0,-24,-25,0, - -185,0,0,0,0,0,0,0,0,-26, + 0,0,-20,0,-21,0,-187,0,0,0, + 0,0,0,0,-22,0,0,0,0,0, + 0,0,0,0,0,0,-3,0,0,0, + 0,0,0,0,-23,0,0,0,0,0, + 0,0,0,0,0,0,-24,-25,-26,-170, + -68,-51,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-30,0,-107,0, 0,0,0,0,0,0,0,0,0,0, - -27,0,0,0,0,0,0,0,0,-68, + 0,0,0,0,0,0,0,0,0,-67, + -126,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -83,-84,-139,-87,-56,0,0,0,0,0, + -83,0,-84,0,-27,0,0,0,0,0, + 0,0,-87,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,0,0,0,-57,0,0,0,0,0, - 0,0,0,-88,0,0,0,0,0,0, + 0,0,-88,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,0,-89,0,0,0,0,0,0,0, 0,0,0,0,-59,0,0,0,0,0, - 0,0,0,-89,0,0,0,0,0,0, + 0,0,-90,0,0,0,0,0,0,0, 0,0,0,0,-60,0,0,0,0,0, - 0,0,0,-90,0,0,0,0,0,0, + 0,0,-91,0,0,0,0,0,0,0, 0,0,0,0,-61,0,0,0,0,0, - 0,0,0,-91,0,0,0,0,0,0, + 0,0,-92,0,0,0,0,0,0,0, 0,0,0,0,-62,0,0,0,0,0, - 0,0,0,-92,0,0,0,0,0,0, + 0,0,-93,0,0,0,0,0,0,0, 0,0,0,0,-63,0,0,0,0,0, - 0,0,0,-93,0,0,0,0,0,0, + 0,0,-94,0,0,0,0,0,0,0, 0,0,0,0,-64,0,0,0,0,0, - 0,0,0,-191,0,0,0,0,0,0, + 0,0,-95,0,0,0,0,0,0,0, 0,0,0,0,-65,0,0,0,0,0, - 0,0,0,-94,0,0,0,0,0,0, + 0,0,-96,0,0,0,0,0,0,0, 0,0,0,0,-66,0,0,0,0,0, - 0,0,0,-130,0,0,0,0,0,0, - 0,0,0,0,-46,0,0,0,0,0, - 0,0,0,0,0,-95,-96,-97,-98,-77, - 0,0,0,0,0,-144,0,0,0,0, - 0,0,0,0,-99,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-100,-101, - -102,-151,-103,-78,0,0,0,0,-6,0, + 0,0,-130,0,0,0,0,0,0,0, + 0,0,0,0,-37,0,0,0,0,0, + 0,0,0,0,-205,-97,-98,-99,-77,-100, + 0,0,0,0,-145,0,0,0,0,0, + 0,0,-101,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-6,0, 0,0,0,0,0,0,0,0,0,0, - 0,-145,0,0,0,0,0,0,0,0, + 0,-146,0,0,0,0,0,0,0,-102, 0,0,0,0,0,0,0,0,0,0, - 0,-168,0,0,0,0,0,0,0,0, + 0,-169,0,0,0,0,0,0,0,-103, 0,0,0,0,0,0,0,0,0,0, - -182,0,0,0,0,0,0,0,0,-114, - 0,0,0,0,0,0,0,0,0,-37, - 0,0,0,0,0,0,0,0,-47,0, - 0,0,0,0,0,0,0,-188,0,0, + -184,0,0,0,0,0,0,0,-114,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,-192,0,0,0, - 0,0,0,0,0,-80,0,0,0,0, - 0,0,0,0,0,-38,0,0,0,0, - 0,0,0,0,-7,0,0,0,0,0, - 0,-116,0,-202,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,-120,0,0,0,0,0,0,0, - 0,-119,0,0,0,0,0,0,0,0, - 0,-129,-8,0,0,0,0,0,0,0, - 0,-51,0,0,0,0,0,0,0,0, - -155,0,0,0,0,0,0,-131,-72,-123, - -161,-142,-148,-73,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-203,0,0, - 0,0,0,0,0,-113,-67,0,0,-162, - -166,0,-193,-106,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-204,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, - -204,0,0,-54,0,0,0,0,0,0, - 0,0,-160,0,0,0,0,0,0,0, - -55,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-52,0,0,0, - 0,0,0,0,0,-82,0,0,0,0, - -74,-179,-9,0,0,0,0,0,0,-115, - 0,0,-143,0,0,0,0,-167,0,-85, - 0,0,-171,0,0,0,0,-86,0,0, + 0,0,0,0,0,-116,-129,-119,-131,-123, + -72,-73,-143,0,0,-52,0,0,0,0, + 0,0,0,-142,0,0,0,0,0,0, + 0,0,0,0,-173,0,0,-150,-149,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-184,0,0,0,0, - 0,0,0,-75,0,-111,0,0,0,0, - -48,0,0,0,0,0,0,0,0,-201, - 0,0,0,0,0,-159,-152,0,0,0, - 0,0,0,0,0,0,0,-50,0,0, + 0,-157,-162,0,0,0,-178,-185,-69,0, + 0,-85,0,0,0,-163,0,0,-167,-152, 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,-42,0,0, - 0,0,0,0,0,0,0,0,-43,0, - 0,0,0,0,0,0,0,-117,0,-11, - 0,0,0,0,0,0,0,0,0,-44, - 0,0,0,0,0,0,0,0,-108,0, - -45,0,0,0,0,0,0,0,0,-194, - 0,-71,-187,-156,-109,-118,-31,-124,0,0, - 0,0,0,0,0,0,-110,0,0,0, + 0,0,0,0,0,0,-46,0,0,0, + 0,0,0,0,0,0,-82,-86,0,-54, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-195,-78,0,0,0,0,0,-80,-181, + -110,0,0,0,0,0,0,0,-47,0, + 0,0,0,0,0,0,-104,0,0,0, + 0,-207,0,0,0,0,-139,0,0,0, + 0,0,0,0,0,0,0,0,0,-148, + 0,0,0,0,0,0,0,-48,0,0, + 0,0,0,0,0,-203,0,0,0,0, + -108,-151,0,0,-49,0,0,0,0,0, + 0,0,-106,0,0,0,-115,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-147,0,0,0,0,0,0,-14,-28, - -35,0,0,-122,-76,0,0,0,0,0, - 0,0,0,0,0,-39,0,0,0,0, - 0,0,0,0,0,0,0,-189,0,0, - 0,0,0,0,0,0,-183,-125,0,0, - 0,-79,-128,0,0,-40,0,0,0,0, - 0,0,-41,0,0,0,0,0,0,-81, - 0,0,0,0,0,-133,-36,0,0,0, - 0,0,0,-112,0,0,-153,-135,0,0, - 0,0,0,-134,0,-136,0,0,0,0, - 0,-176,0,-138,0,-154,-174,0,0,-137, - 0,0,0,-105,0,-158,0,0,0,0, - -149,0,-190,0,0,0,-164,0,0,0, - 0,0,0,0,0,-175,0,0,0,0, + 0,0,0,0,0,-7,0,0,0,0, + 0,0,0,-50,0,0,0,0,0,0, + 0,0,0,0,0,-42,0,0,0,0, + 0,0,0,-197,0,0,-38,0,0,0, + 0,0,0,0,0,0,-43,0,0,0, + 0,0,0,0,0,0,0,-44,0,0, + 0,0,0,0,0,-111,0,0,-45,0, + 0,0,0,0,0,0,-71,0,0,-74, + -31,-161,0,-75,0,0,0,0,0,-8, + 0,0,0,0,0,0,0,-193,0,0, + 0,0,-125,0,0,0,-128,0,0,0, + 0,0,0,0,0,0,-147,0,0,0, + 0,0,0,0,0,0,-117,-118,0,-122, + -133,0,0,0,0,0,0,0,0,0, + 0,-9,0,0,0,0,0,0,-10,0, + 0,0,0,0,0,-11,0,0,0,0, + 0,0,-14,-28,-156,0,-160,0,-76,-154, + 0,0,-39,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,-1,0, - 0,0,-150,0,-132,-178,-53,0,-163,-157, - 0,0,0,0,0,0,-146,-141,0,0, - -195,0,-172,-180,0,0,0,0,0,0, - 0,0,0,0,0,0,-173,-186,0,0, - -181,0,-196,0,-197,0,0,0,0,0, - -198,0,-199,-200,0,0,0,0,0,0, + 0,0,0,-112,0,0,0,0,0,0, + -79,0,0,0,0,-186,-81,0,0,-41, + 0,0,0,0,0,0,-134,0,-165,-171, + 0,0,0,-200,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-136,-135, + 0,-155,0,0,0,0,0,0,0,0, + 0,-159,0,-177,-168,-1,0,-189,-192,0, + -137,0,0,0,0,0,0,0,-132,0, + 0,0,0,0,0,0,0,0,-164,-105, + -138,0,0,0,0,0,0,0,0,0, + -141,-174,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-109, + 0,-124,0,0,0,0,-158,0,0,0, + 0,0,0,0,0,0,0,0,-35,0, + 0,0,0,-175,0,-36,0,-180,-53,0, + 0,0,0,0,0,0,0,-153,0,-172, + -176,-182,-201,-183,-202,0,0,0,-188,0, + 0,-198,-199,0,0,-206,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,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; @@ -212,176 +214,178 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 83,9,23,23,22,22,26,26,67,67, + 84,8,23,23,22,22,26,26,68,68, 1,1,1,1,2,2,2,3,3,4, - 4,4,4,4,4,4,4,51,51,68, - 68,5,5,5,5,5,5,5,5,5, - 5,5,6,7,7,7,7,8,8,8, + 4,4,4,4,4,4,4,51,51,69, + 69,5,5,5,5,5,5,5,5,5, + 5,5,6,7,7,7,7,9,9,9, 10,10,10,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,93,45,40,84,84, - 71,71,46,94,94,94,94,94,94,94, - 95,95,95,96,96,101,101,102,102,97, - 97,98,98,98,104,104,99,99,99,99, - 100,100,100,100,100,103,103,24,24,24, - 24,24,28,28,28,77,77,72,72,72, - 72,73,73,73,74,74,74,75,75,75, - 76,76,76,105,105,106,106,107,29,31, + 19,19,19,19,19,95,45,40,85,85, + 72,72,46,96,96,96,96,96,96,96, + 97,97,97,98,98,103,103,104,104,99, + 99,100,100,100,106,106,101,101,101,101, + 102,102,102,102,102,105,105,24,24,24, + 24,24,28,28,28,78,78,73,73,73, + 73,74,74,74,75,75,75,76,76,76, + 77,77,77,107,107,108,108,109,29,31, 31,31,31,31,52,54,54,54,54,54, - 54,54,54,54,54,54,54,64,64,27, - 27,61,61,61,61,62,62,62,55,55, - 56,56,48,48,48,32,85,85,78,79, - 79,79,63,63,80,80,81,81,65,65, + 54,54,54,54,54,54,54,65,65,27, + 27,62,62,62,62,63,63,63,55,55, + 56,56,48,48,48,32,86,86,79,80, + 80,80,64,64,81,81,82,82,66,66, 20,21,21,21,30,47,47,33,33,33, - 33,36,36,38,34,34,35,39,39,108, - 108,37,109,109,86,86,25,25,25,25, - 25,25,25,25,25,82,49,49,49,49, - 58,58,57,57,57,59,59,50,50,87, - 87,69,69,60,60,60,41,41,41,42, - 43,43,43,44,44,44,44,53,53,70, - 70,70,70,66,88,89,89,90,90,91, - 91,110,110,111,111,112,112,112,112,114, - 114,113,113,113,115,115,83,83,1,14, - 19,15,389,580,43,483,409,11,522,494, - 524,523,556,525,569,568,73,90,133,210, - 626,14,19,15,389,40,135,132,134,158, - 539,14,19,15,389,580,43,483,409,390, - 522,494,524,523,556,525,569,568,73,277, - 137,573,164,597,14,19,15,389,33,141, - 144,147,150,597,14,19,15,389,32,388, - 1211,1264,1445,1482,1500,1206,270,210,42,740, - 719,745,6,279,216,1551,218,1593,220,221, - 226,340,265,1104,1099,268,280,251,210,242, - 613,539,14,19,15,389,580,43,483,409, - 390,522,494,524,523,556,525,569,568,73, - 277,440,14,19,15,389,580,43,483,409, - 390,522,494,524,523,556,525,569,568,73, - 277,516,516,397,397,597,14,19,15,389, - 580,43,483,409,279,522,494,524,523,556, - 525,569,568,73,90,600,16,280,1131,391, - 285,1468,286,347,281,597,14,19,15,389, - 42,43,483,409,248,522,847,282,368,14, - 19,15,389,580,43,483,409,1385,522,494, - 524,523,556,525,569,568,73,1369,135,23, - 22,236,283,261,439,291,388,655,14,19, - 15,389,580,43,483,409,1388,522,494,524, - 523,556,525,569,568,73,1478,404,14,19, - 15,389,580,43,483,409,450,522,494,524, - 523,556,525,569,568,73,1607,1544,446,314, - 237,568,14,19,15,389,580,43,483,409, - 660,522,494,524,523,556,525,569,568,73, - 277,597,14,19,15,389,580,43,483,409, - 550,522,494,524,523,556,525,569,568,73, - 91,684,700,758,394,597,14,19,15,389, - 580,43,483,409,283,522,494,524,523,556, - 525,569,568,73,84,597,14,19,15,389, - 580,43,483,409,430,522,494,524,523,556, - 525,569,568,73,83,597,14,19,15,389, - 580,43,483,409,1557,522,494,524,523,556, - 525,569,568,73,82,597,14,19,15,389, - 580,43,483,409,433,522,494,524,523,556, - 525,569,568,73,81,597,14,19,15,389, - 580,43,483,409,533,522,494,524,523,556, - 525,569,568,73,80,597,14,19,15,389, - 580,43,483,409,724,522,494,524,523,556, - 525,569,568,73,79,597,14,19,15,389, - 580,43,483,409,727,522,494,524,523,556, - 525,569,568,73,78,597,14,19,15,389, - 580,43,483,409,453,522,494,524,523,556, - 525,569,568,73,77,597,14,19,15,389, - 580,43,483,409,717,522,494,524,523,556, - 525,569,568,73,76,597,14,19,15,389, - 580,43,483,409,623,522,494,524,523,556, - 525,569,568,73,75,597,14,19,15,389, - 580,43,483,409,286,522,494,524,523,556, - 525,569,568,73,74,597,14,19,15,389, - 42,43,483,764,133,210,518,254,288,605, - 349,192,135,132,134,158,597,14,19,15, - 389,580,43,483,409,634,522,494,524,523, - 556,525,569,568,73,1613,137,950,164,231, - 636,685,135,552,411,141,144,147,150,597, - 14,19,15,389,42,39,1211,1264,1445,1482, - 1500,1206,597,14,19,15,389,580,43,483, - 409,1032,522,494,524,523,556,525,569,568, - 73,1627,597,14,19,15,389,42,43,483, - 409,361,522,494,524,523,556,525,569,568, - 92,597,14,19,15,389,42,43,483,409, - 661,522,494,524,523,556,525,569,568,92, - 597,14,19,15,389,42,43,614,1628,597, - 14,19,15,389,42,43,483,804,597,14, - 19,15,389,42,43,483,409,209,522,494, - 524,523,556,525,569,568,92,597,14,19, - 15,389,42,43,483,409,451,522,494,524, - 523,556,525,569,568,92,597,14,19,15, - 389,42,43,644,1635,597,14,19,15,389, - 42,38,752,1062,597,14,19,15,389,42, - 43,483,409,200,522,494,524,523,556,525, - 569,568,92,597,14,19,15,389,42,43, - 483,409,753,522,494,524,523,556,525,569, - 568,72,502,597,14,19,15,389,42,37, - 201,882,597,14,19,15,389,42,43,483, - 409,308,522,494,524,523,849,270,756,751, - 114,765,114,255,536,215,1551,218,1593,220, - 221,226,1566,263,1104,1099,268,182,262,259, - 250,210,250,210,271,273,743,397,270,272, - 766,769,260,747,66,1595,215,1551,218,1593, - 220,221,226,1100,263,1104,1099,268,274,883, - 1537,216,1551,218,1593,220,221,226,1223,257, - 1233,520,1695,1266,597,14,19,15,389,42, - 43,483,409,763,522,494,524,523,556,525, - 880,597,14,19,15,389,42,43,483,409, - 1695,522,494,524,523,556,881,597,14,19, - 15,389,42,43,483,409,286,522,494,524, - 865,327,478,597,14,19,15,389,42,36, - 6,1611,1695,374,1631,1695,133,210,548,1524, - 397,133,210,410,136,132,134,158,302,140, - 132,134,158,251,210,215,1551,218,1593,220, - 221,226,21,251,210,288,763,1695,138,1133, - 164,20,1695,139,56,164,397,142,145,148, - 151,597,14,19,15,389,42,43,483,409, - 478,522,494,846,133,210,308,96,269,1611, - 196,198,143,132,134,158,824,784,597,14, - 19,15,389,42,43,483,409,1633,522,848, - 1695,1072,181,215,1551,218,1593,220,221,226, - 597,14,19,15,389,42,35,1133,597,14, - 19,15,389,42,43,483,409,256,684,597, - 14,19,15,389,42,43,483,409,6,704, - 597,14,19,15,389,42,34,1526,197,198, - 597,14,19,15,389,42,43,483,409,302, - 724,597,14,19,15,389,42,43,483,409, - 609,744,716,548,603,114,6,602,114,1611, - 1695,1514,238,1212,1695,1540,518,471,14,19, - 15,389,42,35,273,250,210,270,250,210, - 290,1695,270,215,1551,218,1593,220,221,226, - 243,1695,1695,263,1104,1099,268,1537,263,1104, - 1099,268,471,14,19,15,389,42,35,6, - 6,662,1266,387,162,104,387,262,308,308, - 455,193,1695,1102,1695,244,597,14,19,15, - 389,42,46,195,195,133,210,547,758,1695, - 856,1387,1387,146,132,134,158,548,302,86, - 86,88,152,397,454,454,597,14,19,15, - 389,42,45,597,14,19,15,389,42,44, - 200,240,133,210,1101,275,6,6,453,1127, - 149,132,134,158,399,1536,455,397,6,1641, - 133,210,1695,824,46,1230,94,1546,152,132, - 134,158,743,824,6,824,142,397,1072,276, - 544,1553,207,1599,631,824,238,86,195,1695, - 195,767,1238,435,228,824,1384,308,1384,222, - 195,1695,824,1544,255,1695,399,1101,1384,270, - 195,1483,190,1098,190,824,225,1072,1384,1091, - 1600,1286,1600,26,190,265,1104,1099,268,507, - 1072,1596,1600,744,190,48,308,6,455,544, - 190,1614,1600,255,824,206,455,302,6,824, - 1643,135,1098,302,308,361,255,411,224,1072, - 1173,1130,184,1483,195,1098,1101,302,302,86, - 239,308,1384,308,306,302,241,86,1695,1644, - 183,308,879,397,723,255,1695,1695,191,1695, - 242,287,1517,1695,1098,1695,1695,202,289,203, - 1118,1695,1695,1695,206,227,231,278,1695,1695, - 1695,1695,317,1695,1695,1695,1695,1695,1695,1256, - 1130,1695,0,17,178,0,18,177,0,1, - 1918,0,1,1929,0 + 33,36,36,38,34,34,35,39,39,110, + 110,37,111,111,87,87,25,25,25,25, + 25,25,25,25,25,83,49,49,49,49, + 58,58,57,57,57,59,59,50,50,88, + 88,70,70,60,60,60,41,41,41,42, + 43,43,43,44,44,44,44,53,53,53, + 61,89,71,71,71,71,67,90,91,91, + 92,92,93,93,112,112,113,113,114,114, + 114,114,116,116,115,115,115,117,117,84, + 84,1,14,19,15,395,569,43,406,71, + 405,409,407,525,523,555,535,568,567,73, + 90,133,210,642,14,19,15,395,40,135, + 132,134,158,526,14,19,15,395,569,43, + 406,393,405,409,407,525,523,555,535,568, + 567,73,277,137,503,164,613,14,19,15, + 395,33,1324,141,144,147,150,613,14,19, + 15,395,32,394,1370,1374,1459,1491,1497,1167, + 470,43,376,649,42,802,282,215,1108,218, + 1262,220,221,226,1094,388,68,58,278,430, + 283,1641,251,210,1227,584,14,19,15,395, + 569,43,406,393,405,409,407,525,523,555, + 535,568,567,73,277,435,14,19,15,395, + 569,43,406,393,405,409,407,525,523,555, + 535,568,567,73,277,470,346,408,501,23, + 613,14,19,15,395,42,43,406,282,405, + 409,407,525,523,555,950,1094,251,210,680, + 571,270,283,1139,570,288,1514,1559,284,216, + 1108,218,1262,220,221,226,1094,265,1082,1081, + 268,274,285,369,14,19,15,395,569,43, + 406,1600,405,409,407,525,523,555,535,568, + 567,73,1261,147,22,432,236,555,14,19, + 15,395,569,43,406,354,405,409,407,525, + 523,555,535,568,567,73,277,613,14,19, + 15,395,569,43,406,564,405,409,407,525, + 523,555,535,568,567,73,90,441,201,676, + 651,74,613,14,19,15,395,42,43,406, + 286,405,409,407,525,523,887,501,1094,671, + 14,19,15,395,569,43,406,1602,405,409, + 407,525,523,555,535,568,567,73,1393,16, + 501,401,14,19,15,395,569,43,406,394, + 405,409,407,525,523,555,535,568,567,73, + 1407,700,970,718,237,613,14,19,15,395, + 569,43,406,164,405,409,407,525,523,555, + 535,568,567,73,91,613,14,19,15,395, + 569,43,406,289,405,409,407,525,523,555, + 535,568,567,73,84,613,14,19,15,395, + 569,43,406,285,405,409,407,525,523,555, + 535,568,567,73,83,613,14,19,15,395, + 569,43,406,512,405,409,407,525,523,555, + 535,568,567,73,82,613,14,19,15,395, + 569,43,406,541,405,409,407,525,523,555, + 535,568,567,73,81,613,14,19,15,395, + 569,43,406,570,405,409,407,525,523,555, + 535,568,567,73,80,613,14,19,15,395, + 569,43,406,599,405,409,407,525,523,555, + 535,568,567,73,79,613,14,19,15,395, + 569,43,406,767,405,409,407,525,523,555, + 535,568,567,73,78,613,14,19,15,395, + 569,43,406,813,405,409,407,525,523,555, + 535,568,567,73,77,613,14,19,15,395, + 569,43,406,472,405,409,407,525,523,555, + 535,568,567,73,76,613,14,19,15,395, + 569,43,406,154,405,409,407,525,523,555, + 535,568,567,73,75,613,14,19,15,395, + 569,43,406,287,405,409,407,525,523,555, + 535,568,567,73,74,613,14,19,15,395, + 42,43,643,133,210,351,203,592,262,117, + 532,135,132,134,158,613,14,19,15,395, + 569,43,406,333,405,409,407,525,523,555, + 535,568,567,73,1582,137,989,164,216,1108, + 218,1262,220,221,226,141,144,147,150,613, + 14,19,15,395,42,39,1370,1374,1459,1491, + 1497,1167,613,14,19,15,395,569,43,406, + 431,405,409,407,525,523,555,535,568,567, + 73,1624,613,14,19,15,395,42,43,406, + 658,405,409,407,525,523,555,535,568,567, + 92,613,14,19,15,395,42,43,406,711, + 405,409,407,525,523,555,535,568,567,92, + 613,14,19,15,395,42,43,406,1649,405, + 409,407,525,523,555,535,568,567,92,613, + 14,19,15,395,42,43,406,209,405,409, + 407,525,523,555,535,568,567,92,613,14, + 19,15,395,42,43,406,1653,405,409,407, + 525,523,555,535,568,567,92,613,14,19, + 15,395,42,43,406,200,405,409,407,525, + 523,555,535,568,567,72,719,305,739,195, + 257,620,49,257,201,1140,613,14,19,15, + 395,42,43,406,814,405,409,407,525,888, + 250,210,270,250,210,442,271,272,622,65, + 215,1108,218,1262,220,221,226,1544,263,1082, + 1081,268,535,451,259,251,210,680,562,141, + 1200,273,501,225,270,1549,745,260,457,597, + 141,1105,215,1108,218,1262,220,221,226,228, + 263,1082,1081,268,21,1123,1641,613,14,19, + 15,395,42,43,406,257,783,287,6,1356, + 613,14,19,15,395,42,43,406,1570,405, + 409,407,525,523,555,535,903,133,210,456, + 193,20,539,213,207,136,132,134,158,310, + 443,464,14,19,15,395,42,35,1324,613, + 14,19,15,395,42,43,406,20,803,138, + 1076,164,433,1719,243,343,1078,340,1719,142, + 145,148,151,215,1108,218,1262,220,221,226, + 464,14,19,15,395,42,35,1192,613,14, + 19,15,395,42,43,406,443,405,409,407, + 823,6,97,244,1324,613,14,19,15,395, + 42,43,406,243,405,409,843,20,1509,196, + 198,1080,1719,1719,238,1507,1388,224,1719,215, + 1108,218,1262,220,221,226,613,14,19,15, + 395,42,38,1192,613,14,19,15,395,42, + 43,406,1719,405,409,886,613,14,19,15, + 395,42,43,406,141,405,703,613,14,19, + 15,395,42,43,683,197,198,613,14,19, + 15,395,42,43,406,1719,405,723,613,14, + 19,15,395,42,43,406,501,405,743,613, + 14,19,15,395,42,43,406,161,405,763, + 328,375,744,885,756,1484,1719,1719,269,1129, + 613,14,19,15,395,42,37,1719,810,273, + 133,210,270,6,133,210,270,501,140,132, + 134,158,143,132,134,158,1719,6,263,1082, + 1081,268,263,1082,1081,268,240,20,20,275, + 291,20,139,1644,164,1529,1551,1356,1083,1532, + 239,262,613,14,19,15,395,42,36,613, + 14,19,15,395,42,35,613,14,19,15, + 395,42,34,20,20,761,192,761,1719,768, + 501,311,311,613,14,19,15,395,42,46, + 613,14,19,15,395,42,45,195,195,133, + 210,182,276,181,69,1371,1371,146,132,134, + 158,780,863,86,86,1719,744,792,587,587, + 613,14,19,15,395,42,44,47,1077,761, + 761,133,210,1719,340,863,1719,133,210,149, + 132,134,158,458,610,152,132,134,158,95, + 20,195,143,1570,255,26,279,863,1542,1122, + 863,1397,239,1079,69,562,496,1652,562,169, + 863,480,863,195,547,190,195,863,1719,105, + 1719,1122,1455,1607,1122,1656,195,863,1077,480, + 407,20,291,1077,1122,293,1719,190,1123,1569, + 190,20,6,1077,1457,1607,86,1628,1607,1510, + 190,309,1719,456,255,270,1123,1642,1607,255, + 257,1397,257,1079,1719,241,1643,191,1079,255, + 1719,265,1082,1081,268,863,1460,206,1079,531, + 250,210,250,210,6,1719,20,547,761,20, + 391,195,1372,1136,547,206,1645,547,600,1122, + 20,501,761,501,761,811,863,242,415,6, + 1496,1136,761,6,184,191,761,1719,392,88, + 392,1719,1077,222,1719,227,86,231,183,86, + 202,1168,290,1719,890,1719,292,1719,203,1719, + 1719,1719,319,611,1719,895,1719,1719,256,1719, + 1719,1719,1719,1719,1719,1719,1719,1719,1719,1719, + 1719,1719,1719,1719,1132,1719,0,17,178,0, + 18,177,0,1,1942,0,1,1953,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -392,92 +396,97 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermCheck { public final static byte termCheck[] = {0, 0,1,2,3,4,0,6,7,8,9, - 0,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,0,27,28,29, + 5,11,12,13,14,15,16,17,18,0, + 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,0,1,0,3,0, - 5,6,7,8,9,0,11,12,13,14, - 15,6,7,8,9,0,11,12,13,14, - 15,6,7,8,29,30,31,32,33,34, - 35,36,37,38,39,40,45,42,43,44, - 80,46,47,0,1,0,3,50,5,6, - 7,8,9,0,11,12,13,14,15,6, - 7,8,9,0,11,12,13,14,15,6, - 7,8,29,30,31,32,33,34,35,36, - 37,38,39,40,0,42,43,44,4,46, - 47,0,1,0,3,50,5,6,7,8, - 9,0,11,12,13,14,15,6,7,8, - 9,0,11,12,13,14,15,6,7,8, - 29,30,31,32,33,34,35,36,37,38, - 39,40,0,42,43,44,0,46,47,0, - 1,0,3,0,5,6,7,8,9,0, - 11,12,13,14,15,6,7,8,9,0, - 11,12,13,14,15,6,7,8,29,30, - 31,32,33,34,35,36,37,38,39,40, - 0,42,43,44,0,46,47,0,1,0, - 3,0,5,6,7,8,9,0,11,12, - 13,14,15,0,0,1,2,16,17,5, - 0,0,1,2,10,4,29,30,31,32, - 33,34,35,36,37,38,39,40,18,42, - 43,44,0,46,47,0,1,0,3,59, - 0,6,7,8,9,41,11,12,13,14, - 15,0,55,56,57,58,5,0,55,56, - 57,58,5,0,29,30,31,32,33,34, - 35,36,37,38,39,40,0,42,43,44, - 48,49,6,7,8,9,0,11,12,13, - 14,15,55,56,57,58,0,0,0,1, - 4,3,51,46,64,29,30,31,32,33, - 34,35,36,37,38,39,40,0,1,2, - 3,4,5,0,26,0,9,0,65,6, - 7,8,0,16,17,18,19,20,21,22, - 23,24,25,0,27,28,0,4,0,53, - 54,5,4,0,1,2,3,4,5,0, - 0,1,9,3,0,6,7,8,51,16, - 17,18,19,20,21,22,23,24,25,0, - 27,28,0,4,0,1,26,41,0,0, - 1,2,3,4,5,0,53,54,50,0, - 0,1,0,3,51,16,17,18,19,20, - 21,22,23,24,25,26,27,28,16,17, - 0,1,2,3,4,5,26,0,1,2, - 48,49,53,54,50,46,16,17,18,19, - 20,21,22,23,24,25,0,27,28,61, - 62,0,1,2,0,4,0,1,2,3, - 4,10,63,68,69,0,1,0,3,0, - 1,51,16,17,18,19,20,21,22,23, - 24,25,0,27,28,0,59,2,0,1, - 2,3,4,0,1,10,3,0,1,0, - 3,0,0,47,16,17,18,19,20,21, - 22,23,24,25,26,27,28,0,1,2, - 3,4,0,1,2,26,4,26,61,62, - 48,49,10,16,17,18,19,20,21,22, - 23,24,25,26,27,28,0,1,2,3, - 4,0,0,2,0,4,0,5,0,1, - 2,10,16,17,18,19,20,21,22,23, - 24,25,0,27,28,0,1,2,3,4, - 0,0,2,0,4,0,0,0,16,17, - 10,16,17,18,19,20,21,22,23,24, - 25,18,27,28,0,1,2,3,4,0, - 0,0,0,1,0,3,5,63,66,0, - 16,17,18,19,20,21,22,23,24,25, - 0,27,28,0,0,2,26,4,5,6, - 7,8,9,10,11,12,13,14,15,0, - 65,2,41,4,5,6,7,8,9,10, - 11,12,13,14,15,0,0,2,0,60, - 5,5,0,0,41,10,0,5,10,70, - 71,72,73,74,75,76,77,78,79,0, - 41,2,0,0,0,2,0,5,64,10, - 0,0,0,10,10,0,41,0,19,20, - 10,45,0,41,0,0,0,45,0,0, - 52,48,49,0,48,49,10,26,26,0, - 0,0,66,41,0,0,0,0,0,0, - 0,52,0,0,0,0,52,0,0,0, - 45,0,45,0,0,59,67,45,0,0, - 45,0,0,0,0,0,0,0,0,0, - 0,0,0,0,60,0,0,0,60,0, + 40,0,0,43,44,45,0,1,0,3, + 2,5,6,7,8,9,51,0,10,13, + 14,15,16,17,0,1,2,0,0,5, + 0,4,4,0,10,29,30,31,32,33, + 34,35,36,37,38,39,40,46,42,43, + 44,45,19,47,0,1,0,3,2,5, + 6,7,8,9,0,41,10,13,14,15, + 16,17,55,56,57,58,0,1,50,3, + 53,54,80,29,30,31,32,33,34,35, + 36,37,38,39,40,19,42,43,44,45, + 0,47,0,1,4,3,0,5,6,7, + 8,9,0,0,50,13,14,15,16,17, + 0,0,2,0,18,5,0,4,0,1, + 10,29,30,31,32,33,34,35,36,37, + 38,39,40,0,42,43,44,45,0,47, + 0,1,0,3,0,5,6,7,8,9, + 0,41,0,13,14,15,16,17,55,56, + 57,58,0,1,0,3,53,54,50,29, + 30,31,32,33,34,35,36,37,38,39, + 40,19,42,43,44,45,0,47,0,1, + 46,3,0,5,6,7,8,9,6,7, + 8,13,14,15,16,17,0,55,56,57, + 58,0,6,7,8,65,0,29,30,31, + 32,33,34,35,36,37,38,39,40,18, + 42,43,44,45,0,47,0,1,4,3, + 0,0,6,7,8,9,6,7,8,13, + 14,15,16,17,0,1,2,0,4,0, + 1,0,3,0,10,29,30,31,32,33, + 34,35,36,37,38,39,40,0,19,43, + 44,45,0,6,7,8,9,53,54,0, + 13,14,15,16,17,0,1,2,0,4, + 0,1,2,0,4,10,29,30,31,32, + 33,34,35,36,37,38,39,40,0,1, + 2,3,4,5,0,0,2,9,4,11, + 12,6,7,8,10,46,18,0,20,21, + 22,23,24,25,26,27,28,65,11,12, + 0,1,2,3,4,5,0,0,2,9, + 4,11,12,6,7,8,10,64,18,51, + 20,21,22,23,24,25,26,27,28,0, + 0,0,0,1,0,1,2,3,4,5, + 0,0,0,1,2,11,12,6,7,8, + 0,51,18,19,20,21,22,23,24,25, + 26,27,28,0,1,2,3,4,5,0, + 1,0,3,0,11,12,42,48,49,0, + 1,18,3,20,21,22,23,24,25,26, + 27,28,61,62,64,0,1,2,3,4, + 0,59,0,1,2,5,11,12,68,69, + 60,0,0,18,51,20,21,22,23,24, + 25,26,27,28,0,0,1,2,3,4, + 0,0,61,62,0,5,11,12,0,5, + 0,41,47,18,19,20,21,22,23,24, + 25,26,27,28,0,1,2,3,4,48, + 49,0,1,0,3,11,12,0,1,0, + 3,41,18,19,20,21,22,23,24,25, + 26,27,28,0,1,2,3,4,48,49, + 59,0,0,0,11,12,0,59,0,0, + 66,18,19,20,21,22,23,24,25,26, + 27,28,0,1,2,3,4,48,49,0, + 0,0,0,11,12,0,63,0,0,10, + 18,10,20,21,22,23,24,25,26,27, + 28,0,1,2,3,4,48,49,0,50, + 0,0,11,12,63,0,60,0,10,18, + 10,20,21,22,23,24,25,26,27,28, + 0,1,2,3,4,0,19,0,0,0, + 0,11,12,0,5,0,0,0,18,0, + 20,21,22,23,24,25,26,27,28,0, + 52,2,52,4,5,6,7,8,9,10, + 0,0,13,14,15,16,17,0,0,2, + 41,4,5,6,7,8,9,10,0,19, + 13,14,15,16,17,60,0,19,0,0, + 41,0,0,0,0,70,71,72,73,74, + 75,76,77,78,79,0,0,19,41,0, + 0,6,7,8,9,5,0,0,13,14, + 15,16,17,6,7,8,9,11,12,0, + 13,14,15,16,17,6,7,8,9,46, + 46,0,13,14,15,16,17,6,7,8, + 9,0,42,2,13,14,15,16,17,0, + 0,10,0,0,5,5,0,0,0,0, + 0,20,21,11,12,5,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,41,0,52,0,46,46,0,0,0, + 0,0,42,0,0,0,0,0,67,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,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; @@ -485,89 +494,94 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 1695,611,1439,612,1320,1,1906,1907,1908,1856, - 1695,1857,1855,1909,1858,1854,1213,1073,1350,373, - 363,330,1705,1706,1707,1708,1695,1025,889,1861, - 1866,1865,1863,1864,1862,1867,1868,1860,1869,1870, - 1871,87,1006,884,850,1695,1,1,1,1695, - 189,1,1,1,1,128,1,1,1,1, - 1,1906,1907,1908,1856,246,1857,1855,1909,1858, - 1854,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,591,1,1,1, - 1682,189,1889,1695,1,1,1,1949,189,1, - 1,1,1,129,1,1,1,1,1,1906, - 1907,1908,1856,1695,1857,1855,1909,1858,1854,1906, - 1907,1908,1,1,1,1,1,1,1,1, - 1,1,1,1,1695,1,1,1,1134,189, - 1889,1695,1,1695,1,1948,189,1,1,1, - 1,130,1,1,1,1,1,1906,1907,1908, - 1856,247,1857,1855,1909,1858,1854,1,1,1, + 1719,631,1453,633,1439,1719,1930,1931,1932,1880, + 1722,1432,1380,1881,1879,1933,1882,1878,1446,1, + 377,366,333,1729,1730,1731,1732,1296,929,1885, + 1890,1889,1887,1888,1886,1891,1892,1884,1893,1894, + 1895,87,1719,1199,1193,889,1719,1,266,1, + 479,189,1,1,1,1,1721,58,503,1, + 1,1,1,1,1,1713,1109,47,1,1724, + 281,1500,1273,1719,503,1,1,1,1,1, + 1,1,1,1,1,1,1,635,189,1, + 1,1,1217,1913,1719,1,219,1,1127,189, + 1,1,1,1,1,1723,503,1,1,1, + 1,1,1359,1348,1337,1316,1719,1898,1973,1899, + 1470,1463,1706,1,1,1,1,1,1,1, + 1,1,1,1,1,1277,189,1,1,1, + 1719,1913,1719,1,1273,1,63,189,1,1, + 1,1,1719,60,1973,1,1,1,1,1, + 1,1719,1367,49,1248,1724,1719,1500,1,1716, + 503,1,1,1,1,1,1,1,1,1, + 1,1,1,1719,189,1,1,1,1719,1913, + 1719,1,1719,1,252,188,1,1,1,1, + 69,1723,59,1,1,1,1,1,1359,1348, + 1337,1316,1719,1898,1719,1899,1470,1463,1973,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1695,1,1,1,1695,189,1889,1695, - 1,1695,1,1695,188,1,1,1,1,131, - 1,1,1,1,1,1906,1907,1908,1856,245, - 1857,1855,1909,1858,1854,1906,1907,1908,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1695,1,1,1,1695,188,1889,1695,1,1695, - 1,50,189,1,1,1,1,58,1,1, - 1,1,1,60,1,1689,1103,1016,960,1700, - 63,1695,1918,1380,498,1444,1,1,1,1, - 1,1,1,1,1,1,1,1,1271,1, - 1,1,53,189,1889,1695,1873,59,1872,1053, - 67,1906,1907,1908,1856,1699,1857,1855,1909,1858, - 1854,1695,1371,1360,1339,1328,1698,1695,1371,1360, - 1339,1328,1702,69,1861,1866,1865,1863,1864,1862, - 1867,1868,1860,1869,1870,1871,127,1006,884,850, - 835,969,1906,1907,1908,1856,1695,1857,1855,1909, - 1858,1854,1371,1360,1339,1328,47,1695,1695,1874, - 1493,1875,1697,1701,1082,1861,1866,1865,1863,1864, - 1862,1867,1868,1860,1869,1870,1871,1,1712,1439, - 1713,1397,1698,248,1220,1695,527,1695,1181,1906, - 1907,1908,1695,1213,1073,1350,373,363,330,1705, - 1706,1707,1708,49,1025,889,1695,1493,1,1486, - 1456,1700,1134,1695,1712,1439,1713,1432,1698,249, - 1695,1874,902,1875,1695,1906,1907,1908,1697,1213, - 1073,1350,373,363,330,1705,1706,1707,1708,48, - 1025,889,57,1493,1,1692,1348,1699,61,1, - 1712,1439,1713,1320,27,71,1486,1456,1949,65, - 1695,1874,52,1875,1697,1213,1073,1350,373,363, - 330,1705,1706,1707,1708,1608,1025,889,1016,960, - 1695,1712,1439,1713,1320,1698,1386,1,1918,1380, - 835,969,1486,1456,1949,27,1213,1073,1350,373, - 363,330,1705,1706,1707,1708,1695,1025,889,1298, - 485,258,1918,1103,1695,1,1695,1,1,1, - 1,498,1197,1164,1597,1695,1724,62,1725,1695, - 1930,1697,1,1,1,1,1,1,1,1, - 1,1,56,1,1,266,997,1126,1,1712, - 1439,1713,1320,205,1874,498,1875,1695,1874,1695, - 1875,41,1695,2002,1213,1073,1350,373,363,330, - 1705,1706,1707,1708,1608,1025,889,1695,1712,1439, - 1713,1320,264,1918,1103,392,1444,392,1298,485, - 835,969,498,1213,1073,1350,373,363,330,1705, - 1706,1707,1708,1608,1025,889,1695,1712,1439,1713, - 1320,261,1,1382,66,1,1695,1704,1,1918, - 1380,498,1213,1073,1350,373,363,330,1705,1706, - 1707,1708,51,1025,889,1695,1712,1440,1713,1320, - 264,1695,1382,64,1444,70,1695,1695,1016,960, - 498,1213,1073,1350,373,363,330,1705,1706,1707, - 1708,1271,1025,889,1,1712,1439,1713,1320,42, - 186,1,204,1477,1695,1477,89,1197,1703,1695, - 1213,1073,1350,373,363,330,1705,1706,1707,1708, - 1695,1025,889,17,68,1683,1506,1683,1683,178, - 178,178,178,1683,178,178,178,178,178,18, - 1181,1686,89,1686,1686,177,177,177,177,1686, - 177,177,177,177,177,1,1695,1382,1695,815, - 1700,1704,1695,55,1683,498,54,1700,922,795, - 775,755,735,715,675,695,655,635,615,31, - 1686,1441,1,219,284,1532,199,1700,1082,1507, - 267,185,187,498,978,252,1699,28,1719,1720, - 498,1280,28,1699,208,204,217,1161,1695,1695, - 1228,835,969,1695,835,969,498,1518,1534,1695, - 1695,1695,1703,1699,1695,1695,1695,1695,1695,1695, - 1695,452,1695,1695,1695,1695,1383,1695,1695,1695, - 1287,1695,431,1695,1695,1034,451,1722,1695,1695, - 2665,1695,1695,1695,1695,1695,1695,1695,1695,1695, - 1695,1695,1695,1695,941,1695,1695,1695,571 + 1,1417,188,1,1,1,1719,1913,1719,1, + 1638,1,246,189,1,1,1,1,1,1, + 1,1,1,1,1,1,1719,1359,1348,1337, + 1316,64,1930,1931,1932,460,1719,1,1,1, + 1,1,1,1,1,1,1,1,1,1248, + 189,1,1,1,48,1913,1719,1897,1500,1896, + 247,1719,1930,1931,1932,1880,1,1,1,1881, + 1879,1933,1882,1878,258,1942,1109,1719,1,1719, + 1898,1719,1899,1719,503,1885,1890,1889,1887,1888, + 1886,1891,1892,1884,1893,1894,1895,127,1418,1199, + 1193,889,70,1930,1931,1932,1880,1470,1463,28, + 1881,1879,1933,1882,1878,264,1942,1109,1719,1420, + 1719,1942,364,67,1420,503,1885,1890,1889,1887, + 1888,1886,1891,1892,1884,1893,1894,1895,1,1736, + 1453,1737,1201,1722,261,245,1367,589,1,1432, + 1380,1930,1931,1932,503,435,1446,50,377,366, + 333,1729,1730,1731,1732,1296,929,460,1327,875, + 1719,1736,1453,1737,1240,1722,264,248,1367,942, + 1420,1432,1380,1930,1931,1932,503,572,1446,1721, + 377,366,333,1729,1730,1731,1732,1296,929,53, + 68,61,1719,1954,1,1736,1453,1737,1439,27, + 71,249,1,1942,364,1432,1380,1930,1931,1932, + 208,1721,1446,2850,377,366,333,1729,1730,1731, + 1732,1296,929,1719,1736,1453,1737,1439,1722,1719, + 1748,62,1749,1719,1432,1380,27,1157,1209,205, + 1898,1446,1899,377,366,333,1729,1730,1731,1732, + 1296,929,1304,1265,572,1719,1,1,1,1, + 1719,1019,1,1942,364,1724,1,1,1170,1629, + 981,57,1719,1,1721,1,1,1,1,1, + 1,1,1,1,1719,1,1736,1453,1737,1439, + 1,1719,1304,1265,1,89,1432,1380,199,1728, + 56,1723,2029,1446,2850,377,366,333,1729,1730, + 1731,1732,1296,929,1719,1736,1453,1737,1439,1157, + 1209,1719,1898,65,1899,1432,1380,204,1128,55, + 1128,89,1446,2850,377,366,333,1729,1730,1731, + 1732,1296,929,1,1736,1453,1737,1439,1157,1209, + 1057,66,1719,1719,1432,1380,1719,1038,54,1, + 1727,1446,2850,377,366,333,1729,1730,1731,1732, + 1296,929,1719,1736,1453,1737,1439,1157,1209,267, + 1719,217,1719,1432,1380,1719,1086,1719,1719,503, + 1446,503,377,366,333,1729,1730,1731,1732,1296, + 929,1719,1736,1454,1737,1439,1157,1209,1719,1972, + 287,1719,1432,1380,1086,1719,527,41,962,1446, + 1000,377,366,333,1729,1730,1731,1732,1296,929, + 1,1736,1453,1737,1439,42,1217,1719,1719,1, + 1719,1432,1380,1719,1724,1719,1719,1719,1446,1719, + 377,366,333,1729,1730,1731,1732,1296,929,17, + 1545,1707,1548,1707,1707,178,178,178,178,1707, + 186,1719,178,178,178,178,178,18,185,1710, + 1723,1710,1710,177,177,177,177,1710,1719,1421, + 177,177,177,177,177,855,1719,1530,187,1719, + 1707,1719,1719,28,204,835,815,795,775,755, + 715,735,695,675,655,128,1719,1571,1710,1719, + 1719,1930,1931,1932,1880,1726,52,129,1881,1879, + 1933,1882,1878,1930,1931,1932,1880,1327,875,130, + 1881,1879,1933,1882,1878,1930,1931,1932,1880,1746, + 2597,131,1881,1879,1933,1882,1878,1930,1931,1932, + 1880,31,1725,1619,1881,1879,1933,1882,1878,1719, + 1719,1626,51,1719,1728,1724,1719,1719,1719,1719, + 280,1743,1744,1327,875,1581,1719,1719,1719,1719, + 1719,1719,1640,1719,1719,1719,1719,1719,1719,1719, + 1719,1719,1719,1719,1719,1719,1719,1719,1719,1719, + 1719,1723,1719,455,1719,1256,1222,1719,1719,1719, + 1719,1719,1581,1719,1719,1719,1719,1719,390,1719, + 1719,1719,1719,1719,1719,1727 }; }; public final static char termAction[] = TermAction.termAction; @@ -575,27 +589,27 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 427,1,80,41,80,80,80,80,80,80, - 80,80,80,338,3,181,178,185,183,191, - 189,193,192,195,194,10,80,338,163,163, - 256,338,322,322,379,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,80,80,80,80, - 80,80,80,80,80,80,163,72,260,74, - 292,161,160,231,243,243,70,70,243,70, - 243,352,117,117,163,45,178,178,183,183, + 408,1,76,41,76,76,76,76,76,76, + 76,76,76,338,3,181,178,185,183,191, + 189,193,192,195,194,10,76,338,163,163, + 326,338,298,298,426,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,76,163,68,330,70, + 268,161,160,301,313,313,66,66,313,66, + 313,352,117,117,163,45,178,178,183,183, 183,183,181,181,189,185,185,192,191,224, - 194,193,166,54,256,251,97,45,375,78, - 163,398,295,206,262,206,262,332,206,80, - 54,251,375,375,45,77,74,163,254,352, - 162,297,262,262,262,262,332,332,334,49, - 54,375,251,80,80,45,78,292,219,218, - 260,297,163,262,289,325,262,262,289,334, - 226,334,332,289,52,229,322,80,48,54, - 251,45,45,163,398,295,254,289,327,289, - 289,80,322,334,56,45,322,80,334,297, - 202,80,201,93,260,289,45,289,163,162, - 327,80,93,323 + 194,193,166,50,326,321,97,45,375,74, + 163,379,271,206,238,206,238,332,206,76, + 50,321,375,375,45,73,70,163,324,352, + 162,273,238,238,238,238,332,332,334,94, + 265,68,375,321,76,76,45,74,268,219, + 218,330,273,163,238,265,226,238,238,265, + 334,233,334,332,265,48,236,298,76,93, + 265,50,321,45,45,163,379,271,324,265, + 228,265,265,76,298,334,52,45,298,76, + 50,273,202,76,201,89,330,265,45,334, + 163,162,228,76,89,265,299,334 }; }; public final static char asb[] = Asb.asb; @@ -603,51 +617,51 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 80,0,66,10,2,52,67,19,20,18, - 4,16,17,53,54,48,49,55,56,57, - 58,61,62,63,64,65,68,69,46,60, + 80,0,66,10,2,52,67,20,21,18, + 4,11,12,53,54,48,49,55,56,57, + 58,61,62,63,64,65,68,69,42,60, 70,71,72,73,74,76,75,77,78,79, - 59,41,80,45,51,5,0,60,10,52, - 0,5,46,10,52,19,20,18,4,16, - 17,27,28,21,2,22,23,24,25,1, - 3,26,0,6,7,8,9,51,5,22, - 23,24,25,3,19,20,18,16,17,27, - 28,21,4,2,1,0,6,7,8,2, - 22,23,24,25,1,3,19,20,18,4, - 16,17,27,28,21,0,7,9,15,8, - 14,13,12,6,11,52,67,19,20,18, - 16,17,53,54,48,49,55,56,57,58, + 59,41,80,46,51,5,0,5,42,10, + 52,20,21,18,4,11,12,27,28,22, + 2,23,24,25,26,1,3,19,0,6, + 7,8,9,51,5,23,24,25,26,3, + 20,21,18,11,12,27,28,22,4,2, + 1,0,60,10,52,0,6,7,8,2, + 23,24,25,26,1,3,20,21,18,4, + 11,12,27,28,22,0,7,9,17,8, + 16,15,14,6,13,52,67,20,21,18, + 11,12,53,54,48,49,55,56,57,58, 61,62,63,64,65,68,69,60,70,71, 72,73,74,75,76,77,78,79,4,2, - 10,45,41,5,0,60,70,71,72,73, - 74,75,76,77,78,79,26,4,53,54, - 16,17,49,48,55,56,57,58,61,62, - 18,63,64,65,51,41,46,80,68,69, - 59,66,5,45,0,11,6,12,13,14, - 7,9,15,8,1,4,26,2,5,45, - 41,66,10,59,0,5,45,46,60,0, + 10,46,41,5,0,60,70,71,72,73, + 74,75,76,77,78,79,19,4,53,54, + 11,12,49,48,55,56,57,58,61,62, + 18,63,64,65,51,41,42,80,68,69, + 59,66,5,46,0,13,6,14,15,16, + 7,9,17,8,1,4,19,2,5,46, + 41,66,10,59,0,66,5,4,1,2, + 59,0,5,46,42,60,0,13,29,6, + 30,43,14,31,15,32,33,16,7,34, + 35,9,44,17,45,36,37,8,38,39, + 40,1,3,47,5,42,0,4,2,10, + 41,5,13,29,6,30,43,14,31,15, + 32,33,16,7,34,35,9,44,17,45, + 36,37,8,38,39,40,50,3,1,0, 37,29,34,32,33,31,30,35,36,38, - 39,40,59,66,15,12,9,11,14,13, - 6,7,8,45,1,5,41,2,10,4, - 0,11,29,6,30,42,12,31,13,32, - 33,14,7,34,35,9,43,15,44,36, - 37,8,38,39,40,1,3,47,46,5, - 0,4,2,10,41,5,11,29,6,30, - 42,12,31,13,32,33,14,7,34,35, - 9,43,15,44,36,37,8,38,39,40, - 50,3,1,0,66,5,4,1,2,59, - 0,1,3,5,46,45,0,21,22,23, - 24,25,2,19,20,18,4,16,17,27, - 28,3,1,42,43,44,37,29,34,32, - 33,31,30,35,36,38,39,40,15,12, - 9,11,14,13,6,7,8,0,5,41, - 21,22,23,24,25,1,3,2,19,20, - 18,4,16,17,27,28,0,11,29,6, - 30,42,12,31,13,32,33,14,7,34, - 35,9,43,15,44,36,37,8,38,39, - 40,1,3,50,4,0,21,22,23,24, - 25,1,3,2,19,20,18,4,16,17, - 27,28,47,0 + 39,40,59,66,17,14,9,13,16,15, + 6,7,8,46,1,5,41,2,10,4, + 0,1,3,5,42,46,0,22,23,24, + 25,26,2,20,21,18,4,11,12,27, + 28,3,1,43,44,45,37,29,34,32, + 33,31,30,35,36,38,39,40,17,14, + 9,13,16,15,6,7,8,0,13,29, + 6,30,43,14,31,15,32,33,16,7, + 34,35,9,44,17,45,36,37,8,38, + 39,40,1,3,50,4,0,22,23,24, + 25,26,1,3,2,20,21,18,4,11, + 12,27,28,47,0,5,41,22,23,24, + 25,26,1,3,2,20,21,18,4,11, + 12,27,28,0 }; }; public final static byte asr[] = Asr.asr; @@ -655,27 +669,27 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static byte nasb[] = {0, - 83,8,17,8,17,17,17,17,17,17, - 17,17,17,64,8,8,8,8,8,8, - 8,8,8,8,8,8,17,64,41,41, - 55,1,19,19,68,65,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,65,17,17,17,17,17,17,17, - 17,17,17,17,17,17,41,8,73,21, - 54,31,31,47,48,48,27,27,48,27, - 48,43,8,8,41,23,8,8,8,8, + 80,8,20,8,20,20,20,20,20,20, + 20,20,20,66,8,8,8,8,8,8, + 8,8,8,8,8,8,20,66,23,23, + 62,1,11,11,93,67,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20, + 20,20,67,20,20,20,20,20,20,20, + 20,20,20,20,20,20,23,8,74,25, + 61,36,36,52,53,53,34,34,53,34, + 53,48,8,8,23,27,8,8,8,8, 8,8,8,8,8,8,8,8,8,8, - 8,8,8,81,56,81,16,23,62,22, - 41,71,40,8,81,8,81,81,8,17, - 16,81,62,62,23,22,9,41,34,2, - 8,80,81,75,81,75,27,81,25,11, - 81,62,9,17,17,23,22,33,31,31, - 73,80,41,75,29,59,86,75,29,25, - 8,8,27,29,15,8,27,17,13,16, - 9,23,23,41,71,40,35,29,50,29, - 29,17,27,25,17,23,27,17,25,79, - 60,17,8,50,73,29,23,29,41,41, - 50,17,37,8 + 8,8,8,85,63,85,31,27,87,26, + 23,72,22,8,85,8,85,85,8,20, + 18,85,87,87,27,26,13,23,39,2, + 8,84,85,76,85,76,34,85,59,15, + 85,8,87,13,20,20,27,26,38,36, + 36,74,84,23,76,70,45,89,76,70, + 59,8,8,34,70,17,8,34,20,29, + 70,85,13,27,27,23,72,22,40,70, + 55,70,70,20,34,59,19,27,34,20, + 18,83,46,20,8,55,74,70,27,59, + 23,23,55,20,42,70,8,9 }; }; public final static byte nasb[] = Nasb.nasb; @@ -683,15 +697,16 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 4,77,76,75,74,73,72,0,20,0, - 89,0,91,0,66,9,4,0,68,0, - 9,4,23,0,51,0,27,0,26,0, - 25,0,22,9,43,42,36,34,0,9, - 22,0,61,62,63,64,52,28,0,9, - 36,34,0,22,9,43,42,0,9,67, - 0,58,0,32,9,45,0,9,84,0, - 9,24,49,0,56,9,32,0,86,24, - 9,0,9,83,0,9,32,48,0 + 4,78,77,76,75,74,73,0,89,0, + 69,0,20,0,91,0,67,8,61,4, + 0,8,22,0,8,4,23,0,93,0, + 4,8,0,27,0,25,0,22,8,43, + 42,36,34,0,8,68,0,62,63,64, + 65,52,28,0,8,36,34,0,51,0, + 22,8,43,42,0,32,8,45,0,26, + 0,8,24,49,0,56,8,32,0,8, + 84,0,87,24,8,0,58,0,8,32, + 48,0,8,85,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -700,10 +715,10 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, 85,2,86,9,87,48,64,76,69,1, - 44,55,60,63,72,10,11,8,6,7, - 68,81,82,83,84,3,12,13,47,52, + 10,11,44,55,60,63,72,8,3,6, + 7,68,81,82,83,84,12,13,47,52, 56,61,62,66,67,74,75,78,79,80, - 90,54,70,73,42,91,93,16,17,30, + 90,91,54,70,73,42,93,16,17,30, 89,4,14,15,18,19,20,21,29,31, 22,23,24,25,26,92,5,27,28,32, 33,34,35,36,37,38,39,40,41,94, @@ -716,18 +731,18 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 0,0,0,101,105,106,107,108,0,109, + 0,0,0,101,105,106,107,0,108,109, 110,111,112,113,114,115,116,117,118,129, 0,97,96,122,149,98,121,128,0,0, 0,140,145,147,0,148,0,0,0,0, 158,159,160,0,100,120,137,139,146,155, 0,131,136,0,0,138,150,153,154,157, - 132,133,134,135,144,161,99,102,103,104, - 119,123,124,125,126,127,130,142,0,0, - 143,152,95,0,141,151,156,162,163,0, - 164,0,0,0,0,0,0,0,0,0, + 0,132,133,134,135,144,161,99,102,103, + 104,119,123,124,125,126,127,130,142,0, + 0,143,152,95,0,141,151,156,0,162, + 163,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 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -735,10 +750,10 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 158,80,33,39,87,107,113,138,12,19, - 49,67,119,124,26,45,97,154,176,180, - 147,1,1,30,54,77,184,6,101,129, - 166,93,57,57,57 + 162,82,35,41,91,111,117,12,142,21, + 51,69,123,128,28,47,101,158,180,184, + 151,1,1,32,56,79,188,6,105,133, + 170,97,59,59,59 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -746,10 +761,10 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 17,17,4,4,17,17,17,144,17,24, - 4,24,17,17,24,4,95,24,24,4, - 151,4,4,24,4,24,24,9,104,132, - 169,95,64,59,72 + 89,89,4,4,89,89,89,18,148,26, + 4,26,89,89,26,4,99,26,26,4, + 155,4,4,26,4,26,26,9,108,136, + 173,99,66,61,74 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -757,9 +772,9 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 4,63,25,25,63,61,61,98,53,44, - 25,39,61,61,44,25,48,5,4,4, - 18,91,90,42,25,36,2,66,48,99, + 4,64,25,25,64,62,62,53,100,44, + 25,39,62,62,44,25,48,5,4,4, + 18,93,92,42,25,36,2,67,48,101, 4,48,39,37,39 }; }; @@ -768,8 +783,8 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 46,46,51,51,46,46,46,86,46,41, - 51,41,46,46,41,51,66,41,41,51, + 42,42,51,51,42,42,42,42,86,41, + 51,41,42,42,41,51,66,41,41,51, 59,51,51,41,51,41,41,60,1,92, 41,66,2,2,2 }; @@ -779,7 +794,7 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static byte scopeStateSet[] = { - 34,19,23,23,19,19,19,-1,88,27, + 34,19,23,23,19,19,19,88,-1,27, 23,11,19,19,27,23,5,34,34,34, 63,1,3,27,23,11,34,89,5,-1, 34,5,11,11,11 @@ -790,25 +805,25 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 139,10,0,96,0,181,102,0,31,136, - 0,144,163,102,26,0,98,0,150,102, - 2,135,0,97,0,150,102,2,0,153, - 2,0,112,9,175,102,10,0,112,175, - 102,9,10,0,112,9,10,0,112,175, - 102,10,0,112,10,0,129,0,2,0, - 151,97,0,2,97,0,150,102,2,129, - 0,2,0,150,97,0,140,2,0,144, - 173,102,26,120,42,0,144,173,102,26, - 42,0,125,0,99,0,178,102,125,0, - 102,125,0,141,99,0,148,102,26,120, - 44,0,148,102,26,120,43,0,148,102, - 26,44,0,148,102,26,43,0,187,85, - 0,77,2,100,97,99,0,187,115,138, - 2,89,0,53,0,0,138,69,110,0, - 29,117,0,162,2,21,0,144,163,102, - 26,115,162,2,0,162,2,0,97,3, - 0,104,0,98,0,177,2,97,0,138, - 10,97,0,138,2,0 + 139,10,0,96,0,183,101,0,31,136, + 0,144,164,101,19,154,0,98,0,0, + 150,101,2,135,0,97,0,150,101,2, + 0,153,2,0,112,9,176,101,10,0, + 112,176,101,9,10,0,112,9,10,0, + 112,176,101,10,0,112,10,0,129,0, + 2,0,151,97,0,2,97,0,150,101, + 2,129,0,2,0,150,97,0,140,2, + 0,144,174,101,19,120,43,0,98,0, + 144,174,101,19,43,0,125,0,99,0, + 179,101,125,0,101,125,0,141,99,0, + 148,101,19,120,45,0,148,101,19,120, + 44,0,148,101,19,45,0,148,101,19, + 44,0,189,85,0,77,2,100,97,99, + 0,189,115,138,2,89,0,53,0,0, + 138,69,110,0,29,117,0,163,2,22, + 0,144,164,101,19,115,163,2,0,163, + 2,0,97,3,0,104,0,98,0,178, + 2,97,0,138,10,97,0,138,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -816,16 +831,16 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 391,0,390,0,1546,1600,1536,1526,1524,0, - 1118,1280,1380,1212,361,1103,1072,0,824,1206, - 308,0,1593,1551,1104,1099,361,1103,1072,1544, - 1382,1387,0,1432,1397,1181,1164,1197,1082,1298, - 485,1271,969,835,1371,1360,1339,1328,1493,1486, - 1456,1016,960,373,363,1350,1320,1213,1073,1025, - 889,330,1034,997,978,941,922,902,856,547, - 1053,527,498,815,795,775,755,735,715,695, - 675,655,635,615,308,591,455,571,411,431, - 340,0 + 570,0,393,0,1542,1607,1532,1529,1507,0, + 885,1256,364,1200,456,1109,1077,0,863,1167, + 311,0,1262,1108,1082,1081,456,1109,1077,1570, + 1367,1371,0,1240,1201,460,1170,1086,572,1304, + 1265,1248,1209,1157,1359,1348,1337,1316,1500,1470, + 1463,1327,875,377,366,1446,1439,1432,1380,1296, + 929,333,1038,1019,1000,981,962,942,895,611, + 1057,589,503,855,835,815,795,775,755,735, + 715,695,675,655,311,635,547,527,415,435, + 343,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -833,27 +848,27 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,176,102,164,21,28,27,17,16,4, - 18,20,19,2,97,101,100,104,103,106, - 105,108,107,110,109,98,45,2,162,138, - 125,102,67,52,2,10,17,16,54,53, + 0,177,101,165,22,28,27,12,11,4, + 18,21,20,2,97,102,100,104,103,106, + 105,108,107,110,109,98,46,2,163,138, + 125,101,67,52,2,10,12,11,54,53, 4,58,57,56,55,48,49,18,62,61, 64,63,69,68,65,79,78,77,75,76, - 74,73,72,71,70,60,162,115,102,10, - 2,136,135,165,166,167,44,43,168,42, - 169,170,1,3,177,138,100,100,103,103, - 103,103,101,101,105,104,104,107,106,138, - 109,108,115,26,142,4,9,112,102,4, - 153,102,2,120,26,120,26,26,120,59, - 102,4,102,102,112,175,151,150,117,102, - 152,102,26,102,26,102,102,26,163,102, - 26,102,151,175,9,112,4,2,127,129, - 102,45,150,102,148,125,149,102,148,173, - 120,174,102,144,45,181,52,10,182,102, - 151,112,112,140,102,2,142,148,102,148, - 144,60,45,173,60,139,52,10,163,102, - 178,59,140,2,102,144,139,144,150,179, - 45,59,142,45 + 74,73,72,71,70,60,163,115,101,10, + 2,136,135,166,167,168,45,44,169,43, + 170,171,1,3,178,138,100,100,103,103, + 103,103,102,102,105,104,104,107,106,138, + 109,108,115,19,142,4,9,112,101,4, + 153,101,2,120,19,120,19,19,120,59, + 101,4,101,101,112,176,151,150,117,101, + 152,101,19,101,19,101,101,19,164,101, + 19,154,101,151,176,9,112,4,2,127, + 129,101,46,150,101,148,125,149,101,148, + 174,120,175,101,144,46,183,52,10,184, + 101,19,151,112,112,140,101,2,142,148, + 101,148,144,60,46,174,60,139,52,10, + 101,101,179,59,140,2,101,144,139,164, + 150,180,46,59,142,144,46,119 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1048,20 +1063,20 @@ public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 204, + NUM_STATES = 208, NT_OFFSET = 93, - LA_STATE_OFFSET = 2002, + LA_STATE_OFFSET = 2029, MAX_LA = 2, - NUM_RULES = 307, - NUM_NONTERMINALS = 115, - NUM_SYMBOLS = 208, + NUM_RULES = 310, + NUM_NONTERMINALS = 117, + NUM_SYMBOLS = 210, SEGMENT_SIZE = 8192, - START_STATE = 1589, + START_STATE = 1546, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 80, EOLT_SYMBOL = 80, - ACCEPT_ACTION = 1682, - ERROR_ACTION = 1695; + ACCEPT_ACTION = 1706, + ERROR_ACTION = 1719; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParsersym.java index 8a71a575cc3..a0a8d2ed1d0 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParsersym.java @@ -15,7 +15,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.c99; public interface C99NoCastExpressionParsersym { public final static int - TK_auto = 11, + TK_auto = 13, TK_break = 81, TK_case = 82, TK_char = 29, @@ -25,26 +25,26 @@ public interface C99NoCastExpressionParsersym { TK_do = 85, TK_double = 30, TK_else = 86, - TK_enum = 42, - TK_extern = 12, + TK_enum = 43, + TK_extern = 14, TK_float = 31, TK_for = 87, TK_goto = 88, TK_if = 89, - TK_inline = 13, + TK_inline = 15, TK_int = 32, TK_long = 33, - TK_register = 14, + TK_register = 16, TK_restrict = 7, TK_return = 90, TK_short = 34, TK_signed = 35, - TK_sizeof = 21, + TK_sizeof = 22, TK_static = 9, - TK_struct = 43, + TK_struct = 44, TK_switch = 91, - TK_typedef = 15, - TK_union = 44, + TK_typedef = 17, + TK_union = 45, TK_unsigned = 36, TK_void = 37, TK_volatile = 8, @@ -52,25 +52,25 @@ public interface C99NoCastExpressionParsersym { TK__Bool = 38, TK__Complex = 39, TK__Imaginary = 40, - TK_integer = 22, - TK_floating = 23, - TK_charconst = 24, - TK_stringlit = 25, + TK_integer = 23, + TK_floating = 24, + TK_charconst = 25, + TK_stringlit = 26, TK_identifier = 1, TK_Completion = 3, TK_EndOfCompletion = 5, TK_Invalid = 93, TK_LeftBracket = 10, TK_LeftParen = 2, - TK_LeftBrace = 26, + TK_LeftBrace = 19, TK_Dot = 52, TK_Arrow = 67, - TK_PlusPlus = 19, - TK_MinusMinus = 20, + TK_PlusPlus = 20, + TK_MinusMinus = 21, TK_And = 18, TK_Star = 4, - TK_Plus = 16, - TK_Minus = 17, + TK_Plus = 11, + TK_Minus = 12, TK_Tilde = 27, TK_Bang = 28, TK_Slash = 53, @@ -101,10 +101,10 @@ public interface C99NoCastExpressionParsersym { TK_AndAssign = 77, TK_CaretAssign = 78, TK_OrAssign = 79, - TK_Comma = 45, + TK_Comma = 46, TK_RightBracket = 51, TK_RightParen = 41, - TK_RightBrace = 46, + TK_RightBrace = 42, TK_SemiColon = 66, TK_ERROR_TOKEN = 47, TK_EOF_TOKEN = 80; @@ -121,14 +121,15 @@ public interface C99NoCastExpressionParsersym { "volatile", "static", "LeftBracket", + "Plus", + "Minus", "auto", "extern", "inline", "register", "typedef", - "Plus", - "Minus", "And", + "LeftBrace", "PlusPlus", "MinusMinus", "sizeof", @@ -136,7 +137,6 @@ public interface C99NoCastExpressionParsersym { "floating", "charconst", "stringlit", - "LeftBrace", "Tilde", "Bang", "char", @@ -152,11 +152,11 @@ public interface C99NoCastExpressionParsersym { "_Complex", "_Imaginary", "RightParen", + "RightBrace", "enum", "struct", "union", "Comma", - "RightBrace", "ERROR_TOKEN", "RightShift", "LeftShift", 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 07ed74fdfab..6fb0b737099 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 @@ -169,8 +169,9 @@ private C99BuildASTParserAction action; public C99Parser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu); + action.setParserOptions(options); } @@ -180,10 +181,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1159,93 +1160,111 @@ public C99Parser(String[] mapFrom) { // constructor } // - // Rule 279: initializer ::= { <openscope-ast> initializer_list comma_opt } + // Rule 279: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 279: { action. consumeInitializerList(); break; } // - // Rule 284: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 280: initializer ::= { <openscope-ast> } // - case 284: { action. consumeInitializerDesignated(); break; + case 280: { action. consumeInitializerList(); break; } // - // Rule 288: designator_base ::= [ constant_expression ] + // Rule 281: start_initializer_list ::= $Empty // - case 288: { action. consumeDesignatorArray(); break; + case 281: { action. initializerListStart(); break; } // - // Rule 289: designator_base ::= . identifier_or_typedefname + // Rule 282: end_initializer_list ::= $Empty // - case 289: { action. consumeDesignatorField(); break; + case 282: { action. initializerListEnd(); break; } // - // Rule 290: designator ::= [ constant_expression ] + // Rule 287: designated_initializer ::= <openscope-ast> designation = initializer // - case 290: { action. consumeDesignatorArray(); break; + case 287: { action. consumeInitializerDesignated(); break; } // - // Rule 291: designator ::= . identifier_or_typedefname + // Rule 291: designator_base ::= [ constant_expression ] // - case 291: { action. consumeDesignatorField(); break; + case 291: { action. consumeDesignatorArray(); break; } // - // Rule 292: translation_unit ::= external_declaration_list + // Rule 292: designator_base ::= . identifier_or_typedefname // - case 292: { action. consumeTranslationUnit(); break; + case 292: { action. consumeDesignatorField(); break; + } + + // + // Rule 293: designator ::= [ constant_expression ] + // + case 293: { action. consumeDesignatorArray(); break; + } + + // + // Rule 294: designator ::= . identifier_or_typedefname + // + case 294: { action. consumeDesignatorField(); break; + } + + // + // Rule 295: translation_unit ::= external_declaration_list + // + case 295: { action. consumeTranslationUnit(); break; } // - // Rule 293: translation_unit ::= $Empty + // Rule 296: translation_unit ::= $Empty // - case 293: { action. consumeTranslationUnit(); break; + case 296: { action. consumeTranslationUnit(); break; } // - // Rule 298: external_declaration ::= ; + // Rule 301: external_declaration ::= ; // - case 298: { action. consumeDeclarationEmpty(); break; + case 301: { action. consumeDeclarationEmpty(); break; } // - // Rule 299: external_declaration ::= ERROR_TOKEN + // Rule 302: external_declaration ::= ERROR_TOKEN // - case 299: { action. consumeDeclarationProblem(); break; + case 302: { action. consumeDeclarationProblem(); break; } // - // Rule 302: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 305: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 302: { action. consumeFunctionDefinition(true); break; + case 305: { action. consumeFunctionDefinition(true); break; } // - // Rule 303: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 306: function_definition ::= <openscope-ast> function_declarator function_body // - case 303: { action. consumeFunctionDefinition(false); break; + case 306: { action. consumeFunctionDefinition(false); break; } // - // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 304: { action. consumeFunctionDefinitionKnR(); break; + case 307: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 305: function_body ::= { } + // Rule 308: function_body ::= { } // - case 305: { action. consumeStatementCompoundStatement(false); break; + case 308: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 306: function_body ::= { <openscope-ast> block_item_list } + // Rule 309: function_body ::= { <openscope-ast> block_item_list } // - case 306: { action. consumeStatementCompoundStatement(true); break; + case 309: { action. consumeStatementCompoundStatement(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 dbc00cd1b56..8a2a7a91c45 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 @@ -61,197 +61,199 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 4,6,6,3,5,1,1,2,3,4, 1,2,1,3,1,1,3,2,1,1, 1,1,2,1,2,3,1,1,1,3, - 1,2,2,2,3,4,5,1,5,1, - 1,3,3,4,1,1,2,3,2,3, - 2,1,0,1,2,1,1,1,1,1, - 2,4,3,6,2,4,-75,-256,0,0, + 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,-75, + -2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-32,0,0,-18, + 0,-19,-118,0,0,0,-3,0,-192,-22, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-30,0,0,-10,0,-21,0, - -2,0,0,-180,-88,0,0,0,0,0, - 0,0,0,0,0,-3,0,0,0,-80, - 0,-18,0,0,0,0,0,-4,0,0, - 0,-17,0,0,0,0,0,0,0,0, - 0,0,0,-28,0,0,0,0,0,-70, 0,0,0,0,0,0,0,0,0,0, - -74,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,-32,0, - -23,0,0,0,0,0,0,0,0,-187, - -19,0,0,0,0,0,0,0,0,0, - 0,0,0,-197,0,0,0,0,0,0, + 0,0,0,-95,-28,0,0,0,0,0, + 0,0,0,0,0,0,-21,0,0,0, + 0,0,0,0,0,0,0,-24,0,0, + 0,0,0,0,-4,0,-27,0,-6,0, + 0,0,0,0,-23,0,0,0,0,0, + -38,0,0,-25,0,0,0,0,0,0, + 0,-188,-39,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, - -13,0,0,0,0,-273,0,0,0,0, + 0,0,-10,0,0,-11,0,-270,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-169,0,-22,-264,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,-41, -53,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-188,-6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-33,0,-57,0,0,0,0,0,0, + 0,0,0,-189,-64,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -27,0,0,0,0,0,-90,0,0,0, + 0,-146,-13,0,0,0,-190,-65,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-170,0,0,0,0,-125,-91, + 0,-34,0,0,0,0,-67,0,-273,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-151,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,-16,0,0,-284,0, 0,0,0,0,0,0,0,0,0,0, - -275,-36,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-30,0,0,0,0, + 0,-66,0,-115,-187,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, - 0,0,0,0,0,0,0,-83,0,0, - -79,0,-50,-16,-15,-25,0,-189,0,0, + 0,0,-37,0,-68,0,0,0,0,0, + 0,0,0,0,0,0,0,-26,0,0, + 0,-29,0,-172,0,0,-90,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-26,0,0,0,0,0,0, - 0,-34,0,-186,0,0,0,0,0,0, + 0,0,0,0,0,0,-126,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-29,0,-35, - 0,0,0,0,0,0,-150,0,-31,0, + 0,0,0,-71,0,0,-152,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-144,-38,0,0,0,0, + 0,0,0,-79,0,0,-72,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-40,0,0,-153,0,0,0,0,0, + 0,0,0,-36,0,0,0,-31,0,0, + -261,-283,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-181,0,0,0,0,0, - 0,0,0,0,0,0,-39,-154,0,0, + 0,0,0,0,-197,0,-73,0,-35,0, + 0,-74,0,-84,0,-100,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-85, + 0,-93,0,0,0,0,0,0,-145,-104, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-155,0,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,-77,0,0,-156,0,0, + 0,0,0,0,0,0,0,0,-181,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-82,0,0,-157,0,0, + 0,-155,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-91,0, + 0,-156,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-151,0, + 0,-157,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-158,0,0, + 0,-158,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-159,0,0, + 0,-159,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-216,0, + 0,-160,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-224,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,-140,0,0,-160,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,-142,0,0,-161,0,0, + 0,-163,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-105,0, + 0,-164,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-106,0, + 0,-208,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-149,0, + 0,-210,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-40,0, + 0,-214,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-107,0, + 0,-182,0,0,0,0,0,0,0,0, + 0,0,0,-108,-215,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,-253,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,-165,0,0,-276,-109,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-143,0,0,-206,0,0, + 0,-257,0,0,-96,0,0,0,0,0, + 0,0,-142,0,-43,0,-77,-287,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-115,0,0,-208,0,0, + 0,0,0,0,-170,0,0,-102,0,0, + 0,0,0,0,-42,0,0,-110,-33,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-212,0,0, + 0,0,-88,0,0,-61,0,0,-62,-59, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-41,0,0,-182,0,0, - 0,0,0,0,0,0,0,0,-43,0, - -213,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-148,0,0, - -252,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-164,0,0, - -267,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-195,0,0, - -183,0,0,0,0,0,0,0,0,0, - 0,-45,0,-278,0,0,0,0,0,0, + -70,0,0,-116,0,0,0,0,0,0, + 0,0,0,0,-52,0,-111,0,0,0, + 0,0,0,0,0,0,0,0,-241,0, + -112,-47,-244,0,-69,0,0,0,0,-113, + 0,0,0,0,0,0,0,0,0,-78, + 0,0,0,0,0,-125,0,-148,0,0, + 0,0,0,-63,-133,0,0,-45,0,0, + 0,0,0,0,0,0,0,0,-195,0, 0,0,0,0,0,0,0,0,0,0, - -64,0,0,-260,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-42,0,-184,-146,0,0,0, - 0,0,0,0,0,0,-65,0,-48,0, - 0,-55,0,0,-63,0,0,-67,-59,0, - -165,0,0,0,0,0,0,0,0,-49, - 0,-116,0,-192,0,0,0,-47,0,0, - 0,0,-171,0,0,-8,0,0,0,0, - 0,0,0,0,-44,0,-193,0,0,0, - -68,0,0,0,0,-119,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-37, - -132,0,0,-145,0,-210,0,0,0,0, - 0,-147,0,0,0,0,0,0,-194,0, - 0,0,0,0,-71,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-73, - -52,0,0,0,0,0,0,0,0,-61, - -204,0,0,0,0,0,0,-84,0,0, + -171,-179,0,0,0,0,0,0,0,0, + 0,0,-200,0,-166,0,0,0,0,0, + 0,0,0,0,-129,0,-114,0,0,0, + -206,0,0,0,0,0,0,0,0,0, + -20,0,-48,0,0,-15,-117,0,-50,-120, + 0,0,0,0,-122,0,0,-277,0,0, + 0,0,0,0,0,0,0,-80,0,-127, + 0,0,0,0,0,-123,0,0,0,0, + -124,0,0,0,0,-87,0,-131,0,0, + 0,0,0,0,0,0,-83,-153,-97,0, + 0,0,0,0,0,0,0,0,0,-8, + 0,0,-60,0,0,0,0,0,0,0, + -134,0,0,0,0,0,0,-49,0,0, + -82,0,0,0,0,0,-130,0,0,0, + 0,-196,0,-136,0,-137,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,-20,0,0,0, - 0,0,-128,0,0,-191,0,0,0,0, + 0,0,-141,0,0,0,0,-265,-44,0, + 0,0,0,0,0,0,0,0,0,-135, + -207,0,0,0,0,-138,0,0,0,0, + -139,0,-119,0,0,-140,0,0,0,-147, + 0,-103,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-193,-248,0,-183, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-266,-66,0,-242,-85,0,0, - -255,0,0,0,0,-152,-93,0,0,0, - 0,0,-239,0,0,0,0,0,-78,0, - -118,0,0,0,0,0,0,0,0,0, + 0,0,0,-203,0,-243,0,0,0,0, + -250,0,0,0,-254,0,0,0,0,0, + 0,0,0,-55,0,-199,0,0,0,-275, + 0,0,0,-251,0,-201,-143,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-69,0,-214,-133,0,-124,0,-104, - 0,0,0,0,0,0,-105,-106,0,0, - -200,-87,0,0,0,0,0,0,-135,0, - -136,0,0,0,0,0,0,0,0,0, - 0,-141,0,0,0,0,0,0,0,-95, + 0,0,0,0,0,0,-281,0,0,-144, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-268,-107,0,0,0,-205, - 0,0,0,0,0,-251,0,0,0,0, - -108,0,0,0,0,0,0,-263,-126,0, - -109,0,0,-199,-110,-111,0,0,0,0, - 0,0,0,0,0,0,-46,0,-247,0, + 0,0,0,0,-54,0,0,-211,0,-288, + 0,-198,-202,-194,0,0,0,0,0,0, + 0,0,-256,0,-204,0,0,0,-213,0, + -225,0,-292,0,-56,0,0,0,0,0, + 0,0,0,0,0,-252,0,0,0,0, + -205,-255,0,-226,0,-9,-17,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -202,-92,0,-243,-112,0,0,0,0,0, - 0,-249,0,-203,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-241, - 0,0,-113,0,-250,0,-207,0,0,0, - 0,0,0,0,0,0,0,-114,0,0, - 0,0,0,0,0,0,0,-282,0,0, - 0,-287,0,0,0,0,0,0,0,0, - 0,-217,-219,-117,0,-121,0,0,-222,0, - -285,0,0,-220,0,0,0,0,0,0, - 0,0,0,-149,0,0,0,0,-221,0, - 0,0,0,-288,0,-56,0,0,0,0, - 0,0,0,0,0,0,-240,0,0,0, - 0,-122,0,0,0,0,-123,-1,0,-196, - 0,0,0,0,0,0,0,0,0,-129, - 0,0,0,0,0,-7,0,0,0,0, - 0,-134,0,-283,-137,-185,0,0,0,0, - 0,0,0,0,0,0,-245,-244,0,-138, - 0,0,-176,0,0,0,0,0,0,0, - 0,0,-139,0,0,-218,0,-201,-262,0, - 0,0,0,0,0,0,-177,-277,0,0, - 0,0,0,0,0,0,0,-270,0,0, - -51,-100,0,0,0,0,0,0,0,0, - 0,-58,-166,0,0,-271,0,0,-281,0, - 0,-96,-209,0,0,0,0,0,0,0, - -211,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-253,-254,0,0,0, - -223,0,0,0,0,0,-178,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,-179,-276,0,0,0,0,0,0, - 0,-5,0,-9,0,0,-274,-215,0,0, - 0,0,0,0,0,-12,-89,0,0,-14, - -76,0,-130,0,0,-81,0,-224,0,0, - 0,-279,0,-225,-94,0,-286,-284,-226,0, + -227,0,-228,0,0,0,0,0,0,0, + 0,-209,0,0,0,0,-184,0,0,0, + 0,0,0,0,0,0,0,-212,0,0, + 0,-185,-229,0,0,0,0,0,0,0, + 0,0,0,-221,-230,-1,0,-7,-272,0, + 0,-186,-231,0,0,0,0,0,0,0, + 0,0,0,0,-220,0,-222,0,0,-5, + 0,-264,0,0,-177,-51,0,0,0,0, + 0,0,0,0,0,-232,0,-58,0,-233, + 0,0,0,-234,0,0,0,0,-178,-290, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-227,0,-60,0, + 0,-92,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-235,0,0, + 0,0,-167,0,-236,0,0,0,-237,0, + -246,0,-238,-285,-86,0,0,-180,0,0, + 0,0,0,0,0,0,-12,0,-217,0, + 0,0,0,0,0,0,0,-14,-239,0, + 0,-46,0,-76,0,-132,0,0,-81,0, + -291,0,0,0,-89,0,-240,0,0,0, + 0,0,0,0,0,0,0,-223,0,-94, + 0,0,0,0,0,0,0,0,-242,0, + 0,-267,-263,-259,0,0,0,0,-260,0, + 0,0,0,0,-269,0,0,-274,0,0, + 0,0,0,0,0,0,0,0,-280,0, + 0,0,0,-247,0,0,0,0,0,0, + 0,0,0,0,-98,0,0,0,0,0, + 0,0,-99,0,0,0,0,0,0,0, + 0,0,-282,0,0,-268,-101,0,0,0, + 0,0,0,0,-128,0,-168,0,-271,-121, + 0,0,0,0,0,0,0,-169,0,0, + -150,-173,0,0,0,-286,0,0,0,0, + 0,0,0,0,0,-278,0,0,-289,0, + 0,0,-262,0,0,0,0,0,0,-174, 0,0,0,0,0,0,0,0,0,0, - -228,0,0,-229,-230,0,0,0,0,-231, - -232,0,0,-233,0,0,0,-234,-235,0, - -236,-237,-238,0,0,-258,-259,-265,0,0, - 0,0,-97,-272,0,0,0,0,0,0, - -98,0,0,0,0,0,0,0,0,0, - -99,0,0,0,0,0,0,0,-101,0, - 0,0,0,0,0,0,-120,0,0,0, - 0,0,0,0,-127,0,-167,0,-131,0, - -86,0,0,0,-168,0,-173,0,0,0, + 0,0,0,0,0,0,0,0,-175,0, + 0,0,0,0,0,0,-176,0,0,0, + 0,0,0,0,0,-218,0,0,0,0, + 0,0,0,-258,0,0,0,0,-191,0, + -266,0,-279,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,-54,0, - -174,0,0,0,0,0,0,0,0,-175, - 0,0,0,0,0,0,0,0,0,-257, - 0,0,-261,0,0,-216,0,0,0,0, - 0,0,0,-102,0,0,0,0,0,0, - -198,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,-246, - 0,0,0,0,0,-269,0,0,-280,0, - 0,-172,0,0,0,0,0,0,0,0, - -190,0,-248,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 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; @@ -261,227 +263,228 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface BaseAction { public final static char baseAction[] = { - 102,1,39,39,24,24,40,40,17,17, + 103,1,40,40,24,24,36,36,17,17, 2,2,2,2,3,3,3,4,4,5, - 5,5,5,5,5,5,5,67,67,88, - 88,6,6,6,6,6,6,6,6,6, + 5,5,5,5,5,5,5,68,68,89, + 89,6,6,6,6,6,6,6,6,6, 6,6,7,7,8,8,8,8,9,9, 9,10,10,10,11,11,11,11,11,12, 12,12,13,13,14,14,15,15,16,16, 18,18,19,19,21,21,21,21,21,21, - 21,21,21,21,21,21,29,27,20,103, - 103,90,90,54,30,30,30,30,30,30, - 30,31,31,31,28,28,91,91,68,68, + 21,21,21,21,21,21,29,27,20,104, + 104,91,91,54,30,30,30,30,30,30, + 30,31,31,31,28,28,92,92,69,69, 32,32,33,33,33,60,60,34,34,34, 34,35,35,35,35,35,46,46,23,23, - 23,23,23,47,47,47,83,83,78,78, - 78,78,79,79,79,80,80,80,81,81, - 81,82,82,82,92,92,84,84,85,48, + 23,23,23,47,47,47,84,84,79,79, + 79,79,80,80,80,81,81,81,82,82, + 82,83,83,83,93,93,85,85,86,48, 50,50,50,50,50,61,63,63,63,63, - 63,63,63,63,63,63,63,63,72,72, - 22,22,69,69,69,69,70,70,70,73, - 73,74,74,64,64,64,52,104,104,93, - 94,94,94,71,71,95,95,96,96,86, - 86,25,26,26,26,49,51,51,41,41, - 41,41,36,36,37,42,42,43,38,38, - 97,97,44,106,106,105,105,45,45,45, - 45,45,45,45,45,45,98,53,53,53, - 53,75,75,65,65,65,66,66,55,55, - 107,107,77,77,76,76,76,56,56,56, + 63,63,63,63,63,63,63,63,73,73, + 22,22,70,70,70,70,71,71,71,74, + 74,75,75,64,64,64,52,105,105,94, + 95,95,95,72,72,96,96,97,97,87, + 87,25,26,26,26,49,51,51,41,41, + 41,41,37,37,38,42,42,43,39,39, + 98,98,44,107,107,106,106,45,45,45, + 45,45,45,45,45,45,99,53,53,53, + 53,76,76,65,65,65,66,66,55,55, + 108,108,78,78,77,77,77,56,56,56, 57,58,58,58,59,59,59,59,62,62, - 89,89,89,89,87,108,109,109,110,110, - 111,111,102,102,112,112,99,99,99,99, - 113,113,100,100,100,101,101,287,868,14, - 19,15,1460,1417,44,1467,1516,1468,1541,1531, - 1546,1545,1603,1575,772,1618,74,413,91,593, - 1204,309,134,211,1594,655,14,19,15,1460, - 42,44,1467,1516,1468,1917,1292,684,223,488, - 1184,681,453,271,136,133,135,159,931,1377, - 252,211,486,749,266,1244,1267,269,138,305, - 165,134,211,196,601,126,142,145,148,151, - 593,1291,431,222,230,1716,1256,1864,1876,1880, - 685,931,1481,136,133,135,159,1725,419,222, - 227,547,1429,216,552,219,221,138,126,165, - 431,222,231,324,192,142,145,148,151,525, - 104,173,1265,509,1716,1256,1864,1876,1880,685, - 1594,550,14,19,15,1460,42,44,1467,1516, - 1468,1541,1948,535,1550,1738,14,19,15,1460, - 1417,44,1467,1516,1468,1541,1531,1546,1545,1603, - 1575,594,1618,74,225,278,1550,1738,14,19, - 15,1460,1417,44,1467,1516,1468,1541,1531,1546, - 1545,1603,1575,571,1618,74,926,278,612,1473, - 1738,14,19,15,1460,1417,44,1467,1516,1468, - 1541,1531,1546,1545,1603,1575,280,1618,74,761, - 278,1420,1572,14,19,15,1460,1417,44,1467, - 1516,1468,1541,1531,1546,1545,1603,1575,280,1618, - 74,281,600,1574,1594,357,14,19,15,1460, - 42,44,1467,1516,1468,1541,1531,1546,1545,1949, - 237,282,690,281,1519,1724,14,19,15,1460, - 1417,44,1467,1516,1468,1541,1531,1546,1545,1603, - 1575,887,1618,74,23,278,283,1616,1664,14, - 19,15,1460,1417,44,1467,1516,1468,1541,1531, - 1546,1545,1603,1575,926,1618,74,226,747,1594, - 872,14,19,15,1460,1417,44,1467,1516,1468, - 1541,1531,1546,1545,1603,1575,157,1618,74,1444, - 91,14,19,15,1460,1417,44,1467,1516,1468, - 1541,1531,1546,1545,1603,1575,303,1618,74,239, - 1455,1519,357,14,19,15,1460,1417,44,1467, - 1516,1468,1541,1531,1546,1545,1603,1575,238,1618, - 74,1594,278,14,19,15,1460,42,44,1467, - 1516,1468,1541,1531,1546,1545,1603,1575,57,1618, - 93,1338,22,651,415,1338,173,1557,1594,1725, - 14,19,15,1460,42,44,1467,1516,1468,1541, - 1531,1546,1951,284,173,1248,134,211,251,211, - 134,211,773,2039,1594,1722,14,19,15,1460, - 42,44,1467,1516,1468,1541,1531,1944,136,133, - 135,159,137,133,135,159,229,374,545,683, - 173,1222,138,302,165,1015,139,872,165,415, - 142,145,148,151,143,146,149,152,335,1716, - 1256,1864,1876,1880,685,1594,996,14,19,15, - 1460,42,44,1467,1516,1468,1541,1531,1546,1545, - 1603,1575,415,1618,93,1594,241,14,19,15, - 1460,1417,44,1467,1516,1468,1541,1531,1546,1545, - 1603,1575,1781,1618,74,1594,85,14,19,15, - 1460,42,44,1467,1516,1468,1931,981,1594,210, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,1792,1618,74,1594,84, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,759,1618,74,1594,83, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,759,1618,74,1594,82, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,183,1618,74,1594,81, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,182,1618,74,1594,80, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,759,1618,74,1594,79, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,759,1618,74,1594,78, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,185,1618,74,1594,77, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,184,1618,74,1594,76, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,759,1618,74,1594,75, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,772,1618,74,1594,92, - 14,19,15,1460,42,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,203,1618,93,1594,228, - 14,19,15,1460,1417,44,1467,1516,1468,1541, - 1531,1546,1545,1603,1575,334,1618,74,1594,1826, - 14,19,15,1460,42,44,1467,1516,1934,173, - 1881,1594,201,14,19,15,1460,1417,44,1467, - 1516,1468,1541,1531,1546,1545,1603,1575,653,1618, - 74,1594,1827,14,19,15,1460,42,44,1467, - 1516,1468,1541,1531,1546,1545,1603,1575,772,1618, - 93,1594,232,14,19,15,1460,42,44,1467, - 1516,1468,1541,1531,1546,1545,1603,1575,415,1618, - 93,1594,2066,14,19,15,1460,42,44,1467, - 1516,1935,173,1886,1594,202,14,19,15,1460, - 42,44,1467,1516,1468,1541,1531,1546,1545,1603, - 1575,635,1618,93,1594,1854,14,19,15,1460, - 42,44,1467,1516,1468,1541,1531,1546,1545,1603, - 1575,1407,1618,73,175,307,1594,57,14,19, - 15,1460,42,44,1467,1516,1940,745,1898,173, - 2011,110,173,681,86,822,1330,391,855,1, - 307,772,95,1453,108,94,96,97,98,99, - 648,1472,444,1148,580,391,110,1539,604,86, - 109,1330,391,827,599,16,1688,95,1453,108, - 94,96,97,98,99,1010,681,800,300,306, - 1348,869,106,89,1296,109,173,444,419,222, - 227,134,211,216,552,219,221,271,196,273, - 390,231,307,260,822,1229,759,107,264,1244, - 1267,269,704,144,133,135,159,127,110,330, - 1600,86,272,1330,391,597,1348,1429,261,95, - 1453,108,94,96,97,98,99,252,211,191, - 673,773,1877,274,207,1431,204,109,855,350, - 986,117,307,678,1408,419,222,227,1003,258, - 216,552,219,221,271,229,1669,123,110,106, - 324,86,986,1330,391,264,1244,1267,269,95, - 1453,108,94,96,97,98,99,486,782,122, - 208,105,1341,173,599,1687,1594,109,14,19, - 15,1460,42,44,1467,1516,1468,1541,1531,1546, - 1545,1603,1953,87,822,460,599,490,966,107, - 1471,173,466,419,222,817,710,1056,216,552, - 219,1075,110,773,2063,86,289,1330,158,931, - 1492,1019,681,95,1453,1710,94,96,97,98, - 99,252,211,419,222,227,194,275,217,552, - 219,221,271,986,391,872,515,599,986,304, - 483,154,766,266,1244,1267,269,703,388,1290, - 111,772,651,110,642,125,86,301,1330,570, - 599,486,749,740,95,1453,103,94,96,97, - 98,99,705,749,240,1559,110,251,211,86, - 1638,1330,14,19,15,1460,40,95,1453,101, - 94,96,97,98,99,993,494,419,222,227, - 625,599,216,552,219,221,705,749,419,222, - 227,802,158,216,552,219,221,110,759,986, - 86,290,1330,1803,986,652,341,1302,95,1453, - 102,94,96,97,98,99,121,1068,681,680, - 599,2110,419,222,227,154,766,216,552,219, - 221,772,651,1290,1031,910,110,1803,279,86, - 196,1330,735,599,772,197,199,95,1453,118, - 94,96,97,98,99,1582,1607,251,211,110, - 713,681,86,938,1330,790,599,821,1605,1429, - 95,1453,114,94,96,97,98,99,610,198, - 199,191,110,1242,193,86,287,1330,845,599, - 875,350,759,95,1453,1964,94,96,97,98, - 99,1538,415,772,997,110,336,1416,86,872, - 1330,900,599,1407,772,256,95,1453,113,94, - 96,97,98,99,651,1759,1644,1956,110,772, - 619,86,26,1330,955,599,486,749,1957,95, - 1453,120,94,96,97,98,99,772,20,251, - 211,110,1026,21,86,308,1330,59,343,346, - 1023,681,95,1453,119,94,96,97,98,99, - 568,270,419,222,227,298,1377,216,552,219, - 221,358,768,1242,1031,1018,1594,158,14,19, - 15,1460,42,44,1467,1516,1941,986,442,1416, - 1682,134,211,1594,297,14,19,15,1460,42, - 44,1467,1831,1720,2116,257,349,2060,983,772, - 155,766,1058,141,133,135,159,1594,822,14, - 19,15,1460,42,44,1467,1888,140,986,165, - 274,601,1497,276,14,19,15,1460,42,35, - 291,1632,601,758,1642,2119,772,294,296,986, - 331,271,1594,838,14,19,15,1460,42,39, - 1862,911,264,1244,1267,269,117,419,222,227, - 1799,244,217,552,219,221,872,872,419,222, - 1692,925,1687,217,552,219,1646,1594,271,14, - 19,15,1460,42,44,1894,1958,1515,286,264, - 1244,1267,269,1594,872,14,19,15,1460,42, - 44,1899,399,346,1739,242,243,772,1497,263, - 14,19,15,1460,42,35,1758,406,681,298, - 1777,1126,681,173,599,358,1242,681,928,134, - 211,277,772,288,813,173,307,772,872,815, - 1242,134,211,87,196,134,211,245,297,196, - 1571,147,133,135,159,87,1651,387,196,931, - 599,1674,1231,150,133,135,159,153,133,135, - 159,471,256,1429,878,965,124,290,1429,87, - 967,991,1035,1644,484,191,1458,1793,942,1088, - 191,990,1060,992,935,350,1075,1077,1061,955, - 350,295,296,1594,364,14,19,15,1460,42, - 38,1594,1128,14,19,15,1460,42,37,2206, - 2206,1594,1108,14,19,15,1460,42,36,1594, - 2206,14,19,15,1460,42,34,1594,2206,14, - 19,15,1460,42,35,766,307,173,307,173, - 599,604,2206,2206,2206,173,307,1594,2206,14, - 19,15,1460,42,47,87,2206,87,391,87, - 196,2206,115,1348,1231,87,1584,2206,196,948, - 681,1594,1231,14,19,15,1460,42,46,2206, - 1594,2081,14,19,15,1460,42,45,2206,1793, - 713,681,1242,948,681,1544,1572,1793,14,19, - 15,1460,42,43,1660,2206,14,19,15,1460, - 33,766,599,1242,1643,1660,1242,14,19,15, - 1460,32,1654,2206,256,2206,2206,207,2206,2206, - 2206,87,2206,2206,1035,1644,1207,1408,115,2206, - 766,599,2206,308,2206,256,766,599,256,766, - 599,2206,173,599,2206,1759,1644,2206,1867,1644, - 87,173,599,173,599,2206,87,115,2206,87, - 2206,1737,87,115,2206,2206,115,2206,2206,1649, - 2206,87,2206,87,2206,2206,2206,2206,1952,2206, - 1796,2206,2206,2206,2206,2206,2206,2206,2206,2206, - 1778,2206,2206,2206,2206,2206,1892,2206,2206,1897, - 2206,0,179,224,0,2213,1,0,1,2441, - 0,7,9,0,179,17,0,178,18,0, - 1,2430,0,112,1628,0 + 62,67,109,90,90,90,90,88,110,111, + 111,112,112,113,113,103,103,114,114,100, + 100,100,100,115,115,101,101,101,102,102, + 287,397,14,19,15,800,792,44,1029,1109, + 1049,1166,1124,1277,1228,1300,1291,415,1387,74, + 291,91,839,1130,714,134,211,1220,586,448, + 553,14,19,15,800,42,44,1029,1109,1049, + 1166,1124,1277,1228,1300,1937,772,136,133,135, + 159,307,134,211,1572,724,14,19,15,800, + 40,138,225,165,332,222,230,826,1225,304, + 142,145,148,151,136,133,135,159,735,1798, + 1470,1716,1907,1918,1406,774,1401,823,138,504, + 165,1546,332,222,231,173,1529,142,145,148, + 151,560,126,308,173,1922,1798,1470,1716,1907, + 1918,1406,448,1010,14,19,15,800,42,44, + 1029,1109,1049,1166,1885,399,1496,1528,14,19, + 15,800,792,44,1029,1109,1049,1166,1124,1277, + 1228,1300,1291,508,1387,74,713,278,1515,1528, + 14,19,15,800,792,44,1029,1109,1049,1166, + 1124,1277,1228,1300,1291,340,1387,74,388,278, + 493,1345,1862,14,19,15,800,792,44,1029, + 1109,1049,1166,1124,1277,1228,1300,1291,283,1387, + 74,306,869,1410,448,949,14,19,15,800, + 42,44,1029,1109,1049,1166,1124,1277,1228,1889, + 283,237,891,717,284,1410,1822,448,1059,14, + 19,15,800,42,44,1029,1109,1049,1166,1124, + 1277,1893,834,1665,774,397,284,1140,2023,1411, + 1528,14,19,15,800,792,44,1029,1109,1049, + 1166,1124,1277,1228,1300,1291,229,1387,74,1388, + 278,14,19,15,800,792,44,1029,1109,1049, + 1166,1124,1277,1228,1300,1291,334,1387,74,1534, + 278,14,19,15,800,792,44,1029,1109,1049, + 1166,1124,1277,1228,1300,1291,727,1387,74,208, + 278,285,473,677,727,448,1410,14,19,15, + 800,42,44,1029,1109,1049,1166,1124,1878,110, + 223,157,86,337,767,1141,1410,286,228,365, + 95,1295,1497,94,96,97,98,99,173,1292, + 127,287,549,1409,937,677,1410,1553,2051,14, + 19,15,800,792,44,1029,1109,1049,1166,1124, + 1277,1228,1300,1291,89,1387,74,448,889,14, + 19,15,800,792,44,1029,1109,1049,1166,1124, + 1277,1228,1300,1291,521,1387,74,1369,91,14, + 19,15,800,792,44,1029,1109,1049,1166,1124, + 1277,1228,1300,1291,1263,1387,74,448,949,14, + 19,15,800,42,44,1029,1109,1049,1166,1124, + 1277,1228,1300,1291,504,1387,93,238,334,134, + 211,448,309,14,19,15,800,42,44,1029, + 1109,1049,1166,1124,1277,1228,1300,1291,1948,1387, + 73,136,133,135,159,1195,714,686,1546,173, + 1614,1540,774,1506,966,138,1435,165,14,19, + 15,800,42,35,142,145,148,151,1264,126, + 676,1826,1597,1798,1470,1716,1907,1918,1406,448, + 496,14,19,15,800,42,44,1029,1109,1049, + 1166,1124,1277,1228,1300,1291,244,1387,93,448, + 257,14,19,15,800,792,44,1029,1109,1049, + 1166,1124,1277,1228,1300,1291,305,1387,74,448, + 85,14,19,15,800,42,44,1029,1109,1049, + 1783,279,448,210,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,878, + 1387,74,448,84,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,878, + 1387,74,448,83,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,239, + 1387,74,448,82,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,241, + 1387,74,448,81,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,878, + 1387,74,448,80,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,878, + 1387,74,448,79,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,240, + 1387,74,448,78,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,20, + 1387,74,448,77,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,556, + 1387,74,448,76,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,877, + 1387,74,448,75,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,611, + 1387,74,448,92,14,19,15,800,42,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,334, + 1387,93,448,232,14,19,15,800,792,44, + 1029,1109,1049,1166,1124,1277,1228,1300,1291,768, + 1387,74,448,1605,14,19,15,800,42,44, + 1029,1109,1049,1795,989,448,201,14,19,15, + 800,792,44,1029,1109,1049,1166,1124,1277,1228, + 1300,1291,1838,1387,74,448,1712,14,19,15, + 800,42,44,1029,1109,1049,1166,1124,1277,1228, + 1300,1291,727,1387,93,448,494,14,19,15, + 800,42,44,1029,1109,1049,1166,1124,1277,1228, + 1300,1291,780,1387,93,448,2116,14,19,15, + 800,42,39,771,738,173,1924,881,448,202, + 14,19,15,800,42,44,1029,1109,1049,1166, + 1124,1277,1228,1300,1291,944,1387,93,1591,1894, + 14,19,15,800,33,175,310,271,636,338, + 327,222,227,183,216,1229,219,221,266,1577, + 1674,269,110,824,1668,86,884,767,772,884, + 1,310,1931,95,1295,108,94,96,97,98, + 99,826,1325,123,331,1502,122,110,252,211, + 86,109,767,772,226,834,1935,352,95,1295, + 108,94,96,97,98,99,309,197,199,834, + 2073,360,442,388,106,884,109,104,1762,229, + 911,327,222,227,23,216,1229,219,221,271, + 774,1193,111,275,774,260,884,1250,879,107, + 264,1577,1674,269,891,231,310,194,173,1929, + 327,222,227,125,217,1229,219,221,271,499, + 1596,261,110,252,211,86,1430,767,772,266, + 1577,1674,269,95,1295,108,94,96,97,98, + 99,944,448,274,14,19,15,800,42,44, + 1751,109,258,609,677,727,327,222,227,207, + 216,1229,219,221,271,173,677,851,1457,790, + 606,117,310,87,106,264,1577,1674,269,16, + 115,467,1089,173,1895,87,1263,1050,110,769, + 1145,86,1673,767,772,603,1959,1391,548,95, + 1295,108,94,96,97,98,99,105,1134,714, + 884,134,211,1891,251,211,1173,109,327,222, + 423,59,216,1229,219,480,769,121,173,677, + 22,196,158,137,133,135,159,57,934,448, + 107,14,19,15,800,42,38,139,87,165, + 330,251,211,774,677,1685,143,146,149,152, + 1310,528,677,252,211,1243,154,411,659,1446, + 124,881,192,87,633,134,211,1070,110,734, + 1316,86,334,767,583,677,467,738,769,95, + 1295,103,94,96,97,98,99,144,133,135, + 159,110,1318,881,86,1650,767,182,326,1005, + 714,290,95,1295,101,94,96,97,98,99, + 961,638,677,327,222,227,1184,216,1229,219, + 221,1610,196,173,1672,1293,1620,158,110,185, + 57,86,1591,767,14,19,15,800,32,95, + 1295,102,94,96,97,98,99,946,693,677, + 448,1310,14,19,15,800,42,44,1029,1109, + 1803,154,411,191,1186,110,1185,714,86,633, + 767,748,677,1197,1428,878,95,1295,118,94, + 96,97,98,99,173,714,173,436,110,1264, + 891,86,273,767,803,677,884,881,1778,95, + 1295,114,94,96,97,98,99,772,1978,1418, + 289,110,292,1994,86,242,767,858,677,1293, + 881,256,95,1295,1975,94,96,97,98,99, + 303,1963,1407,184,110,886,714,86,1271,767, + 913,677,881,727,1216,95,1295,113,94,96, + 97,98,99,173,458,727,203,110,1264,1192, + 86,987,767,968,677,467,738,1578,95,1295, + 120,94,96,97,98,99,771,738,280,1601, + 110,727,878,86,991,767,386,467,738,272, + 256,95,1295,119,94,96,97,98,99,333, + 614,1407,327,222,227,1624,216,1229,219,221, + 334,134,211,327,222,227,158,216,1229,219, + 221,822,243,828,327,222,227,1668,216,1229, + 219,221,779,147,133,135,159,448,606,14, + 19,15,800,42,44,1029,1109,1836,881,193, + 155,411,448,547,14,19,15,800,42,44, + 1029,1109,1840,1182,727,602,343,337,1302,881, + 198,199,448,992,14,19,15,800,42,44, + 1029,1109,1844,301,204,606,2124,727,1964,395, + 399,337,1306,134,211,448,724,14,19,15, + 800,42,44,1029,1691,742,1003,301,724,274, + 1044,1969,300,395,1087,141,133,135,159,448, + 881,14,19,15,800,42,44,1029,1714,140, + 271,165,769,327,222,227,300,217,1229,219, + 221,264,1577,1674,269,327,222,1436,666,217, + 1229,219,1415,728,1740,1023,26,251,211,1147, + 1799,884,1959,691,878,442,297,299,448,311, + 14,19,15,800,42,44,1753,1671,2131,1435, + 1820,14,19,15,800,42,35,774,1693,1281, + 298,299,1048,714,1091,714,173,677,271,1177, + 714,878,134,211,291,657,714,1199,1458,264, + 1577,1674,269,134,211,196,87,196,727,245, + 173,310,196,1711,150,133,135,159,1264,727, + 263,697,884,727,1227,153,133,135,159,1229, + 87,293,21,196,1310,1104,1310,1375,1231,2133, + 2220,1310,207,270,2220,2220,191,276,191,884, + 256,1560,790,191,609,677,1491,1428,1523,1428, + 614,1407,1883,1627,1428,448,117,14,19,15, + 800,42,37,448,87,14,19,15,800,42, + 36,115,2220,1306,2220,2220,727,448,1162,14, + 19,15,800,42,34,609,310,173,310,727, + 448,1069,14,19,15,800,42,35,173,310, + 1989,769,173,677,1962,87,891,87,772,2220, + 196,2220,115,277,1375,2220,727,2220,87,727, + 2220,196,87,886,714,1375,251,211,294,969, + 448,1373,14,19,15,800,42,47,2220,1883, + 1670,1850,2220,1693,2220,1626,1264,2220,2220,448, + 1883,14,19,15,800,42,46,448,2220,14, + 19,15,800,42,45,1794,1464,2220,14,19, + 15,800,42,43,1185,714,1817,1458,256,173, + 677,609,677,609,677,173,677,2220,2039,1407, + 2220,2220,2220,2220,2220,2220,2220,1264,2220,87, + 1092,87,2220,87,2220,87,1919,2220,115,2220, + 115,2220,2026,2220,2220,2220,2220,2220,2220,2220, + 2220,2220,2220,2220,2220,2220,2220,1182,2220,256, + 2220,2220,2220,2220,2220,2220,2220,2220,2220,1963, + 1407,2066,2220,2069,2220,0,179,224,0,2227, + 1,0,1,2455,0,7,9,0,179,17, + 0,178,18,0,1,2444,0,112,1647,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -519,165 +522,157 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 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,0,1,2,0, - 4,5,0,7,8,9,10,11,12,13, + 50,51,52,53,54,55,0,1,2,3, + 0,5,2,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,0,23, 24,25,26,27,28,0,30,31,32,33, 34,35,36,37,38,0,40,41,42,0, - 1,2,3,0,48,0,3,0,3,53, - 0,55,0,1,2,3,4,5,0,9, - 2,3,10,11,12,22,0,22,69,70, - 71,72,6,0,22,23,24,25,26,27, + 0,1,2,0,48,5,0,0,5,53, + 4,55,0,1,2,3,4,5,19,20, + 21,0,23,24,25,26,27,28,22,0, + 9,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,73,40,41,42,56,0,0,59,0, - 48,58,3,58,61,53,61,55,0,1, - 2,3,4,5,56,0,1,59,10,11, - 12,22,0,1,0,73,4,0,6,5, + 38,56,40,41,42,0,56,0,1,2, + 48,66,5,56,58,53,0,55,0,1, + 2,3,4,5,19,20,21,0,23,24, + 25,26,27,28,0,73,2,19,20,21, 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,0,40,41, - 42,0,79,0,1,2,48,58,5,62, - 63,53,0,55,2,69,70,71,72,0, - 1,2,3,4,5,6,7,8,9,64, - 0,73,13,14,15,16,17,18,19,20, - 21,22,0,0,2,0,1,2,29,0, - 1,2,9,0,5,13,14,56,39,56, - 7,8,43,44,45,46,47,66,49,50, - 51,52,0,54,0,1,2,3,4,5, - 6,7,8,9,0,0,2,13,14,15, - 16,17,18,19,20,21,22,0,56,69, - 70,71,72,29,0,56,0,1,66,0, - 4,2,6,39,10,11,12,43,44,45, - 46,47,80,49,50,51,52,0,54,0, - 1,2,3,4,5,6,7,8,9,0, - 56,2,13,14,15,16,17,18,19,20, - 21,22,0,0,1,3,0,4,29,6, - 0,1,2,0,1,5,39,4,39,0, - 0,0,43,44,45,46,47,6,49,50, - 51,52,0,54,0,1,2,3,4,5, - 6,7,8,9,0,56,2,13,14,15, - 16,17,18,19,20,21,22,0,0,57, - 0,0,0,29,0,3,60,10,11,12, - 10,11,12,39,10,11,12,43,44,45, - 46,47,0,49,50,51,52,0,54,0, - 1,2,3,4,5,6,7,8,9,0, - 81,82,13,14,15,16,17,18,19,20, - 21,22,0,0,0,1,2,5,29,0, - 58,59,0,10,11,12,0,5,39,10, - 11,12,43,44,45,46,47,76,49,50, - 51,52,60,54,0,1,2,3,4,5, - 6,7,8,9,0,56,2,13,14,15, - 16,17,18,19,20,21,22,0,0,2, - 0,3,5,29,60,0,6,0,3,67, - 68,0,0,39,3,3,64,43,44,45, - 46,47,0,49,50,51,52,22,54,0, - 1,2,3,4,5,6,7,8,9,0, - 0,0,13,14,15,16,17,18,19,20, - 21,22,0,56,0,57,0,5,29,5, - 0,0,1,3,59,4,0,60,39,3, - 59,59,43,44,45,46,47,0,49,50, - 51,52,22,54,0,1,2,3,4,5, - 6,7,8,9,0,56,2,13,14,15, - 16,17,18,19,20,21,22,0,0,2, - 2,0,5,29,3,74,75,0,58,67, - 68,67,68,39,0,59,0,43,44,45, - 46,47,6,49,50,51,52,60,54,0, - 1,2,3,4,5,6,7,8,9,0, - 0,1,13,14,15,16,17,18,19,20, - 21,22,0,56,0,0,1,0,29,4, - 0,7,8,3,7,8,65,0,39,62, - 63,0,43,44,45,46,47,0,49,50, - 51,52,22,54,0,1,2,3,4,5, - 6,7,8,9,0,0,0,13,14,15, - 16,17,18,19,20,21,22,0,1,0, - 0,4,0,29,2,0,6,78,3,0, - 0,0,0,39,0,0,0,43,44,45, - 46,47,0,49,50,51,52,22,54,0, - 1,64,3,4,77,74,75,0,0,10, - 11,12,0,58,6,0,62,63,62,63, - 0,6,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,56,40, - 41,42,62,63,58,0,61,48,66,0, - 0,0,53,61,55,76,57,0,1,78, - 3,4,0,0,0,58,0,10,11,12, - 6,0,6,0,0,0,64,0,58,0, + 32,33,34,35,36,37,38,78,40,41, + 42,0,1,56,3,0,48,0,1,2, + 3,53,5,55,7,8,9,10,11,12, + 13,14,15,16,17,18,0,1,2,73, + 56,73,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,0,0,0,22,0,4,2,0,1, + 2,29,4,0,0,10,11,0,1,6, + 3,39,0,6,22,43,44,45,46,47, + 0,49,50,51,52,0,54,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,0,0,0,22, + 58,56,0,61,56,0,29,59,6,0, + 5,66,69,70,71,72,39,19,20,21, + 43,44,45,46,47,80,49,50,51,52, + 60,54,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,0,0,56,22,0,4,2,0,4, + 0,29,4,66,4,69,70,71,72,0, + 61,39,67,68,22,43,44,45,46,47, + 22,49,50,51,52,0,54,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,0,1,0,22, + 58,56,0,61,59,0,29,59,58,59, + 69,70,71,72,9,0,39,19,20,21, + 43,44,45,46,47,0,49,50,51,52, + 0,54,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,76,0,1,22,3,0,1,6,3, + 64,29,6,0,1,2,0,0,5,2, + 4,39,5,58,0,43,44,45,46,47, + 6,49,50,51,52,60,54,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,76,0,0,22, + 0,1,2,0,7,8,29,4,0,0, + 0,2,4,56,5,59,39,19,20,21, + 43,44,45,46,47,22,49,50,51,52, + 22,54,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,0,0,0,22,0,5,0,6,4, + 60,29,5,0,0,56,58,4,0,0, + 2,39,19,20,21,43,44,45,46,47, + 0,49,50,51,52,0,54,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,0,0,0,22, + 0,4,57,0,4,0,29,4,67,68, + 0,1,59,3,67,68,39,19,20,21, + 43,44,45,46,47,22,49,50,51,52, + 0,54,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,81,82,0,22,0,0,57,62,63, + 4,29,65,0,1,0,3,2,0,64, + 2,39,19,20,21,43,44,45,46,47, + 0,49,50,51,52,0,54,0,1,2, + 3,4,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,0,77,0,22, + 0,0,0,7,8,59,29,7,8,0, + 0,56,0,4,0,1,39,3,4,0, + 43,44,45,46,47,6,49,50,51,52, + 60,54,0,19,20,21,61,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,0,40,41,42,0,1,0, + 3,4,48,62,63,0,57,53,0,55, + 2,57,74,75,62,63,19,20,21,0, 23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,0,40,41,42, - 0,0,0,0,0,48,61,0,0,60, - 53,61,55,0,57,0,1,0,3,4, - 0,0,60,60,0,10,11,12,83,84, - 85,86,87,88,89,90,91,92,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,77,40,41,42,0,0, - 0,0,0,48,0,0,0,0,53,0, - 55,0,57,0,1,0,3,4,0,0, - 0,0,0,10,11,12,0,0,0,0, - 0,0,0,0,0,0,23,24,25,26, + 0,1,0,3,4,48,74,75,0,1, + 53,3,55,0,57,62,63,58,39,19, + 20,21,0,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,0, + 40,41,42,0,1,6,3,4,48,0, + 0,2,2,53,0,55,0,57,62,63, + 6,0,19,20,21,0,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,0,40,41,42,0,0,0,0, - 0,48,0,0,0,0,53,0,55,0, - 57,0,1,0,3,4,0,0,0,0, - 0,10,11,12,0,0,0,0,0,0, - 0,0,0,0,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 0,40,41,42,0,0,0,0,0,48, - 0,0,1,2,53,4,55,0,57,0, - 0,10,11,12,0,0,0,0,0,0, - 0,0,0,0,23,24,25,26,27,28, - 0,30,31,32,33,34,35,36,37,38, - 0,40,41,42,0,0,0,0,1,48, - 0,4,0,0,53,0,55,10,11,12, - 0,0,0,0,0,0,0,0,0,0, - 23,24,25,26,27,28,0,30,31,32, - 33,34,35,36,37,38,0,40,41,42, - 0,0,0,0,0,48,10,11,12,0, - 53,0,55,0,0,0,0,0,0,23, - 24,25,26,27,28,0,30,31,32,33, + 37,38,0,40,41,42,0,1,6,3, + 4,48,79,0,0,0,53,2,55,5, + 57,0,1,0,0,19,20,21,0,23, + 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,0,40,41,42,0, - 1,2,3,4,5,0,7,8,9,0, - 0,0,13,14,15,16,17,18,19,20, - 21,0,23,0,1,2,3,4,5,0, - 7,8,9,0,0,0,13,14,15,16, - 17,18,19,20,21,0,23,0,0,0, - 0,0,0,1,2,3,4,5,6,7, - 8,9,0,0,65,13,14,15,16,17, - 18,19,20,21,0,0,0,1,2,3, - 4,5,0,7,8,9,0,0,65,13, - 14,15,16,17,18,19,20,21,0,1, - 2,0,4,5,6,7,8,9,0,57, - 0,13,14,15,16,17,18,19,20,21, - 0,0,0,0,0,0,0,0,0,0, - 1,2,0,4,5,6,7,8,9,0, - 0,65,13,14,15,16,17,18,19,20, - 21,0,1,2,0,4,5,6,7,8, - 9,0,0,0,13,14,15,16,17,18, - 19,20,21,0,1,2,0,4,5,0, - 7,8,9,0,0,0,13,14,15,16, - 17,18,19,20,21,0,1,2,0,4, - 5,0,7,8,9,0,0,0,13,14, - 15,16,17,18,19,20,21,0,1,2, - 0,4,5,0,7,8,9,0,0,0, - 13,14,15,16,17,18,19,20,21,0, - 1,2,0,4,5,0,7,8,9,0, - 0,0,13,14,15,16,17,18,19,20, - 21,0,1,2,3,0,5,0,0,0, - 0,10,11,12,0,0,0,10,11,12, - 0,0,0,22,23,24,25,26,27,28, - 23,24,25,26,27,28,0,0,0,0, - 1,2,3,0,5,0,0,0,0,10, - 11,12,0,0,0,0,0,56,0,0, - 59,22,23,24,25,26,27,28,10,11, - 12,0,0,0,0,0,0,0,0,0, - 0,23,24,25,26,27,28,10,11,12, + 1,2,3,77,48,0,0,0,0,53, + 0,55,6,57,6,0,0,0,19,20, + 21,58,23,24,25,26,27,28,64,30, + 31,32,33,34,35,36,37,38,64,40, + 41,42,0,1,0,3,0,48,0,0, + 0,56,53,0,55,0,78,0,0,0, + 0,19,20,21,0,23,24,25,26,27, + 28,61,30,31,32,33,34,35,36,37, + 38,0,40,41,42,0,0,0,0,0, + 48,0,0,0,0,53,0,55,0,0, + 19,20,21,0,23,24,25,26,27,28, + 60,30,31,32,33,34,35,36,37,38, + 60,40,41,42,0,1,2,3,4,5, + 0,7,8,9,10,11,12,13,14,15, + 16,17,18,58,0,0,60,23,0,1, + 2,3,4,5,60,7,8,9,10,11, + 12,13,14,15,16,17,18,0,1,2, + 3,23,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,0,0,0,65, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,0, + 0,0,0,65,0,1,2,3,4,5, + 0,7,8,9,10,11,12,13,14,15, + 16,17,18,0,0,0,0,0,0,0, + 0,0,0,0,1,2,3,57,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,1,2,3,65, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,0,1,2,3,0,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,0,1,2,3,0,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,0,1,2,3,0,5,0,7, + 8,9,10,11,12,13,14,15,16,17, + 18,0,1,2,3,0,5,0,7,8, + 9,10,11,12,13,14,15,16,17,18, + 0,1,2,3,0,5,0,7,8,9, + 10,11,12,13,14,15,16,17,18,0, + 1,2,0,4,5,0,0,0,0,0, + 1,2,0,4,5,0,0,0,19,20, + 21,22,23,24,25,26,27,28,19,20, + 21,22,23,24,25,26,27,28,0,0, + 0,0,0,0,0,0,0,61,0,0, 0,0,0,0,0,56,0,0,59,0, - 23,24,25,26,27,28,10,11,12,0, - 0,0,0,0,0,0,0,0,0,23, - 24,25,26,27,28,0,0,0,0,0, + 0,0,0,0,0,56,0,0,59,83, + 84,85,86,87,88,89,90,91,92,19, + 20,21,0,23,24,25,26,27,28,0, 0,0,0,0,0,0,0,0,0,0, + 0,19,20,21,0,23,24,25,26,27, + 28,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,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; @@ -685,187 +680,179 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface TermAction { public final static char termAction[] = {0, - 2206,3586,1,1697,3585,1,380,1,1,1, + 2220,3844,1,3836,1441,1,1261,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,2228,1,1,1,1,1,1,2320, + 1,1,1,1,1,1,1,1,1,528, + 1,1,1,1246,717,1249,694,612,1,505, + 1324,635,1473,1,547,1,28,2226,7,2205, + 2205,2205,2205,2205,2205,2205,2205,2205,2205,2205, + 2205,2205,2205,2205,2205,2205,2205,2205,2205,2205, + 2205,2205,2205,2205,2205,2205,2205,2205,2205,2205, + 2205,2205,2205,2205,2205,2205,2205,2205,2205,2205, + 2205,2205,2205,2205,2205,2205,2205,2205,2205,2205, + 2205,2205,2205,2205,2247,2205,2220,3844,1,3836, + 1441,1,1261,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2228,1, + 1,1,1,1,1,2320,1,1,1,1, + 1,1,1,1,1,528,1,1,1,1246, + 717,1249,694,612,1,505,1324,635,1473,1, + 547,1,1,2226,2220,3844,1,3836,2229,1, + 1261,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,2228,1,1,1, + 1,1,1,2320,1,1,1,1,1,1, + 1,1,1,528,1,1,1,1246,717,1249, + 694,612,1,505,1324,635,1473,1,547,1, + 2220,3844,1,3836,2229,1,1261,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,2228,1,1,1,1,1,1,2320, + 1,1,1,1,1,1,1,1,1,528, + 1,1,1,1246,717,1249,694,612,1,505, + 1324,635,1473,1,547,1,2220,1551,1950,1556, + 179,2040,2196,2013,2005,2027,1562,1218,364,2230, + 2231,2232,2233,1459,1185,2432,2433,2434,282,2382, + 2383,2381,2435,2384,2380,2220,2387,2392,2391,2389, + 2390,2388,2393,2394,2386,2220,2395,2396,2397,129, + 259,2444,1339,2220,523,1,2220,218,652,456, + 2229,453,2220,1,1,1,2229,1,2432,2433, + 2434,64,2382,2383,2381,2435,2384,2380,2228,70, + 422,1,1,1,2228,1,1,1,1,1, + 1,2522,1,1,1,1,1,1,1,1, + 1,1165,1,1,1,130,481,265,2444,1339, + 1,1620,1488,481,1695,1,2220,1,2220,1, + 1,1,2229,1,2432,2433,2434,2220,2382,2383, + 2381,2435,2384,2380,220,296,1275,1,1,1, + 2228,1,1,1,1,1,1,2522,1,1, + 1,1,1,1,1,1,1,504,1,1, + 1,206,2400,481,2401,2220,1,2220,2237,1950, + 2238,1,2040,1,2013,2005,2027,1562,1218,364, + 2230,2231,2232,2233,1459,1185,1,2444,1717,2195, + 481,295,2220,3844,1,3836,2229,1,1261,1, + 1,1,1,1,1,1,1,1,1,1, + 1,2220,233,59,2228,31,221,654,1,2214, + 1339,2320,2225,2220,2220,2244,2245,2220,2400,377, + 2401,528,2220,405,221,1246,717,1249,694,612, + 2220,505,1324,635,1473,2220,547,2220,3844,1, + 3836,2229,1,1261,1,1,1,1,1,1, + 1,1,1,1,1,1,61,288,247,2228, + 221,2052,187,221,481,48,2320,2224,1195,156, + 2107,1361,1802,1782,1767,1580,528,1,1,1, + 1246,717,1249,694,612,1215,505,1324,635,1473, + 1481,547,2220,3844,1,3836,2229,1,1261,1, + 1,1,1,1,1,1,1,1,1,1, + 1,60,234,1198,2228,1,221,1815,1,2225, + 2220,2320,116,2056,2225,1802,1782,1767,1580,2220, + 569,528,2099,2080,221,1246,717,1249,694,612, + 116,505,1324,635,1473,66,547,2220,3844,1, + 3836,2229,1,1261,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2202,248,2228, + 221,481,2220,221,2224,65,2320,116,1689,2224, + 1802,1782,1767,1580,422,205,528,1,1,1, + 1246,717,1249,694,612,2220,505,1324,635,1473, + 67,547,2220,3844,1,3836,2229,1,1261,1, + 1,1,1,1,1,1,1,1,1,1, + 1,615,2220,2400,2228,2401,2220,2400,414,2401, + 2475,2320,648,2220,2444,1717,2220,262,1488,1815, + 2225,528,1,3628,186,1246,717,1249,694,612, + 1328,505,1324,635,1473,1504,547,2220,3844,1, + 3836,2229,1,1261,1,1,1,1,1,1, + 1,1,1,1,1,1,615,51,2220,2228, + 1,2444,1717,1,1898,1362,2320,2229,2220,265, + 2220,1815,2229,481,1488,2224,528,2432,2433,2434, + 1246,717,1249,694,612,2228,505,1324,635,1473, + 2228,547,2220,3844,1,3836,2229,1,1261,1, + 1,1,1,1,1,1,1,1,1,1, + 1,50,188,249,2228,1,2107,49,1403,2199, + 1072,2320,2107,1,2220,481,1706,2225,2220,2220, + 542,528,2432,2433,2434,1246,717,1249,694,612, + 72,505,1324,635,1473,2220,547,2220,3844,1, + 3836,2229,1,1261,1,1,1,1,1,1, + 1,1,1,1,1,1,54,2220,250,2228, + 2220,2223,2226,2220,2227,1,2320,2229,2099,2080, + 2220,2400,2224,2401,2099,2080,528,2432,2433,2434, + 1246,717,1249,694,612,2228,505,1324,635,1473, + 68,547,2220,3844,1,3836,2229,1,1261,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2214,1,1,1,1,1,1,2306, - 1,1,1,1,1,1,1,1,1,1217, - 1,1,1,1340,661,1362,1315,1405,1,1181, - 1225,1271,1919,1,1228,1,28,2212,7,2191, - 2191,2191,2191,2191,2191,2191,2191,2191,2191,2191, - 2191,2191,2191,2191,2191,2191,2191,2191,2191,2191, - 2191,2191,2191,2191,2191,2191,2191,2191,2191,2191, - 2191,2191,2191,2191,2191,2191,2191,2191,2191,2191, - 2191,2191,2191,2191,2191,2191,2191,2191,2191,2191, - 2191,2191,2191,2191,2233,2191,2206,3586,1,1697, - 3585,1,380,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2214,1, - 1,1,1,1,1,2306,1,1,1,1, - 1,1,1,1,1,1217,1,1,1,1340, - 661,1362,1315,1405,1,1181,1225,1271,1919,1, - 1228,1,1,2212,2206,3586,1,2215,3585,1, - 380,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,2214,1,1,1, - 1,1,1,2306,1,1,1,1,1,1, - 1,1,1,1217,1,1,1,1340,661,1362, - 1315,1405,1,1181,1225,1271,1919,1,1228,1, - 2206,3586,1,2215,3585,1,380,1,1,1, + 1,339,2129,246,2228,2220,1,2226,1825,1849, + 90,2320,2222,2220,2249,267,2250,1289,2220,2475, + 2035,528,2432,2433,2434,1246,717,1249,694,612, + 2220,505,1324,635,1473,209,547,2220,3844,1, + 3836,2229,1,1261,1,1,1,1,1,1, + 1,1,1,1,1,1,53,527,62,2228, + 52,58,2220,1898,1362,90,2320,1898,1362,281, + 2220,481,57,1553,2220,1,528,1,190,227, + 1246,717,1249,694,612,230,505,1324,635,1473, + 1541,547,63,1,1,1,799,1,1,1, + 1,1,1,2415,1,1,1,1,1,1, + 1,1,1,56,1,1,1,2220,1,253, + 1,190,1,1825,1849,2220,1553,1,2220,1, + 1385,190,1112,839,1825,1849,1,1,1,2220, + 1,1,1,1,1,1,2415,1,1,1, + 1,1,1,1,1,1,55,1,1,1, + 2220,1,2220,1,190,1,1112,839,205,522, + 1,522,1,112,190,1825,1849,765,1594,1, + 1,1,2220,1,1,1,1,1,1,2415, 1,1,1,1,1,1,1,1,1,1, - 1,1,2214,1,1,1,1,1,1,2306, - 1,1,1,1,1,1,1,1,1,1217, - 1,1,1,1340,661,1362,1315,1405,1,1181, - 1225,1271,1919,1,1228,1,2206,1740,1895,59, - 1753,1997,2206,1981,1971,1989,2418,2419,2420,2085, - 2074,1500,2216,2217,2218,2219,1963,1802,2206,2368, - 2369,2367,2421,2370,2366,2206,2373,2378,2377,2375, - 2376,2374,2379,2380,2372,2206,2381,2382,2383,1, - 2200,1309,2211,233,461,234,221,2206,221,401, - 64,327,2206,1,1,2215,1,1,1,430, - 1756,2211,1,1,1,221,2206,221,1726,1206, - 1151,1078,329,112,2214,1,1,1,1,1, - 1,2505,1,1,1,1,1,1,1,1, - 1,2181,1,1,1,511,61,54,2210,2206, - 1,221,2215,221,221,1,221,1,2206,1, - 1,2215,1,1,511,1,2188,2210,1,1, - 1,2214,2206,2386,2206,293,2387,2206,421,738, - 2214,1,1,1,1,1,1,2505,1,1, - 1,1,1,1,1,1,1,2206,1,1, - 1,2206,2203,259,2430,1309,1,1676,1,1743, - 1767,1,179,1,2182,1726,1206,1151,1078,2206, - 3586,1,2215,3585,1,380,1,1,1,2461, - 60,292,1,1,1,1,1,1,1,1, - 1,2214,31,65,1253,1,2430,362,2306,265, - 2430,1309,430,51,1240,2230,2231,1131,1217,511, - 1853,1837,1340,661,1362,1315,1405,1404,1181,1225, - 1271,1919,2206,1228,2206,3586,1,2215,3585,1, - 380,1,1,1,220,2206,1331,1,1,1, - 1,1,1,1,1,1,2214,2206,2122,1726, - 1206,1151,1078,2306,247,511,2206,2386,594,2206, - 2387,712,686,1217,1,1,1,1340,661,1362, - 1315,1405,486,1181,1225,1271,1919,2206,1228,2206, - 3586,1,2215,3585,1,380,1,1,1,267, - 511,1423,1,1,1,1,1,1,1,1, - 1,2214,1,2206,2386,2185,2206,2387,2306,704, - 2206,2430,362,206,2386,1240,1758,2387,1217,72, - 2206,187,1340,661,1362,1315,1405,1089,1181,1225, - 1271,1919,2206,1228,2206,3586,1,2215,3585,1, - 380,1,1,1,2206,511,2005,1,1,1, - 1,1,1,1,1,1,2214,248,2206,2212, - 2206,66,2206,2306,249,2211,1456,1,1,1, - 2418,2419,2420,1217,2418,2419,2420,1340,661,1362, - 1315,1405,2206,1181,1225,1271,1919,2206,1228,2206, - 3586,1,2215,3585,1,380,1,1,1,218, - 1386,2131,1,1,1,1,1,1,1,1, - 1,2214,48,250,1,2430,362,2050,2306,246, - 1811,2210,1,2418,2419,2420,2206,738,1217,2418, - 2419,2420,1340,661,1362,1315,1405,714,1181,1225, - 1271,1919,1479,1228,2206,3586,1,2215,3585,1, - 380,1,1,1,2206,511,1383,1,1,1, - 1,1,1,1,1,1,2214,262,2206,1756, - 186,2213,1,2306,1038,1,1162,2206,116,2041, - 2017,2206,1,1217,2211,2211,2461,1340,661,1362, - 1315,1405,2206,1181,1225,1271,1919,116,1228,2206, - 3586,1,2215,3585,1,380,1,1,1,268, - 2206,62,1,1,1,1,1,1,1,1, - 1,2214,50,511,49,2212,2206,2050,2306,2050, - 2206,2206,2386,2215,116,2387,1,1520,1217,90, - 2210,2210,1340,661,1362,1315,1405,200,1181,1225, - 1271,1919,2214,1228,2206,3586,1,2215,3585,1, - 380,1,1,1,2206,511,1883,1,1,1, - 1,1,1,1,1,1,2214,265,2206,1756, - 2009,2206,1240,2306,2209,805,334,58,1526,2041, - 2017,2041,2017,1217,2206,90,188,1340,661,1362, - 1315,1405,1219,1181,1225,1271,1919,1111,1228,2206, - 3586,1,2215,3585,1,380,1,1,1,70, - 2206,2442,1,1,1,1,1,1,1,1, - 1,2214,2206,511,53,2206,2235,52,2306,2236, - 1,1853,1837,2215,1853,1837,2208,68,1217,1743, - 1767,63,1340,661,1362,1315,1405,1,1181,1225, - 1271,1919,2214,1228,2206,3586,1,2215,3585,1, - 380,1,1,1,57,205,56,1,1,1, - 1,1,1,1,1,1,2214,205,1294,2206, - 227,1294,2206,2306,2133,2206,230,534,2215,67, - 55,71,285,1217,2206,156,253,1340,661,1362, - 1315,1405,209,1181,1225,1271,1919,2214,1228,2206, - 1,2461,190,1,688,805,334,88,1,1, - 1,1,1,3490,380,227,1743,1767,1743,1767, - 28,231,1,1,1,1,1,1,2401,1, - 1,1,1,1,1,1,1,1,1164,1, - 1,1,1743,1767,1700,42,554,1,1768,2206, - 2206,2206,1,765,1,714,190,2206,1,534, - 190,1,1,1,41,1018,2206,1,1,1, - 1411,2206,1411,2206,2206,2206,2460,69,489,2206, - 1,1,1,1,1,1,2401,1,1,1, - 1,1,1,1,1,1,2206,1,1,1, - 2206,2206,2206,2206,2206,1,998,2206,2206,1184, - 1,641,1,2206,190,2206,1,2206,190,1, - 2206,2206,2387,2386,2206,1,1,1,978,958, - 938,918,898,858,878,838,818,785,1,1, - 1,1,1,1,2401,1,1,1,1,1, - 1,1,1,1,688,1,1,1,2206,2206, - 2206,2206,2206,1,2206,2206,2206,2206,1,2206, - 1,2206,190,2206,1,2206,189,1,2206,2206, - 2206,2206,2206,1,1,1,2206,2206,2206,2206, - 2206,2206,2206,2206,2206,2206,1,1,1,1, - 1,1,2401,1,1,1,1,1,1,1, - 1,1,2206,1,1,1,2206,2206,2206,2206, - 2206,1,2206,2206,2206,2206,1,2206,1,2206, - 189,2206,1,2206,190,1,2206,2206,2206,2206, - 2206,1,1,1,2206,2206,2206,2206,2206,2206, - 2206,2206,2206,2206,1,1,1,1,1,1, - 2401,1,1,1,1,1,1,1,1,1, - 2206,1,1,1,2206,2206,2206,2206,2206,1, - 2206,1,352,362,1,2384,1,2206,190,2206, - 2206,2418,2419,2420,2206,2206,2206,2206,2206,2206, - 2206,2206,2206,2206,2368,2369,2367,2421,2370,2366, - 2206,2373,2378,2377,2375,2376,2374,2379,2380,2372, - 2206,2381,2382,2383,2206,2206,2206,2206,2385,461, - 2206,2384,2206,2206,401,2206,327,2418,2419,2420, - 2206,2206,2206,2206,2206,2206,2206,2206,2206,2206, - 2368,2369,2367,2421,2370,2366,2206,2373,2378,2377, - 2375,2376,2374,2379,2380,2372,128,2381,2382,2383, - 2206,2206,2206,2206,2206,461,2418,2419,2420,2206, - 401,2206,327,2206,2206,2206,2206,2206,2206,2368, - 2369,2367,2421,2370,2366,2206,2373,2378,2377,2375, - 2376,2374,2379,2380,2372,2206,2381,2382,2383,1, - 2223,1895,2209,2224,1782,2206,1981,1971,1989,2206, - 2206,2206,2085,2074,1500,2216,2217,2218,2219,1963, - 1802,2206,577,2206,2223,1895,2209,2224,1868,2206, - 1981,1971,1989,2206,2206,2206,2085,2074,1500,2216, - 2217,2218,2219,1963,1802,2206,1091,2206,2206,2206, - 2206,2206,1,2223,1895,27,2224,1997,1276,1981, - 1971,1989,2206,2206,2208,2085,2074,1500,2216,2217, - 2218,2219,1963,1802,2206,2206,2206,2223,1895,2209, - 2224,1997,2206,1981,1971,1989,2206,2206,2208,2085, - 2074,1500,2216,2217,2218,2219,1963,1802,2206,2223, - 1895,2206,2224,1997,1276,1981,1971,1989,2206,27, - 2206,2085,2074,1500,2216,2217,2218,2219,1963,1802, - 2206,2206,2206,2206,2206,2206,2206,2206,2206,1, - 2223,1895,2206,2224,1997,1276,1981,1971,1989,2206, - 2206,2208,2085,2074,1500,2216,2217,2218,2219,1963, - 1802,2206,2223,1895,2206,2224,1997,1411,1981,1971, - 1989,2206,2206,2206,2085,2074,1500,2216,2217,2218, - 2219,1963,1802,2206,2223,1895,2206,2224,1997,2206, - 1981,1971,1989,2206,2206,2206,2085,2074,1500,2216, - 2217,2218,2219,1963,1802,1,2223,1895,2206,2224, - 1997,2206,1981,1971,1989,2206,2206,2206,2085,2074, - 1500,2216,2217,2218,2219,1963,1802,2206,2223,2007, - 2206,2224,1997,2206,1981,1971,1989,2206,2206,2206, - 2085,2074,1500,2216,2217,2218,2219,1963,1802,2206, - 2223,2015,2206,2224,1997,2206,1981,1971,1989,2206, - 2206,2206,2085,2074,1500,2216,2217,2218,2219,1963, - 1802,17,179,2194,2194,2206,2194,129,2206,2206, - 2206,179,179,179,2206,2206,2206,2418,2419,2420, - 2206,2206,2206,2194,179,179,179,179,179,179, - 2368,2369,2367,2421,2370,2366,2206,2206,2206,18, - 178,2197,2197,2206,2197,2206,2206,2206,2206,178, - 178,178,2206,2206,2206,2206,2206,2194,130,2206, - 2194,2197,178,178,178,178,178,178,2418,2419, - 2420,2206,2206,2206,2206,2206,2206,131,2206,2206, - 2206,2368,2369,2367,2421,2370,2366,2418,2419,2420, - 2206,2206,2206,2206,2206,2197,132,2206,2197,2206, - 2368,2369,2367,2421,2370,2366,2418,2419,2420,2206, - 2206,2206,2206,2206,2206,2206,2206,2206,2206,2368, - 2369,2367,2421,2370,2366 + 1,1,1,2220,1,1261,1,189,1,2220, + 2220,1448,1926,1,2220,1,69,190,1825,1849, + 1616,2220,1,1,1,2220,1,1,1,1, + 1,1,2415,1,1,1,1,1,1,1, + 1,1,227,1,1,1,2220,1,231,1, + 190,1,2217,88,1,2220,1,2135,1,652, + 189,2220,2456,2220,1,1,1,1,71,1, + 1,1,1,1,1,2415,1,1,1,1, + 1,1,1,1,1,268,1,1,1,1, + 330,1717,2398,527,1,2220,41,2220,2220,1, + 2220,1,1683,190,1683,2220,2220,2220,2432,2433, + 2434,1052,2382,2383,2381,2435,2384,2380,2475,2387, + 2392,2391,2389,2390,2388,2393,2394,2386,2474,2395, + 2396,2397,2220,2399,2220,2398,2220,523,2220,2220, + 200,481,456,2220,453,2220,504,2220,2220,2220, + 2220,2432,2433,2434,2220,2382,2383,2381,2435,2384, + 2380,589,2387,2392,2391,2389,2390,2388,2393,2394, + 2386,128,2395,2396,2397,28,1,2220,2220,2220, + 523,2220,2220,2220,1,456,2220,453,2220,2220, + 2432,2433,2434,2220,2382,2383,2381,2435,2384,2380, + 1145,2387,2392,2391,2389,2390,2388,2393,2394,2386, + 741,2395,2396,2397,1,2237,1950,2238,2223,776, + 2220,2013,2005,2027,1562,1218,364,2230,2231,2232, + 2233,1459,1185,549,2220,2220,2401,657,2220,2237, + 1950,2238,2223,1909,2400,2013,2005,2027,1562,1218, + 364,2230,2231,2232,2233,1459,1185,2220,2237,1950, + 2238,1125,2040,3529,2013,2005,2027,1562,1218,364, + 2230,2231,2232,2233,1459,1185,2220,2220,2220,2222, + 1,2237,1950,2238,27,2040,3529,2013,2005,2027, + 1562,1218,364,2230,2231,2232,2233,1459,1185,2220, + 2220,2220,2220,2222,2220,2237,1950,2238,2223,2040, + 2220,2013,2005,2027,1562,1218,364,2230,2231,2232, + 2233,1459,1185,2220,2220,2220,2220,2220,2220,2220, + 2220,2220,2220,2220,2237,1950,2238,27,2040,1683, + 2013,2005,2027,1562,1218,364,2230,2231,2232,2233, + 1459,1185,2220,2220,2220,2220,2220,2220,2220,2220, + 2220,2220,2220,2220,2220,1,2237,1950,2238,2222, + 2040,3529,2013,2005,2027,1562,1218,364,2230,2231, + 2232,2233,1459,1185,1,2237,1950,2238,2220,2040, + 3529,2013,2005,2027,1562,1218,364,2230,2231,2232, + 2233,1459,1185,2220,2237,1950,2238,2220,2040,3529, + 2013,2005,2027,1562,1218,364,2230,2231,2232,2233, + 1459,1185,1,2237,1950,2238,2220,2040,2220,2013, + 2005,2027,1562,1218,364,2230,2231,2232,2233,1459, + 1185,2220,2237,2037,2238,2220,2040,2220,2013,2005, + 2027,1562,1218,364,2230,2231,2232,2233,1459,1185, + 2220,2237,2048,2238,2220,2040,42,2013,2005,2027, + 1562,1218,364,2230,2231,2232,2233,1459,1185,17, + 179,2208,2220,2208,2208,2220,2220,2220,2220,18, + 178,2211,2220,2211,2211,2220,2220,2220,179,179, + 179,2208,179,179,179,179,179,179,178,178, + 178,2211,178,178,178,178,178,178,2220,2220, + 2220,2220,2220,2220,2220,2220,2220,1032,2220,2220, + 2220,2220,2220,2220,2220,2208,2220,2220,2208,2220, + 131,2220,2220,2220,2220,2211,2220,2220,2211,1012, + 992,972,952,932,892,912,872,852,819,2432, + 2433,2434,132,2382,2383,2381,2435,2384,2380,2220, + 2220,2220,2220,2220,2220,2220,2220,2220,2220,2220, + 2220,2432,2433,2434,2220,2382,2383,2381,2435,2384, + 2380 }; }; public final static char termAction[] = TermAction.termAction; @@ -873,35 +860,36 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Asb { public final static char asb[] = {0, - 417,1,388,528,417,279,452,464,464,277, - 277,464,277,464,390,251,530,519,448,530, - 360,42,12,42,12,127,42,530,472,480, - 251,3,4,186,390,279,321,574,573,251, - 133,361,12,12,12,12,127,127,472,413, - 530,186,84,188,390,530,66,530,360,234, - 322,322,213,448,448,221,448,448,322,360, - 60,236,60,528,376,12,39,55,390,12, - 12,39,129,216,129,127,413,472,188,107, - 104,413,287,376,236,236,236,236,236,88, - 236,236,236,281,298,303,301,309,305,312, - 311,314,313,315,480,475,479,253,64,236, - 133,573,358,322,236,322,374,236,450,236, - 236,361,221,60,221,530,318,483,483,39, - 57,39,39,236,213,129,472,479,413,104, - 87,84,236,236,236,236,236,236,236,236, - 236,236,236,480,480,534,376,376,213,213, - 164,236,236,236,236,236,236,236,236,236, - 236,236,236,236,236,236,236,236,236,236, - 236,477,478,183,251,188,64,234,322,480, - 448,480,480,360,221,236,321,236,320,39, - 532,236,236,104,88,66,251,183,480,480, - 480,104,301,301,298,298,305,305,303,303, - 303,303,311,309,313,312,60,314,186,480, - 329,475,129,326,322,234,221,236,221,221, - 57,236,104,104,64,534,329,540,279,236, - 188,480,39,62,577,213,236,325,164,322, - 480,359,64,480,66,104,213,236,480,164, - 322,221,129,104,221,480,39,221 + 475,1,364,440,475,38,508,520,520,36, + 36,520,36,520,366,196,442,431,506,442, + 336,40,60,40,60,198,40,442,528,536, + 196,3,4,300,366,38,293,579,578,196, + 90,337,60,60,60,60,198,198,528,389, + 442,300,121,302,366,442,148,442,336,179, + 294,294,327,506,506,166,506,506,294,336, + 58,181,58,440,352,60,87,53,366,60, + 60,87,200,248,200,198,389,528,302,223, + 141,389,259,352,181,181,181,181,181,125, + 181,181,181,253,270,275,273,281,277,284, + 283,286,285,287,536,531,535,12,87,38, + 181,90,578,334,294,181,294,350,181,393, + 181,181,337,166,58,166,442,290,395,395, + 87,55,87,87,181,327,200,528,535,389, + 141,124,121,181,181,181,181,181,181,181, + 181,181,181,181,536,536,539,352,352,327, + 327,204,181,181,181,181,181,181,181,181, + 181,181,181,181,181,181,181,181,181,181, + 181,181,533,534,297,196,302,87,146,179, + 294,536,506,536,536,336,166,181,293,181, + 292,87,444,181,181,141,125,148,196,297, + 536,536,536,141,273,273,270,270,277,277, + 275,275,275,275,283,281,285,284,58,286, + 300,536,446,531,146,294,179,166,181,166, + 166,55,181,141,141,146,539,446,545,38, + 181,302,536,200,331,204,294,536,335,146, + 536,87,144,582,327,181,330,536,204,294, + 166,200,243,148,141,327,181,166,536,87, + 141,166 }; }; public final static char asb[] = Asb.asb; @@ -909,64 +897,65 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Asr { public final static byte asr[] = {0, - 73,0,2,3,60,61,58,59,22,56, - 0,24,30,10,31,48,25,32,26,33, - 34,27,11,35,36,23,53,28,55,37, - 38,12,40,41,42,1,4,29,57,3, - 0,24,10,25,26,27,11,23,28,12, - 56,58,59,6,22,3,5,1,2,60, - 0,3,57,56,66,2,16,17,18,19, - 1,4,13,14,9,5,7,8,20,21, - 15,6,0,10,11,12,23,13,14,9, - 5,7,8,20,21,15,2,1,4,16, - 17,18,19,65,3,0,10,11,12,13, - 14,9,5,7,8,20,21,15,2,1, - 4,16,17,18,19,0,1,4,3,57, - 58,0,24,30,10,31,48,25,32,26, - 33,34,27,11,35,36,23,53,28,55, - 37,38,12,40,41,42,1,4,3,61, - 58,22,0,3,59,15,16,17,18,19, - 1,4,2,13,14,9,5,7,8,20, - 21,0,5,2,56,59,3,24,30,10, - 31,48,25,32,26,33,34,27,11,35, - 36,23,53,28,55,37,38,12,40,41, - 42,64,1,4,0,3,58,57,61,0, - 44,46,6,51,54,47,39,49,50,45, - 43,52,29,22,3,13,14,9,7,8, - 20,21,15,2,1,4,16,17,18,19, - 5,0,24,30,10,31,48,25,32,26, - 33,34,27,11,35,36,23,53,28,55, - 37,38,12,40,41,42,1,4,6,0, - 56,2,66,80,13,14,61,83,84,85, - 86,87,89,88,90,91,92,5,67,68, - 7,8,63,62,69,70,71,72,74,75, - 9,76,77,78,57,81,82,65,59,60, - 58,22,3,0,61,56,66,0,24,30, - 10,31,48,25,32,26,33,34,27,11, - 35,36,23,53,28,55,37,38,12,40, - 41,42,1,4,64,5,0,73,79,57, - 44,46,6,51,54,47,39,49,50,45, - 43,52,29,3,22,16,17,18,19,13, - 14,9,7,8,20,21,15,5,2,4, - 1,48,53,55,38,30,35,33,34,32, - 31,36,37,40,41,42,28,25,23,24, - 27,26,10,11,12,0,73,24,30,10, - 31,48,25,32,26,33,34,27,11,35, - 36,23,53,28,55,37,38,12,40,41, - 42,1,4,5,22,3,29,2,0,39, - 0,38,30,35,33,34,32,31,36,37, - 40,41,42,60,22,28,25,23,24,27, - 26,10,11,12,5,1,2,56,58,59, - 3,0,66,80,13,14,9,7,8,67, - 68,62,63,69,70,71,72,74,75,76, - 77,78,81,82,61,83,84,85,86,87, - 88,89,90,91,92,58,56,59,24,10, - 25,26,27,11,23,28,12,22,3,5, - 2,1,0,3,59,5,2,56,0,9, - 5,7,8,67,68,62,63,69,70,71, - 72,74,75,76,77,78,81,82,60,83, - 84,85,86,87,88,89,90,91,92,65, - 59,57,6,3,58,22,61,0 + 73,0,2,4,60,61,58,59,22,56, + 0,24,30,19,31,48,25,32,26,33, + 34,27,20,35,36,23,53,28,55,37, + 38,21,40,41,42,1,3,6,0,24, + 19,25,26,27,20,23,28,21,56,58, + 59,6,22,4,5,1,2,60,0,24, + 30,19,31,48,25,32,26,33,34,27, + 20,35,36,23,53,28,55,37,38,21, + 40,41,42,1,3,29,57,4,0,24, + 30,19,31,48,25,32,26,33,34,27, + 20,35,36,23,53,28,55,37,38,21, + 40,41,42,1,3,4,61,58,22,0, + 19,20,21,23,10,11,9,5,7,8, + 17,18,12,2,1,3,13,14,15,16, + 65,4,0,4,57,56,66,2,13,14, + 15,16,1,3,10,11,9,5,7,8, + 17,18,12,6,0,44,46,6,51,54, + 47,39,49,50,45,43,52,29,22,4, + 10,11,9,7,8,17,18,12,2,1, + 3,13,14,15,16,5,0,1,3,4, + 57,58,0,4,59,12,13,14,15,16, + 1,3,2,10,11,9,5,7,8,17, + 18,0,19,20,21,10,11,9,5,7, + 8,17,18,12,2,1,3,13,14,15, + 16,0,4,58,57,22,0,4,58,57, + 61,0,56,2,66,80,10,11,61,83, + 84,85,86,87,89,88,90,91,92,5, + 67,68,7,8,63,62,69,70,71,72, + 74,75,9,76,77,78,57,81,82,65, + 59,60,58,22,4,0,5,2,56,59, + 4,24,30,19,31,48,25,32,26,33, + 34,27,20,35,36,23,53,28,55,37, + 38,21,40,41,42,64,1,3,0,61, + 56,66,0,73,79,57,44,46,6,51, + 54,47,39,49,50,45,43,52,29,4, + 22,13,14,15,16,10,11,9,7,8, + 17,18,12,5,2,3,1,48,53,55, + 38,30,35,33,34,32,31,36,37,40, + 41,42,28,25,23,24,27,26,19,20, + 21,0,39,0,66,80,10,11,9,7, + 8,67,68,62,63,69,70,71,72,74, + 75,76,77,78,81,82,61,83,84,85, + 86,87,88,89,90,91,92,58,56,59, + 24,19,25,26,27,20,23,28,21,22, + 4,5,2,1,0,24,30,19,31,48, + 25,32,26,33,34,27,20,35,36,23, + 53,28,55,37,38,21,40,41,42,1, + 3,64,5,0,73,24,30,19,31,48, + 25,32,26,33,34,27,20,35,36,23, + 53,28,55,37,38,21,40,41,42,1, + 3,5,22,4,29,2,0,38,30,35, + 33,34,32,31,36,37,40,41,42,60, + 22,28,25,23,24,27,26,19,20,21, + 5,1,2,56,58,59,4,0,4,59, + 5,2,56,0,9,5,7,8,67,68, + 62,63,69,70,71,72,74,75,76,77, + 78,81,82,60,83,84,85,86,87,88, + 89,90,91,92,65,59,57,6,4,58, + 22,61,0 }; }; public final static byte asr[] = Asr.asr; @@ -974,35 +963,36 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Nasb { public final static char nasb[] = {0, - 116,23,14,140,127,47,57,58,58,67, - 67,58,67,58,53,114,28,23,23,94, - 9,23,78,23,78,78,23,32,78,61, - 114,35,35,60,78,47,141,23,23,114, - 23,63,78,83,78,83,67,78,78,51, - 97,60,43,77,69,28,7,95,73,139, - 141,141,67,23,23,100,23,23,141,9, - 23,7,23,140,1,83,10,140,17,24, - 83,10,49,23,23,67,51,12,131,40, - 45,51,23,135,7,7,7,7,7,44, - 7,7,7,23,23,23,23,23,23,23, - 23,23,23,23,61,88,23,105,78,7, - 23,23,23,141,7,141,143,136,23,136, - 136,63,100,23,100,28,23,23,23,10, - 28,10,10,7,67,49,12,61,51,45, - 44,12,7,7,7,7,7,7,7,7, - 7,7,7,61,61,123,135,135,37,37, - 80,136,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,136, - 7,35,35,87,114,77,40,145,141,61, - 23,61,61,73,100,7,141,7,23,10, - 23,7,7,45,44,7,114,122,61,61, - 61,45,23,23,23,23,23,23,23,23, - 23,23,23,23,23,23,23,23,60,61, - 112,89,49,120,141,145,100,136,100,100, - 28,7,45,45,78,91,112,23,23,7, - 77,61,10,39,23,67,7,110,145,141, - 61,23,40,61,7,45,67,7,61,145, - 141,100,49,45,100,61,10,100 + 128,25,16,107,137,32,93,94,94,65, + 65,94,65,94,89,118,124,25,25,83, + 29,25,74,25,74,74,25,26,74,39, + 118,9,9,38,74,32,108,25,25,118, + 25,61,74,112,74,112,65,74,74,96, + 86,38,34,73,120,124,46,84,69,106, + 108,108,65,25,25,49,25,25,108,29, + 25,7,25,107,1,112,30,107,19,100, + 112,30,104,25,25,65,96,67,141,43, + 36,96,25,145,7,7,7,7,7,35, + 7,7,7,25,25,25,25,25,25,25, + 25,25,25,25,39,77,25,11,74,25, + 7,25,25,25,108,7,108,149,146,25, + 146,146,61,49,25,49,124,25,25,25, + 30,124,30,30,7,65,104,67,39,96, + 36,35,67,7,7,7,7,7,7,7, + 7,7,7,7,39,39,133,145,145,59, + 59,54,146,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7, + 146,7,9,9,76,118,73,30,74,151, + 108,39,25,39,39,69,49,7,108,7, + 25,30,25,7,7,36,35,7,118,132, + 39,39,39,36,25,25,25,25,25,25, + 25,25,25,25,25,25,25,25,25,25, + 38,39,116,78,42,108,151,49,146,49, + 49,124,7,36,36,74,80,116,25,25, + 7,73,39,104,110,151,108,39,25,42, + 39,30,41,25,65,7,98,39,151,108, + 49,104,57,46,36,65,7,49,39,30, + 36,49 }; }; public final static char nasb[] = Nasb.nasb; @@ -1010,21 +1000,22 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Nasr { public final static char nasr[] = {0, - 83,82,81,80,79,78,5,0,1,40, - 0,25,0,36,1,97,83,82,81,80, - 79,78,0,1,52,64,0,42,36,1, - 0,36,38,0,45,0,88,0,87,5, - 1,0,1,5,39,0,101,0,67,0, - 75,0,69,70,71,72,61,47,0,1, - 24,0,1,23,29,91,22,0,23,1, - 113,0,29,22,68,40,23,1,0,1, - 103,0,74,1,52,0,24,1,36,42, - 58,57,0,1,38,44,36,42,0,22, - 29,1,30,0,1,23,46,28,0,111, - 0,1,23,53,0,112,23,1,0,109, - 0,24,57,58,1,0,23,1,99,0, - 105,1,23,0,52,1,27,0,27,1, - 17,0,23,46,1,60,0 + 84,83,82,81,80,79,5,0,45,0, + 1,23,46,28,0,37,1,98,84,83, + 82,81,80,79,0,37,39,0,1,36, + 0,102,0,1,5,40,0,1,24,0, + 88,67,5,1,0,5,67,0,22,29, + 1,30,0,1,104,0,109,0,89,0, + 1,23,29,92,22,0,25,0,29,22, + 69,36,23,1,0,24,1,37,42,58, + 57,0,1,39,44,37,42,0,70,71, + 72,73,61,47,0,76,0,113,0,1, + 52,64,0,68,0,27,1,17,0,111, + 0,75,1,52,0,1,23,53,0,23, + 1,115,0,42,37,1,0,114,23,1, + 0,24,57,58,1,0,23,1,100,0, + 106,1,23,0,52,1,27,0,23,46, + 1,60,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1032,9 +1023,9 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, - 85,2,87,86,9,3,10,11,8,48, - 64,76,6,7,68,81,82,83,84,12, - 13,92,69,44,55,60,63,72,93,47, + 85,2,86,87,9,3,10,11,8,6, + 7,68,81,82,83,84,12,13,48,64, + 76,92,69,44,55,60,63,72,93,47, 52,56,61,62,66,67,74,75,77,78, 79,80,45,46,49,50,51,54,57,58, 59,65,70,71,73,1,91,42,90,29, @@ -1052,15 +1043,15 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 0,0,0,0,100,104,105,106,107,108, 109,110,111,112,113,114,98,115,116,0, 117,123,127,96,135,0,99,122,118,121, - 0,0,0,0,0,156,0,159,95,97, + 0,0,0,0,0,97,156,0,159,95, 153,155,0,157,158,126,134,0,0,0, 145,148,154,120,167,170,171,172,0,0, - 137,144,0,147,160,166,0,125,138,139, - 140,141,0,146,165,169,102,129,130,131, - 132,133,136,142,143,152,173,101,103,119, - 124,128,150,0,0,151,161,164,178,0, - 180,0,0,149,162,163,168,174,175,0, - 176,177,179,0 + 137,144,0,147,160,166,0,0,125,138, + 139,140,141,0,146,165,169,102,129,130, + 131,132,133,136,142,143,152,173,101,103, + 119,124,128,150,0,0,151,161,164,178, + 0,180,0,0,149,162,163,168,0,174, + 175,0,176,177,179,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1068,10 +1059,10 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 168,80,33,39,87,107,113,138,12,19, - 49,67,119,124,26,45,97,147,164,183, - 187,151,1,1,30,54,77,191,6,101, - 158,129,158,93,57,57,57 + 172,82,35,41,91,111,117,12,142,21, + 51,69,123,128,28,47,101,151,168,187, + 191,155,1,1,32,56,79,195,6,105, + 162,133,162,97,59,59,59 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -1079,10 +1070,10 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 17,17,4,4,17,17,17,144,17,24, - 4,24,17,17,24,4,95,17,24,24, - 4,155,4,4,24,4,24,24,9,104, - 161,132,176,95,64,59,72 + 89,89,4,4,89,89,89,18,148,26, + 4,26,89,89,26,4,99,89,26,26, + 4,159,4,4,26,4,26,26,9,108, + 165,136,180,99,66,61,74 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -1090,10 +1081,10 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 5,71,45,45,71,69,69,33,62,59, - 45,38,69,69,59,45,64,28,6,5, - 5,19,111,110,57,45,36,3,87,64, - 7,34,5,64,38,44,38 + 5,72,45,45,72,70,70,62,33,59, + 45,39,70,70,59,45,64,28,6,5, + 5,19,113,112,57,45,37,3,88,64, + 7,34,5,64,39,44,39 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -1101,7 +1092,7 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeLa { public final static byte scopeLa[] = { - 57,57,65,65,57,57,57,79,57,59, + 57,57,65,65,57,57,57,57,79,59, 65,59,57,57,59,65,22,57,59,59, 65,60,65,65,59,65,59,59,61,1, 59,39,59,22,2,2,2 @@ -1112,7 +1103,7 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeStateSet { public final static byte scopeStateSet[] = { - 5,114,89,89,114,114,114,74,61,93, + 5,114,89,89,114,114,114,61,74,93, 89,100,114,114,93,89,67,73,5,5, 5,35,1,3,93,89,100,5,63,67, 8,74,5,67,100,102,100 @@ -1123,26 +1114,26 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 147,56,0,95,0,201,94,0,31,144, - 0,160,182,94,6,0,97,0,158,94, - 2,150,0,96,0,158,94,2,0,169, - 2,0,114,23,191,94,56,0,114,191, - 94,23,56,0,114,23,56,0,114,191, - 94,56,0,114,56,0,129,0,2,0, - 162,96,0,2,96,0,158,94,2,129, - 0,2,0,160,96,0,144,2,0,160, - 188,94,6,115,48,0,160,188,94,6, - 48,0,145,0,98,0,197,94,145,0, - 94,145,0,149,98,0,166,94,6,115, - 55,0,166,94,6,115,53,0,166,94, - 6,55,0,166,94,6,53,0,123,47, - 0,77,2,99,96,98,0,123,117,120, - 2,51,0,53,121,0,184,94,6,0, - 120,82,111,0,29,116,0,170,2,0, - 96,105,0,170,2,15,0,160,182,94, - 6,117,170,2,0,96,3,0,103,0, - 97,0,196,2,98,0,120,56,98,0, - 120,2,0 + 147,56,0,95,0,203,94,0,31,144, + 0,161,183,94,6,160,0,97,0,0, + 158,94,2,150,0,96,0,158,94,2, + 0,170,2,0,114,23,192,94,56,0, + 114,192,94,23,56,0,114,23,56,0, + 114,192,94,56,0,114,56,0,130,0, + 2,0,162,96,0,2,96,0,158,94, + 2,130,0,2,0,160,96,0,144,2, + 0,161,189,94,6,115,48,0,97,0, + 161,189,94,6,48,0,145,0,98,0, + 198,94,145,0,94,145,0,149,98,0, + 167,94,6,115,55,0,167,94,6,115, + 53,0,167,94,6,55,0,167,94,6, + 53,0,123,47,0,77,2,99,96,98, + 0,123,117,120,2,51,0,53,121,0, + 185,94,6,0,120,82,111,0,29,116, + 0,171,2,0,96,105,0,171,2,12, + 0,161,183,94,6,117,171,2,0,96, + 3,0,103,0,97,0,197,2,98,0, + 120,56,98,0,120,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -1150,18 +1141,18 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeState { public final static char scopeState[] = {0, - 1515,0,1738,0,2085,2074,1500,2066,1868,1386, - 688,534,430,714,1726,1206,1151,1078,805,334, - 1853,1837,1767,1743,2050,2041,2017,1997,1989,1782, - 1981,1971,1963,1802,1164,1131,1184,1111,1091,1058, - 1038,1018,998,978,958,938,918,898,878,858, - 838,818,785,619,765,599,577,307,661,511, - 641,554,466,489,444,0,1886,350,1881,1557, - 1265,0,1431,1674,1651,1628,1605,1582,1559,1520, - 1341,1479,1456,1291,1405,1229,1204,0,1267,1244, - 552,419,308,1407,1756,1309,1793,1242,0,374, - 346,1526,1407,1309,1492,1481,1242,1792,1676,1781, - 1377,362,0,681,307,685,346,0 + 1418,0,1528,0,1562,1218,364,2116,1909,339, + 527,504,422,615,1802,1782,1767,1580,1112,839, + 1898,1362,1849,1825,2107,2099,2080,2040,2027,776, + 2013,2005,1459,1185,1198,1165,741,1145,1125,1092, + 1072,1052,1032,1012,992,972,952,932,912,892, + 872,852,819,697,799,677,657,310,717,481, + 589,569,549,458,436,0,1929,1428,1924,1922, + 1529,0,333,1693,1670,1647,1624,1601,1578,1541, + 1391,1504,1481,1325,612,1250,1225,0,1674,1577, + 1229,327,1182,1293,1815,1339,1883,1264,0,365, + 337,1706,1293,1339,1193,1506,1264,1838,1695,1826, + 1401,1717,0,714,310,1406,337,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -1169,35 +1160,36 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface InSymb { public final static char inSymb[] = {0, - 0,195,94,116,205,190,171,172,173,55, - 53,174,48,175,176,94,2,1,129,94, + 0,196,94,116,207,191,172,173,174,55, + 53,175,48,176,177,94,2,1,130,94, 6,115,6,115,6,6,115,146,5,144, - 94,129,135,2,199,190,185,178,131,94, + 94,130,135,2,200,191,186,179,132,94, 137,94,6,94,6,94,94,6,5,94, - 146,2,56,94,94,58,61,146,184,52, + 146,2,56,94,94,58,61,146,185,52, 43,45,50,49,39,47,54,51,122,6, - 46,44,115,116,94,94,166,145,94,167, - 94,166,188,115,189,94,94,168,94,23, - 114,94,99,2,15,21,20,8,7,5, - 9,14,13,98,101,103,102,105,104,107, - 106,109,108,111,158,116,159,206,6,5, - 137,131,3,120,94,115,2,2,123,2, - 2,94,60,147,60,94,183,1,4,166, - 94,166,160,61,58,188,168,198,94,114, - 191,168,92,91,90,88,89,87,86,85, - 84,83,61,170,120,145,2,2,80,66, - 2,56,68,67,5,62,63,8,7,75, - 74,72,71,70,69,76,9,78,77,82, - 81,150,151,2,94,58,94,139,153,120, - 39,120,120,184,60,58,197,60,144,160, - 58,191,23,114,5,117,94,2,170,170, - 196,120,102,102,101,101,104,104,103,103, - 103,103,106,105,108,107,120,109,2,169, - 94,146,182,94,153,110,117,2,117,117, - 58,60,114,114,6,146,94,117,117,60, - 94,158,160,58,201,66,56,202,110,153, - 120,123,94,158,61,147,66,56,153,110, - 117,79,182,147,117,153,160,117 + 46,44,115,116,94,94,167,145,94,168, + 94,167,189,115,190,94,94,169,94,23, + 114,94,99,2,12,18,17,8,7,5, + 9,11,10,98,101,103,102,105,104,107, + 106,109,108,111,158,116,159,208,6,160, + 5,137,132,4,120,94,115,2,2,123, + 2,2,94,60,147,60,94,184,1,3, + 167,94,167,161,61,58,189,169,199,94, + 114,192,169,92,91,90,88,89,87,86, + 85,84,83,61,171,120,145,2,2,80, + 66,2,56,68,67,5,62,63,8,7, + 75,74,72,71,70,69,76,9,78,77, + 82,81,150,151,2,94,58,94,6,139, + 153,120,39,120,120,185,60,58,198,60, + 144,161,58,192,23,114,5,117,94,2, + 171,171,197,120,102,102,101,101,104,104, + 103,103,103,103,106,105,108,107,120,109, + 2,170,94,146,94,153,110,117,2,117, + 117,58,60,114,114,6,146,94,117,117, + 60,94,158,183,94,110,153,120,123,94, + 158,161,58,203,66,56,204,153,110,117, + 79,183,129,61,147,66,56,117,153,161, + 147,117 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1408,20 +1400,20 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 288, + NUM_STATES = 292, NT_OFFSET = 93, - LA_STATE_OFFSET = 2512, + LA_STATE_OFFSET = 2529, MAX_LA = 2147483647, - NUM_RULES = 306, - NUM_NONTERMINALS = 114, - NUM_SYMBOLS = 207, + NUM_RULES = 309, + NUM_NONTERMINALS = 116, + NUM_SYMBOLS = 209, SEGMENT_SIZE = 8192, - START_STATE = 1698, + START_STATE = 1796, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 73, EOLT_SYMBOL = 73, - ACCEPT_ACTION = 2181, - ERROR_ACTION = 2206; + ACCEPT_ACTION = 2195, + ERROR_ACTION = 2220; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parsersym.java index e1dc81c3456..4076f6d7697 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parsersym.java @@ -19,7 +19,7 @@ public interface C99Parsersym { TK_break = 43, TK_case = 44, TK_char = 30, - TK_const = 10, + TK_const = 19, TK_continue = 45, TK_default = 46, TK_do = 47, @@ -35,11 +35,11 @@ public interface C99Parsersym { TK_int = 33, TK_long = 34, TK_register = 27, - TK_restrict = 11, + TK_restrict = 20, TK_return = 52, TK_short = 35, TK_signed = 36, - TK_sizeof = 15, + TK_sizeof = 12, TK_static = 23, TK_struct = 53, TK_switch = 54, @@ -47,32 +47,32 @@ public interface C99Parsersym { TK_union = 55, TK_unsigned = 37, TK_void = 38, - TK_volatile = 12, + TK_volatile = 21, TK_while = 39, TK__Bool = 40, TK__Complex = 41, TK__Imaginary = 42, - TK_integer = 16, - TK_floating = 17, - TK_charconst = 18, - TK_stringlit = 19, + TK_integer = 13, + TK_floating = 14, + TK_charconst = 15, + TK_stringlit = 16, TK_identifier = 1, - TK_Completion = 4, - TK_EndOfCompletion = 3, + TK_Completion = 3, + TK_EndOfCompletion = 4, TK_Invalid = 93, TK_LeftBracket = 56, TK_LeftParen = 2, TK_LeftBrace = 6, TK_Dot = 66, TK_Arrow = 80, - TK_PlusPlus = 13, - TK_MinusMinus = 14, + TK_PlusPlus = 10, + TK_MinusMinus = 11, TK_And = 9, TK_Star = 5, TK_Plus = 7, TK_Minus = 8, - TK_Tilde = 20, - TK_Bang = 21, + TK_Tilde = 17, + TK_Bang = 18, TK_Slash = 67, TK_Percent = 68, TK_RightShift = 62, @@ -113,16 +113,13 @@ public interface C99Parsersym { "", "identifier", "LeftParen", - "EndOfCompletion", "Completion", + "EndOfCompletion", "Star", "LeftBrace", "Plus", "Minus", "And", - "const", - "restrict", - "volatile", "PlusPlus", "MinusMinus", "sizeof", @@ -132,6 +129,9 @@ public interface C99Parsersym { "stringlit", "Tilde", "Bang", + "const", + "restrict", + "volatile", "SemiColon", "static", "auto", 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 f563f5c9ec9..4e5a6b49743 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 @@ -169,8 +169,9 @@ private C99BuildASTParserAction action; public C99SizeofExpressionParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { action = new C99BuildASTParserAction ( CNodeFactory.getDefault() , this, tu); + action.setParserOptions(options); } @@ -180,10 +181,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1153,99 +1154,117 @@ public C99SizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 278: initializer ::= { <openscope-ast> initializer_list comma_opt } + // Rule 278: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 278: { action. consumeInitializerList(); break; } // - // Rule 283: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 279: initializer ::= { <openscope-ast> } // - case 283: { action. consumeInitializerDesignated(); break; + case 279: { action. consumeInitializerList(); break; } // - // Rule 287: designator_base ::= [ constant_expression ] + // Rule 280: start_initializer_list ::= $Empty // - case 287: { action. consumeDesignatorArray(); break; + case 280: { action. initializerListStart(); break; } // - // Rule 288: designator_base ::= . identifier_or_typedefname + // Rule 281: end_initializer_list ::= $Empty // - case 288: { action. consumeDesignatorField(); break; + case 281: { action. initializerListEnd(); break; } // - // Rule 289: designator ::= [ constant_expression ] + // Rule 286: designated_initializer ::= <openscope-ast> designation = initializer // - case 289: { action. consumeDesignatorArray(); break; + case 286: { action. consumeInitializerDesignated(); break; } // - // Rule 290: designator ::= . identifier_or_typedefname + // Rule 290: designator_base ::= [ constant_expression ] // - case 290: { action. consumeDesignatorField(); break; + case 290: { action. consumeDesignatorArray(); break; } // - // Rule 291: translation_unit ::= external_declaration_list + // Rule 291: designator_base ::= . identifier_or_typedefname // - case 291: { action. consumeTranslationUnit(); break; + case 291: { action. consumeDesignatorField(); break; + } + + // + // Rule 292: designator ::= [ constant_expression ] + // + case 292: { action. consumeDesignatorArray(); break; + } + + // + // Rule 293: designator ::= . identifier_or_typedefname + // + case 293: { action. consumeDesignatorField(); break; + } + + // + // Rule 294: translation_unit ::= external_declaration_list + // + case 294: { action. consumeTranslationUnit(); break; } // - // Rule 292: translation_unit ::= $Empty + // Rule 295: translation_unit ::= $Empty // - case 292: { action. consumeTranslationUnit(); break; + case 295: { action. consumeTranslationUnit(); break; } // - // Rule 297: external_declaration ::= ; + // Rule 300: external_declaration ::= ; // - case 297: { action. consumeDeclarationEmpty(); break; + case 300: { action. consumeDeclarationEmpty(); break; } // - // Rule 298: external_declaration ::= ERROR_TOKEN + // Rule 301: external_declaration ::= ERROR_TOKEN // - case 298: { action. consumeDeclarationProblem(); break; + case 301: { action. consumeDeclarationProblem(); break; } // - // Rule 301: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 301: { action. consumeFunctionDefinition(true); break; + case 304: { action. consumeFunctionDefinition(true); break; } // - // Rule 302: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 305: function_definition ::= <openscope-ast> function_declarator function_body // - case 302: { action. consumeFunctionDefinition(false); break; + case 305: { action. consumeFunctionDefinition(false); break; } // - // Rule 303: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 306: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 303: { action. consumeFunctionDefinitionKnR(); break; + case 306: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 304: function_body ::= { } + // Rule 307: function_body ::= { } // - case 304: { action. consumeStatementCompoundStatement(false); break; + case 307: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 305: function_body ::= { <openscope-ast> block_item_list } + // Rule 308: function_body ::= { <openscope-ast> block_item_list } // - case 305: { action. consumeStatementCompoundStatement(true); break; + case 308: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 307: no_sizeof_type_name_start ::= ERROR_TOKEN + // Rule 310: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 307: { action. consumeExpressionProblem(); break; + case 310: { 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 cf646a18639..16efd5d96f1 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 @@ -61,148 +61,151 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 6,6,3,5,1,1,2,3,4,1, 2,1,3,1,1,3,2,1,1,1, 1,2,1,2,3,1,1,1,3,1, - 2,2,2,3,4,5,1,5,1,1, - 3,3,4,1,1,2,3,2,3,2, - 1,0,1,2,1,1,1,1,1,2, - 4,3,6,2,4,1,1,-36,0,0, - 0,0,0,0,0,0,-2,0,0,0, - 0,0,0,0,0,0,0,0,0,-5, - 0,0,0,0,0,0,0,0,0,-121, + 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,-208,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-5,0,0,0,0,0,0,0, + 0,0,-121,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -177,0,-12,0,0,0,0,0,0,0, - 0,0,-13,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-127,-4,-14,-140, - -169,-104,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-16,0, - -170,0,0,0,0,0,0,0,0,0, + 0,0,0,-196,0,-12,0,0,0,0, + 0,0,0,0,0,0,-13,0,0,0, + 0,0,0,0,0,0,0,0,0,-29, + -2,-127,-140,-4,-14,0,0,0,0,0, + 0,0,0,0,-16,-17,-18,0,-19,0, + 0,0,0,0,-191,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,-166,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -29,-30,-33,-34,-3,0,0,0,0,0, + 0,0,0,0,-30,-179,-144,-33,0,-55, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-113,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-17,0,-49,0,0,0,0,0, - 0,0,0,-18,0,0,0,-72,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-71,0,0, - 0,-19,-20,-21,-22,0,-107,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,0,-126,0,0,0, - 0,0,0,0,0,-23,0,0,0,0, - 0,0,0,0,0,0,0,-24,-25,0, - -185,0,0,0,0,0,0,0,0,-26, + 0,0,-20,0,-21,0,-187,0,0,0, + 0,0,0,0,-22,0,0,0,0,0, + 0,0,0,0,0,0,-3,0,0,0, + 0,0,0,0,-23,0,0,0,0,0, + 0,0,0,0,0,0,-24,-25,-26,-170, + -85,-51,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-34,0,-107,0, 0,0,0,0,0,0,0,0,0,0, - -27,0,0,0,0,0,0,0,0,-85, + 0,0,0,0,0,0,0,0,0,-67, + -126,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -86,-87,-139,-88,-56,0,0,0,0,0, + -86,0,-87,0,-27,0,0,0,0,0, + 0,0,-88,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,0,0,0,-57,0,0,0,0,0, - 0,0,0,-89,0,0,0,0,0,0, + 0,0,-89,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,0,-90,0,0,0,0,0,0,0, 0,0,0,0,-59,0,0,0,0,0, - 0,0,0,-90,0,0,0,0,0,0, + 0,0,-91,0,0,0,0,0,0,0, 0,0,0,0,-60,0,0,0,0,0, - 0,0,0,-91,0,0,0,0,0,0, + 0,0,-92,0,0,0,0,0,0,0, 0,0,0,0,-61,0,0,0,0,0, - 0,0,0,-92,0,0,0,0,0,0, + 0,0,-93,0,0,0,0,0,0,0, 0,0,0,0,-62,0,0,0,0,0, - 0,0,0,-93,0,0,0,0,0,0, + 0,0,-94,0,0,0,0,0,0,0, 0,0,0,0,-63,0,0,0,0,0, - 0,0,0,-94,0,0,0,0,0,0, + 0,0,-95,0,0,0,0,0,0,0, 0,0,0,0,-64,0,0,0,0,0, - 0,0,0,-191,0,0,0,0,0,0, + 0,0,-96,0,0,0,0,0,0,0, 0,0,0,0,-65,0,0,0,0,0, - 0,0,0,-95,0,0,0,0,0,0, + 0,0,-97,0,0,0,0,0,0,0, 0,0,0,0,-66,0,0,0,0,0, - 0,0,0,-130,0,0,0,0,0,0, - 0,0,0,0,-46,0,0,0,0,0, - 0,0,0,0,0,-96,-97,-98,-99,-79, - 0,0,0,0,0,-144,0,0,0,0, - 0,0,0,0,-100,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-101,-102, - -103,-151,-114,-80,0,0,0,0,-6,0, + 0,0,-130,0,0,0,0,0,0,0, + 0,0,0,0,-37,0,0,0,0,0, + 0,0,0,0,-205,-98,-99,-100,-79,-101, + 0,0,0,0,-145,0,0,0,0,0, + 0,0,-102,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-145,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,-168,0,0,0,0,0,0,0,0, + 0,-146,0,0,0,0,0,0,0,-103, 0,0,0,0,0,0,0,0,0,0, - -182,0,0,0,0,0,0,0,0,-116, - 0,0,0,0,0,0,0,0,0,-37, - 0,0,0,0,0,0,0,0,-47,0, - 0,0,0,0,0,0,0,-188,0,0, + 0,-169,0,0,0,0,0,0,0,-114, 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,-82,0,0,0,0, - 0,0,0,0,0,-38,0,0,0,0, - 0,0,0,0,-7,0,0,0,0,0, - 0,-119,0,-202,0,0,0,0,0,0, + -184,0,0,0,0,0,0,0,-116,0, + 0,0,0,0,0,0,0,0,0,-190, 0,0,0,0,0,0,0,0,0,0, - 0,0,-120,0,0,0,0,0,0,0, - 0,-131,0,0,0,0,0,0,0,0, - 0,-129,-8,0,0,0,0,0,0,0, - 0,-51,0,0,0,0,0,0,0,0, - -155,0,0,0,0,0,0,-161,-162,-123, - -69,-142,-148,-74,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-203,0,0, - 0,0,0,0,0,-113,-67,0,0,-166, - -193,0,-204,-106,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,-204,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-54,0,0,0,0,0,0, - 0,0,-160,0,0,0,0,0,0,0, - -55,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-52,0,0,0, - 0,0,0,0,0,-84,0,0,0,0, - -76,-179,-9,0,0,0,0,0,0,-115, - 0,0,-143,0,0,0,0,-167,0,-68, - 0,0,-171,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,-184,0,0,0,0, - -75,0,0,-77,0,-111,0,0,0,0, - -48,0,0,0,0,0,0,0,0,-201, - 0,0,0,0,0,0,-152,0,0,0, - 0,0,0,0,0,0,0,-50,0,0, + 0,0,0,0,0,-119,-129,-131,-142,-123, + -74,-162,-143,0,0,-52,0,0,0,0, + 0,0,0,-163,0,0,0,0,0,0, + 0,0,0,0,-173,0,-68,-75,-149,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,-42,0,0, - 0,0,0,0,0,0,0,0,-43,0, - 0,0,0,0,0,0,0,-117,0,-11, - 0,0,0,0,0,0,0,0,0,-44, - 0,0,0,0,0,0,0,0,-108,0, - -45,0,0,0,0,0,0,0,0,-194, - 0,-73,-187,-156,-109,-118,-35,-124,0,0, - 0,0,0,0,0,0,-110,0,0,0, + 0,-157,-167,0,0,0,-178,-185,0,0, + 0,-111,0,0,0,-195,0,0,-207,-71, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-46,0,0,0, + 0,0,0,0,0,0,-84,-69,0,-54, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-147,0,0,0,0,0,0,-15,-28, - -31,0,0,-122,-78,0,0,0,0,0, - 0,0,0,-125,0,-39,0,0,0,0, - 0,0,0,0,0,0,0,0,-133,0, + 0,0,-80,0,0,0,0,0,-82,-181, + -110,0,0,0,0,0,0,0,-47,0, + 0,0,0,0,0,0,-104,0,0,0, + 0,0,0,0,0,0,-139,0,0,0, + 0,0,0,0,0,0,0,0,0,-148, + 0,0,0,0,0,0,0,-48,0,0, + 0,0,0,0,0,-203,0,0,0,0, + -108,-150,0,0,-49,0,0,0,0,0, + 0,0,-106,0,0,0,-115,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-40,0,0,0,0, - 0,0,-41,0,0,0,0,0,0,-70, - 0,0,0,0,0,0,-81,0,0,-112, - -83,0,-135,0,-195,0,-138,0,0,-134, - -176,0,-128,-136,0,0,0,0,0,0, + 0,0,0,0,0,-7,0,0,0,0, + 0,0,0,-50,0,0,0,0,0,0, + 0,0,0,0,0,-42,0,0,0,0, + 0,0,0,-152,0,0,-38,0,0,0, + 0,0,0,0,0,0,-43,0,0,0, + 0,0,0,0,0,0,0,-44,0,0, + 0,0,0,0,0,-128,0,0,-45,0, + 0,0,0,0,0,0,-73,0,0,-76, + -35,-151,0,-77,0,0,0,0,0,-8, + 0,0,0,0,0,0,0,-193,0,0, + 0,0,-125,0,0,0,0,0,0,0, + 0,0,0,0,0,-161,-147,0,0,0, + 0,0,0,0,0,0,-117,-118,0,-122, + -133,0,0,0,0,0,0,0,0,0, + 0,-9,0,0,0,0,0,0,-10,0, + 0,0,0,0,0,-11,0,0,0,0, + 0,0,-15,-28,-156,0,0,0,-78,-154, + 0,0,-39,0,0,0,0,0,0,-40, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-154,0,0,-158,0, - 0,0,0,-141,0,0,-149,0,0,0, - -137,-175,0,0,-190,-105,0,0,0,0, - 0,0,0,0,0,0,-146,0,0,0, - 0,0,-1,0,0,0,-32,0,0,-132, - 0,0,-150,0,-153,0,0,-163,0,0, - 0,0,-189,0,0,-183,0,0,0,0, - 0,0,-172,0,0,-174,0,0,0,-157, - 0,0,0,0,0,0,0,0,0,-53, - -159,0,0,-164,-173,0,-199,0,0,0, - 0,0,-178,0,-200,-180,0,-181,0,-186, - 0,0,-197,0,-196,-198,0,0,0,0, + 0,0,-135,-138,0,0,0,0,0,0, + 0,0,0,0,-160,-174,-81,0,0,-41, + 0,0,0,0,0,0,-70,0,0,0, + 0,0,0,-83,-175,-186,0,0,0,-168, + 0,-112,0,0,0,0,0,0,-134,0, + -141,-136,-176,0,0,0,0,0,0,0, + -155,0,0,0,0,0,0,-201,0,-159, + -177,-192,0,-1,0,0,0,0,0,0, + 0,0,-137,0,0,-164,0,0,0,0, + 0,0,0,0,0,0,0,-105,0,0, + 0,0,-132,0,0,0,0,0,0,0, + 0,-109,0,0,-124,0,0,0,0,0, + 0,0,0,-165,0,0,0,0,0,0, + 0,0,0,-188,0,0,-158,-31,0,0, + 0,0,-32,-197,0,0,-53,-172,0,0, + 0,0,0,-171,0,0,0,0,0,0, + 0,0,-180,0,0,-153,0,0,0,0, + -182,-189,0,0,-183,-198,-199,0,-200,0, + -202,-206,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 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; @@ -212,176 +215,179 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 83,9,23,23,22,22,26,26,67,67, + 84,8,23,23,22,22,26,26,68,68, 1,1,1,1,2,2,2,3,3,4, - 4,4,4,4,4,4,4,51,51,68, - 68,5,5,5,5,5,5,5,5,5, - 5,6,6,7,7,7,7,8,8,8, + 4,4,4,4,4,4,4,51,51,69, + 69,5,5,5,5,5,5,5,5,5, + 5,6,6,7,7,7,7,9,9,9, 10,10,10,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,93,45,40,84,84, - 71,71,46,94,94,94,94,94,94,94, - 95,95,95,96,96,101,101,102,102,97, - 97,98,98,98,104,104,99,99,99,99, - 100,100,100,100,100,103,103,24,24,24, - 24,24,28,28,28,77,77,72,72,72, - 72,73,73,73,74,74,74,75,75,75, - 76,76,76,105,105,106,106,107,29,31, + 19,19,19,19,19,95,45,40,85,85, + 72,72,46,96,96,96,96,96,96,96, + 97,97,97,98,98,103,103,104,104,99, + 99,100,100,100,106,106,101,101,101,101, + 102,102,102,102,102,105,105,24,24,24, + 24,24,28,28,28,78,78,73,73,73, + 73,74,74,74,75,75,75,76,76,76, + 77,77,77,107,107,108,108,109,29,31, 31,31,31,31,52,54,54,54,54,54, - 54,54,54,54,54,54,54,64,64,27, - 27,61,61,61,61,62,62,62,55,55, - 56,56,48,48,48,32,85,85,78,79, - 79,79,63,63,80,80,81,81,65,65, + 54,54,54,54,54,54,54,65,65,27, + 27,62,62,62,62,63,63,63,55,55, + 56,56,48,48,48,32,86,86,79,80, + 80,80,64,64,81,81,82,82,66,66, 20,21,21,21,30,47,47,33,33,33, - 33,36,36,38,34,34,35,39,39,108, - 108,37,109,109,86,86,25,25,25,25, - 25,25,25,25,25,82,49,49,49,49, - 58,58,57,57,57,59,59,50,50,87, - 87,69,69,60,60,60,41,41,41,42, - 43,43,43,44,44,44,44,53,53,70, - 70,70,70,66,88,89,89,90,90,91, - 91,110,110,111,111,112,112,112,112,114, - 114,113,113,113,115,115,83,83,1,14, - 19,15,389,580,43,483,409,42,522,494, - 524,523,556,525,569,568,73,90,133,210, - 644,14,19,15,389,40,135,132,134,158, - 558,14,19,15,389,580,43,483,409,390, - 522,494,524,523,556,525,569,568,73,277, - 137,345,164,644,14,19,15,389,33,141, - 144,147,150,644,14,19,15,389,32,388, - 1211,1264,1445,1507,1511,1206,270,331,118,803, - 649,678,29,279,216,1557,218,1593,220,221, - 226,340,265,1261,1104,268,280,251,210,433, - 613,558,14,19,15,389,580,43,483,409, - 390,522,494,524,523,556,525,569,568,73, - 277,436,14,19,15,389,580,43,483,409, - 390,522,494,524,523,556,525,569,568,73, - 277,471,471,504,504,616,14,19,15,389, - 580,43,483,409,279,522,494,524,523,556, - 525,569,568,73,90,1500,16,280,1130,391, - 285,1603,286,67,281,616,14,19,15,389, - 41,43,483,409,57,522,846,282,368,14, - 19,15,389,580,43,483,409,1385,522,494, - 524,523,556,525,569,568,73,1369,135,23, - 22,236,350,261,11,6,388,672,14,19, - 15,389,580,43,483,409,1388,522,494,524, - 523,556,525,569,568,73,1454,402,14,19, - 15,389,580,43,483,409,91,522,494,524, - 523,556,525,569,568,73,1577,1566,332,87, - 237,587,14,19,15,389,580,43,483,409, - 677,522,494,524,523,556,525,569,568,73, - 277,616,14,19,15,389,580,43,483,409, - 700,522,494,524,523,556,525,569,568,73, - 91,718,164,746,381,616,14,19,15,389, - 580,43,483,409,283,522,494,524,523,556, - 525,569,568,73,84,616,14,19,15,389, - 580,43,483,409,382,522,494,524,523,556, - 525,569,568,73,83,616,14,19,15,389, - 580,43,483,409,1634,522,494,524,523,556, - 525,569,568,73,82,616,14,19,15,389, - 580,43,483,409,446,522,494,524,523,556, - 525,569,568,73,81,616,14,19,15,389, - 580,43,483,409,515,522,494,524,523,556, - 525,569,568,73,80,616,14,19,15,389, - 580,43,483,409,544,522,494,524,523,556, - 525,569,568,73,79,616,14,19,15,389, - 580,43,483,409,496,522,494,524,523,556, - 525,569,568,73,78,616,14,19,15,389, - 580,43,483,409,527,522,494,524,523,556, - 525,569,568,73,77,616,14,19,15,389, - 580,43,483,409,811,522,494,524,523,556, - 525,569,568,73,76,616,14,19,15,389, - 580,43,483,409,452,522,494,524,523,556, - 525,569,568,73,75,616,14,19,15,389, - 580,43,483,409,286,522,494,524,523,556, - 525,569,568,73,74,616,14,19,15,389, - 41,43,483,744,133,210,153,202,288,265, - 116,192,135,132,134,158,616,14,19,15, - 389,580,43,483,409,622,522,494,524,523, - 556,525,569,568,73,1613,137,883,164,596, - 625,603,135,626,166,141,144,147,150,616, - 14,19,15,389,41,39,1211,1264,1445,1507, - 1511,1206,616,14,19,15,389,580,43,483, - 409,950,522,494,524,523,556,525,569,568, - 73,1635,616,14,19,15,389,41,43,483, - 409,361,522,494,524,523,556,525,569,568, - 92,616,14,19,15,389,41,43,483,409, - 651,522,494,524,523,556,525,569,568,92, - 616,14,19,15,389,41,43,612,1650,616, - 14,19,15,389,41,43,483,764,616,14, - 19,15,389,41,43,483,409,209,522,494, - 524,523,556,525,569,568,92,616,14,19, - 15,389,41,43,483,409,212,522,494,524, - 523,556,525,569,568,92,616,14,19,15, - 389,41,43,614,1653,616,14,19,15,389, - 41,38,658,1032,616,14,19,15,389,41, - 43,483,409,200,522,494,524,523,556,525, - 569,568,92,616,14,19,15,389,41,43, - 483,409,497,522,494,524,523,556,525,569, - 568,72,304,616,14,19,15,389,41,37, - 201,882,616,14,19,15,389,41,43,483, - 409,812,522,494,524,523,848,270,231,780, - 256,652,256,64,432,215,1557,218,1593,220, - 221,226,1562,263,1261,1104,268,182,309,259, - 250,210,250,210,20,273,680,504,270,271, - 475,653,260,353,242,1590,215,1557,218,1593, - 220,221,226,1100,263,1261,1104,268,274,881, - 1616,216,1557,218,1593,220,221,226,1223,257, - 1233,1697,1697,1266,616,14,19,15,389,41, - 43,483,409,779,522,494,524,523,556,525, - 879,616,14,19,15,389,41,43,483,409, - 1697,522,494,524,523,556,880,616,14,19, - 15,389,41,43,483,409,286,522,494,524, - 849,327,478,616,14,19,15,389,41,36, - 29,1515,1697,409,1648,1697,133,210,594,1520, - 504,133,210,443,136,132,134,158,1697,140, - 132,134,158,251,210,215,1557,218,1593,220, - 221,226,21,251,210,288,779,1697,138,1131, - 164,48,1697,139,757,164,504,142,145,148, - 151,616,14,19,15,389,41,43,483,409, - 478,522,494,804,133,210,272,711,269,1515, - 196,198,143,132,134,158,824,784,616,14, - 19,15,389,41,43,483,409,1655,522,847, - 1697,1072,1697,215,1557,218,1593,220,221,226, - 616,14,19,15,389,41,35,1131,616,14, - 19,15,389,41,43,483,409,256,644,616, - 14,19,15,389,41,43,483,409,29,684, - 616,14,19,15,389,41,34,1524,197,198, - 616,14,19,15,389,41,43,483,409,652, - 704,616,14,19,15,389,41,43,483,409, - 600,724,160,594,567,256,29,374,256,1515, - 1697,1510,238,1212,1697,1561,518,465,14,19, - 15,389,41,35,273,250,210,270,250,210, - 290,1697,270,215,1557,218,1593,220,221,226, - 243,1697,1697,263,1261,1104,268,1616,263,1261, - 1104,268,465,14,19,15,389,41,35,29, - 29,493,1266,387,290,769,387,262,308,308, - 455,193,1697,1102,652,244,616,14,19,15, - 389,41,46,195,195,133,210,547,1697,29, - 856,1387,1387,146,132,134,158,240,1546,86, - 86,88,1697,1697,454,454,616,14,19,15, - 389,41,45,616,14,19,15,389,41,44, - 529,14,19,15,389,41,42,781,453,1127, - 571,793,1697,29,1697,135,1697,29,1697,824, - 46,680,1549,504,94,1230,1598,133,210,824, - 1565,133,210,824,1072,149,132,134,158,152, - 132,134,158,228,195,275,142,1697,195,238, - 1697,1697,1384,1697,29,824,1384,650,824,1566, - 255,565,571,411,1118,573,408,1523,190,1062, - 195,824,190,195,824,1091,1620,652,1384,1631, - 1620,1384,225,499,1697,1697,1072,29,1098,1072, - 216,270,455,96,190,504,455,190,565,824, - 239,1643,1620,746,1646,1620,594,265,1261,1104, - 268,361,255,652,1072,255,504,276,224,1523, - 190,1062,1637,86,1062,1098,206,86,306,824, - 29,812,1101,1098,812,652,241,504,222,455, - 255,1173,1099,812,195,307,812,1595,812,1062, - 652,1645,1384,652,1656,812,812,181,242,227, - 26,1697,1697,206,1697,1697,317,231,191,184, - 86,207,183,287,202,865,289,1697,1256,1099, - 1697,203,278,1697,0,17,178,0,18,177, - 0,1,1920,0,1,1931,0 + 33,36,36,38,34,34,35,39,39,110, + 110,37,111,111,87,87,25,25,25,25, + 25,25,25,25,25,83,49,49,49,49, + 58,58,57,57,57,59,59,50,50,88, + 88,70,70,60,60,60,41,41,41,42, + 43,43,43,44,44,44,44,53,53,53, + 61,89,71,71,71,71,67,90,91,91, + 92,92,93,93,112,112,113,113,114,114, + 114,114,116,116,115,115,115,117,117,84, + 84,1,14,19,15,395,569,43,406,27, + 405,409,407,525,523,555,535,568,567,73, + 90,133,210,672,14,19,15,395,40,135, + 132,134,158,556,14,19,15,395,569,43, + 406,393,405,409,407,525,523,555,535,568, + 567,73,277,137,541,164,672,14,19,15, + 395,33,1624,141,144,147,150,672,14,19, + 15,395,32,394,1370,1374,1459,1497,1514,1167, + 416,338,243,657,42,837,282,215,1262,218, + 1372,220,221,226,1079,399,210,13,278,57, + 283,1533,251,210,1227,614,14,19,15,395, + 569,43,406,393,405,409,407,525,523,555, + 535,568,567,73,277,435,14,19,15,395, + 569,43,406,393,405,409,407,525,523,555, + 535,568,567,73,277,416,479,291,772,23, + 643,14,19,15,395,41,43,406,282,405, + 409,407,525,523,555,903,1079,251,210,854, + 1507,270,283,1123,570,288,1659,1583,284,216, + 1262,218,1372,220,221,226,1079,265,1108,1081, + 268,274,285,369,14,19,15,395,569,43, + 406,1592,405,409,407,525,523,555,535,568, + 567,73,1261,108,22,292,236,585,14,19, + 15,395,569,43,406,265,405,409,407,525, + 523,555,535,568,567,73,277,643,14,19, + 15,395,569,43,406,93,405,409,407,525, + 523,555,535,568,567,73,90,375,408,708, + 707,730,643,14,19,15,395,41,43,406, + 286,405,409,407,525,523,886,772,1079,701, + 14,19,15,395,569,43,406,1595,405,409, + 407,525,523,555,535,568,567,73,1393,16, + 772,402,14,19,15,395,569,43,406,394, + 405,409,407,525,523,555,535,568,567,73, + 1407,749,950,213,237,643,14,19,15,395, + 569,43,406,258,405,409,407,525,523,555, + 535,568,567,73,91,643,14,19,15,395, + 569,43,406,289,405,409,407,525,523,555, + 535,568,567,73,84,643,14,19,15,395, + 569,43,406,211,405,409,407,525,523,555, + 535,568,567,73,83,643,14,19,15,395, + 569,43,406,352,405,409,407,525,523,555, + 535,568,567,73,82,643,14,19,15,395, + 569,43,406,464,405,409,407,525,523,555, + 535,568,567,73,81,643,14,19,15,395, + 569,43,406,514,405,409,407,525,523,555, + 535,568,567,73,80,643,14,19,15,395, + 569,43,406,431,405,409,407,525,523,555, + 535,568,567,73,79,643,14,19,15,395, + 569,43,406,561,405,409,407,525,523,555, + 535,568,567,73,78,643,14,19,15,395, + 569,43,406,315,405,409,407,525,523,555, + 535,568,567,73,77,643,14,19,15,395, + 569,43,406,59,405,409,407,525,523,555, + 535,568,567,73,76,643,14,19,15,395, + 569,43,406,107,405,409,407,525,523,555, + 535,568,567,73,75,643,14,19,15,395, + 569,43,406,287,405,409,407,525,523,555, + 535,568,567,73,74,643,14,19,15,395, + 41,43,633,133,210,347,141,648,535,119, + 564,135,132,134,158,643,14,19,15,395, + 569,43,406,504,405,409,407,525,523,555, + 535,568,567,73,1496,137,970,164,216,1262, + 218,1372,220,221,226,141,144,147,150,643, + 14,19,15,395,41,39,1370,1374,1459,1497, + 1514,1167,643,14,19,15,395,569,43,406, + 49,405,409,407,525,523,555,535,568,567, + 73,1515,643,14,19,15,395,41,43,406, + 573,405,409,407,525,523,555,535,568,567, + 92,643,14,19,15,395,41,43,406,593, + 405,409,407,525,523,555,535,568,567,92, + 643,14,19,15,395,41,43,406,1614,405, + 409,407,525,523,555,535,568,567,92,643, + 14,19,15,395,41,43,406,209,405,409, + 407,525,523,555,535,568,567,92,643,14, + 19,15,395,41,43,406,1657,405,409,407, + 525,523,555,535,568,567,92,643,14,19, + 15,395,41,43,406,200,405,409,407,525, + 523,555,535,568,567,72,597,383,51,626, + 147,620,591,147,201,1324,643,14,19,15, + 395,41,43,406,681,405,409,407,525,887, + 250,210,270,250,210,300,271,772,494,846, + 215,1262,218,1372,220,221,226,1551,263,1108, + 1081,268,565,630,259,251,210,854,471,21, + 1200,273,772,272,270,1552,621,260,457,649, + 285,1105,215,1262,218,1372,220,221,226,228, + 263,1108,1081,268,269,1082,1533,643,14,19, + 15,395,41,43,406,257,763,287,118,1132, + 643,14,19,15,395,41,43,406,1725,405, + 409,407,525,523,555,535,890,133,210,1578, + 193,20,1725,167,207,136,132,134,158,215, + 339,465,14,19,15,395,41,35,1624,643, + 14,19,15,395,41,43,406,6,783,138, + 989,164,1725,1725,243,343,1076,310,1725,142, + 145,148,151,215,1262,218,1372,220,221,226, + 465,14,19,15,395,41,35,1136,643,14, + 19,15,395,41,43,406,339,405,409,407, + 803,118,677,244,1624,643,14,19,15,395, + 41,43,406,66,405,409,823,6,1604,196, + 198,1080,1725,1725,238,1529,1388,225,1725,215, + 1262,218,1372,220,221,226,643,14,19,15, + 395,41,38,1136,643,14,19,15,395,41, + 43,406,1725,405,409,843,643,14,19,15, + 395,41,43,406,285,405,683,643,14,19, + 15,395,41,43,643,197,198,643,14,19, + 15,395,41,43,406,1725,405,703,643,14, + 19,15,395,41,43,406,772,405,723,643, + 14,19,15,395,41,43,406,850,405,743, + 328,503,590,456,788,1522,1725,1725,275,1140, + 643,14,19,15,395,41,37,1725,166,273, + 133,210,270,118,133,210,270,224,140,132, + 134,158,143,132,134,158,660,118,263,1108, + 1081,268,263,1108,1081,268,240,6,6,1725, + 195,6,139,1725,164,1532,1563,1132,1083,1541, + 239,262,643,14,19,15,395,41,36,643, + 14,19,15,395,41,35,643,14,19,15, + 395,41,34,6,6,710,192,1655,1725,801, + 772,311,311,643,14,19,15,395,41,46, + 643,14,19,15,395,41,45,195,195,133, + 210,182,276,6,6,1371,1371,146,132,134, + 158,1550,1566,86,86,710,118,814,587,587, + 643,14,19,15,395,41,44,527,14,19, + 15,395,41,42,827,118,660,133,210,241, + 471,181,447,458,610,149,132,134,158,47, + 863,6,95,772,133,210,1725,863,242,1634, + 863,143,152,132,134,158,1077,291,772,863, + 239,447,432,195,498,222,195,1725,863,863, + 863,1122,547,449,1122,195,449,1656,1725,1725, + 227,1578,255,1122,195,1077,1077,190,532,1356, + 190,1078,1122,524,1455,1617,1725,1495,1617,190, + 1082,863,147,1082,86,147,1643,1617,190,309, + 456,255,255,270,710,1651,1617,1077,1356,1548, + 1078,1078,250,210,118,250,210,191,770,265, + 1108,1081,268,6,285,863,547,6,6,206, + 26,547,206,255,710,547,415,290,391,1661, + 1460,195,1078,710,1406,1094,628,1516,1094,1122, + 392,710,471,392,863,710,710,118,88,310, + 279,309,710,86,1725,191,1725,86,1168,184, + 1077,1725,888,885,1725,611,1725,183,895,293, + 292,202,203,231,1725,1725,1725,1725,319,1725, + 1725,1725,1725,1725,1725,1725,256,1725,1725,1725, + 1725,1725,1725,1107,1725,1725,1725,1725,1725,1725, + 1662,1725,0,17,178,0,18,177,0,1, + 1948,0,1,1959,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -392,96 +398,101 @@ 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, - 0,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, + 10,11,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,0,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,0,42,43,44,0,1,0,3,2, - 5,6,7,8,9,0,0,10,13,14, - 15,16,17,0,1,2,0,0,5,64, - 4,61,62,10,29,30,31,32,33,34, - 35,36,37,38,39,40,0,42,43,44, - 0,46,47,0,1,0,3,2,5,6, - 7,8,9,0,41,10,13,14,15,16, - 17,55,56,57,58,0,1,0,3,53, - 54,80,29,30,31,32,33,34,35,36, - 37,38,39,40,0,42,43,44,4,46, - 47,0,1,28,3,0,5,6,7,8, - 9,65,0,63,13,14,15,16,17,0, - 0,2,45,0,5,0,1,4,3,10, - 29,30,31,32,33,34,35,36,37,38, - 39,40,0,42,43,44,0,46,47,0, - 1,0,3,28,5,6,7,8,9,0, - 41,0,13,14,15,16,17,55,56,57, - 58,0,1,0,3,0,53,54,29,30, - 31,32,33,34,35,36,37,38,39,40, - 0,42,43,44,0,46,47,0,1,28, - 3,0,5,6,7,8,9,6,7,8, - 13,14,15,16,17,0,55,56,57,58, - 0,6,7,8,0,50,29,30,31,32, - 33,34,35,36,37,38,39,40,18,42, - 43,44,18,46,47,0,1,0,3,0, - 60,6,7,8,9,6,7,8,13,14, - 15,16,17,0,1,2,0,4,0,1, - 2,5,4,10,29,30,31,32,33,34, - 35,36,37,38,39,40,0,42,43,44, - 0,0,6,7,8,9,6,7,8,13, - 14,15,16,17,0,1,2,41,4,0, - 63,45,0,1,10,29,30,31,32,33, - 34,35,36,37,38,39,40,0,1,2, - 3,4,5,0,0,2,9,4,11,12, - 0,0,0,10,4,18,19,20,21,22, - 23,24,25,26,27,0,0,48,49,68, - 69,0,1,2,3,4,5,0,0,2, - 9,4,11,12,6,7,8,10,51,18, - 19,20,21,22,23,24,25,26,27,48, - 49,0,0,53,54,0,1,2,3,4, - 5,10,0,11,12,0,11,12,6,7, - 8,0,51,18,19,20,21,22,23,24, - 25,26,27,28,0,1,2,3,4,5, - 0,1,0,3,0,11,12,0,1,2, - 0,46,18,19,20,21,22,23,24,25, - 26,27,0,48,49,0,0,5,0,1, - 2,3,4,0,0,0,11,12,5,11, - 12,0,61,62,0,51,18,19,20,21, - 22,23,24,25,26,27,0,0,0,1, - 2,3,4,41,60,0,59,11,12,11, - 12,45,0,0,41,47,18,19,20,21, - 22,23,24,25,26,27,28,0,1,2, - 3,4,48,49,0,1,0,3,11,12, - 0,5,0,1,4,18,19,20,21,22, - 23,24,25,26,27,28,0,1,2,3, - 4,48,49,0,1,0,3,11,12,0, - 1,2,0,0,18,19,20,21,22,23, + 40,0,0,43,44,45,0,1,0,3, + 0,5,6,7,8,9,0,0,0,0, + 14,15,16,17,18,0,0,55,56,57, + 58,6,7,8,26,29,30,31,32,33, + 34,35,36,37,38,39,40,46,42,43, + 44,45,0,47,0,1,46,3,0,5, + 6,7,8,9,48,49,0,0,14,15, + 16,17,18,55,56,57,58,0,0,1, + 13,3,5,29,30,31,32,33,34,35, + 36,37,38,39,40,0,42,43,44,45, + 0,47,0,1,26,3,0,5,6,7, + 8,9,6,7,8,63,14,15,16,17, + 18,55,56,57,58,0,0,1,51,3, + 5,29,30,31,32,33,34,35,36,37, + 38,39,40,0,42,43,44,45,0,47, + 0,1,26,3,0,5,6,7,8,9, + 6,7,8,63,14,15,16,17,18,0, + 0,46,0,4,0,1,4,3,0,29, + 30,31,32,33,34,35,36,37,38,39, + 40,66,42,43,44,45,0,47,0,1, + 26,3,0,5,6,7,8,9,6,7, + 8,0,14,15,16,17,18,0,48,49, + 0,4,53,54,0,53,54,29,30,31, + 32,33,34,35,36,37,38,39,40,0, + 42,43,44,45,0,47,0,1,4,3, + 0,0,6,7,8,9,6,7,8,0, + 14,15,16,17,18,6,7,8,0,0, + 53,54,0,5,0,29,30,31,32,33, + 34,35,36,37,38,39,40,0,64,43, + 44,45,0,6,7,8,9,0,0,1, + 2,14,15,16,17,18,0,1,2,41, + 4,0,61,62,46,46,29,30,31,32, + 33,34,35,36,37,38,39,40,0,1, + 2,3,4,5,0,61,62,9,10,11, + 0,13,0,1,2,0,4,19,20,21, + 22,23,24,25,12,27,28,59,0,48, + 49,0,1,2,3,4,5,0,10,11, + 9,10,11,0,13,0,1,80,3,51, + 19,20,21,22,23,24,25,0,27,28, + 0,0,1,0,0,1,2,3,4,5, + 10,11,68,69,10,11,0,13,0,1, + 4,3,51,19,20,21,22,23,24,25, + 26,27,28,0,0,1,2,3,4,5, + 0,1,65,3,10,11,42,13,0,1, + 2,50,4,19,20,21,22,23,24,25, + 12,27,28,0,0,2,50,0,1,2, + 3,4,0,0,2,12,4,10,11,0, + 13,48,49,0,12,51,19,20,21,22, + 23,24,25,0,27,28,0,1,2,3, + 4,0,0,2,0,4,10,11,0,13, + 0,1,2,12,47,19,20,21,22,23, 24,25,26,27,28,0,1,2,3,4, - 50,0,50,0,0,0,11,12,0,1, - 28,3,66,18,19,20,21,22,23,24, - 25,26,27,0,1,2,3,4,0,0, - 0,0,0,28,11,12,5,0,10,10, - 65,18,19,20,21,22,23,24,25,26, - 27,0,1,2,3,4,0,0,28,0, - 59,0,11,12,5,28,0,10,64,18, - 19,20,21,22,23,24,25,26,27,0, - 52,2,51,4,5,6,7,8,9,10, - 0,59,13,14,15,16,17,0,0,2, - 41,4,5,6,7,8,9,10,0,52, - 13,14,15,16,17,0,60,0,0,0, - 41,0,0,0,0,0,70,71,72,73, - 74,75,76,77,78,79,0,0,41,0, - 50,0,6,7,8,9,0,0,0,13, - 14,15,16,17,6,7,8,9,0,0, - 0,13,14,15,16,17,6,7,8,9, - 45,0,0,13,14,15,16,17,6,7, - 8,9,0,0,2,13,14,15,16,17, - 0,0,10,0,0,5,5,0,0,0, - 0,19,20,45,45,0,0,0,0,0, + 0,48,49,0,0,10,11,64,13,5, + 10,11,0,50,19,20,21,22,23,24, + 25,26,27,28,0,1,2,3,4,0, + 0,2,0,59,10,11,0,13,26,0, + 1,12,3,19,20,21,22,23,24,25, + 26,27,28,0,1,2,3,4,26,0, + 0,0,26,10,11,0,13,0,65,0, + 66,12,19,20,21,22,23,24,25,26, + 27,28,0,1,2,3,4,0,0,1, + 60,26,10,11,0,13,0,0,0,0, + 13,19,20,21,22,23,24,25,12,27, + 28,0,1,2,3,4,0,50,0,59, + 0,10,11,0,13,0,0,0,12,60, + 19,20,21,22,23,24,25,0,27,28, + 0,1,2,3,4,46,0,0,52,0, + 10,11,0,13,5,0,0,0,12,19, + 20,21,22,23,24,25,46,27,28,0, + 0,2,0,4,5,6,7,8,9,0, + 0,12,0,14,15,16,17,18,0,0, + 2,42,4,5,6,7,8,9,52,0, + 12,0,14,15,16,17,18,60,0,0, + 41,0,0,0,5,0,5,70,71,72, + 73,74,75,76,77,78,79,0,0,41, + 0,0,0,6,7,8,9,0,0,0, + 0,14,15,16,17,18,6,7,8,9, + 41,0,41,0,14,15,16,17,18,6, + 7,8,9,0,0,0,0,14,15,16, + 17,18,6,7,8,9,0,0,2,0, + 14,15,16,17,18,0,1,2,12,0, + 5,2,0,0,5,19,20,12,5,0, + 0,12,0,0,5,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,41,0,52,0, + 41,0,0,0,41,0,0,0,0,0, + 0,42,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,52,45,0,46,0,0, - 0,0,0,0,0,0,0,0,0,67, - 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,0, - 0,0,0,0,0 + 0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -489,94 +500,97 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 1697,600,1439,611,1320,67,1908,1909,1910,1858, - 61,1213,1073,1859,1857,1911,1860,1856,1350,373, - 363,330,1707,1708,1709,1710,1025,889,1,1863, - 1868,1867,1865,1866,1864,1869,1870,1862,1871,1872, - 1873,1697,1006,884,850,1697,1,266,1,1126, - 189,1,1,1,1,1697,58,498,1,1, - 1,1,1,1,1691,1103,47,1697,1702,1082, - 1493,1298,485,498,1,1,1,1,1,1, - 1,1,1,1,1,1,69,1,1,1, - 65,189,1891,1697,1,219,1,1521,189,1, - 1,1,1,1697,1701,498,1,1,1,1, - 1,1371,1360,1339,1328,1697,1876,87,1877,1486, - 1456,1684,1,1,1,1,1,1,1,1, - 1,1,1,1,1697,1,1,1,1134,189, - 1891,1697,1,1220,1,1697,189,1,1,1, - 1,1181,60,1197,1,1,1,1,1,1, - 1697,1382,591,49,1702,1697,1876,1493,1877,498, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1697,1,1,1,1697,189,1891,1697, - 1,1697,1,1348,188,1,1,1,1,1697, - 1701,59,1,1,1,1,1,1371,1360,1339, - 1328,1697,1876,1697,1877,1,1486,1456,1,1, + 1725,571,1453,631,1439,1,1936,1937,1938,1886, + 1432,1380,58,1446,1887,1885,1939,1888,1884,377, + 366,333,1735,1736,1737,1738,281,1296,929,1891, + 1896,1895,1893,1894,1892,1897,1898,1890,1899,1900, + 1901,87,1725,1199,1193,889,1725,1,1725,1, + 252,189,1,1,1,1,53,1725,60,1725, + 1,1,1,1,1,246,1725,1359,1348,1337, + 1316,1,1,1,1217,1,1,1,1,1, + 1,1,1,1,1,1,1,635,189,1, + 1,1,65,1919,1725,1,1646,1,1725,189, + 1,1,1,1,1157,1209,59,63,1,1, + 1,1,1,1359,1348,1337,1316,1725,1725,1904, + 1248,1905,1728,1,1,1,1,1,1,1, + 1,1,1,1,1,1725,189,1,1,1, + 66,1919,1725,1,1277,1,1725,189,1,1, + 1,1,1936,1937,1938,1086,1,1,1,1, + 1,1359,1348,1337,1316,1725,1725,1904,1727,1905, + 1734,1,1,1,1,1,1,1,1,1, + 1,1,1,1725,189,1,1,1,1725,1919, + 1725,1,1417,1,247,188,1,1,1,1, + 1,1,1,1086,1,1,1,1,1,47, + 57,1256,49,1500,1725,1904,1500,1905,1725,1, 1,1,1,1,1,1,1,1,1,1, - 208,1,1,1,1697,188,1891,1697,1,1386, - 1,246,189,1,1,1,1,1,1,1, - 1,1,1,1,1,1697,1371,1360,1339,1328, - 63,1908,1909,1910,64,1951,1,1,1,1, - 1,1,1,1,1,1,1,1,1271,1, - 1,1,1271,189,1891,1697,1875,66,1874,247, - 941,1908,1909,1910,1858,1,1,1,1859,1857, - 1911,1860,1856,258,1920,1103,1697,1,1697,1920, - 1380,1702,1444,498,1863,1868,1867,1865,1866,1864, - 1869,1870,1862,1871,1872,1873,127,1006,884,850, - 245,71,1908,1909,1910,1858,1908,1909,1910,1859, - 1857,1911,1860,1856,264,1920,1103,1701,1444,53, - 1197,1133,1697,1932,498,1863,1868,1867,1865,1866, - 1864,1869,1870,1862,1871,1872,1873,1,1714,1439, - 1715,1397,1700,261,1697,1382,527,1,1213,1073, - 48,57,1697,498,1493,1350,373,363,330,1707, - 1708,1709,1710,1025,889,1697,1697,835,969,1164, - 1630,1697,1714,1439,1715,1432,1700,264,248,1382, - 902,1444,1213,1073,1908,1909,1910,498,1699,1350, - 373,363,330,1707,1708,1709,1710,1025,889,835, - 969,267,50,1486,1456,1,1714,1439,1715,1320, - 27,498,249,1016,960,56,1213,1073,1908,1909, - 1910,62,1699,1350,373,363,330,1707,1708,1709, - 1710,1025,889,1554,1697,1714,1439,1715,1320,1700, - 1697,1726,1697,1727,1697,1213,1073,1,1920,1380, - 1697,27,1350,373,363,330,1707,1708,1709,1710, - 1025,889,1,835,969,52,252,89,1697,1, - 1,1,1,1697,1697,1697,1016,960,1702,1, - 1,1697,1298,485,55,1699,1,1,1,1, - 1,1,1,1,1,1,51,1697,1697,1714, - 1439,1715,1320,89,571,1697,997,1016,960,1213, - 1073,1287,1697,54,1701,2004,1350,373,363,330, - 1707,1708,1709,1710,1025,889,392,1,1714,1439, - 1715,1320,835,969,205,1876,1,1877,1213,1073, - 1,1706,1,1694,1134,1350,373,363,330,1707, - 1708,1709,1710,1025,889,1554,1697,1714,1439,1715, - 1320,835,969,1697,1876,70,1877,1213,1073,1, - 1920,1380,1697,1697,1350,373,363,330,1707,1708, - 1709,1710,1025,889,1554,1697,1714,1439,1715,1320, - 1951,1697,1951,1697,68,186,1213,1073,204,1606, - 392,1606,1705,1350,373,363,330,1707,1708,1709, - 1710,1025,889,1697,1714,1440,1715,1320,1697,217, - 185,1697,199,1469,1213,1073,1700,187,922,498, - 1181,1350,373,363,330,1707,1708,1709,1710,1025, - 889,1,1714,1439,1715,1320,41,284,1513,1, - 1053,1697,1213,1073,1702,1517,1697,978,1082,1350, - 373,363,330,1707,1708,1709,1710,1025,889,17, - 1228,1685,1699,1685,1685,178,178,178,178,1685, - 1,1034,178,178,178,178,178,18,1697,1688, - 1701,1688,1688,177,177,177,177,1688,1697,1383, - 177,177,177,177,177,1697,815,1697,1697,1697, - 1685,1697,1697,1697,1697,28,795,775,755,735, - 715,675,695,655,635,615,128,1697,1688,1697, - 1950,1697,1908,1909,1910,1858,1697,1697,129,1859, - 1857,1911,1860,1856,1908,1909,1910,1858,28,204, - 130,1859,1857,1911,1860,1856,1908,1909,1910,1858, - 431,1697,131,1859,1857,1911,1860,1856,1908,1909, - 1910,1858,31,1697,1441,1859,1857,1911,1860,1856, - 1697,1697,1587,1697,1697,1706,1704,1697,1697,1697, - 1697,1721,1722,1724,2633,1697,1697,1697,1697,1697, - 1697,1697,1697,1697,1697,1697,1697,1697,1697,1697, - 1697,1697,1697,1697,1697,1697,1697,1697,1697,1697, - 1697,1697,1697,1697,452,1280,1697,1703,1697,1697, - 1697,1697,1697,1697,1697,1697,1697,1697,1697,451, - 1697,1697,1697,1697,1697,1697,1705 + 1,1733,188,1,1,1,1725,1919,1725,1, + 1418,1,245,189,1,1,1,1,1936,1937, + 1938,1725,1,1,1,1,1,48,1157,1209, + 1725,1500,1470,1463,67,1470,1463,1,1,1, + 1,1,1,1,1,1,1,1,1,1725, + 189,1,1,1,1725,1919,1725,1903,1273,1902, + 248,61,1936,1937,1938,1886,1936,1937,1938,249, + 1887,1885,1939,1888,1884,1936,1937,1938,1725,28, + 1470,1463,1725,1730,62,1891,1896,1895,1893,1894, + 1892,1897,1898,1890,1899,1900,1901,127,572,1199, + 1193,889,1725,1936,1937,1938,1886,1725,1,1948, + 364,1887,1885,1939,1888,1884,1725,1948,364,1729, + 1420,56,1304,1265,1139,435,1891,1896,1895,1893, + 1894,1892,1897,1898,1890,1899,1900,1901,1,1742, + 1453,1743,1201,1728,71,1304,1265,589,1432,1380, + 1725,1446,258,1948,1109,1725,1,377,366,333, + 1735,1736,1737,1738,503,1296,929,1019,50,1157, + 1209,1725,1742,1453,1743,1240,1728,69,1327,875, + 942,1432,1380,1725,1446,1725,1754,1712,1755,1727, + 377,366,333,1735,1736,1737,1738,1725,1296,929, + 52,1,1722,1725,1,1742,1453,1743,1439,27, + 1327,875,1170,1627,1432,1380,1,1446,205,1904, + 1273,1905,1727,377,366,333,1735,1736,1737,1738, + 2895,1296,929,55,1725,1742,1453,1743,1439,1728, + 1725,1904,460,1905,1432,1380,27,1446,264,1948, + 1109,1979,1420,377,366,333,1735,1736,1737,1738, + 503,1296,929,266,1725,479,1979,1725,1,1, + 1,1,261,68,1367,503,1,1,1,1725, + 1,1157,1209,54,503,1727,1,1,1,1, + 1,1,1,1,1,1,1725,1742,1453,1743, + 1439,264,1725,1367,1725,1420,1432,1380,1725,1446, + 1,1948,364,503,2035,377,366,333,1735,1736, + 1737,1738,1217,1296,929,1,1742,1453,1743,1439, + 51,1157,1209,70,1,1432,1380,572,1446,1734, + 1327,875,186,1979,377,366,333,1735,1736,1737, + 1738,2895,1296,929,1725,1742,1453,1743,1439,219, + 208,1127,185,1057,1432,1380,187,1446,1421,204, + 1128,503,1128,377,366,333,1735,1736,1737,1738, + 2895,1296,929,1,1742,1453,1743,1439,1483,267, + 199,1725,1484,1432,1380,1725,1446,1,460,1725, + 1733,503,377,366,333,1735,1736,1737,1738,2895, + 1296,929,1725,1742,1453,1743,1439,64,1725,1960, + 981,1628,1432,1380,1725,1446,1725,1725,1725,28, + 1248,377,366,333,1735,1736,1737,1738,962,1296, + 929,1725,1742,1454,1743,1439,217,1978,1725,1038, + 204,1432,1380,1725,1446,1725,1725,1725,503,527, + 377,366,333,1735,1736,1737,1738,1725,1296,929, + 1,1742,1453,1743,1439,1752,287,41,1520,1725, + 1432,1380,1725,1446,1732,1725,1725,1725,1000,377, + 366,333,1735,1736,1737,1738,2635,1296,929,17, + 1725,1713,1725,1713,1713,178,178,178,178,1725, + 1725,1713,1725,178,178,178,178,178,18,1725, + 1716,1731,1716,1716,177,177,177,177,1652,1725, + 1716,1725,177,177,177,177,177,855,1725,1, + 1713,1725,1725,1725,89,1725,1730,835,815,795, + 775,755,715,735,695,675,655,128,1725,1716, + 1725,1725,1725,1936,1937,1938,1886,1725,1725,1725, + 129,1887,1885,1939,1888,1884,1936,1937,1938,1886, + 89,1725,1729,130,1887,1885,1939,1888,1884,1936, + 1937,1938,1886,1725,1725,1725,131,1887,1885,1939, + 1888,1884,1936,1937,1938,1886,31,1725,1618,1725, + 1887,1885,1939,1888,1884,1,1719,1109,1623,1, + 1730,1367,1725,1,1730,1749,1750,503,1730,280, + 1725,503,1725,1725,1531,1725,1725,1725,1725,1725, + 1725,1725,1725,1725,1725,1725,1725,1725,1725,1725, + 1725,1725,1725,1725,1725,1725,1729,1725,455,1725, + 1729,1725,1725,1725,1729,1725,1725,1725,1725,1725, + 1725,1531,1725,390 }; }; public final static char termAction[] = TermAction.termAction; @@ -584,27 +598,27 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 415,1,108,41,108,108,108,108,108,108, - 108,108,108,3,326,77,74,81,79,87, - 85,89,88,91,90,10,108,326,310,310, - 367,108,191,191,244,326,108,108,108,108, - 108,108,108,108,108,108,108,108,108,108, - 108,108,108,108,108,108,108,108,108,108, - 108,108,108,108,108,108,191,191,45,56, - 248,102,280,189,188,219,231,231,70,70, - 231,70,231,340,145,145,74,74,79,79, - 79,79,77,77,85,81,81,88,87,212, - 90,89,72,54,244,239,125,45,363,106, - 191,386,283,194,250,194,250,320,194,108, - 54,239,363,363,45,105,102,191,242,340, - 190,285,250,250,250,250,320,320,322,49, - 54,363,239,108,108,45,106,280,207,206, - 248,285,191,250,277,313,250,250,277,322, - 214,322,320,277,52,217,310,108,48,54, - 239,45,45,191,386,283,242,277,315,277, - 277,108,310,322,56,45,310,108,322,285, - 98,108,97,121,248,277,45,277,191,190, - 315,108,121,311 + 396,1,104,41,104,104,104,104,104,104, + 104,104,104,3,326,51,48,55,53,61, + 59,63,62,65,64,10,104,326,286,286, + 414,104,171,171,314,326,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,171,171,45,80, + 318,98,256,169,168,289,301,301,94,94, + 301,94,301,340,125,125,48,48,53,53, + 53,53,51,51,59,55,55,62,61,212, + 64,63,96,78,314,309,174,45,363,102, + 171,367,259,194,226,194,226,320,194,104, + 78,309,363,363,45,101,98,171,312,340, + 170,261,226,226,226,226,320,320,322,122, + 253,96,363,309,104,104,45,102,256,207, + 206,318,261,171,226,253,219,226,226,253, + 322,214,322,320,253,76,217,286,104,121, + 253,78,309,45,45,171,367,259,312,253, + 221,253,253,104,286,322,80,45,286,104, + 78,261,72,104,71,117,318,253,45,322, + 171,170,221,104,117,253,287,322 }; }; public final static char asb[] = Asb.asb; @@ -612,50 +626,50 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 80,0,66,10,2,52,67,19,20,18, - 4,11,12,53,54,48,49,55,56,57, - 58,61,62,63,64,65,68,69,46,60, + 80,0,66,12,2,52,67,19,20,13, + 4,10,11,53,54,48,49,55,56,57, + 58,61,62,63,64,65,68,69,42,60, 70,71,72,73,74,76,75,77,78,79, - 59,41,80,45,51,5,0,60,10,52, - 0,5,46,10,52,19,20,18,4,11, - 12,26,27,21,2,22,23,24,25,1, - 3,28,0,4,53,54,11,12,49,48, - 55,56,57,58,61,62,18,63,64,65, - 51,41,46,80,68,69,59,66,5,45, - 0,6,7,8,9,51,5,22,23,24, - 25,3,19,20,18,11,12,26,27,21, - 4,2,1,0,6,7,8,2,22,23, - 24,25,1,3,19,20,18,4,11,12, - 26,27,21,0,7,9,17,8,16,15, - 14,6,13,52,67,19,20,18,11,12, + 59,41,80,46,51,5,0,4,53,54, + 10,11,49,48,55,56,57,58,61,62, + 13,63,64,65,51,41,42,80,68,69, + 59,66,5,46,0,5,42,12,52,19, + 20,13,4,10,11,27,28,21,2,22, + 23,24,25,1,3,26,0,6,7,8, + 9,51,5,22,23,24,25,3,19,20, + 13,10,11,27,28,21,4,2,1,0, + 60,12,52,0,7,9,18,8,17,16, + 15,6,14,52,67,19,20,13,10,11, 53,54,48,49,55,56,57,58,61,62, 63,64,65,68,69,60,70,71,72,73, - 74,75,76,77,78,79,4,2,10,45, - 41,5,0,13,6,14,15,16,7,9, - 17,8,1,4,28,2,5,45,41,66, - 10,59,0,5,45,46,60,0,37,29, + 74,75,76,77,78,79,4,2,12,46, + 41,5,0,6,7,8,2,22,23,24, + 25,1,3,19,20,13,4,10,11,27, + 28,21,0,14,6,15,16,17,7,9, + 18,8,1,4,26,2,5,46,41,66, + 12,59,0,5,46,42,60,0,66,5, + 4,1,2,59,0,14,29,6,30,43, + 15,31,16,32,33,17,7,34,35,9, + 44,18,45,36,37,8,38,39,40,1, + 3,47,5,42,0,4,2,12,41,5, + 14,29,6,30,43,15,31,16,32,33, + 17,7,34,35,9,44,18,45,36,37, + 8,38,39,40,50,3,1,0,37,29, 34,32,33,31,30,35,36,38,39,40, - 59,66,17,14,9,13,16,15,6,7, - 8,45,1,5,41,2,10,4,0,13, - 29,6,30,42,14,31,15,32,33,16, - 7,34,35,9,43,17,44,36,37,8, - 38,39,40,1,3,47,46,5,0,4, - 2,10,41,5,13,29,6,30,42,14, - 31,15,32,33,16,7,34,35,9,43, - 17,44,36,37,8,38,39,40,50,3, - 1,0,66,5,4,1,2,59,0,1, - 3,5,46,45,0,21,22,23,24,25, - 2,19,20,18,4,11,12,26,27,3, - 1,42,43,44,37,29,34,32,33,31, - 30,35,36,38,39,40,17,14,9,13, - 16,15,6,7,8,0,5,41,21,22, - 23,24,25,1,3,2,19,20,18,4, - 11,12,26,27,0,13,29,6,30,42, - 14,31,15,32,33,16,7,34,35,9, - 43,17,44,36,37,8,38,39,40,1, - 3,50,4,0,21,22,23,24,25,1, - 3,2,19,20,18,4,11,12,26,27, - 47,0 + 59,66,18,15,9,14,17,16,6,7, + 8,46,1,5,41,2,12,4,0,1, + 3,5,42,46,0,21,22,23,24,25, + 2,19,20,13,4,10,11,27,28,3, + 1,43,44,45,37,29,34,32,33,31, + 30,35,36,38,39,40,18,15,9,14, + 17,16,6,7,8,0,14,29,6,30, + 43,15,31,16,32,33,17,7,34,35, + 9,44,18,45,36,37,8,38,39,40, + 1,3,50,4,0,21,22,23,24,25, + 1,3,2,19,20,13,4,10,11,27, + 28,47,0,5,41,21,22,23,24,25, + 1,3,2,19,20,13,4,10,11,27, + 28,0 }; }; public final static byte asr[] = Asr.asr; @@ -663,27 +677,27 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static byte nasb[] = {0, - 83,8,17,8,17,17,17,17,17,17, - 17,17,17,8,64,8,8,8,8,8, - 8,8,8,8,8,8,17,64,19,19, - 68,65,41,41,55,1,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,65,17,17,17,17,17,17,17, - 17,17,17,17,17,17,41,41,23,17, - 73,21,54,38,38,47,48,48,27,27, - 48,27,48,43,8,8,8,8,8,8, + 84,8,20,8,20,20,20,20,20,20, + 20,20,20,8,66,8,8,8,8,8, + 8,8,8,8,8,8,20,66,11,11, + 93,67,23,23,62,1,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20, + 20,20,67,20,20,20,20,20,20,20, + 20,20,20,20,20,20,23,23,27,20, + 74,25,61,36,36,52,53,53,34,34, + 53,34,53,48,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8, - 8,8,8,81,56,81,16,23,62,22, - 41,71,40,8,81,8,81,81,8,17, - 16,81,62,62,23,22,9,41,32,2, - 8,80,81,75,81,75,27,81,25,11, - 81,62,9,17,17,23,22,31,38,38, - 73,80,41,75,29,59,86,75,29,25, - 8,8,27,29,15,8,27,17,13,16, - 9,23,23,41,71,40,33,29,50,29, - 29,17,27,25,17,23,27,17,25,79, - 60,17,8,50,73,29,23,29,41,41, - 50,17,35,8 + 8,8,8,82,63,82,31,27,87,26, + 23,72,22,8,82,8,82,82,8,20, + 18,82,87,87,27,26,13,23,39,2, + 8,81,82,76,82,76,34,82,59,15, + 82,8,87,13,20,20,27,26,38,36, + 36,74,81,23,76,70,45,89,76,70, + 59,8,8,34,70,17,8,34,20,29, + 70,82,13,27,27,23,72,22,40,70, + 55,70,70,20,34,59,19,27,34,20, + 18,80,46,20,8,55,74,70,27,59, + 23,23,55,20,42,70,8,9 }; }; public final static byte nasb[] = Nasb.nasb; @@ -691,15 +705,16 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 4,77,76,75,74,73,72,0,20,0, - 89,0,91,0,66,9,4,0,68,0, - 9,4,23,0,51,0,27,0,26,0, - 22,9,43,42,36,34,0,25,0,9, - 22,0,61,62,63,64,52,28,0,9, - 36,34,0,22,9,43,42,0,9,67, - 0,58,0,32,9,45,0,9,84,0, - 9,24,49,0,56,9,32,0,86,24, - 9,0,9,83,0,9,32,48,0 + 4,78,77,76,75,74,73,0,89,0, + 69,0,20,0,91,0,67,8,61,4, + 0,8,22,0,8,4,23,0,93,0, + 4,8,0,27,0,25,0,22,8,43, + 42,36,34,0,8,68,0,62,63,64, + 65,52,28,0,8,36,34,0,51,0, + 22,8,43,42,0,32,8,45,0,26, + 0,8,24,49,0,56,8,32,0,87, + 24,8,0,8,84,0,58,0,8,32, + 48,0,8,85,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -707,11 +722,11 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, - 85,2,86,9,87,48,64,76,69,1, - 10,11,44,55,60,63,72,8,6,7, - 68,81,82,83,84,12,13,3,47,52, + 85,2,86,9,87,48,64,76,69,10, + 11,1,8,44,55,60,63,72,6,7, + 68,81,82,83,84,3,12,13,47,52, 56,61,62,66,67,74,75,78,79,80, - 90,54,70,73,42,91,93,16,17,30, + 90,91,54,70,73,42,93,16,17,30, 89,4,14,15,18,19,20,21,29,31, 22,23,24,25,26,92,5,27,28,32, 33,34,35,36,37,38,39,40,41,94, @@ -724,18 +739,18 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 0,0,0,101,105,106,107,108,0,109, + 0,0,0,101,105,106,107,0,108,109, 110,111,112,113,114,115,116,117,118,129, 0,97,96,122,149,98,121,128,0,0, 0,140,145,147,0,148,0,0,0,0, 158,159,160,0,100,120,137,139,146,155, 0,131,136,0,0,138,150,153,154,157, - 132,133,134,135,144,161,99,102,103,104, - 119,123,124,125,126,127,130,142,0,0, - 143,152,95,0,141,151,156,162,163,0, - 164,0,0,0,0,0,0,0,0,0, + 0,132,133,134,135,144,161,99,102,103, + 104,119,123,124,125,126,127,130,142,0, + 0,143,152,95,0,141,151,156,0,162, + 163,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 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -743,10 +758,10 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 160,80,33,39,87,107,113,138,12,19, - 49,67,119,124,26,45,97,175,179,147, - 1,1,30,54,77,183,6,101,154,129, - 154,93,57,57,57 + 164,82,35,41,91,111,117,12,142,21, + 51,69,123,128,28,47,101,179,183,151, + 1,1,32,56,79,187,6,105,158,133, + 158,97,59,59,59 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -754,10 +769,10 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 17,17,4,4,17,17,17,144,17,24, - 4,24,17,17,24,4,95,24,4,151, - 4,4,24,4,24,24,9,104,157,132, - 168,95,64,59,72 + 89,89,4,4,89,89,89,18,148,26, + 4,26,89,89,26,4,99,26,4,155, + 4,4,26,4,26,26,9,108,161,136, + 172,99,66,61,74 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -765,9 +780,9 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 4,63,25,25,63,61,61,98,53,44, - 25,39,61,61,44,25,48,4,4,18, - 91,90,42,25,36,2,66,48,6,99, + 4,64,25,25,64,62,62,53,100,44, + 25,39,62,62,44,25,48,4,4,18, + 93,92,42,25,36,2,67,48,6,101, 4,48,39,37,39 }; }; @@ -776,8 +791,8 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 46,46,51,51,46,46,46,86,46,41, - 51,41,46,46,41,51,66,41,51,59, + 42,42,51,51,42,42,42,42,86,41, + 51,41,42,42,41,51,66,41,51,59, 51,51,41,51,41,41,60,1,41,92, 41,66,2,2,2 }; @@ -787,7 +802,7 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static byte scopeStateSet[] = { - 34,19,23,23,19,19,19,-1,89,27, + 34,19,23,23,19,19,19,89,-1,27, 23,11,19,19,27,23,5,34,34,64, 1,3,27,23,11,34,90,5,37,-1, 34,5,11,11,11 @@ -798,25 +813,25 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 139,10,0,96,0,181,102,0,31,136, - 0,144,163,102,28,0,98,0,150,102, - 2,135,0,97,0,150,102,2,0,153, - 2,0,112,9,175,102,10,0,112,175, - 102,9,10,0,112,9,10,0,112,175, - 102,10,0,112,10,0,129,0,2,0, - 151,97,0,2,97,0,150,102,2,129, - 0,2,0,150,97,0,140,2,0,144, - 173,102,28,120,42,0,144,173,102,28, - 42,0,125,0,99,0,178,102,125,0, - 102,125,0,141,99,0,148,102,28,120, - 44,0,148,102,28,120,43,0,148,102, - 28,44,0,148,102,28,43,0,187,85, - 0,77,2,100,97,99,0,187,115,138, - 2,89,0,53,0,0,138,69,110,0, - 29,117,0,162,2,0,97,106,0,144, - 163,102,28,115,162,2,0,97,3,0, - 104,0,98,0,177,2,97,0,138,10, - 97,0,138,2,0 + 139,12,0,96,0,183,101,0,31,136, + 0,144,164,101,26,154,0,98,0,0, + 150,101,2,135,0,97,0,150,101,2, + 0,153,2,0,112,9,176,101,12,0, + 112,176,101,9,12,0,112,9,12,0, + 112,176,101,12,0,112,12,0,129,0, + 2,0,151,97,0,2,97,0,150,101, + 2,129,0,2,0,150,97,0,140,2, + 0,144,174,101,26,120,43,0,98,0, + 144,174,101,26,43,0,125,0,99,0, + 179,101,125,0,101,125,0,141,99,0, + 148,101,26,120,45,0,148,101,26,120, + 44,0,148,101,26,45,0,148,101,26, + 44,0,189,85,0,77,2,100,97,99, + 0,189,115,138,2,89,0,53,0,0, + 138,69,110,0,29,117,0,163,2,0, + 97,106,0,144,164,101,26,115,163,2, + 0,97,3,0,104,0,98,0,178,2, + 97,0,138,12,97,0,138,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -824,16 +839,16 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 391,0,390,0,1549,1620,1546,1524,1520,0, - 1118,1280,1380,1212,361,1103,1072,0,824,1206, - 308,0,1593,1557,1261,1104,361,1103,1072,1566, - 1382,1387,0,373,363,330,1432,1397,1500,1181, - 1164,1197,1082,1298,485,1271,969,835,1371,1360, - 1339,1328,1493,1486,1456,1016,960,1350,1320,1213, - 1073,1025,889,1034,997,978,941,922,902,856, - 547,1053,527,498,815,795,775,755,735,715, - 695,675,655,635,615,308,591,455,571,411, - 431,340,0 + 570,0,393,0,1550,1617,1541,1532,1529,0, + 885,1256,364,1200,456,1109,1077,0,863,1167, + 311,0,1372,1262,1108,1081,456,1109,1077,1578, + 1367,1371,0,377,366,333,1240,1201,1507,460, + 1170,1086,572,1304,1265,1248,1209,1157,1359,1348, + 1337,1316,1500,1470,1463,1327,875,1446,1439,1432, + 1380,1296,929,1038,1019,1000,981,962,942,895, + 611,1057,589,503,855,835,815,795,775,755, + 735,715,695,675,655,311,635,547,527,415, + 435,343,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -841,27 +856,27 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,176,102,164,21,27,26,12,11,4, - 18,20,19,97,2,101,100,104,103,106, - 105,108,107,110,109,98,45,2,67,52, - 2,10,162,138,125,102,12,11,54,53, - 4,58,57,56,55,48,49,18,62,61, + 0,177,101,165,21,28,27,11,10,4, + 13,20,19,97,2,102,100,104,103,106, + 105,108,107,110,109,98,46,2,67,52, + 2,12,163,138,125,101,11,10,54,53, + 4,58,57,56,55,48,49,13,62,61, 64,63,69,68,65,79,78,77,75,76, - 74,73,72,71,70,60,162,177,138,115, - 102,10,2,136,135,165,166,167,44,43, - 168,42,169,170,1,3,100,100,103,103, - 103,103,101,101,105,104,104,107,106,138, - 109,108,115,28,142,4,9,112,102,4, - 153,102,2,120,28,120,28,28,120,59, - 102,4,102,102,112,175,151,150,117,102, - 152,102,28,102,28,102,102,28,163,102, - 28,102,151,175,9,112,4,2,127,129, - 102,45,150,102,148,125,149,102,148,173, - 120,174,102,144,45,181,52,10,182,102, - 151,112,112,140,102,2,142,148,102,148, - 144,60,45,173,60,139,52,10,163,102, - 178,59,140,2,102,144,139,144,150,179, - 45,59,142,45 + 74,73,72,71,70,60,163,178,138,115, + 101,12,2,136,135,166,167,168,45,44, + 169,43,170,171,1,3,100,100,103,103, + 103,103,102,102,105,104,104,107,106,138, + 109,108,115,26,142,4,9,112,101,4, + 153,101,2,120,26,120,26,26,120,59, + 101,4,101,101,112,176,151,150,117,101, + 152,101,26,101,26,101,101,26,164,101, + 26,154,101,151,176,9,112,4,2,127, + 129,101,46,150,101,148,125,149,101,148, + 174,120,175,101,144,46,183,52,12,184, + 101,26,151,112,112,140,101,2,142,148, + 101,148,144,60,46,174,60,139,52,12, + 101,101,179,59,140,2,101,144,139,164, + 150,180,46,59,142,144,46,119 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1056,20 +1071,20 @@ public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 204, + NUM_STATES = 208, NT_OFFSET = 93, - LA_STATE_OFFSET = 2004, + LA_STATE_OFFSET = 2035, MAX_LA = 2, - NUM_RULES = 307, - NUM_NONTERMINALS = 115, - NUM_SYMBOLS = 208, + NUM_RULES = 310, + NUM_NONTERMINALS = 117, + NUM_SYMBOLS = 210, SEGMENT_SIZE = 8192, - START_STATE = 1583, + START_STATE = 1554, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 80, EOLT_SYMBOL = 80, - ACCEPT_ACTION = 1684, - ERROR_ACTION = 1697; + ACCEPT_ACTION = 1712, + ERROR_ACTION = 1725; 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 5ddcbebbd7c..a5e6f94641e 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 @@ -15,7 +15,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.c99; public interface C99SizeofExpressionParsersym { public final static int - TK_auto = 13, + TK_auto = 14, TK_break = 81, TK_case = 82, TK_char = 29, @@ -25,26 +25,26 @@ public interface C99SizeofExpressionParsersym { TK_do = 85, TK_double = 30, TK_else = 86, - TK_enum = 42, - TK_extern = 14, + TK_enum = 43, + TK_extern = 15, TK_float = 31, TK_for = 87, TK_goto = 88, TK_if = 89, - TK_inline = 15, + TK_inline = 16, TK_int = 32, TK_long = 33, - TK_register = 16, + TK_register = 17, TK_restrict = 7, TK_return = 90, TK_short = 34, TK_signed = 35, TK_sizeof = 21, TK_static = 9, - TK_struct = 43, + TK_struct = 44, TK_switch = 91, - TK_typedef = 17, - TK_union = 44, + TK_typedef = 18, + TK_union = 45, TK_unsigned = 36, TK_void = 37, TK_volatile = 8, @@ -60,19 +60,19 @@ public interface C99SizeofExpressionParsersym { TK_Completion = 3, TK_EndOfCompletion = 5, TK_Invalid = 93, - TK_LeftBracket = 10, + TK_LeftBracket = 12, TK_LeftParen = 2, - TK_LeftBrace = 28, + TK_LeftBrace = 26, TK_Dot = 52, TK_Arrow = 67, TK_PlusPlus = 19, TK_MinusMinus = 20, - TK_And = 18, + TK_And = 13, TK_Star = 4, - TK_Plus = 11, - TK_Minus = 12, - TK_Tilde = 26, - TK_Bang = 27, + TK_Plus = 10, + TK_Minus = 11, + TK_Tilde = 27, + TK_Bang = 28, TK_Slash = 53, TK_Percent = 54, TK_RightShift = 48, @@ -101,10 +101,10 @@ public interface C99SizeofExpressionParsersym { TK_AndAssign = 77, TK_CaretAssign = 78, TK_OrAssign = 79, - TK_Comma = 45, + TK_Comma = 46, TK_RightBracket = 51, TK_RightParen = 41, - TK_RightBrace = 46, + TK_RightBrace = 42, TK_SemiColon = 66, TK_ERROR_TOKEN = 47, TK_EOF_TOKEN = 80; @@ -120,15 +120,15 @@ public interface C99SizeofExpressionParsersym { "restrict", "volatile", "static", - "LeftBracket", "Plus", "Minus", + "LeftBracket", + "And", "auto", "extern", "inline", "register", "typedef", - "And", "PlusPlus", "MinusMinus", "sizeof", @@ -136,9 +136,9 @@ public interface C99SizeofExpressionParsersym { "floating", "charconst", "stringlit", + "LeftBrace", "Tilde", "Bang", - "LeftBrace", "char", "double", "float", @@ -152,11 +152,11 @@ public interface C99SizeofExpressionParsersym { "_Complex", "_Imaginary", "RightParen", + "RightBrace", "enum", "struct", "union", "Comma", - "RightBrace", "ERROR_TOKEN", "RightShift", "LeftShift", 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 bbafad1fc34..65e046ec116 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 @@ -171,13 +171,15 @@ private CPPParserAction action; public CPPExpressionParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { // binding resolution actions need access to IASTName nodes, temporary action = new CPPParserAction (); //action.resolver = new C99TypedefTrackerParserAction (this); action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); + action.builder.setParserOptions(options); + // comment this line to use with backtracking parser //setParserAction(action); } @@ -189,10 +191,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // _1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1863,14 +1865,14 @@ public CPPExpressionParser(String[] mapFrom) { // constructor } // - // Rule 383: initializer_clause ::= { <openscope-ast> initializer_list , } + // Rule 383: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // case 383: { action.builder. consumeInitializerList(); break; } // - // Rule 384: initializer_clause ::= { <openscope-ast> initializer_list } + // Rule 384: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // case 384: { action.builder. consumeInitializerList(); break; @@ -1884,380 +1886,394 @@ public CPPExpressionParser(String[] mapFrom) { // constructor } // - // Rule 390: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 386: start_initializer_list ::= $Empty // - case 390: { action.builder. - consumeClassSpecifier(); break; + case 386: { action.builder. + initializerListStart(); break; } // - // Rule 391: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt + // Rule 387: end_initializer_list ::= $Empty // - case 391: { action.builder. - consumeClassHead(false); break; + case 387: { action.builder. + initializerListEnd(); break; } // - // Rule 392: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt + // Rule 392: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // case 392: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // Rule 393: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // case 393: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt + // Rule 394: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // case 394: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // + case 395: { action.builder. consumeClassHead(true); break; } // - // Rule 396: identifier_name_opt ::= $Empty + // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // case 396: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 398: identifier_name_opt ::= $Empty + // + case 398: { action.builder. consumeEmpty(); break; } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 402: visibility_label ::= access_specifier_keyword : // - case 400: { action.builder. + case 402: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 403: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 401: { action.builder. + case 403: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 404: member_declaration ::= declaration_specifiers_opt ; // - case 402: { action.builder. + case 404: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 405: { action.builder. + case 407: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 413: member_declaration ::= ERROR_TOKEN // - case 411: { action.builder. + case 413: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 419: member_declarator ::= declarator constant_initializer + // Rule 421: member_declarator ::= declarator constant_initializer // - case 419: { action.builder. + case 421: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= bit_field_declarator : constant_expression + // Rule 422: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action.builder. + case 422: { action.builder. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= : constant_expression + // Rule 423: member_declarator ::= : constant_expression // - case 421: { action.builder. + case 423: { action.builder. consumeBitField(false); break; } // - // Rule 422: bit_field_declarator ::= identifier_name + // Rule 424: bit_field_declarator ::= identifier_name // - case 422: { action.builder. + case 424: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: constant_initializer ::= = constant_expression + // Rule 425: constant_initializer ::= = constant_expression // - case 423: { action.builder. + case 425: { action.builder. consumeInitializer(); break; } // - // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 431: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 431: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt 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 430: { action.builder. + case 432: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword virtual 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 431: { action.builder. + case 433: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 434: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 432: { action.builder. + case 434: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 433: access_specifier_keyword ::= private + // Rule 435: access_specifier_keyword ::= private // - case 433: { action.builder. + case 435: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= protected + // Rule 436: access_specifier_keyword ::= protected // - case 434: { action.builder. + case 436: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 435: access_specifier_keyword ::= public + // Rule 437: access_specifier_keyword ::= public // - case 435: { action.builder. + case 437: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 437: access_specifier_keyword_opt ::= $Empty + // Rule 439: access_specifier_keyword_opt ::= $Empty // - case 437: { action.builder. + case 439: { action.builder. consumeEmpty(); break; } // - // Rule 439: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > + // Rule 441: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 439: { action.builder. + case 441: { action.builder. consumeTemplateId(); break; } // - // Rule 440: conversion_function_id ::= operator conversion_type_id + // Rule 442: conversion_function_id ::= operator conversion_type_id // - case 440: { action.builder. + case 442: { action.builder. consumeConversionName(); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 443: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 441: { action.builder. + case 443: { action.builder. consumeTypeId(true); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq + // Rule 444: conversion_type_id ::= type_specifier_seq // - case 442: { action.builder. + case 444: { action.builder. consumeTypeId(false); break; } // - // Rule 443: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 445: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 443: { action.builder. + case 445: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 451: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 449: { action.builder. + case 451: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 452: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 450: { action.builder. + case 452: { action.builder. consumeQualifiedId(false); break; } // - // Rule 453: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 455: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 453: { action.builder. + case 455: { action.builder. consumeTemplateId(); break; } // - // Rule 454: operator_id_name ::= operator overloadable_operator + // Rule 456: operator_id_name ::= operator overloadable_operator // - case 454: { action.builder. + case 456: { action.builder. consumeOperatorName(); break; } // - // Rule 497: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 499: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 497: { action.builder. + case 499: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 498: export_opt ::= export + // Rule 500: export_opt ::= export // - case 498: { action.builder. + case 500: { action.builder. consumePlaceHolder(); break; } // - // Rule 499: export_opt ::= $Empty + // Rule 501: export_opt ::= $Empty // - case 499: { action.builder. + case 501: { action.builder. consumeEmpty(); break; } // - // Rule 503: template_parameter ::= parameter_declaration + // Rule 505: template_parameter ::= parameter_declaration // - case 503: { action.builder. + case 505: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt + // Rule 506: type_parameter ::= class identifier_name_opt // - case 504: { action.builder. + case 506: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= class identifier_name_opt = type_id + // Rule 507: type_parameter ::= class identifier_name_opt = type_id // - case 505: { action.builder. + case 507: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= typename identifier_name_opt + // Rule 508: type_parameter ::= typename identifier_name_opt // - case 506: { action.builder. + case 508: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= typename identifier_name_opt = type_id + // Rule 509: type_parameter ::= typename identifier_name_opt = type_id // - case 507: { action.builder. + case 509: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 508: 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 // - case 508: { action.builder. + case 510: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 511: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 509: { action.builder. + case 511: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 510: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > + // Rule 512: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 510: { action.builder. + case 512: { action.builder. consumeTemplateId(); break; } // - // Rule 516: template_argument ::= type_id + // Rule 518: template_argument ::= type_id // - case 516: { action.builder. + case 518: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 519: explicit_instantiation ::= template declaration // - case 517: { action.builder. + case 519: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 520: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 520: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 521: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 519: { action.builder. + case 521: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 524: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 524: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 525: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 525: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 524: { action.builder. + case 526: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // Rule 527: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 525: { action.builder. + case 527: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq + // Rule 528: exception_declaration ::= type_specifier_seq // - case 526: { action.builder. + case 528: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 534: expression_parser_start ::= ERROR_TOKEN + // Rule 536: expression_parser_start ::= ERROR_TOKEN // - case 534: { action.builder. + case 536: { action.builder. 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 4e25431d81a..8b4f25af2d4 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 @@ -75,453 +75,452 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 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,5,4,3,1,3,1,1,5, - 4,4,5,5,1,0,1,1,1,2, - 4,2,2,1,5,1,1,1,1,1, - 1,1,2,1,0,1,3,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, + 3,1,7,6,3,0,0,1,3,1, + 1,5,4,4,5,5,1,0,1,1, + 1,2,4,2,2,1,5,1,1,1, + 1,1,1,1,2,1,0,1,3,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,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,-63,0,0,0,-232,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,-63,0,0,0, + -2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-58,0, + 0,0,0,0,0,-53,0,0,-137,0, + 0,0,0,0,-351,-125,0,0,0,0, + 0,-312,0,0,0,0,-120,0,0,0, + 0,0,-114,-89,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,-2,0,0,-137,0,0,0, - 0,0,-4,-53,0,0,-180,0,0,-312, - 0,0,0,0,-120,0,0,0,0,0, - -5,-89,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, - -6,0,0,0,-244,-377,0,0,0,-130, - 0,-51,-388,0,0,0,0,0,0,0, - -7,0,0,0,-10,0,0,0,0,0, - 0,0,0,0,0,0,0,-72,0,0, + 0,0,-146,0,0,0,0,-244,-377,0, + 0,0,-10,0,-294,0,0,0,-49,0, 0,0,0,0,0,0,0,0,0,0, - -66,0,0,0,0,0,-234,0,0,0, - 0,0,0,-116,0,0,0,0,0,0, + -4,0,0,0,0,0,0,0,-262,0, + -72,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-264,0,-248, + 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,0,0,0,0,0,0,0,0,0, - -118,-184,0,0,0,0,0,0,-8,0, - 0,0,-355,0,0,0,-248,0,0,-9, - -117,0,0,0,0,0,0,0,0,0, + 0,0,0,-5,0,-119,0,0,0,-6, + 0,-118,0,0,0,-51,0,0,0,0, + -65,0,-7,-117,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-11,0,0,0,0,0,0,-290, - 0,0,0,0,0,0,0,-269,0,0, - 0,-249,0,-439,0,0,0,-73,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-298,-12,0,-266,0,0,0,-132, 0,0,0,0,0,0,0,0,0,0, + -355,0,0,0,0,0,0,0,0,-151, + 0,0,0,0,0,0,0,0,0,-73, + 0,0,0,-138,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -8,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,-309,0,-62,0, - 0,0,0,0,-128,0,0,-13,0,0, - 0,0,0,-15,0,0,-226,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-412,0,0,0,0,0,0,0,-9, + -128,0,0,0,0,0,0,-16,0,0, + 0,-11,0,0,0,0,-54,0,0,-226, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-28,0, - 0,0,0,-142,0,0,0,0,0,0, - 0,-16,0,0,0,0,-495,0,0,0, - 0,0,0,0,-520,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,0,0,0, - 0,0,0,0,0,0,0,-335,0,0, - 0,0,0,0,-29,0,0,0,0,0, - 0,0,-237,0,0,0,0,0,-264,-510, - 0,0,0,-466,0,0,0,0,0,0, + 0,0,0,0,0,0,-382,0,0,0, + 0,0,-130,0,0,-404,0,0,0,-179, + 0,0,0,0,0,0,-523,0,0,0, + -12,0,0,0,0,0,0,0,0,-345, + 0,0,-13,0,0,-180,0,0,-498,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-30,0, - 0,-350,0,0,0,0,0,-31,0,0, - 0,0,-262,-431,0,0,0,-509,0,0, 0,0,0,0,0,0,0,0,0,0, + -360,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-237,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,-32,0,0,-315,0,0,0,0, - 0,0,0,0,0,0,-3,0,0,0, + 0,0,0,-232,0,0,0,0,0,0, + 0,0,0,-309,0,0,0,0,0,-15, + -50,0,0,0,0,-3,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,0,0,0,0,0,0,0,-353,0, - 0,0,0,0,-49,0,0,0,0,-345, - -282,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-131,0,0,-134,0,0, + 0,0,0,-29,0,0,0,0,-385,-431, + 0,0,0,-467,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-33,0,0,0,0,0,0,0, - 0,0,-54,0,0,0,0,0,-34,0, - 0,0,-322,0,0,0,-35,0,0,0, + 0,-30,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-363,0,0,0, + 0,0,0,0,0,-282,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-294,0,0,-134,0,0,0,0,0, - -320,0,0,0,0,-382,0,0,0,-151, - 0,0,0,-323,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-316,0,0,0,0, + 0,0,-147,0,0,0,0,0,0,0, + 0,0,0,-92,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -121,0,-36,0,0,-39,0,0,0,-37, 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,-322,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-211,-50,0,0,0,0,-41, - 0,0,0,-138,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-331, + 0,0,0,0,0,0,-31,0,0,-32, + 0,0,0,0,-188,0,0,0,0,0, + 0,-323,0,0,0,-33,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-34,0,0,0,0,0,0, + -35,0,0,-121,0,0,0,0,-239,0, + 0,0,0,0,-39,0,0,0,-36,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-40,0,0,0, - 0,-95,0,0,0,-193,0,0,0,0, + 0,0,0,0,0,0,-37,0,0,0, + 0,0,0,0,0,0,-315,0,0,0, + 0,0,0,-451,0,0,0,-41,0,0, + 0,-38,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-40, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-55,0,0,0,0,0,0, - -412,0,0,-456,0,0,0,0,0,-131, - -60,0,0,-96,0,0,0,0,0,0, + 0,0,0,0,-320,0,0,-60,0,0, + -95,0,0,0,-55,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,0, - 0,-144,-61,0,0,-97,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,0,-512,0,0, - 0,0,0,-155,0,0,0,-98,0,0, + 0,0,-56,0,0,0,0,0,0,0, + 0,0,-193,0,0,0,0,-246,0,0, + 0,0,0,-96,0,0,0,-59,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,-144,0,0,0,0, + -252,0,0,0,0,0,-97,0,0,0, + -68,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-70,0, + 0,0,0,0,0,0,0,0,-155,0, + 0,0,0,-253,0,0,0,0,0,-98, + 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,-56,0,0,0, - 0,0,0,0,0,-201,-108,0,0,-99, + 0,-110,0,0,0,0,0,0,0,0, + 0,-201,0,0,0,0,-275,0,0,0, + 0,0,-99,0,0,0,-111,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-316,0,0,0,0,0, + 0,0,0,0,-112,0,0,0,0,-280, + 0,0,0,0,0,-100,0,0,0,-113, 0,0,0,0,0,0,0,0,0,0, - 0,-59,0,0,0,0,0,0,0,0, - 0,-513,0,0,0,0,0,0,-109,0, - 0,-100,0,0,0,-285,0,0,0,0, + 0,0,0,0,0,0,0,-139,0,0, + 0,0,0,0,0,0,0,-306,0,0, + 0,0,-292,0,0,0,0,0,-101,0, + 0,0,-140,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,0,0,0,0,0,0,0,-334, - -115,0,0,-101,0,0,0,0,0,0, + -141,0,0,0,0,0,0,0,0,0, + -353,0,0,0,0,0,0,-510,-61,0, + 0,-102,0,0,0,-156,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-68,0,0,0,0, - 0,0,0,0,0,-149,0,0,0,0, - 0,-362,-154,0,0,-102,0,0,0,-207, + 0,0,0,-157,0,0,0,0,0,0, + 0,0,0,-354,0,0,0,0,0,-298, + -158,-108,0,0,-103,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,0,0, + 0,0,-335,-162,-109,0,0,-104,0,0, + 0,-163,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-203,0,0, - 0,0,0,-451,0,0,0,-103,0,0, - 0,-286,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-164, + 0,0,0,0,-396,0,0,-115,0,0, + -105,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,-212, - 0,0,0,0,0,-70,-218,0,0,-104, - 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,-331,0, - 0,-110,0,0,0,0,0,-111,-240,0, - 0,-105,0,0,0,-112,0,0,0,0, + 0,0,-392,0,0,0,0,0,-455,0, + -149,0,0,-135,0,0,0,-166,0,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,0,0,0,0,-455,0, - -254,0,0,-135,0,0,0,-113,0,0, + 0,0,0,0,0,-521,0,0,0,0, + -219,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,0,0,-168, + 0,0,-184,0,0,0,0,0,-142,0, + 0,0,0,0,-1,-57,0,-169,0,0, + -277,-516,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-139,0,0,0,0, - -219,0,0,0,-363,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-360,0,0,0,0,0,0,-140, - 0,0,-289,0,0,0,0,0,-125,0, - 0,0,0,0,0,-141,0,0,-369,0, - 0,-515,0,0,0,0,0,0,0,0, + -170,0,0,0,0,0,0,0,-285,0, + -171,-154,0,0,-319,0,0,0,-172,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-156,0,0,0,0,0,0, - 0,0,0,-255,0,0,0,0,-157,0, - 0,0,0,-319,0,0,0,-158,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-173,0,0,0, + 0,-333,0,0,0,-174,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-159,0,0,0,0, - -333,0,0,0,-160,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -175,0,0,0,0,0,0,0,-150,0, + 0,0,-203,0,0,0,0,0,0,0, + 0,-66,-348,0,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,0, - 0,-256,0,0,0,0,0,0,0,0, - -304,-348,0,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,-380, 0,0,0,0,0,0,0,0,0,0, - -161,0,0,-162,0,0,0,0,-380,0, 0,0,0,0,0,0,0,0,0,0, + 0,-269,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-153,0,0,0, + -212,0,0,0,0,0,0,0,0,-343, + -381,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,0, - -164,0,0,0,0,-153,0,0,0,-257, - 0,0,0,0,0,0,0,0,-325,-381, + 0,0,0,0,0,0,0,0,0,-456, + 0,0,-176,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,-177, + 0,0,0,0,0,0,-178,0,0,0, + 0,0,0,0,-336,0,0,0,-240,-398, + 0,0,0,0,0,0,-181,-182,-107,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-165,0, - 0,-166,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,-167,0, - 0,0,0,0,0,0,0,0,-168,0, - 0,0,0,-147,0,0,0,-291,-169,0, - 0,0,0,0,-301,-170,-171,-107,0,0, 0,0,0,0,0,0,0,0,0,0, + -186,0,0,0,0,-94,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,-172,0,-94,0,0,0,0,0, + 0,0,0,0,0,0,0,-286,0,0, + 0,0,0,0,0,0,0,-334,0,-93, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-318,0,0,0, - 0,0,0,-173,0,0,-174,0,-92,0, - 0,0,-302,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -175,0,0,0,0,0,0,-326,0,0, - -93,0,0,0,0,0,0,0,0,0, + 0,-350,0,0,0,0,0,0,-183,0, + -90,0,0,0,-362,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-411,0,0,0,0,0,-91,0, 0,0,0,0,0,0,0,0,0,0, - 0,-90,0,0,0,-176,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-343,0,0,0,0,0,-91, - 0,0,0,-177,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,-178,0,0,0,0,0,-83,0,0, - 0,-272,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-181, - 0,0,0,0,-84,0,0,0,-182,0, + 0,0,0,0,0,0,0,0,-192,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,0,-183,0,0,0, - 0,-85,0,0,0,-370,0,0,0,0, + 0,0,0,0,0,-198,0,0,0,0, + -85,0,0,0,-199,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-385,0,0,0,0,-86,0, - 0,0,-192,0,0,0,0,0,0,0, + 0,0,-202,0,0,0,0,-86,0,0, + 0,-213,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-207, + 0,0,0,0,-423,-289,-228,-136,0,-216, + 0,0,-358,0,0,0,0,-148,0,0, + 0,0,0,-187,-261,-224,0,0,-374,0, + 0,0,-218,0,0,0,0,0,0,0, + -225,-440,0,0,0,0,-405,0,0,0, + 0,0,0,0,0,0,0,0,-433,-227, + 0,-189,0,0,-191,0,0,0,0,0, + 0,-241,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-243,0,0,0, + 0,0,0,0,0,0,0,0,-527,0, 0,0,0,0,0,0,0,0,0,0, - -198,0,0,0,0,-423,-376,-199,-136,0, - 0,0,0,-336,0,0,0,0,-361,0, - 0,0,0,0,-186,0,-228,0,0,-358, - 0,0,0,-202,0,0,0,0,0,0, - 0,-43,-440,0,0,0,0,0,0,-213, - 0,0,0,0,0,0,0,0,0,-216, - -224,0,0,0,0,-179,0,0,0,-225, - 0,0,-227,0,0,0,0,0,0,0, - 0,0,-241,0,0,0,-375,0,0,0, - 0,0,0,0,0,0,0,0,0,-273, - -243,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-251,-52,0, - 0,0,-187,0,0,0,0,-87,0,0, + 0,0,0,0,0,0,-52,0,0,0, + -194,0,0,0,0,-87,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,0,-265,0,-242,0,0,0, - 0,0,0,0,0,0,0,-367,0,0, - 0,0,-148,0,0,0,0,0,0,0, - -78,0,0,0,-267,0,0,0,0,0, + 0,0,0,0,0,0,0,-251,0,0, + 0,0,0,0,-242,0,0,0,0,-265, + 0,0,0,0,0,-367,0,0,0,0, + -122,0,0,0,0,0,-304,0,-247,0, + -20,0,0,0,-267,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-268,0,0,0,0,0,0,0, - 0,-396,0,0,0,0,0,-278,0,0, - 0,0,-233,0,0,0,0,0,-424,0, + 0,0,-205,0,0,0,0,-211,0,-254, + 0,0,0,0,0,-268,0,0,0,0, + -397,0,0,0,0,0,-435,0,0,0, + 0,0,0,0,0,0,0,-233,0,0, + -249,0,-62,0,0,0,0,0,0,0, + 0,-245,0,0,-318,0,0,0,0,0, + 0,0,0,0,0,0,-88,0,0,0, + -278,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-234,0, + 0,0,-288,0,0,0,0,0,0,0, + 0,0,0,-279,0,0,-389,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-279,-48,-191,-283,0,0,0,0,0, - 0,0,0,-188,0,0,0,0,-435,0, - 0,0,0,0,0,0,0,-88,0,0, + 0,-266,0,0,0,-337,-200,-255,0,0, + 0,0,-283,-284,0,0,0,0,0,-303, + -145,-236,0,0,0,-210,0,0,-295,0, + 0,0,0,-230,-388,0,0,0,0,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,0,0,-284,0, - 0,0,0,0,-295,0,0,-389,0,0, - 0,0,0,0,0,0,0,0,-299,0, - 0,-404,0,0,0,0,-339,-200,-386,-194, - 0,-114,0,0,0,-374,0,0,0,0, - -261,0,0,0,0,0,-205,0,0,-354, - 0,0,0,0,0,-210,0,0,0,0, - 0,0,0,-300,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -307,-398,-308,0,0,0,0,0,0,0, - -408,0,0,0,0,-449,-1,0,0,0, - 0,0,0,0,0,0,0,0,0,-313, + 0,-299,0,0,0,0,0,0,0,-197, + 0,0,0,0,0,-449,0,0,0,0, + 0,0,0,0,0,0,0,0,-290,0, 0,0,0,-123,0,0,0,0,0,0, - 0,0,0,0,0,0,-238,0,0,0, - 0,-122,-469,0,0,0,0,0,0,0, - -314,0,0,0,0,0,0,0,0,0, - 0,0,-330,-373,0,-347,0,0,0,0, - 0,0,-349,0,0,0,0,0,0,0, - 0,0,-14,-230,0,0,0,0,0,0, - 0,0,0,0,0,0,-471,-400,0,-482, - 0,0,0,0,0,-357,-365,0,-368,0, - 0,0,0,0,0,0,0,-390,0,-217, - 0,0,0,-391,0,0,0,0,0,0, - 0,0,0,-487,0,0,-231,0,0,-394, - 0,-395,0,0,0,0,0,0,0,0, - -411,-401,0,-403,0,0,0,-214,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-235,0,0,-414,0,-364,0, - 0,0,0,0,0,0,0,-502,0,0, - -406,0,0,0,0,-260,0,-413,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-281,-293,-392,0,0,0,0, - 0,-420,-124,0,-504,0,0,-433,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-421,-303,0,0,-436,0,-427,0,0, - -305,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-441,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-508,0, - 0,-457,0,0,-405,0,0,0,-443,0, - -458,0,0,0,0,0,0,0,0,-445, - 0,-44,0,0,-74,0,-393,0,0,0, - 0,0,-446,0,-310,-521,0,0,0,0, + 0,0,0,-48,0,0,0,0,0,0, + 0,-272,-470,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-444,0,0,-447,0,0,-460,-126, - 0,0,-119,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,-524, - 0,0,0,0,0,0,-425,0,0,0, - 0,-448,-461,0,0,0,0,0,0,0, - -450,0,-239,0,0,0,-465,-415,0,-467, - 0,0,0,0,0,-324,-146,0,0,0, + 0,0,0,-400,0,-256,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-468,-470,0,0,0,0,0, - 0,0,-475,-479,0,0,0,0,0,0, - 0,0,0,0,-79,0,0,0,-485,0, + 0,0,0,-18,0,0,0,-325,0,0, + 0,0,0,0,0,0,-472,0,0,0, + 0,0,0,-425,0,0,0,0,-408,0, + 0,0,0,0,0,0,0,-373,0,-436, + 0,0,0,0,-300,0,0,-274,0,0, + 0,0,0,-489,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,-311, + 0,0,0,-308,0,0,-214,0,0,0, + -313,0,0,-314,0,0,0,0,0,0, + 0,0,0,0,-47,0,0,0,-375,0, + 0,0,0,0,0,0,0,-503,-364,0, + -231,0,-417,0,0,-273,0,-330,0,0, + -347,0,0,0,0,0,0,0,0,0, + 0,0,-257,-415,0,-393,0,0,0,0, + -238,0,0,-349,-505,0,0,0,0,0, + -370,-365,0,0,0,0,0,0,0,0, + 0,0,-250,0,0,-513,0,0,0,0, + 0,-124,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-185,0,0,0,-439, + 0,0,0,0,0,0,0,0,-509,-291, + 0,0,0,0,-368,0,0,0,0,0, + 0,-390,0,0,0,0,0,0,0,-357, + 0,0,0,0,0,0,-460,0,0,0, + 0,0,0,0,-391,-524,0,0,0,0, + -394,0,0,0,0,0,0,0,0,0, + 0,0,-235,0,0,-395,0,0,0,0, + 0,-430,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-196,0,0,0, + -401,0,0,0,0,0,0,0,0,-529, + 0,0,0,0,-452,-260,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -514,0,0,0,0,-496,0,0,0,0, - 0,-80,0,0,0,-493,0,0,0,0, + 0,0,-281,0,-403,-301,0,-406,0,0, + -413,0,-420,0,0,0,0,0,0,0, + -293,-421,0,0,0,0,0,0,0,0, + 0,0,0,-276,0,0,0,0,-444,-497, + -424,0,0,-441,0,0,-443,0,0,0, + 0,0,0,0,-78,0,0,0,-445,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-17,0,-453,-497,0,-246,0, - 0,0,-503,0,-511,-516,0,0,0,0, - 0,-454,0,0,0,0,-236,0,0,0, - 0,0,0,0,0,0,-252,0,0,0, - -417,0,0,0,0,0,0,0,-250,0, - -253,0,0,0,0,-321,-274,-464,0,0, - 0,0,0,0,0,0,0,-81,0,0, + 0,0,0,0,0,0,0,0,0,-79, + 0,0,0,-446,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-447,0,0,-311,0,0,0,0,0, + 0,0,0,0,0,-515,0,0,0,0, + -484,0,0,0,0,0,-80,0,0,0, + -448,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-17,0, + -302,0,0,-305,0,-310,-75,0,0,0, + 0,0,0,0,0,-450,-326,0,0,0, + 0,-466,-324,0,0,0,0,0,0,0, + 0,-468,0,0,0,0,0,0,-469,-329, + 0,0,0,0,0,0,0,-321,0,-499, + 0,0,-126,0,-471,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,-82,0,0,0,0,0,0,0,0, + 0,0,0,0,-476,0,-82,0,0,0, + -453,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,0, - -328,0,0,0,-488,0,0,0,0,0, - 0,0,-276,0,-477,0,-275,0,0,0, - 0,-337,0,0,0,0,0,0,-463,0, - 0,-372,0,0,0,0,0,0,0,-197, - 0,0,0,0,-280,0,0,0,0,0, + -464,0,0,0,-480,0,0,-328,0,0, + 0,-487,0,0,0,0,0,0,0,-454, + -495,-217,0,0,0,-483,-504,0,-372,0, + 0,0,0,-338,-465,0,0,0,-429,-74, + -204,-297,0,0,0,0,0,0,-340,-342, + 0,-356,0,0,-346,0,-512,0,0,0, + 0,0,0,-517,0,0,0,0,0,-387, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-478,0,0,0, + 0,0,0,-528,0,0,0,0,0,0, + 0,0,-206,0,0,0,-361,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-129,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,-429,-490, - 0,-452,0,0,-75,0,-430,0,0,0, - 0,0,0,0,-329,0,0,-338,0,0, - 0,0,0,-340,0,0,0,0,0,0, - 0,0,-342,0,-356,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,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,-292,0,0, - 0,0,0,0,-22,0,0,0,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,-23,0,0,0, + 0,0,0,0,0,0,0,0,-23,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,0,0,0,-24,0, + -24,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, - -25,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,-26,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,-27,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,-64,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-76,0, + -76,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, - -77,0,0,0,0,0,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,-133,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-208,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,0,0,0,0,0,0,-507,0, + 0,0,0,0,0,0,0,0,0,-19, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-506,0,0,0, - 0,-484,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,-517,-366, - -45,-494,0,0,0,-498,0,0,-499,0, - 0,-387,-46,-371,-491,0,0,0,0,-407, - 0,0,0,0,0,0,0,0,-258,0, + -106,-339,-43,-386,0,0,0,-407,-410,-359, + 0,0,0,-258,-44,-366,-42,0,0,0, + 0,-419,0,0,0,0,0,0,0,0, + -259,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,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,0,0,0,0, - 0,0,-409,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-410,0,0,0, - 0,-418,0,-419,0,0,0,0,0,-519, - 0,-422,0,0,0,0,-459,0,0,-297, - 0,0,-462,0,0,0,0,-505,0,0, - 0,0,0,0,0,0,-378,0,0,0, + 0,0,-215,0,0,0,0,0,0,0, + 0,0,0,0,-371,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-409,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-422,0,-220,0,0,0,0,0, + 0,0,-414,-457,-459,-458,-461,0,0,-478, + 0,0,0,0,0,0,0,0,-462,-490, + -492,-376,0,0,0,0,0,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,0,0,0,0,0,0,-259, - 0,-480,0,0,-522,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-492, + 0,0,0,-479,0,0,0,0,0,0, + 0,0,0,0,0,-378,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-432,0,0,0,0,0,0,0,0, - 0,0,0,-127,0,0,0,0,0,0, - -518,-489,0,0,0,0,0,0,0,0, - 0,0,0,-47,0,0,0,-501,-332,0, - -229,0,0,0,0,0,0,-346,0,-145, - 0,-523,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-486,-474, + 0,0,0,0,0,0,-432,0,0,0, + 0,0,0,0,0,0,0,-332,0,0, + 0,0,-127,0,0,0,0,0,-514,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-359,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-106, + -486,0,0,0,0,0,0,0,0,0, + -475,-69,-45,-229,0,0,0,0,0,0, + 0,0,0,-221,0,0,0,0,0,0, + 0,0,0,0,0,0,-428,0,0,0, + 0,-427,0,0,0,0,-496,-222,0,0, + 0,0,0,0,-481,0,0,0,0,0, + 0,0,0,0,-485,-506,0,0,0,0, + 0,0,0,0,0,0,0,-494,0,-502, 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,-426,0,0,0,0,0, + 0,-344,0,0,0,0,0,0,0,0, + 0,0,-379,0,0,0,-519,0,0,0, + 0,0,0,0,0,0,0,-369,0,0, + -491,0,0,0,0,0,0,0,0,0, + 0,-270,0,0,0,0,0,0,0,0, + 0,0,-327,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-344,0,0,0,0, - 0,0,0,0,0,0,-270,0,0,0, - 0,0,0,0,0,0,0,-379,0,0, - 0,0,0,0,0,0,0,0,0,-209, - 0,0,0,0,-204,0,0,0,0,0, - 0,-271,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-327,0,0, + 0,0,0,-500,0,0,0,0,0,0, + 0,-501,-46,-526,0,0,0,0,0,0, + 0,0,-271,0,0,0,0,0,0,0, + 0,0,-520,-525,0,0,0,0,-209,0, + 0,-488,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, - 0,0,-437,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-428,0,-143, - 0,0,0,0,0,0,0,0,-152,0, + 0,0,0,0,-143,0,0,0,-152,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-190,0, - 0,0,-195,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-351, + 0,0,0,0,-190,0,0,0,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,0,0,-317,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-317,0, - 0,0,-341,0,0,0,0,-221,0,-222, - 0,0,0,0,0,0,0,-399,0,0, - -352,0,0,0,-383,0,0,0,0,-384, - 0,0,0,0,0,0,0,0,0,0, + 0,-518,0,-14,0,0,0,0,0,0, + 0,0,-341,0,0,0,0,-352,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-383,0,0,0,0,0,0,0, + 0,0,0,-384,0,0,0,0,0,0, -402,0,0,0,0,0,0,0,0,0, + 0,0,0,-416,0,0,0,0,0,0, + -434,0,0,0,0,0,0,0,0,0, + 0,-263,0,0,0,0,0,0,0,0, + 0,0,-493,0,0,0,0,0,0,0, + 0,-287,0,0,0,0,0,0,0,0, + -399,0,0,0,0,0,0,0,0,-473, + 0,0,0,0,0,0,0,0,0,0, + -474,0,0,-477,0,-437,0,0,0,0, + 0,0,0,-438,0,-482,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-416,0,0,0, - -438,-69,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-434,0,0,0, - 0,0,0,0,0,-185,0,0,0,0, - 0,0,0,0,-196,0,0,0,-481,0, - 0,0,0,0,0,0,-206,0,0,0, + 0,0,0,0,-223,0,0,0,0,0, + 0,0,0,0,0,0,-296,0,-508,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-215,0,0,0,0,0,0, - 0,0,-263,0,0,0,-426,0,0,0, - 0,0,0,0,-287,0,0,0,0,0, - 0,0,0,0,-472,-223,0,-473,0,0, - 0,0,0,-476,0,0,0,0,0,0, - -296,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-507,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,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; @@ -531,531 +530,531 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface BaseAction { public final static char baseAction[] = { - 168,4,54,83,83,32,32,66,66,38, - 38,42,42,191,191,192,192,193,193,1, + 170,4,54,83,83,32,32,66,66,38, + 38,40,40,193,193,194,194,195,195,1, 1,15,15,15,15,15,15,15,15,16, 16,16,14,11,11,8,8,8,8,8, 8,2,67,67,5,5,12,12,12,12, - 45,45,133,133,134,62,62,43,17,17, + 45,45,134,134,135,62,62,43,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,135,135, - 135,113,113,18,18,18,18,18,18,18, - 18,18,18,18,18,18,19,19,169,169, - 170,170,171,138,138,139,139,136,136,140, - 137,137,20,20,21,21,23,23,23,24, + 17,17,17,17,17,17,17,17,136,136, + 136,113,113,18,18,18,18,18,18,18, + 18,18,18,18,18,18,19,19,171,171, + 172,172,173,139,139,140,140,137,137,141, + 138,138,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,34,34,35,35,36,36,41, - 41,40,40,40,40,40,40,40,40,40, - 40,40,40,40,39,29,141,141,97,97, - 172,172,92,194,194,68,68,68,68,68, + 31,33,33,34,34,35,35,36,36,42, + 42,41,41,41,41,41,41,41,41,41, + 41,41,41,41,39,29,142,142,97,97, + 174,174,92,196,196,68,68,68,68,68, 68,68,68,68,69,69,69,65,65,56, - 56,173,173,70,70,70,103,103,174,174, - 71,71,71,175,175,72,72,72,72,72, + 56,175,175,70,70,70,103,103,176,176, + 71,71,71,177,177,72,72,72,72,72, 73,73,84,84,84,84,84,84,84,49, - 49,49,49,49,114,114,115,115,50,176, + 49,49,49,49,114,114,115,115,50,178, 22,22,22,22,22,48,48,87,87,87, - 87,87,148,148,143,143,143,143,143,144, - 144,144,145,145,145,146,146,146,147,147, - 147,88,88,88,88,88,89,89,89,13, + 87,87,149,149,144,144,144,144,144,145, + 145,145,146,146,146,147,147,147,148,148, + 148,88,88,88,88,88,89,89,89,13, 13,13,13,13,13,13,13,13,13,13, 100,119,119,119,119,119,119,117,117,117, - 118,118,150,150,149,149,121,121,104,79, - 79,80,81,52,47,151,151,53,51,86, - 86,152,152,142,142,122,123,123,76,76, - 153,153,63,63,63,59,59,58,64,64, + 118,118,151,151,150,150,121,121,104,79, + 79,80,81,52,47,152,152,53,51,86, + 86,153,153,143,143,122,123,123,76,76, + 154,154,63,63,63,59,59,58,64,64, 75,75,57,57,57,90,90,99,98,98, 61,61,60,60,55,55,44,101,101,101, 93,93,93,94,94,95,95,95,96,96, - 105,105,105,107,107,106,106,195,195,91, - 91,178,178,178,178,178,125,46,46,155, - 177,177,126,126,126,126,179,179,37,37, - 116,127,127,127,127,108,108,120,120,120, - 157,158,158,158,158,158,158,158,158,158, - 158,158,182,182,180,180,181,181,159,159, - 159,159,160,183,110,109,109,184,184,161, - 161,161,161,102,102,102,185,185,9,9, - 10,186,186,187,162,154,154,163,163,164, - 165,165,6,6,7,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,77,82,82, - 167,167,129,129,130,130,130,130,130,130, - 3,131,131,128,128,111,111,85,78,74, - 156,156,112,112,188,188,188,132,132,124, - 124,189,189,168,168,1132,41,1896,1880,857, - 4480,36,874,33,37,868,32,34,1846,31, - 29,58,909,114,84,85,116,2206,985,1038, - 1029,1153,1073,1177,1075,1169,1270,1711,1263,1288, - 1347,151,280,1119,1263,166,152,1238,41,2570, - 2548,41,814,38,4278,1258,36,874,342,37, - 868,71,2454,41,814,38,239,4100,36,874, - 33,37,868,32,34,773,31,29,58,909, - 114,84,85,116,506,985,1038,1029,1153,1073, - 2179,1236,242,237,238,1911,592,41,451,2619, - 1263,4611,1974,2944,4725,281,721,4113,323,1692, - 325,1355,356,318,1566,66,239,2657,391,425, - 4264,249,252,255,258,2914,2308,496,1190,41, - 814,38,1261,4489,36,874,33,37,868,65, - 34,1264,251,237,238,4127,573,857,3233,585, - 2932,3113,3230,4244,1655,41,814,38,2619,4100, - 36,874,33,37,868,32,34,773,31,29, - 58,909,114,84,85,116,346,985,1038,1029, - 1153,1073,1177,458,1169,1270,363,1263,1288,1347, - 151,501,2045,454,515,152,4666,4666,859,1438, - 2198,2583,2601,1238,41,1626,389,1862,2194,516, - 1621,1655,41,814,38,2619,4100,36,874,33, - 37,868,32,34,773,31,29,58,909,114, - 84,85,116,346,985,1038,1029,1153,1073,1177, - 429,1169,1270,332,1263,1288,1347,151,335,336, - 1023,515,152,4280,2619,859,392,425,2237,444, - 3042,3044,501,69,2365,511,516,4666,1645,41, - 814,38,2657,4489,36,874,33,37,868,64, - 34,722,2420,331,1738,2429,2182,41,298,441, - 1655,41,814,38,2619,4100,36,874,33,37, - 868,32,34,773,31,29,58,909,114,84, - 85,116,346,985,1038,1029,1153,1073,1177,4150, - 1169,1270,511,1263,1288,1347,151,66,3141,1979, - 515,152,4563,1205,859,592,41,286,1776,2447, - 4675,364,2429,1202,1882,516,2805,1929,41,814, - 38,2619,4100,36,874,33,37,868,32,34, - 773,31,29,58,909,114,84,85,116,346, - 985,1038,1029,1153,1073,1177,520,1169,1270,2754, - 1263,1288,1347,151,592,41,286,515,152,4687, - 1458,859,1338,41,1542,49,78,2365,48,874, - 102,511,516,68,355,2148,41,814,38,857, - 4704,36,874,33,37,868,32,34,2508,509, - 1004,2429,347,1314,567,352,1721,41,814,38, - 345,4100,36,874,33,37,868,32,34,773, - 31,29,58,909,114,84,85,116,331,985, - 1038,1029,1153,1073,1177,2132,1169,1270,512,1263, - 1288,1347,151,1238,41,289,382,152,4153,2274, - 1793,41,814,38,2596,4100,36,874,33,37, - 868,32,34,773,31,29,58,909,114,84, - 85,116,385,985,1038,1029,1153,1073,1177,1104, - 1169,1270,3005,1263,1288,1347,151,403,327,520, - 382,152,4153,1533,1993,41,814,38,3060,4100, - 36,874,33,37,868,32,34,773,31,29, - 58,909,114,84,85,116,383,985,1038,1029, - 1153,1073,1177,2173,1169,1270,2175,1263,1288,1347, - 151,4581,386,1048,382,152,4153,2102,41,814, - 38,79,4100,36,874,33,37,868,32,34, - 773,31,29,58,909,114,84,85,116,390, - 985,1038,1029,1153,1073,1177,521,1169,1270,66, - 1263,1288,1347,151,4585,31,387,166,152,684, - 2161,2102,41,814,38,3376,4100,36,874,33, - 37,868,32,34,773,31,29,58,909,114, - 84,85,116,2119,985,1038,1029,1153,1073,1177, - 521,1169,1270,2915,1263,1288,1347,151,401,153, - 380,376,152,2102,41,814,38,60,4100,36, - 874,33,37,868,32,34,773,31,29,58, - 909,114,84,85,116,495,985,1038,1029,1153, - 1073,1177,3017,1169,1270,501,1263,1288,1347,151, - 4666,1238,2718,376,152,419,1238,41,1626,389, - 1238,1726,2560,40,2102,41,814,38,573,4100, - 36,874,33,37,868,32,34,773,31,29, - 58,909,114,84,85,116,1810,985,1038,1029, - 1153,1073,1177,432,1169,1270,375,1263,1288,1347, - 151,1333,335,1212,376,152,1865,41,814,38, - 756,4100,36,874,33,37,868,32,34,773, - 31,29,58,909,114,84,85,116,321,985, - 1038,1029,1153,1073,1177,2828,1169,1270,374,1263, - 1288,1347,151,2623,2225,31,150,152,792,741, - 2102,41,814,38,1357,4100,36,874,33,37, - 868,32,34,773,31,29,58,909,114,84, - 85,116,293,985,1038,1029,1153,1073,1177,96, - 1169,1270,110,1263,1288,1347,151,1265,436,372, - 167,152,2102,41,814,38,1333,4100,36,874, - 33,37,868,32,34,773,31,29,58,909, - 114,84,85,116,1260,985,1038,1029,1153,1073, - 1177,420,1169,1270,1333,1263,1288,1347,151,357, - 1263,2915,163,152,2102,41,814,38,3064,4100, - 36,874,33,37,868,32,34,773,31,29, - 58,909,114,84,85,116,1533,985,1038,1029, - 1153,1073,1177,3953,1169,1270,2988,1263,1288,1347, - 151,2850,1263,2915,162,152,2102,41,814,38, - 4202,4100,36,874,33,37,868,32,34,773, - 31,29,58,909,114,84,85,116,1333,985, - 1038,1029,1153,1073,1177,30,1169,1270,1333,1263, - 1288,1347,151,457,1263,101,161,152,2102,41, - 814,38,290,4100,36,874,33,37,868,32, - 34,773,31,29,58,909,114,84,85,116, - 3658,985,1038,1029,1153,1073,1177,1584,1169,1270, - 2988,1263,1288,1347,151,3975,1263,2915,160,152, - 2102,41,814,38,523,4100,36,874,33,37, - 868,32,34,773,31,29,58,909,114,84, - 85,116,2158,985,1038,1029,1153,1073,1177,77, - 1169,1270,1333,1263,1288,1347,151,59,317,2915, - 159,152,2102,41,814,38,2337,4100,36,874, - 33,37,868,32,34,773,31,29,58,909, - 114,84,85,116,679,985,1038,1029,1153,1073, - 1177,76,1169,1270,2988,1263,1288,1347,151,330, - 1263,2915,158,152,2102,41,814,38,522,4100, - 36,874,33,37,868,32,34,773,31,29, - 58,909,114,84,85,116,2272,985,1038,1029, - 1153,1073,1177,61,1169,1270,2915,1263,1288,1347, - 151,328,1263,2915,157,152,2102,41,814,38, - 2840,4100,36,874,33,37,868,32,34,773, - 31,29,58,909,114,84,85,116,95,985, - 1038,1029,1153,1073,1177,60,1169,1270,2915,1263, - 1288,1347,151,105,1238,3535,156,152,2102,41, - 814,38,1476,4100,36,874,33,37,868,32, - 34,773,31,29,58,909,114,84,85,116, - 353,985,1038,1029,1153,1073,1177,2194,1169,1270, - 2915,1263,1288,1347,151,106,1353,2806,155,152, - 2102,41,814,38,1469,4100,36,874,33,37, - 868,32,34,773,31,29,58,909,114,84, - 85,116,98,985,1038,1029,1153,1073,1177,1862, - 1169,1270,1162,1263,1288,1347,151,329,1844,2915, - 154,152,2102,41,814,38,2023,4100,36,874, - 33,37,868,32,34,773,31,29,58,909, - 114,84,85,116,2194,985,1038,1029,1153,1073, - 1177,3104,1169,1270,2915,1263,1288,1347,151,1238, - 3324,2915,153,152,2058,41,814,38,2205,4100, - 36,874,33,37,868,32,34,773,31,29, - 58,909,114,84,85,116,3105,985,1038,1029, - 1153,1073,1177,75,1169,1270,1410,1263,1288,2534, - 172,2102,41,814,38,2775,4100,36,874,33, - 37,868,32,34,773,31,29,58,909,114, - 84,85,116,3017,985,1038,1029,1153,1073,1177, - 2697,1169,1270,501,1263,1288,1347,151,4666,1350, - 1356,148,152,405,4513,1873,2637,331,2805,2182, - 3014,298,2366,41,814,38,1516,4100,36,874, - 33,37,868,32,34,773,31,29,58,909, - 114,84,85,116,675,985,1038,1029,1153,1073, - 1177,2830,1169,1270,2915,1263,1288,1347,151,762, - 335,3141,197,152,2454,41,814,38,2858,4100, - 36,874,33,37,868,32,34,773,31,29, - 58,909,114,84,85,116,74,985,1038,1029, - 1153,1073,1177,3521,1169,1270,2898,1263,1288,2534, - 172,2454,41,814,38,2902,4100,36,874,33, - 37,868,32,34,773,31,29,58,909,114, - 84,85,116,1458,985,1038,1029,1153,1073,1177, - 97,1169,1270,110,1263,1288,2534,172,1854,41, - 814,38,2915,4704,36,874,33,37,868,67, - 34,1264,2454,41,814,38,297,4100,36,874, - 33,37,868,32,34,773,31,29,58,909, - 114,84,85,116,73,985,1038,1029,1153,1073, - 1177,2201,1169,1270,2204,1263,1288,2534,172,2454, - 41,814,38,1642,4100,36,874,33,37,868, - 32,34,773,31,29,58,909,114,84,85, - 116,2605,985,1038,1029,1153,1073,1177,2514,1169, - 1270,2624,1263,1288,2534,172,1854,41,814,38, - 2915,4704,36,874,33,37,868,66,34,1264, - 2454,41,814,38,421,4100,36,874,33,37, - 868,32,34,773,31,29,58,909,114,84, - 85,116,72,985,1038,1029,1153,1073,1177,1837, - 1169,1270,2273,1263,1288,2534,172,2498,41,814, - 38,420,4100,36,874,33,37,868,32,34, - 773,31,29,58,909,114,84,85,116,147, - 985,1038,1029,1153,1073,1177,2530,1169,1270,2554, - 1263,1288,2534,172,2784,41,814,38,2915,2665, - 36,874,46,37,868,2915,1878,240,2454,41, - 814,38,423,4100,36,874,33,37,868,32, - 34,773,31,29,58,909,114,84,85,116, - 3655,985,1038,1029,1153,1073,1177,63,1169,1270, - 31,1263,2277,1508,820,2454,41,814,38,3315, - 4100,36,874,33,37,868,32,34,773,31, - 29,58,909,114,84,85,116,1533,985,1038, - 1029,1153,1073,1177,161,1169,1270,669,2243,2454, - 41,814,38,2915,4100,36,874,33,37,868, - 32,34,773,31,29,58,909,114,84,85, - 116,1585,985,1038,1029,1153,1073,1177,2915,1169, - 2206,2454,41,814,38,62,4100,36,874,33, - 37,868,32,34,773,31,29,58,909,114, - 84,85,116,291,985,1038,1029,1153,1073,1177, - 326,2207,2454,41,814,38,1713,4100,36,874, - 33,37,868,32,34,773,31,29,58,909, - 114,84,85,116,1937,985,1038,1029,1153,2189, - 2454,41,814,38,2288,4100,36,874,33,37, - 868,32,34,773,31,29,58,909,114,84, - 85,116,2582,985,1038,1029,1153,2199,2454,41, - 814,38,857,4100,36,874,33,37,868,32, - 34,773,31,29,58,909,114,84,85,116, - 2506,985,1038,1029,2061,2454,41,814,38,1530, - 4100,36,874,33,37,868,32,34,773,31, - 29,58,909,114,84,85,116,2834,985,1038, - 1029,2064,2454,41,814,38,2940,4100,36,874, - 33,37,868,32,34,773,31,29,58,909, - 114,84,85,116,1213,985,1038,1029,2091,2454, - 41,814,38,1110,4100,36,874,33,37,868, - 32,34,773,31,29,58,909,114,84,85, - 116,1314,985,1038,1029,2101,262,1333,2904,1981, - 535,394,425,4415,2784,41,814,38,2507,2915, - 36,874,1855,37,868,31,445,2607,236,2527, - 2784,41,814,38,1583,164,36,874,343,37, - 868,354,31,1,188,3223,2619,535,2988,2988, - 1668,109,211,222,2668,210,219,220,221,223, - 2821,2779,177,379,346,236,1238,41,2560,2561, - 3004,176,164,408,191,175,178,179,180,181, - 182,188,3223,849,355,2988,859,1937,2841,211, - 222,2668,210,219,220,221,223,1762,359,177, - 857,1873,347,1314,567,352,529,857,176,189, - 1678,192,175,178,179,180,181,182,2052,2542, - 41,1626,389,31,3607,332,338,4271,2454,41, - 814,38,244,4100,36,874,33,37,868,32, - 34,773,31,29,58,909,114,84,85,116, - 31,985,1038,2149,539,1425,280,1485,41,814, - 38,1883,377,36,874,342,37,868,2599,41, - 814,38,2808,2568,36,874,342,37,868,2543, - 239,2454,41,814,38,2973,4100,36,874,33, - 37,868,32,34,773,31,29,58,909,114, - 84,85,116,1734,985,1924,242,237,238,393, - 425,4725,2836,41,395,323,1692,325,2280,281, - 318,1566,4725,2843,41,287,320,2910,325,1027, - 41,451,355,2799,4611,249,252,255,258,2914, - 3048,4578,2671,2908,680,2901,1261,1087,677,445, - 347,1314,567,352,1238,41,3027,2974,2745,1238, - 41,298,3233,585,2932,3113,3230,4244,2454,41, - 814,38,168,4100,36,874,33,37,868,32, - 34,773,31,29,58,909,114,84,85,116, - 3537,985,1038,2152,1779,41,814,38,4438,2967, - 36,874,342,37,868,2751,50,2550,1545,41, - 814,38,4278,4666,36,874,342,37,868,2991, - 3112,3205,1238,41,1626,389,354,2883,1914,2915, - 31,2619,1386,4666,3427,369,2784,41,814,38, - 1601,2607,36,874,2882,37,868,31,4725,236, - 66,625,323,1692,325,4590,31,318,1566,431, - 737,4050,4725,3458,2467,335,323,1692,325,355, - 2308,318,1566,213,222,2668,212,219,220,221, - 223,2984,2775,2993,1381,336,577,347,1314,567, - 352,1213,448,3042,3044,1678,349,1591,4376,2566, - 535,1087,2841,355,214,216,218,299,300,2703, - 3022,518,215,217,2616,41,2483,2744,236,4509, - 304,349,1314,567,352,164,164,2843,41,284, - 311,315,1467,436,188,3223,533,535,2988,337, - 338,2986,211,222,2668,210,219,220,221,223, - 3041,57,177,3024,2849,236,2802,1584,2619,2754, - 3088,176,164,2037,3323,175,178,179,180,181, - 182,188,3223,2151,31,2988,2657,2619,2402,211, - 222,2668,210,219,220,221,223,523,2945,177, - 1213,535,2506,239,3565,346,1911,1389,176,3026, - 2619,186,175,178,179,180,181,182,2623,236, - 940,41,1626,389,3018,358,164,632,2657,254, - 237,238,2650,529,610,188,3223,2919,535,2988, - 1346,2600,3028,211,222,2668,210,219,220,221, - 223,2775,3030,177,3031,503,236,280,1238,41, - 1626,389,176,164,190,184,175,178,179,180, - 181,182,188,3223,31,564,2988,2915,3533,1533, - 211,222,2668,210,219,220,221,223,697,228, - 177,3032,535,500,502,57,31,363,3033,176, - 3133,54,185,175,178,179,180,181,182,3118, - 236,2829,2583,2601,31,31,66,164,3456,1759, - 2618,4637,3036,2147,327,784,188,3223,2775,535, - 2988,3030,529,80,211,222,2668,210,219,220, - 221,223,3038,2607,177,302,2936,236,2966,454, - 2619,31,2619,176,164,3542,195,175,178,179, - 180,181,182,188,3223,2301,308,2988,2657,440, - 346,211,222,2668,210,219,220,221,223,871, - 528,177,2915,535,239,1238,41,1626,389,2680, - 176,2906,859,3416,175,178,179,180,181,182, - 88,236,31,531,2841,2908,2619,1533,164,1087, - 257,237,238,3041,449,1186,958,188,3223,2364, - 535,2988,430,527,346,211,222,2668,210,219, - 220,221,223,2775,168,177,3043,503,236,1533, - 2528,334,338,1384,176,164,859,200,175,178, - 179,180,181,182,188,3223,246,1768,2988,2836, - 41,395,211,222,2668,210,219,220,221,223, - 1045,187,177,301,535,500,502,1238,41,1626, - 389,176,3045,2915,194,175,178,179,180,181, - 182,3047,236,1238,41,2560,283,2669,66,164, - 3051,239,1643,4657,239,309,31,31,188,3223, - 2996,1087,2988,3287,450,381,211,222,2668,210, - 219,220,221,223,175,3039,177,260,237,238, - 247,237,238,588,3052,176,1720,3181,202,175, - 178,179,180,181,182,2454,41,814,38,3053, - 4100,36,874,33,37,868,32,34,773,31, - 29,58,909,114,84,85,116,3132,985,1939, - 1635,41,2956,38,4278,4666,36,874,342,37, - 868,2165,41,814,38,1883,2668,36,874,342, - 37,868,2454,41,814,38,3056,4100,36,874, - 33,37,868,32,34,773,31,29,58,909, - 114,84,85,116,31,1948,2775,1706,535,2707, - 41,2560,283,3057,4725,3062,814,335,323,1692, - 325,5249,2775,318,1566,4725,346,2041,2718,323, - 1692,325,5249,164,318,1566,1032,1238,2819,2560, - 82,2849,384,1433,206,2619,355,524,859,2911, - 4376,2707,41,2560,2864,5249,2607,2071,2775,1391, - 205,5249,4559,2657,347,1314,567,352,2454,41, - 814,38,525,4100,36,874,33,37,868,32, - 34,773,31,29,58,909,114,84,85,116, - 5249,1976,2454,41,814,38,307,4100,36,874, - 33,37,868,32,34,773,31,29,58,909, - 114,84,85,116,31,1985,3048,2841,535,416, - 2963,1228,41,814,38,2915,4666,36,874,342, - 37,868,503,2041,2718,2775,346,1238,41,2560, - 288,1130,2716,164,5249,5249,2619,5249,292,1238, - 41,298,2822,1559,3675,338,2619,3078,859,1076, - 1238,41,1626,389,236,1238,41,2560,285,1517, - 501,502,5249,209,236,4725,1416,2742,336,323, - 1692,325,52,2550,319,1566,5249,2775,213,222, - 2668,212,219,220,221,223,355,280,213,222, - 2668,212,219,220,221,223,5249,1241,41,1626, - 389,2853,41,284,349,1314,567,352,427,214, - 216,218,299,300,2703,207,224,215,217,214, - 216,218,299,300,2703,5249,224,215,217,2864, - 2915,2941,2804,2619,57,31,1087,31,5249,1087, - 1584,1087,2501,4002,292,31,4044,3069,31,4313, - 282,236,3552,5249,31,577,4044,3197,2954,3560, - 5249,164,3115,31,164,31,3273,2587,3748,2474, - 208,3587,2267,2742,1474,213,222,2668,212,219, - 220,221,223,2454,41,814,38,5249,4100,36, - 874,33,37,868,32,34,773,31,29,58, - 909,114,84,85,93,5249,214,216,218,299, - 300,2703,5249,224,215,217,2454,1726,814,1734, - 5249,4100,36,874,33,37,868,32,34,773, - 31,29,58,909,114,84,85,92,1238,41, - 2560,2953,5249,4044,3229,2454,41,814,38,5249, - 4100,36,874,33,37,868,32,34,773,31, - 29,58,909,114,84,85,91,2454,41,814, - 38,5249,4100,36,874,33,37,868,32,34, - 773,31,29,58,909,114,84,85,90,2454, - 41,814,38,5249,4100,36,874,33,37,868, - 32,34,773,31,29,58,909,114,84,85, - 89,2454,41,814,38,5249,4100,36,874,33, - 37,868,32,34,773,31,29,58,909,114, - 84,85,88,2454,41,814,38,5249,4100,36, - 874,33,37,868,32,34,773,31,29,58, - 909,114,84,85,87,2454,41,814,38,5249, - 4100,36,874,33,37,868,32,34,773,31, - 29,58,909,114,84,85,86,2320,41,814, - 38,5249,4100,36,874,33,37,868,32,34, - 773,31,29,58,909,114,84,85,112,2454, - 41,814,38,5249,4100,36,874,33,37,868, - 32,34,773,31,29,58,909,114,84,85, - 118,2454,41,814,38,5249,4100,36,874,33, - 37,868,32,34,773,31,29,58,909,114, - 84,85,117,2454,41,814,38,5249,4100,36, - 874,33,37,868,32,34,773,31,29,58, - 909,114,84,85,115,2454,41,814,38,5249, - 4100,36,874,33,37,868,32,34,773,31, - 29,58,909,114,84,85,113,1702,41,814, - 38,4278,2775,36,874,342,37,868,2410,41, - 814,38,5249,4100,36,874,33,37,868,32, - 34,773,31,29,58,909,94,84,85,3002, - 2760,31,2915,1087,2619,2619,2836,41,395,2915, - 303,5249,31,31,2792,3006,2891,2619,2619,535, - 31,4725,236,346,4478,323,1692,325,164,2908, - 318,1566,5249,1087,3169,346,236,346,170,5249, - 5249,1468,2915,1381,164,859,213,222,2668,212, - 219,220,221,223,196,5249,1776,859,168,4252, - 213,222,2668,212,219,220,221,223,1818,5249, - 1789,41,1626,389,1552,5249,5249,214,216,218, - 299,300,2703,2925,517,215,217,2619,5249,311, - 315,214,216,218,299,300,2703,31,225,215, - 217,3639,2955,5249,31,236,2619,57,3136,4251, - 2915,5249,31,1584,3415,671,794,31,198,3088, - 2277,2990,5249,31,236,4666,2205,956,2775,213, - 222,2668,212,219,220,221,223,1840,41,2956, - 38,4278,4282,36,874,342,37,868,213,222, - 2668,212,219,220,221,223,5249,5249,5249,5249, - 214,216,218,299,300,2703,4029,310,215,217, - 2908,4205,31,5249,1087,2915,927,4150,5249,214, - 216,218,299,300,2703,5249,497,215,217,4158, - 31,4725,5249,5249,3997,323,1692,325,5249,168, - 318,1566,2548,41,814,38,4278,3260,36,874, - 342,37,868,1032,2611,41,1626,389,5249,3607, - 5249,2775,2548,41,814,38,4278,245,36,874, - 342,37,868,5249,1238,41,1626,389,2987,2908, - 5249,1201,3371,1087,5249,2619,4713,5249,501,5249, - 1553,280,2775,4666,2619,5249,4725,5249,104,229, - 323,1692,325,236,5249,318,1566,2283,168,1751, - 2804,57,346,2619,535,239,4725,1584,1381,2832, - 323,1692,325,2607,5249,318,1566,999,406,4387, - 201,346,4220,5249,1304,5249,417,2963,3413,164, - 31,243,237,238,1087,335,5249,5249,188,3223, - 5249,31,5249,4268,281,1087,5249,5249,407,408, - 409,299,300,2703,312,315,5249,5249,5249,164, - 250,253,256,259,2914,203,2519,5249,4398,2274, - 164,1261,5249,2655,2841,5249,1500,41,814,38, - 1811,4666,36,874,342,37,868,1524,41,814, - 38,3360,5249,36,874,342,37,868,1500,41, - 814,38,5249,4666,36,874,342,37,868,5249, - 31,4042,338,5249,2619,1765,5249,5249,5249,2619, - 4666,5249,1276,5249,5249,402,2619,4713,410,412, - 4725,5249,346,336,323,1692,325,2657,1765,321, - 1566,4725,2619,4666,236,320,2910,325,5249,5249, - 2856,1043,4725,4422,859,336,323,1692,325,5249, - 2657,319,1566,31,5249,1804,5249,2619,999,406, - 4387,5249,335,5249,5249,4045,204,5249,2607,5249, - 2673,41,1626,389,5249,346,5249,4072,5249,1393, - 41,1626,389,5249,5249,335,5249,5249,5249,407, - 408,409,299,300,2703,2828,363,859,5249,1419, - 41,1626,389,1241,41,1626,389,57,507,5249, - 1769,2583,2601,1584,2655,1650,57,5249,3521,363, - 2071,5249,1584,5249,1727,4559,5249,5249,5249,2841, - 3205,5249,3560,1769,2583,2601,57,5249,5249,5249, - 57,3010,1584,5249,55,5249,1584,5249,55,2726, - 41,1626,389,1393,41,1626,389,5249,31,5249, - 31,2723,1087,5249,1087,993,4147,338,1333,410, - 413,2726,41,1626,389,2726,41,1626,389,5249, - 2726,41,1626,389,5249,5249,57,164,5249,164, - 57,5249,1584,5249,55,5249,1584,1934,55,2022, - 5249,2726,41,1626,389,5249,5249,5249,57,5249, - 2988,733,57,5249,1584,2836,55,57,1584,5249, - 55,5249,1076,1584,379,55,5249,2976,41,1626, - 389,31,31,1216,5249,2619,535,2822,57,5249, - 5249,5249,3175,5249,1584,5249,55,2999,41,1626, - 389,5249,5249,346,346,5249,1238,41,1626,389, - 5249,164,5249,3267,57,1238,41,1626,389,31, - 1584,1433,55,2619,5249,859,859,1238,41,1626, - 389,428,5249,5249,57,5249,505,1636,5249,2759, - 1584,346,55,57,1238,41,1626,389,5249,1584, - 5249,2573,57,1238,41,1626,389,2908,1584,3549, - 2927,1087,5249,859,57,1238,41,1626,389,5249, - 1584,5249,3611,4142,532,31,31,5249,31,535, - 1087,57,535,5249,31,5249,168,1584,535,671, - 57,31,5249,5249,5249,1087,1584,346,2031,5249, - 346,5249,57,5249,164,164,346,164,1584,5249, - 2119,5249,31,164,196,2110,1087,196,5249,4252, - 164,5249,4252,196,5249,5249,5249,5249,4252,5249, - 1600,5249,5249,5249,5249,5249,5249,5249,5249,5249, - 5249,164,5249,5249,5249,5249,5249,5249,5249,5249, - 5249,4140,5249,5249,3172,5249,5249,5249,5249,5249, - 5249,5249,5249,5249,5249,5249,5249,5249,5249,5249, - 5249,5249,5249,5249,5249,5249,5249,5249,3525,5249, - 5249,3640,5249,5249,5249,5249,5249,4032,5249,0, - 45,5269,0,45,5268,0,1125,35,0,438, - 1305,0,452,2240,0,44,5269,0,44,5268, - 0,2452,134,0,1,442,0,456,630,0, - 455,1390,0,1125,47,0,3297,99,0,1125, - 388,0,41,39,0,38,40,0,45,1220, - 0,1,645,0,1,5528,0,1,5527,0, - 1,5526,0,1,5525,0,1,5524,0,1, - 5523,0,1,5522,0,1,5521,0,1,5520, - 0,1,5519,0,1,5518,0,45,1,5269, - 0,45,1,5268,0,922,1,0,5490,248, - 0,5489,248,0,5590,248,0,5589,248,0, - 5517,248,0,5516,248,0,5515,248,0,5514, - 248,0,5513,248,0,5512,248,0,5511,248, - 0,5510,248,0,5528,248,0,5527,248,0, - 5526,248,0,5525,248,0,5524,248,0,5523, - 248,0,5522,248,0,5521,248,0,5520,248, - 0,5519,248,0,5518,248,0,45,248,5269, - 0,45,248,5268,0,5293,248,0,56,5269, - 0,56,5268,0,5255,1,0,5254,1,0, - 244,2743,0,389,38,0,38,389,0,388, - 35,0,35,388,0,51,5291,0,51,43, - 0,5269,56,0,5268,56,0,2452,136,0, - 2452,135,0,5582,443,0,2525,443,0,5293, - 1,0,45,1,0,55,43,0,1,100, - 0,43,55,0,499,2685,0,5293,235,1, - 0,45,235,1,0,235,415,0,43,5269, - 0,43,5268,0,1,5269,2,0,1,5268, - 2,0,43,5269,2,0,43,5268,2,0, - 5269,42,0,5268,42,0,5291,53,0,53, - 43,0,5259,404,0,5258,404,0,1,580, - 0,1,1220,0,1,2973,0,235,414,0, - 3296,322,0,5582,103,0,2525,103,0,41, - 81,0,1,5582,0,1,2525,0,45,1, - 5269,2,0,45,1,5268,2,0,45,5269, - 2,0,45,5268,2,0,285,4059,0,499, - 4030,0,235,1,0,235,227,0,235,226, - 0,1,2712,0,1,3249,0,5261,1,0, - 5257,1,0,235,1,3179,0,5258,235,0, - 3190,235,0,3314,235,0,10,12,0,8, - 10,12,0,8,12,0,193,3206,0 + 105,105,105,107,107,106,106,197,197,91, + 91,180,180,180,180,180,125,46,46,156, + 179,179,126,126,126,126,127,158,181,181, + 37,37,116,128,128,128,128,108,108,120, + 120,120,159,160,160,160,160,160,160,160, + 160,160,160,160,184,184,182,182,183,183, + 161,161,161,161,162,185,110,109,109,186, + 186,163,163,163,163,102,102,102,187,187, + 9,9,10,188,188,189,164,155,155,165, + 165,166,167,167,6,6,7,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,77, + 82,82,169,169,130,130,131,131,131,131, + 131,131,3,132,132,129,129,111,111,85, + 78,74,157,157,112,112,190,190,190,133, + 133,124,124,191,191,170,170,1132,41,1671, + 1653,1212,4505,36,1040,33,37,953,32,34, + 1628,31,29,58,1050,114,84,85,116,2199, + 1084,1247,1112,1266,1250,1291,1411,1284,1327,1493, + 1309,1352,1370,151,280,2064,1350,1423,166,152, + 4557,4536,1530,41,941,38,3615,1258,36,1040, + 342,37,953,1339,2447,41,941,38,239,2994, + 36,1040,33,37,953,32,34,872,31,29, + 58,1050,114,84,85,116,2641,1084,1247,1112, + 1266,1250,1905,31,242,237,238,1046,1779,592, + 41,453,2637,66,4621,2940,4672,281,3085,31, + 323,2318,325,687,356,318,1989,956,239,498, + 2675,420,2161,249,252,255,258,2934,3467,2771, + 930,1190,41,941,38,1294,4509,36,1040,33, + 37,953,65,34,251,237,238,1337,2929,651, + 1751,726,587,2691,3162,3503,4233,1655,41,941, + 38,2637,2994,36,1040,33,37,953,32,34, + 872,31,29,58,1050,114,84,85,116,346, + 1084,1247,1112,1266,1250,1291,405,1284,1327,363, + 1309,1352,1370,151,71,392,1384,456,517,152, + 1467,2763,501,3190,2592,2607,1966,3176,430,246, + 732,506,518,1511,1655,41,941,38,2637,2994, + 36,1040,33,37,953,32,34,872,31,29, + 58,1050,114,84,85,116,346,1084,1247,1112, + 1266,1250,1291,96,1284,1327,110,1309,1352,1370, + 151,1238,41,1481,391,517,152,239,2763,335, + 1238,1499,2530,40,446,3271,3305,69,513,518, + 2158,41,941,38,1357,4509,36,1040,33,37, + 953,64,34,247,237,238,2257,635,431,2258, + 2869,1776,1933,1655,41,941,38,2637,2994,36, + 1040,33,37,953,32,34,872,31,29,58, + 1050,114,84,85,116,346,1084,1247,1112,1266, + 1250,1291,1980,1284,1327,513,1309,1352,1370,151, + 1887,592,41,286,517,152,3267,2763,1263,41, + 1438,49,332,2359,48,1040,2258,2658,518,357, + 1857,41,941,38,2637,2994,36,1040,33,37, + 953,32,34,872,31,29,58,1050,114,84, + 85,116,346,1084,1247,1112,1266,1250,1291,497, + 1284,1327,2861,1309,1352,1370,151,1238,41,1481, + 391,517,152,1411,2763,443,1238,41,1481,391, + 1238,41,2530,2546,513,518,68,2141,41,941, + 38,1908,4083,36,1040,33,37,953,32,34, + 1969,511,2475,2016,434,2258,1238,41,2561,1986, + 41,941,38,433,2994,36,1040,33,37,953, + 32,34,872,31,29,58,1050,114,84,85, + 116,2940,1084,1247,1112,1266,1250,1291,403,1284, + 1327,514,1309,1352,1370,151,1238,41,289,4149, + 382,152,1721,41,941,38,460,2994,36,1040, + 33,37,953,32,34,872,31,29,58,1050, + 114,84,85,116,857,1084,1247,1112,1266,1250, + 1291,317,1284,1327,66,1309,1352,1370,151,4583, + 2151,31,4149,382,152,744,2095,41,941,38, + 2747,2994,36,1040,33,37,953,32,34,872, + 31,29,58,1050,114,84,85,116,2619,1084, + 1247,1112,1266,1250,1291,1411,1284,1327,501,1309, + 1352,1370,151,3176,1545,388,2112,166,152,2125, + 1921,41,941,38,1984,2994,36,1040,33,37, + 953,32,34,872,31,29,58,1050,114,84, + 85,116,1104,1084,1247,1112,1266,1250,1291,97, + 1284,1327,110,1309,1352,1370,151,2960,389,2112, + 4149,382,152,393,427,335,2095,41,941,38, + 3763,2994,36,1040,33,37,953,32,34,872, + 31,29,58,1050,114,84,85,116,459,1084, + 1247,1112,1266,1250,1291,407,1284,1327,2847,1309, + 1352,1370,151,1911,41,941,38,376,152,36, + 1040,46,37,953,2447,41,941,38,651,2994, + 36,1040,33,37,953,32,34,872,31,29, + 58,1050,114,84,85,116,523,1084,1247,1112, + 1266,1250,1291,359,1284,1981,380,2112,2095,41, + 941,38,531,2994,36,1040,33,37,953,32, + 34,872,31,29,58,1050,114,84,85,116, + 1751,1084,1247,1112,1266,1250,1291,327,1284,1327, + 2166,1309,1352,1370,151,1238,41,3101,2874,376, + 152,375,2095,41,941,38,1701,2994,36,1040, + 33,37,953,32,34,872,31,29,58,1050, + 114,84,85,116,153,1084,1247,1112,1266,1250, + 1291,60,1284,1327,2219,1309,1352,1370,151,1238, + 41,2530,283,376,152,1793,41,941,38,1236, + 2994,36,1040,33,37,953,32,34,872,31, + 29,58,1050,114,84,85,116,756,1084,1247, + 1112,1266,1250,1291,2544,1284,1327,2460,1309,1352, + 1370,151,4588,374,1238,4140,150,152,2095,41, + 941,38,321,2994,36,1040,33,37,953,32, + 34,872,31,29,58,1050,114,84,85,116, + 1410,1084,1247,1112,1266,1250,1291,981,1284,1327, + 2869,1309,1352,1370,151,1238,2791,372,2658,167, + 152,2095,41,941,38,1260,2994,36,1040,33, + 37,953,32,34,872,31,29,58,1050,114, + 84,85,116,1338,1084,1247,1112,1266,1250,1291, + 3935,1284,1327,2219,1309,1352,1370,151,2700,41, + 2530,283,163,152,2095,41,941,38,2194,2994, + 36,1040,33,37,953,32,34,872,31,29, + 58,1050,114,84,85,116,679,1084,1247,1112, + 1266,1250,1291,3243,1284,1327,1411,1309,1352,1370, + 151,1238,2902,2530,82,162,152,2095,41,941, + 38,2240,2994,36,1040,33,37,953,32,34, + 872,31,29,58,1050,114,84,85,116,1353, + 1084,1247,1112,1266,1250,1291,293,1284,1327,1411, + 1309,1352,1370,151,2700,41,2530,3035,161,152, + 2095,41,941,38,1469,2994,36,1040,33,37, + 953,32,34,872,31,29,58,1050,114,84, + 85,116,1162,1084,1247,1112,1266,1250,1291,3957, + 1284,1327,1411,1309,1352,1370,151,1238,41,2530, + 288,160,152,2095,41,941,38,1777,2994,36, + 1040,33,37,953,32,34,872,31,29,58, + 1050,114,84,85,116,1271,1084,1247,1112,1266, + 1250,1291,59,1284,1327,1934,1309,1352,1370,151, + 1238,41,2530,285,159,152,2095,41,941,38, + 2230,2994,36,1040,33,37,953,32,34,872, + 31,29,58,1050,114,84,85,116,1510,1084, + 1247,1112,1266,1250,1291,330,1284,1327,2219,1309, + 1352,1370,151,1238,41,2530,3108,158,152,2095, + 41,941,38,2690,2994,36,1040,33,37,953, + 32,34,872,31,29,58,1050,114,84,85, + 116,2630,1084,1247,1112,1266,1250,1291,3594,1284, + 1327,66,1309,1352,1370,151,4603,438,2042,2658, + 157,152,2095,41,941,38,675,2994,36,1040, + 33,37,953,32,34,872,31,29,58,1050, + 114,84,85,116,762,1084,1247,1112,1266,1250, + 1291,30,1284,1327,66,1309,1352,1370,151,4614, + 331,2688,2658,156,152,2095,41,941,38,2805, + 2994,36,1040,33,37,953,32,34,872,31, + 29,58,1050,114,84,85,116,2814,1084,1247, + 1112,1266,1250,1291,77,1284,1327,2112,1309,1352, + 1370,151,1724,331,2197,2658,155,152,2095,41, + 941,38,2598,2994,36,1040,33,37,953,32, + 34,872,31,29,58,1050,114,84,85,116, + 523,1084,1247,1112,1266,1250,1291,76,1284,1327, + 2617,1309,1352,1370,151,2890,41,397,2658,154, + 152,2095,41,941,38,1704,2994,36,1040,33, + 37,953,32,34,872,31,29,58,1050,114, + 84,85,116,78,1084,1247,1112,1266,1250,1291, + 61,1284,1327,66,1309,1352,1370,151,4634,1238, + 3565,2658,153,152,2051,41,941,38,2267,2994, + 36,1040,33,37,953,32,34,872,31,29, + 58,1050,114,84,85,116,79,1084,1247,1112, + 1266,1250,1291,95,1284,1327,55,1309,1352,2493, + 172,2095,41,941,38,147,2994,36,1040,33, + 37,953,32,34,872,31,29,58,1050,114, + 84,85,116,3313,1084,1247,1112,1266,1250,1291, + 2547,1284,1327,2271,1309,1352,1370,151,3176,592, + 41,286,148,152,3653,1591,31,331,2803,1046, + 823,2771,2359,41,941,38,1552,2994,36,1040, + 33,37,953,32,34,872,31,29,58,1050, + 114,84,85,116,164,1084,1247,1112,1266,1250, + 1291,1314,1284,1327,535,1309,1352,1370,151,1906, + 336,240,2658,197,152,2447,41,941,38,1508, + 2994,36,1040,33,37,953,32,34,872,31, + 29,58,1050,114,84,85,116,290,1084,1247, + 1112,1266,1250,1291,60,1284,1327,161,1309,1352, + 2493,172,2447,41,941,38,669,2994,36,1040, + 33,37,953,32,34,872,31,29,58,1050, + 114,84,85,116,384,1084,1247,1112,1266,1250, + 1291,2281,1284,1327,328,1309,1352,2493,172,2033, + 41,941,38,2658,4083,36,1040,33,37,953, + 67,34,1651,2447,41,941,38,297,2994,36, + 1040,33,37,953,32,34,872,31,29,58, + 1050,114,84,85,116,353,1084,1247,1112,1266, + 1250,1291,2219,1284,1327,541,1309,1352,2493,172, + 2447,41,941,38,2365,2994,36,1040,33,37, + 953,32,34,872,31,29,58,1050,114,84, + 85,116,1378,1084,1247,1112,1266,1250,1291,1173, + 1284,1327,4315,1309,1352,2493,172,2033,41,941, + 38,2658,4083,36,1040,33,37,953,66,34, + 2221,2447,41,941,38,423,2994,36,1040,33, + 37,953,32,34,872,31,29,58,1050,114, + 84,85,116,98,1084,1247,1112,1266,1250,1291, + 2219,1284,1327,2575,1309,1352,2493,172,2491,41, + 941,38,422,2994,36,1040,33,37,953,32, + 34,872,31,29,58,1050,114,84,85,116, + 2661,1084,1247,1112,1266,1250,1291,2724,1284,1327, + 2974,1309,1352,2493,172,1911,41,941,38,2658, + 2960,36,1040,1127,37,953,4305,2265,1075,2447, + 41,941,38,425,2994,36,1040,33,37,953, + 32,34,872,31,29,58,1050,114,84,85, + 116,3303,1084,1247,1112,1266,1250,1291,304,1284, + 1327,31,1309,2036,1034,2527,2447,41,941,38, + 3505,2994,36,1040,33,37,953,32,34,872, + 31,29,58,1050,114,84,85,116,2164,1084, + 1247,1112,1266,1250,1291,4152,1284,1327,1411,1999, + 2447,41,941,38,447,2994,36,1040,33,37, + 953,32,34,872,31,29,58,1050,114,84, + 85,116,2908,1084,1247,1112,1266,1250,1291,2499, + 1991,2447,41,941,38,1411,2994,36,1040,33, + 37,953,32,34,872,31,29,58,1050,114, + 84,85,116,2960,1084,1247,1112,1266,1930,2447, + 41,941,38,329,2994,36,1040,33,37,953, + 32,34,872,31,29,58,1050,114,84,85, + 116,105,1084,1247,1112,1266,1948,2447,41,941, + 38,228,2994,36,1040,33,37,953,32,34, + 872,31,29,58,1050,114,84,85,116,1110, + 1084,1247,1112,1767,2447,41,941,38,106,2994, + 36,1040,33,37,953,32,34,872,31,29, + 58,1050,114,84,85,116,2357,1084,1247,1112, + 1774,2447,41,941,38,2772,2994,36,1040,33, + 37,953,32,34,872,31,29,58,1050,114, + 84,85,116,1381,1084,1247,1112,1782,2447,41, + 941,38,1636,2994,36,1040,33,37,953,32, + 34,872,31,29,58,1050,114,84,85,116, + 2775,1084,1247,1112,1810,262,501,1375,1973,537, + 2751,3176,3601,1911,41,941,38,421,2561,36, + 1040,343,37,953,31,1375,2849,236,4264,1911, + 41,941,38,1847,164,36,1040,2250,37,953, + 354,2909,1,188,3339,2974,537,1238,41,1481, + 391,211,222,2686,210,219,220,221,223,2960, + 408,177,31,335,236,680,1024,1173,2545,2809, + 176,164,849,191,175,178,179,180,181,182, + 188,3339,2974,355,432,3067,2545,1118,211,222, + 2686,210,219,220,221,223,3568,308,177,55, + 1173,347,804,569,352,332,338,176,189,2073, + 192,175,178,179,180,181,182,2535,41,1481, + 391,31,4478,337,338,2862,2447,41,941,38, + 244,2994,36,1040,33,37,953,32,34,872, + 31,29,58,1050,114,84,85,116,1668,1084, + 1247,1825,50,2502,280,1485,41,941,38,2526, + 2081,36,1040,342,37,953,2541,41,941,38, + 2827,2140,36,1040,342,37,953,1651,239,2658, + 2562,2447,41,941,38,2903,2994,36,1040,33, + 37,953,32,34,872,31,29,58,1050,114, + 84,85,93,31,242,237,238,628,2591,4672, + 2658,3321,2761,323,2318,325,2540,281,318,1989, + 4672,2890,41,397,320,3071,325,1238,41,298, + 355,2854,239,249,252,255,258,2934,2799,41, + 287,501,75,1971,2245,1294,3176,1078,347,804, + 569,352,2834,41,284,2771,2853,383,254,237, + 238,726,587,2691,3162,3503,4233,2447,41,941, + 38,1346,2994,36,1040,33,37,953,32,34, + 872,31,29,58,1050,114,84,85,116,857, + 1084,1247,1868,1706,41,941,38,4413,3602,36, + 1040,342,37,953,1774,1557,956,1766,41,941, + 38,3615,3176,36,1040,342,37,953,355,1643, + 3456,291,2175,41,298,354,2709,1643,2658,3322, + 2637,3595,3176,1650,1801,369,347,804,569,352, + 1375,2263,2644,2791,345,2637,31,4672,236,2855, + 680,323,2318,325,31,2744,318,1989,2952,4109, + 74,4672,3454,346,335,323,2318,325,355,3467, + 318,1989,213,222,2686,212,219,220,221,223, + 102,101,2995,852,336,2728,347,804,569,352, + 1238,41,1481,391,2073,4019,349,4362,394,427, + 537,2545,355,214,216,218,299,300,2736,2044, + 224,215,217,2637,2609,41,2439,2585,236,4525, + 349,804,569,352,2599,164,1638,280,1046,311, + 315,2675,857,436,188,3339,2974,537,334,338, + 4095,3099,211,222,2686,210,219,220,221,223, + 2383,57,177,168,2938,236,2658,1456,2525,1255, + 3311,176,164,292,3535,175,178,179,180,181, + 182,188,3339,2974,1637,41,1481,391,1651,211, + 222,2686,210,219,220,221,223,523,73,177, + 282,537,1951,2824,1238,41,1481,391,176,2125, + 364,186,175,178,179,180,181,182,1335,236, + 2844,57,2637,2866,2637,1734,164,1456,2064,2082, + 190,1818,2582,4557,610,188,3339,2974,537,2964, + 2675,452,2675,211,222,2686,210,219,220,221, + 223,396,427,177,2997,2533,236,1238,41,1481, + 391,3017,176,164,2768,184,175,178,179,180, + 181,182,188,3339,2974,1238,41,1481,391,2221, + 211,222,2686,210,219,220,221,223,697,2771, + 177,2782,537,1335,57,3106,857,2637,3021,176, + 54,1395,185,175,178,179,180,181,182,505, + 236,505,57,2658,66,2675,2771,164,1456,4641, + 593,2799,41,284,2589,784,188,3339,2974,537, + 1337,2906,1837,358,211,222,2686,210,219,220, + 221,223,531,2846,177,72,2219,236,502,504, + 502,504,2521,176,164,302,195,175,178,179, + 180,181,182,188,3339,2974,1238,41,1481,391, + 1417,211,222,2686,210,219,220,221,223,871, + 2658,177,301,537,505,3023,2974,3231,1600,3472, + 176,429,2003,3624,175,178,179,180,181,182, + 1779,236,525,57,2637,395,427,2771,164,1456, + 3067,2580,3490,239,3074,2998,958,188,3339,2974, + 537,1196,2675,503,504,211,222,2686,210,219, + 220,221,223,31,4681,177,3000,3334,236,257, + 237,238,31,447,176,164,1046,200,175,178, + 179,180,181,182,188,3339,2974,1238,41,1481, + 391,2945,211,222,2686,210,219,220,221,223, + 1045,4137,177,309,537,2999,31,52,2502,1046, + 2860,176,522,1034,194,175,178,179,180,181, + 182,363,236,31,57,3028,2658,3498,3034,164, + 1456,2966,3131,3019,164,4014,2592,2607,188,3339, + 2974,31,3032,208,4184,1240,211,222,2686,210, + 219,220,221,223,2644,2791,177,1094,63,2960, + 1417,1027,41,453,2731,176,4621,3038,202,175, + 178,179,180,181,182,2447,41,941,38,88, + 2994,36,1040,33,37,953,32,34,872,31, + 29,58,1050,114,84,85,116,187,1084,1696, + 2447,41,941,38,3039,2994,36,1040,33,37, + 953,32,34,872,31,29,58,1050,114,84, + 85,116,3040,1084,1714,1367,41,3111,38,3615, + 3176,36,1040,342,37,953,2215,41,941,38, + 2526,2771,36,1040,342,37,953,2447,41,941, + 38,3041,2994,36,1040,33,37,953,32,34, + 872,31,29,58,1050,114,84,85,116,31, + 1731,2658,522,537,31,292,2358,31,2846,4672, + 2170,1046,335,323,2318,325,3045,2658,318,1989, + 4672,346,1312,31,323,2318,325,3210,164,318, + 1989,2352,3046,62,2775,2824,164,385,1689,175, + 31,355,526,2763,4020,4362,1509,1688,1375,326, + 2890,41,397,2941,1388,3047,450,3271,3305,347, + 804,569,352,2447,41,941,38,527,2994,36, + 1040,33,37,953,32,34,872,31,29,58, + 1050,114,84,85,116,588,1739,2447,41,941, + 38,2960,2994,36,1040,33,37,953,32,34, + 872,31,29,58,1050,114,84,85,116,2545, + 1757,1238,41,298,239,3050,418,3134,1228,41, + 941,38,2282,3176,36,1040,342,37,953,206, + 2960,3052,940,41,1481,391,2125,3053,950,2815, + 260,237,238,2637,31,2960,3612,338,3589,2857, + 2599,1547,2719,2637,1046,2637,3176,3176,3617,31, + 31,236,31,3028,3089,501,1089,3054,205,280, + 3176,236,4672,2675,814,336,323,2318,325,168, + 31,319,1989,307,3019,213,222,2686,212,219, + 220,221,223,355,3014,213,222,2686,212,219, + 220,221,223,1238,41,1481,391,2658,335,3602, + 5250,349,804,569,352,4251,214,216,218,299, + 300,2736,335,224,215,217,214,216,218,299, + 300,2736,2668,224,215,217,5250,5250,5250,109, + 57,2847,363,5250,5250,80,1456,1992,2772,5250, + 5250,5250,5250,4095,3126,4373,2249,2592,2607,5250, + 327,5250,5250,4095,3217,2447,1499,941,1524,531, + 2994,36,1040,33,37,953,32,34,872,31, + 29,58,1050,114,84,85,92,2447,41,941, + 38,104,2994,36,1040,33,37,953,32,34, + 872,31,29,58,1050,114,84,85,91,2447, + 41,941,38,2899,2994,36,1040,33,37,953, + 32,34,872,31,29,58,1050,114,84,85, + 90,2447,41,941,38,5250,2994,36,1040,33, + 37,953,32,34,872,31,29,58,1050,114, + 84,85,89,2447,41,941,38,5250,2994,36, + 1040,33,37,953,32,34,872,31,29,58, + 1050,114,84,85,88,2447,41,941,38,1896, + 2994,36,1040,33,37,953,32,34,872,31, + 29,58,1050,114,84,85,87,2447,41,941, + 38,5250,2994,36,1040,33,37,953,32,34, + 872,31,29,58,1050,114,84,85,86,2313, + 41,941,38,5250,2994,36,1040,33,37,953, + 32,34,872,31,29,58,1050,114,84,85, + 112,2447,41,941,38,5250,2994,36,1040,33, + 37,953,32,34,872,31,29,58,1050,114, + 84,85,118,2447,41,941,38,5250,2994,36, + 1040,33,37,953,32,34,872,31,29,58, + 1050,114,84,85,117,2447,41,941,38,5250, + 2994,36,1040,33,37,953,32,34,872,31, + 29,58,1050,114,84,85,115,2447,41,941, + 38,5250,2994,36,1040,33,37,953,32,34, + 872,31,29,58,1050,114,84,85,113,1902, + 41,941,38,3615,5250,36,1040,342,37,953, + 2403,41,941,38,5250,2994,36,1040,33,37, + 953,32,34,872,31,29,58,1050,94,84, + 85,31,2876,31,2658,1046,2637,2637,31,31, + 1375,5250,4287,3599,2599,31,2753,31,1046,2637, + 2637,537,31,4672,236,346,3030,323,2318,325, + 164,2599,318,1989,5250,1046,4018,346,236,346, + 2027,5250,5250,168,5250,852,164,2763,213,222, + 2686,212,219,220,221,223,1775,5250,1542,2763, + 168,2763,213,222,2686,212,219,220,221,223, + 1567,2545,1732,1238,41,1481,391,5250,5250,214, + 216,218,299,300,2736,2785,520,215,217,2637, + 5250,311,315,214,216,218,299,300,2736,2918, + 519,215,217,2637,5250,5250,5250,236,3630,338, + 57,3306,4377,31,5250,31,1456,3180,2082,1046, + 5250,236,3311,2658,2658,31,1476,2658,3451,3586, + 2960,213,222,2686,212,219,220,221,223,31, + 2658,2658,2219,3421,164,213,222,2686,212,219, + 220,221,223,2948,2730,2579,451,2637,529,381, + 5250,5250,214,216,218,299,300,2736,209,225, + 215,217,3098,3135,2960,236,214,216,218,299, + 300,2736,2974,310,215,217,1781,41,3111,38, + 3615,5250,36,1040,342,37,953,5250,379,213, + 222,2686,212,219,220,221,223,1530,41,941, + 38,3615,207,36,1040,342,37,953,2599,5250, + 5250,5250,1046,2604,41,1481,391,5250,4478,2219, + 214,216,218,299,300,2736,245,499,215,217, + 4672,2960,5250,5250,323,2318,325,168,5250,318, + 1989,2999,31,31,1201,537,537,2637,2637,4652, + 280,4672,2352,5250,31,323,2318,325,1046,2974, + 318,1989,5250,4328,346,346,236,1375,5250,303, + 164,164,2939,852,239,524,2637,2658,31,188, + 3339,1689,1046,164,5250,31,2763,2763,377,3340, + 678,408,4402,2848,346,31,2960,1861,1595,959, + 243,237,238,5250,530,3657,203,164,31,3189, + 2959,5250,3979,281,3416,5250,2763,2976,5250,312, + 315,409,410,411,299,300,2736,533,2545,250, + 253,256,259,2934,4572,2599,5250,419,3134,1046, + 5250,1294,1500,41,941,38,2680,3176,36,1040, + 342,37,953,1500,41,941,38,2960,3176,36, + 1040,342,37,953,168,4135,338,5250,2175,3225, + 298,1530,41,941,38,3615,5250,36,1040,342, + 37,953,1838,41,941,38,3405,5250,36,1040, + 342,37,953,1547,5250,229,4672,2637,3176,336, + 323,2318,325,412,414,321,1989,4672,3454,5250, + 336,323,2318,325,2658,2675,319,1989,4663,204, + 404,5250,2658,31,2960,4672,659,2637,4453,323, + 2318,325,4134,1276,318,1989,4672,2637,4652,5250, + 320,3071,325,2658,2658,346,3156,3587,5250,31, + 335,5250,3051,2637,4239,236,2637,5250,1241,41, + 1481,391,201,4136,5250,5250,5250,2763,5250,5250, + 5250,346,1638,5250,346,4444,3280,5250,1610,678, + 408,4402,5250,3568,363,2667,41,1481,391,1524, + 41,1481,391,2763,5250,57,4330,5250,2249,2592, + 2607,1456,5250,2466,2699,1583,41,1481,391,5250, + 409,410,411,299,300,2736,1241,41,1481,391, + 2910,5250,57,5250,5250,5250,57,5250,1456,5250, + 2520,5250,1456,5250,2553,2680,3456,2825,41,1481, + 391,5250,57,5250,5250,5250,5250,2910,1456,5250, + 55,3582,3010,57,2144,5250,1046,5250,2637,1456, + 5250,55,5250,1524,41,1481,391,2758,2825,41, + 1481,391,5250,5250,57,5250,346,5250,996,5250, + 1456,164,55,2825,41,1481,391,5250,5250,5250, + 5250,170,412,415,2825,41,1481,391,736,781, + 57,2825,41,1481,391,57,1456,5250,55,5250, + 5250,1456,5250,55,2979,41,1481,391,5250,5250, + 57,2982,41,1481,391,2549,1456,5250,55,5250, + 917,57,1238,41,1481,391,5250,1456,57,55, + 5250,5250,4442,3003,1456,926,55,537,5250,5250, + 5250,57,1238,41,1481,391,2567,1456,57,55, + 5250,2219,5250,3014,1456,346,55,5250,5250,57, + 31,5250,164,5250,537,1456,2747,2697,5250,5250, + 5250,31,196,3561,31,537,31,4391,537,57, + 2637,5250,346,5250,31,1456,31,2998,2637,164, + 2637,2974,5250,346,5250,5250,346,5250,346,196, + 164,5250,5250,164,4391,31,346,379,346,1046, + 196,5250,456,196,5250,4391,4464,31,4391,31, + 2763,1046,5250,1046,5250,5250,5250,5250,2763,5250, + 2763,509,442,5250,164,5250,198,5250,5250,507, + 5250,534,5250,5250,3123,5250,164,5250,164,5250, + 5250,5250,5250,5250,5250,5250,2328,5250,4463,5250, + 5250,5250,5250,4150,5250,5250,5250,5250,5250,5250, + 5250,5250,5250,5250,4151,5250,5250,4297,5250,5250, + 5250,5250,5250,5250,5250,5250,5250,5250,5250,5250, + 5250,5250,5250,5250,5250,5250,5250,5250,5250,5250, + 5250,5250,5250,5250,5250,5250,5250,4123,5250,4316, + 5250,0,45,5270,0,45,5269,0,639,35, + 0,440,1041,0,454,1946,0,44,5270,0, + 44,5269,0,2471,134,0,1,444,0,458, + 923,0,457,1075,0,639,47,0,623,99, + 0,639,390,0,41,39,0,38,40,0, + 45,790,0,1,633,0,1,5529,0,1, + 5528,0,1,5527,0,1,5526,0,1,5525, + 0,1,5524,0,1,5523,0,1,5522,0, + 1,5521,0,1,5520,0,1,5519,0,45, + 1,5270,0,45,1,5269,0,868,1,0, + 5491,248,0,5490,248,0,5591,248,0,5590, + 248,0,5518,248,0,5517,248,0,5516,248, + 0,5515,248,0,5514,248,0,5513,248,0, + 5512,248,0,5511,248,0,5529,248,0,5528, + 248,0,5527,248,0,5526,248,0,5525,248, + 0,5524,248,0,5523,248,0,5522,248,0, + 5521,248,0,5520,248,0,5519,248,0,45, + 248,5270,0,45,248,5269,0,5294,248,0, + 56,5270,0,56,5269,0,5256,1,0,5255, + 1,0,244,2944,0,391,38,0,38,391, + 0,390,35,0,35,390,0,51,5292,0, + 51,43,0,5270,56,0,5269,56,0,2471, + 136,0,2471,135,0,5583,445,0,2291,445, + 0,5294,1,0,45,1,0,55,43,0, + 1,100,0,43,55,0,501,2705,0,5294, + 235,1,0,45,235,1,0,235,417,0, + 43,5270,0,43,5269,0,1,5270,2,0, + 1,5269,2,0,43,5270,2,0,43,5269, + 2,0,5270,42,0,5269,42,0,5292,53, + 0,53,43,0,5260,406,0,5259,406,0, + 1,582,0,1,790,0,1,4574,0,235, + 416,0,3473,322,0,5583,103,0,2291,103, + 0,41,81,0,1,5583,0,1,2291,0, + 45,1,5270,2,0,45,1,5269,2,0, + 45,5270,2,0,45,5269,2,0,285,4024, + 0,501,4026,0,235,1,0,235,227,0, + 235,226,0,1,1815,0,1,2741,0,5262, + 1,0,5258,1,0,235,1,3347,0,5259, + 235,0,3359,235,0,5262,386,0,5261,386, + 0,3489,235,0,10,12,0,8,10,12, + 0,193,3226,0,3644,386,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1107,7 +1106,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 42,43,44,45,46,47,48,49,50,51, 52,53,0,55,56,57,58,0,60,61, 62,63,64,6,66,67,68,91,92,0, - 72,101,3,75,76,77,78,79,80,81, + 72,101,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, @@ -1176,214 +1175,214 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,0,55, 56,57,58,0,60,61,62,63,64,0, - 66,67,68,4,11,12,72,95,0,75, + 66,67,68,4,11,12,72,0,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,30, - 9,10,11,12,0,14,15,16,17,18, + 9,10,11,12,70,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,0,55,69,57,0, - 1,2,61,4,5,121,7,66,67,68, + 49,50,51,52,53,0,55,70,57,0, + 1,2,61,4,5,0,7,66,67,68, 0,1,2,3,4,5,6,7,8,9, 10,0,0,13,14,15,16,17,18,19, 20,21,22,23,24,25,65,0,1,2, 3,4,5,6,7,0,9,0,1,2, 0,1,2,54,44,45,46,47,48,49, 50,51,52,53,54,55,56,0,58,0, - 75,61,0,0,0,30,66,67,68,57, - 8,71,72,73,17,0,1,2,3,4, + 65,61,0,1,2,70,66,67,68,7, + 0,71,72,73,17,0,1,2,3,4, 5,6,7,8,9,10,59,87,13,14, 15,16,17,18,19,20,21,22,23,24, 25,44,45,46,47,48,49,50,51,52, - 53,100,55,0,114,115,116,54,59,44, + 53,0,55,0,114,115,116,0,59,44, 45,46,47,48,49,50,51,52,53,54, - 55,56,0,58,70,0,61,0,1,2, - 8,66,67,68,7,0,71,72,73,0, + 55,56,121,58,0,100,61,0,0,1, + 2,66,67,68,10,0,71,72,73,0, 1,2,0,4,0,3,0,8,6,3, - 8,9,87,11,12,13,102,54,104,105, - 106,107,108,109,110,111,112,113,26,27, - 118,117,30,0,30,0,1,2,0,114, - 115,116,0,1,2,0,64,14,15,16, + 8,9,87,11,12,13,0,1,2,3, + 4,5,6,7,0,9,65,0,26,27, + 0,70,30,0,114,115,116,10,54,114, + 115,116,54,0,0,61,59,14,15,16, 17,18,19,20,21,22,23,24,25,0, - 65,59,3,64,69,59,28,65,0,1, - 2,69,70,71,0,73,74,44,45,46, - 47,48,49,50,51,52,53,0,55,54, + 0,59,99,64,69,59,0,65,8,45, + 46,69,70,71,30,73,74,44,45,46, + 47,48,49,50,51,52,53,0,55,73, 88,89,90,91,92,93,94,95,96,97, 98,99,100,101,102,103,104,105,106,107, - 108,109,110,111,112,113,0,30,0,117, - 118,3,120,121,6,0,8,9,3,11, - 12,13,0,17,0,1,2,3,4,5, - 6,7,0,9,26,27,4,73,30,0, + 108,109,110,111,112,113,0,73,0,117, + 118,3,120,121,6,0,8,9,69,11, + 12,13,102,8,0,1,2,3,4,5, + 6,7,0,9,26,27,30,117,30,0, 1,2,3,4,5,6,7,0,9,0, - 44,45,46,47,48,49,50,51,52,53, - 0,55,30,0,1,2,3,59,5,0, - 7,8,0,65,59,0,13,69,70,71, - 8,73,74,59,0,1,2,3,4,5, - 6,7,0,9,70,3,88,89,90,91, + 0,102,3,104,105,106,107,108,109,110, + 111,112,113,0,1,2,117,59,118,0, + 1,2,3,65,5,119,7,69,70,71, + 30,73,74,59,0,70,0,1,2,74, + 4,59,6,69,8,9,88,89,90,91, 92,93,94,95,96,97,98,99,100,101, 102,103,104,105,106,107,108,109,110,111, - 112,113,0,0,0,117,118,3,120,121, - 0,1,2,3,4,5,6,7,69,9, - 10,11,12,71,14,15,16,100,18,19, + 112,113,0,1,2,117,118,0,120,121, + 0,1,2,3,4,5,6,7,0,9, + 10,11,12,0,14,15,16,100,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,0,1,2,3,4,5, - 6,7,59,9,0,1,2,57,4,5, - 30,7,62,63,0,1,2,3,4,5, + 74,31,32,33,34,35,36,37,38,39, + 40,41,42,43,90,0,0,1,2,4, + 96,95,0,1,2,3,4,57,6,0, + 0,9,62,63,0,1,2,3,4,5, 6,7,72,9,10,11,12,0,14,15, 16,4,18,19,20,21,22,23,24,25, - 26,27,28,29,102,31,32,33,34,35, - 36,37,38,39,40,41,42,43,54,117, - 0,0,1,2,3,0,5,73,7,8, - 0,57,0,8,13,3,62,63,13,65, + 26,27,28,29,0,31,32,33,34,35, + 36,37,38,39,40,41,42,43,62,63, + 0,59,0,0,54,0,1,2,3,0, + 5,57,7,8,11,12,62,63,69,65, 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,0,18,19, + 10,11,12,0,14,15,16,4,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,0,1,2,30,4,59, - 6,0,8,9,69,0,71,57,0,1, - 2,3,0,5,64,7,8,54,0,1, - 2,71,0,1,2,3,4,5,6,7, - 8,9,10,11,12,30,14,15,16,0, + 40,41,42,43,59,0,1,2,3,4, + 5,6,7,0,9,0,0,57,0,74, + 0,1,2,3,64,5,8,7,88,89, + 0,71,0,1,2,3,4,5,6,7, + 0,9,10,11,12,30,14,15,16,59, 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,0,59,74,0, - 1,2,3,0,5,95,7,11,12,57, - 62,63,74,0,1,2,64,4,5,95, - 7,0,0,71,0,1,2,3,4,5, - 6,7,0,9,10,11,12,0,14,15, + 38,39,40,41,42,43,0,0,1,2, + 3,65,5,70,7,8,0,1,2,57, + 13,5,74,73,62,63,0,1,2,3, + 4,5,6,7,28,9,10,11,12,69, + 14,15,16,95,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, + 54,0,1,2,3,0,5,0,7,8, + 0,1,2,57,13,5,30,7,62,63, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,0,14,15,16,30,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,59,0,1,2,0,4, + 0,6,0,3,9,3,8,57,8,0, + 8,13,3,0,64,0,1,2,3,4, + 5,6,7,8,9,10,11,12,65,14, + 15,16,0,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,59, + 28,59,0,1,2,65,4,5,70,7, + 70,0,57,0,74,30,74,0,69,64, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,0,14,15,16,4,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,0,1,2,3,4,5, + 6,7,119,9,10,11,12,44,14,15, 16,0,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,65,0, - 0,30,73,0,1,2,3,4,8,6, - 59,57,9,114,115,116,62,63,0,1, + 36,37,38,39,40,41,42,43,95,0, + 0,1,2,0,4,5,3,7,5,6, + 0,57,9,73,11,12,17,0,1,2, + 119,4,5,0,7,0,3,0,118,26, + 27,4,29,30,0,1,2,114,115,116, + 30,57,8,44,45,46,47,48,49,50, + 51,52,53,0,55,30,0,30,0,88, + 89,3,59,5,6,62,63,9,65,11, + 12,54,69,70,0,1,2,3,0,5, + 0,7,59,30,26,27,8,29,30,0, + 65,88,89,90,91,92,93,94,64,0, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,59,93,94, + 62,63,0,65,0,3,0,69,70,30, + 0,1,2,59,4,0,6,11,12,9, + 0,0,64,3,88,89,88,89,90,91, + 92,93,94,73,65,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,0,1,2,3,4,5,6,7, + 0,9,10,11,12,0,14,15,16,65, + 18,19,20,21,22,23,24,25,26,27, + 28,29,61,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,0,0,1, 2,3,4,5,6,7,0,9,10,11, - 12,69,14,15,16,0,18,19,20,21, + 12,59,14,15,16,0,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,59,0,1,2,99,4,0,6, - 0,3,9,3,74,57,8,0,8,0, - 62,63,0,1,2,3,4,5,6,7, - 8,9,10,11,12,95,14,15,16,73, + 42,43,0,1,2,3,4,5,6,7, + 54,9,10,11,12,57,14,15,16,0, 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,0,59,0,59, - 0,1,2,65,0,1,2,69,4,57, - 6,0,74,9,74,4,64,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 0,14,15,16,4,18,19,20,21,22, - 23,24,25,26,27,28,29,65,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,0,1,2,3,4,5,6,7,73, - 9,10,11,12,44,14,15,16,0,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,0,0,0,1,2, - 0,4,5,3,7,5,6,0,57,9, - 0,11,12,17,0,1,2,3,8,5, - 0,7,0,13,0,118,26,27,4,29, - 30,0,1,2,114,115,116,30,0,8, - 44,45,46,47,48,49,50,51,52,53, - 0,55,30,0,0,0,88,89,3,59, - 5,6,62,63,9,65,11,12,44,69, - 70,90,0,59,0,1,2,96,4,69, - 6,26,27,9,29,30,0,65,88,89, - 90,91,92,93,94,64,10,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,59,93,94,62,63,65, - 65,0,0,0,69,70,0,1,2,0, - 4,8,6,11,12,9,13,0,88,89, - 3,88,89,88,89,90,91,92,93,94, - 0,30,97,98,99,100,101,102,103,104, - 105,106,107,108,109,110,111,112,113,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,0,14,15,16,0,18,19,20, - 21,22,23,24,25,26,27,28,29,70, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,0,0,0,1,2,3,4, - 5,6,7,73,9,10,11,12,59,14, - 15,16,0,18,19,20,21,22,23,24, - 25,26,27,28,29,59,31,32,33,34, - 35,36,37,38,39,40,41,42,43,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,57,14,15,16,0,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,0,1,2,3,4,5,6, - 7,0,9,10,11,12,0,14,15,16, - 4,18,19,20,21,22,23,24,25,26, - 27,28,29,119,31,32,33,34,35,36, - 37,38,39,40,41,42,43,0,1,2, - 3,4,5,6,7,0,9,10,11,12, - 0,14,15,16,0,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,0,1,2,17,4,0,0,1,2, - 3,10,5,0,7,14,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 65,44,45,46,47,48,49,50,51,52, - 53,0,55,30,3,44,45,46,47,48, - 49,50,51,52,53,0,55,0,0,1, - 2,3,61,5,0,7,0,66,67,68, - 0,1,2,0,4,0,1,2,65,4, - 10,54,0,0,14,15,16,17,18,19, - 20,21,22,23,24,25,0,1,2,3, - 4,5,6,7,8,9,93,94,0,13, - 28,45,46,17,44,45,46,47,48,49, - 50,51,52,53,0,55,30,0,0,54, - 0,61,0,1,2,8,66,67,68,0, - 44,45,46,47,48,49,50,51,52,53, - 0,55,88,89,30,59,0,1,2,3, - 4,5,6,7,8,9,0,1,2,13, - 74,88,89,17,119,0,1,2,3,4, - 5,6,7,8,9,0,1,2,13,65, - 0,0,17,65,62,63,69,69,71,69, - 44,45,46,47,48,49,50,51,52,53, - 0,55,73,0,0,59,3,93,94,0, - 1,2,3,4,5,6,7,8,9,54, - 74,56,13,58,0,60,17,0,0,26, - 27,3,8,0,1,2,71,13,5,30, - 7,0,1,2,3,4,5,6,7,8, - 9,0,87,0,13,0,1,2,17,59, - 5,8,59,54,0,56,13,58,0,60, - 0,0,1,2,3,4,5,6,7,8, - 9,30,0,0,13,0,1,2,17,0, - 1,2,0,1,2,54,87,56,0,58, - 30,60,0,1,2,0,103,0,10,54, - 28,0,71,0,1,2,3,4,5,6, - 7,8,9,120,73,54,13,56,87,58, - 17,60,0,1,2,3,4,5,6,7, - 8,9,71,54,0,13,54,0,65,17, - 0,0,54,0,0,0,54,0,87,61, - 0,1,2,8,0,8,0,54,0,56, - 4,58,8,60,0,1,2,3,4,5, - 6,7,8,9,71,0,54,13,56,0, - 58,17,60,0,0,10,30,90,30,10, - 87,8,8,96,0,1,2,3,4,5, - 6,7,8,9,54,0,0,13,65,87, - 70,17,0,8,69,0,1,2,54,74, - 56,74,58,0,60,0,0,90,74,54, - 0,90,0,96,8,56,61,96,0,1, - 2,0,30,0,0,0,3,64,54,8, - 56,87,58,8,60,71,0,0,13,3, - 30,0,30,0,3,0,3,0,3,0, - 0,0,0,3,3,0,70,0,0,74, - 0,87,0,3,0,3,0,3,65,3, - 0,0,0,3,69,0,0,30,3,0, - 74,0,0,0,0,0,0,0,0,0, - 0,0,0,0,70,74,0,0,0,0, - 0,0,0,0,0,0,0,70,0,0, - 0,0,30,0,0,0,0,0,69,0, - 0,69,0,0,0,70,0,70,0,0, - 0,73,0,61,0,0,0,0,0,0, - 0,70,0,0,0,0,70,0,0,0, - 0,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,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,0,0,0 + 28,29,75,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,1,2,3, + 4,5,6,7,0,9,10,11,12,0, + 14,15,16,4,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, + 0,1,2,3,4,5,6,7,0,9, + 10,11,12,44,14,15,16,0,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,0,1,2,17,4,0, + 0,1,2,3,10,5,0,7,14,15, + 16,17,18,19,20,21,22,23,24,25, + 0,1,2,65,44,45,46,47,48,49, + 50,51,52,53,0,55,30,3,44,45, + 46,47,48,49,50,51,52,53,0,55, + 0,1,2,54,4,61,6,0,0,9, + 66,67,68,0,1,2,8,4,0,1, + 2,65,4,10,54,0,0,14,15,16, + 17,18,19,20,21,22,23,24,25,0, + 1,2,3,4,5,6,7,8,9,93, + 94,0,13,0,1,2,17,44,45,46, + 47,48,49,50,51,52,53,0,55,30, + 0,73,54,3,61,8,0,1,2,66, + 67,68,74,44,45,46,47,48,49,50, + 51,52,53,0,55,88,89,0,59,0, + 1,2,3,4,5,6,7,8,9,0, + 1,2,13,74,88,89,17,0,0,1, + 2,3,4,5,6,7,8,9,0,1, + 2,13,4,0,6,17,3,9,62,63, + 0,74,0,44,45,46,47,48,49,50, + 51,52,53,0,55,0,0,0,59,3, + 0,8,0,1,2,3,4,5,6,7, + 8,9,54,74,56,13,58,0,60,17, + 0,0,26,27,0,1,2,90,8,71, + 30,0,30,96,0,1,2,3,4,5, + 6,7,8,9,0,87,0,13,0,1, + 2,17,0,73,0,59,54,64,56,0, + 58,30,60,0,0,1,2,3,4,5, + 6,7,8,9,0,1,2,13,54,0, + 0,17,30,0,1,2,65,70,54,87, + 56,71,58,0,60,0,1,2,0,103, + 0,3,54,10,0,71,0,1,2,3, + 4,5,6,7,8,9,120,65,54,13, + 56,87,58,17,60,0,1,2,3,4, + 5,6,7,8,9,71,0,54,13,0, + 1,2,17,0,90,93,94,54,0,54, + 96,87,0,90,61,0,8,0,0,96, + 54,3,56,59,58,10,60,0,1,2, + 3,4,5,6,7,8,9,71,0,54, + 13,56,30,58,17,60,8,0,0,0, + 0,13,3,87,0,8,8,0,1,2, + 3,4,5,6,7,8,9,17,0,0, + 13,56,87,0,17,0,8,8,70,71, + 0,54,13,56,4,58,69,60,0,1, + 2,0,1,2,44,45,46,47,48,49, + 50,51,52,53,0,55,0,0,0,0, + 30,54,0,56,87,58,8,60,71,0, + 8,13,74,0,70,13,0,8,0,3, + 0,8,0,3,30,3,30,0,65,30, + 3,0,74,0,87,70,3,0,0,0, + 0,3,3,3,0,0,0,3,3,0, + 0,0,0,0,3,0,0,0,0,0, + 0,0,0,0,0,0,69,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,74,71,30,28,69,0,0, + 0,0,0,0,0,0,0,0,0,0, + 69,0,0,0,0,0,0,0,0,0, + 73,0,0,0,0,0,0,0,69,73, + 0,69,69,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,0,0,0,0,0,0,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; @@ -1391,324 +1390,321 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface TermAction { public final static char termAction[] = {0, - 5249,5223,5202,5202,5202,5202,5202,5202,5233,5202, - 1,1,1,5227,1,1,1,1,1,1, + 5250,5215,5194,5194,5194,5194,5194,5194,5231,5194, + 1,1,1,5219,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,1,1,1,5249,1,1809,1,2456,137, - 2999,1,1,1,5260,45,1,1,1,5293, - 5249,5256,5432,3514,5249,1384,3281,3422,2157,3406, - 3155,2896,3272,1684,3226,3642,3203,10,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5249,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5249,5236,5236,5236,5236,138,5236,5236,5236, - 5236,5236,139,5236,5236,5236,2370,2342,5236,5236, - 5249,592,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,8,5239,5239,5239,5239,5239, - 5239,5239,5239,5239,5239,5239,5239,5239,5239,5239, - 5239,5239,5239,5239,5239,5239,5239,5239,5239,5239, - 5239,5239,5239,5239,5249,5239,5239,5239,5239,5239, - 5239,5239,5239,5239,5239,5239,5239,5239,5239,5239, - 5239,5239,5239,5239,5239,5239,5239,5239,5249,5239, - 5239,5239,5239,1851,5239,5239,5239,5239,5239,140, - 5239,5239,5239,2370,2342,5239,5239,5249,592,5239, - 5239,5239,5239,5239,5239,5239,5239,5239,5239,5239, - 5239,5249,5223,5202,5202,5202,5202,5202,5202,5230, - 5202,1,1,1,5227,1,1,1,1,1, + 1,1,1,1,387,1,1859,1,3141,137, + 3195,1,1,1,5261,45,1,1,1,5294, + 5250,5257,5433,4027,5250,2200,3466,3580,2208,3541, + 3344,2916,3431,1344,3402,3285,3384,10,5234,5234, + 5234,5234,5234,5234,5234,5234,5234,5234,5234,5234, + 5234,5234,5234,5234,5234,5234,5234,5234,5234,5234, + 5234,5234,5234,5234,5234,5234,5234,5250,5234,5234, + 5234,5234,5234,5234,5234,5234,5234,5234,5234,5234, + 5234,5234,5234,5234,5234,5234,5234,5234,5234,5234, + 5234,5250,5234,5234,5234,5234,138,5234,5234,5234, + 5234,5234,139,5234,5234,5234,2389,2361,5234,5234, + 5250,594,5234,5234,5234,5234,5234,5234,5234,5234, + 5234,5234,5234,5234,8,5237,5237,5237,5237,5237, + 5237,5237,5237,5237,5237,5237,5237,5237,5237,5237, + 5237,5237,5237,5237,5237,5237,5237,5237,5237,5237, + 5237,5237,5237,5237,5250,5237,5237,5237,5237,5237, + 5237,5237,5237,5237,5237,5237,5237,5237,5237,5237, + 5237,5237,5237,5237,5237,5237,5237,5237,5250,5237, + 5237,5237,5237,1901,5237,5237,5237,5237,5237,140, + 5237,5237,5237,2389,2361,5237,5237,5250,594,5237, + 5237,5237,5237,5237,5237,5237,5237,5237,5237,5237, + 5237,5250,5215,5194,5194,5194,5194,5194,5194,5222, + 5194,1,1,1,5219,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5249,1,1,1,1,1,1,1,1, + 1,5250,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5249,1,1809,1,2456, - 145,2999,1,1,1,5260,123,1,1,1, - 5249,5249,3492,5432,2743,3437,1384,3281,3422,2157, - 3406,3155,2896,3272,1684,3226,3642,3203,5249,5223, - 5202,5202,5202,5202,5202,5202,5230,5202,1,1, - 1,5227,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5249,1, + 1,1,1,1,1,5250,1,1859,1,3141, + 145,3195,1,1,1,5261,123,1,1,1, + 5250,5250,3537,5433,2944,1471,2200,3466,3580,2208, + 3541,3344,2916,3431,1344,3402,3285,3384,5250,5215, + 5194,5194,5194,5194,5194,5194,5222,5194,1,1, + 1,5219,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5250,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5249,1,1809,1,2456,5249,2999,1, - 1,1,5260,3086,1,1,1,3468,3382,316, - 5432,2245,3647,1384,3281,3422,2157,3406,3155,2896, - 3272,1684,3226,3642,3203,5249,5223,5202,5202,5202, - 5202,5202,5202,5230,5202,1,1,1,5227,1, + 1,1,5250,1,1859,1,3141,5250,3195,1, + 1,1,5261,3286,1,1,1,3513,3427,165, + 5433,2296,5250,2200,3466,3580,2208,3541,3344,2916, + 3431,1344,3402,3285,3384,5250,5215,5194,5194,5194, + 5194,5194,5194,5222,5194,1,1,1,5219,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5249,1,1,1,1, + 1,1,1,1,1,5250,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1044, - 1,1809,1,2456,5249,2999,1,1,1,5260, - 45,1,1,1,5293,99,2525,5432,4886,5582, - 1384,3281,3422,2157,3406,3155,2896,3272,1684,3226, - 3642,3203,5249,5223,5202,5202,5202,5202,5202,5202, - 5230,5202,1,1,1,5227,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1348, + 1,1859,1,3141,5250,3195,1,1,1,5261, + 45,1,1,1,5294,99,2291,5433,4878,5583, + 2200,3466,3580,2208,3541,3344,2916,3431,1344,3402, + 3285,3384,5250,5215,5194,5194,5194,5194,5194,5194, + 5222,5194,1,1,1,5219,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5249,1,1,1,1,1,1,1, + 1,1,5250,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5249,1,1809,1, - 2456,5249,2999,1,1,1,5260,5249,1,1, - 1,5249,4853,4850,5432,5293,5249,1384,3281,3422, - 2157,3406,3155,2896,3272,1684,3226,3642,3203,5249, - 5223,5202,5202,5202,5202,5202,5202,5230,5202,1, - 1,1,5227,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5249, + 1,1,1,1,1,1,5250,1,1859,1, + 3141,5250,3195,1,1,1,5261,5250,1,1, + 1,5250,4845,4842,5433,5294,5250,2200,3466,3580, + 2208,3541,3344,2916,3431,1344,3402,3285,3384,5250, + 5215,5194,5194,5194,5194,5194,5194,5222,5194,1, + 1,1,5219,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5250, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3386,1,1809,1,2456,146,2999, - 1,1,1,5260,125,1,1,1,5249,1, - 3492,5432,2673,389,1384,3281,3422,2157,3406,3155, - 2896,3272,1684,3226,3642,3203,5249,5223,5202,5202, - 5202,5202,5202,5202,5230,5202,1,1,1,5227, + 1,1,1,3581,1,1859,1,3141,146,3195, + 1,1,1,5261,125,1,1,1,5250,1, + 3537,5433,2538,391,2200,3466,3580,2208,3541,3344, + 2916,3431,1344,3402,3285,3384,5250,5215,5194,5194, + 5194,5194,5194,5194,5222,5194,1,1,1,5219, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5249,1,1,1, + 1,1,1,1,1,1,5250,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5249,1,1809,1,2456,141,2999,1,1,1, - 5260,124,1,1,1,3468,3382,3492,5432,2245, - 5249,1384,3281,3422,2157,3406,3155,2896,3272,1684, - 3226,3642,3203,5249,5223,5202,5202,5202,5202,5202, - 5202,5230,5202,1,1,1,5227,1,1,1, + 5250,1,1859,1,3141,141,3195,1,1,1, + 5261,124,1,1,1,3513,3427,3537,5433,2296, + 5250,2200,3466,3580,2208,3541,3344,2916,3431,1344, + 3402,3285,3384,5250,5215,5194,5194,5194,5194,5194, + 5194,5222,5194,1,1,1,5219,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,193,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5249,1,1809, - 1,2456,5249,2999,1,1,1,5260,361,1, - 1,1,3468,3382,2311,5432,426,5249,1384,3281, - 3422,2157,3406,3155,2896,3272,1684,3226,3642,3203, - 5249,5223,5202,5202,5202,5202,5202,5202,5230,5202, - 1,1,1,5227,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5250,1,1859, + 1,3141,5250,3195,1,1,1,5261,361,1, + 1,1,3513,3427,2330,5433,428,5250,2200,3466, + 3580,2208,3541,3344,2916,3431,1344,3402,3285,3384, + 5250,5215,5194,5194,5194,5194,5194,5194,5222,5194, + 1,1,1,5219,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5249,1,1,1,1,1,1,1,1,1, + 5250,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5249,1,1809,1,2456,3457, - 2999,1,1,1,5260,5246,1,1,1,5249, - 5268,5269,5432,5609,3437,1384,3281,3422,2157,3406, - 3155,2896,3272,1684,3226,3642,3203,5249,5223,5202, - 5202,5202,5202,5202,5202,5230,5202,1,1,1, - 5227,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5249,1,1, + 1,1,1,1,5250,1,1859,1,3141,3038, + 3195,1,1,1,5261,5241,1,1,1,5250, + 5269,5270,5433,5610,1471,2200,3466,3580,2208,3541, + 3344,2916,3431,1344,3402,3285,3384,5250,5215,5194, + 5194,5194,5194,5194,5194,5222,5194,1,1,1, + 5219,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5250,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5249,1,1809,1,2456,5249,2999,1,1, - 1,5260,1,1,1,1,5249,4853,4850,5432, - 5293,5249,1384,3281,3422,2157,3406,3155,2896,3272, - 1684,3226,3642,3203,5249,3179,1,1,1,1, - 1,1,3190,1,1,1,1,5258,1,1, + 1,5250,1,1859,1,3141,5250,3195,1,1, + 1,5261,5250,1,1,1,5250,4845,4842,5433, + 5294,5250,2200,3466,3580,2208,3541,3344,2916,3431, + 1344,3402,3285,3384,5250,3347,1,1,1,1, + 1,1,3359,1,1,1,1,5259,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5249,1,1,1,1,1, + 1,1,1,1,515,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5249,1, - 1809,1,2456,126,2999,1,1,1,5260,395, - 1,1,1,388,3335,2681,5432,5611,165,1384, - 3281,3422,2157,3406,3155,2896,3272,1684,3226,3642, - 3203,45,4853,4850,3404,922,3726,3799,2973,1125, - 3821,914,3777,3755,5249,5520,5518,5527,5513,5526, - 5522,5523,5521,5524,5525,5528,5519,3865,3843,5274, - 3693,5249,621,740,5276,641,4008,729,5277,5275, - 591,5270,5272,5273,5271,5516,5589,5590,5510,5517, - 5489,5515,5514,5511,5512,1,5490,1310,1266,5249, - 4853,4850,5646,922,4898,4849,2973,1889,5647,5648, - 5249,5101,5101,235,5097,235,235,235,5105,235, - 1,143,530,235,1,1,1,1,1,1, - 1,1,1,1,1,1,2301,348,5192,5188, - 2794,5293,1220,2525,2973,5249,5582,5249,5268,5269, - 5249,5031,5028,2018,1,1,1,1,1,1, - 1,1,1,1,5094,1,816,231,788,456, - 3673,1,5249,43,147,2542,1,1,1,3081, - 5253,415,5660,235,5513,5249,5101,5101,235,5097, - 235,235,235,5157,235,1,1814,5747,235,1, + 1,1,1,1,1,1,1,1,5250,1, + 1859,1,3141,126,3195,1,1,1,5261,397, + 1,1,1,390,3380,3355,5433,365,5250,2200, + 3466,3580,2208,3541,3344,2916,3431,1344,3402,3285, + 3384,45,4845,4842,3449,868,3715,3781,4574,639, + 3803,1939,3759,3737,880,5521,5519,5528,5514,5527, + 5523,5524,5522,5525,5526,5529,5520,3847,3825,5275, + 2701,5250,730,860,5277,743,3990,821,5278,5276, + 724,5271,5273,5274,5272,5517,5590,5591,5511,5518, + 5490,5516,5515,5512,5513,5250,5491,2929,1305,5250, + 4845,4842,5649,868,4890,5250,4574,576,5650,5651, + 5250,5093,5093,235,5089,235,235,235,5097,235, + 1,5250,5250,235,1,1,1,1,1,1, + 1,1,1,1,1,1,2061,348,5184,5180, + 2813,5294,790,2291,4574,143,5583,5250,5269,5270, + 5250,5023,5020,2069,1,1,1,1,1,1, + 1,1,1,1,5086,1,2842,231,2142,458, + 4163,1,44,4860,4857,3103,1,1,1,559, + 439,417,5663,235,5514,5250,5093,5093,235,5089, + 235,235,235,5149,235,1,1864,5750,235,1, 1,1,1,1,1,1,1,1,1,1, - 1,5516,5589,5590,5510,5517,5489,5515,5514,5511, - 5512,2279,5490,55,5682,5683,5684,5291,4877,1, - 1,1,1,1,1,1,1,1,1,5094, - 1,816,5249,788,1772,5249,1,44,4868,4865, - 5261,1,1,1,557,5249,414,5660,235,5249, - 4853,4850,39,5293,5249,4892,350,5261,4892,2847, - 4892,4892,5747,4892,4892,4892,2208,3283,1730,1688, - 1646,1604,1562,1520,1478,1436,1394,1352,4892,4892, - 5252,4330,4892,230,3192,5249,8846,8846,5249,5682, - 5683,5684,56,5064,5061,5249,5260,5520,5518,5527, - 5513,5526,5522,5523,5521,5524,5525,5528,5519,244, - 4132,4892,5040,5260,3441,1814,633,4892,56,5031, - 5028,4892,4892,4892,5249,4892,4892,5516,5589,5590, - 5510,5517,5489,5515,5514,5511,5512,5249,5490,5291, - 4892,4892,4892,4892,4892,4892,4892,4892,4892,4892, - 4892,4892,4892,4892,4892,4892,4892,4892,4892,4892, - 4892,4892,4892,4892,4892,4892,232,4031,5249,4892, - 4892,4895,4892,4892,4895,322,4895,4895,5160,4895, - 4895,4895,5249,5513,370,5118,5114,2794,1,1220, - 1,2973,56,1,4895,4895,5269,5649,4895,5249, - 5192,5188,580,5293,1220,2525,2973,144,5582,5249, - 5516,5589,5590,5510,5517,5489,5515,5514,5511,5512, - 5249,5490,5269,1,5118,5114,5148,4895,5151,513, - 5154,5259,5249,4895,1814,5249,5258,4895,4895,4895, - 5257,4895,4895,1814,314,5183,5178,580,5079,1220, - 5175,2973,1,5172,1131,4410,4895,4895,4895,4895, - 4895,4895,4895,4895,4895,4895,4895,4895,4895,4895, - 4895,4895,4895,4895,4895,4895,4895,4895,4895,4895, - 4895,4895,147,455,5249,4895,4895,4341,4895,4895, - 5249,1,1,1,1,1,1,1,877,1, - 1,1,1,5256,1,1,1,2279,1,1, + 1,5517,5590,5591,5511,5518,5490,5516,5515,5512, + 5513,5250,5491,142,5685,5686,5687,5250,4869,1, + 1,1,1,1,1,1,1,1,1,5086, + 1,2842,4841,2142,1,1184,1,457,5250,8842, + 8842,1,1,1,5203,296,416,5663,235,5250, + 4845,4842,39,5294,5250,4884,350,5262,4884,2723, + 4884,4884,5750,4884,4884,4884,5250,5175,5170,582, + 5071,790,5167,4574,339,5164,3572,306,4884,4884, + 147,3103,4884,230,5685,5686,5687,5555,3246,5685, + 5686,5687,5292,5250,35,5206,4872,5521,5519,5528, + 5514,5527,5523,5524,5522,5525,5526,5529,5520,147, + 5250,4884,2330,5261,1995,1864,5250,4884,5254,5590, + 5591,4884,4884,4884,639,4884,4884,5517,5590,5591, + 5511,5518,5490,5516,5515,5512,5513,5250,5491,2083, + 4884,4884,4884,4884,4884,4884,4884,4884,4884,4884, + 4884,4884,4884,4884,4884,4884,4884,4884,4884,4884, + 4884,4884,4884,4884,4884,4884,5250,424,5250,4884, + 4884,4887,4884,4884,4887,5250,4887,4887,1821,4887, + 4887,4887,2259,5256,370,5110,5106,2813,1,790, + 1,4574,351,1,4887,4887,4013,4011,4887,5250, + 5184,5180,582,5294,790,2291,4574,144,5583,244, + 5250,2259,5032,1778,1735,1692,1649,1606,1563,1520, + 1477,1434,1391,56,5056,5053,4011,4887,5253,1, + 5110,5106,582,4887,790,3482,4574,4887,4887,4887, + 4025,4887,4887,1864,119,4716,1,5074,5074,5255, + 5071,1864,2291,1136,366,5583,4887,4887,4887,4887, + 4887,4887,4887,4887,4887,4887,4887,4887,4887,4887, + 4887,4887,4887,4887,4887,4887,4887,4887,4887,4887, + 4887,4887,56,5023,5020,4887,4887,5250,4887,4887, + 5250,1,1,1,1,1,1,1,5250,1, + 1,1,1,5250,1,1,1,1184,1,1, 1,1,1,1,1,1,1,1,1,1, - 5249,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5249,5183,5178,580,5079,1220, - 5175,2973,4880,5172,5249,4853,4850,1,922,4898, - 4043,2973,1,1,1,4941,4937,3404,4945,3726, - 3799,2973,5783,3821,4901,3777,3755,5249,4928,4934, - 4907,3449,4910,4922,4919,4925,4916,4913,4904,4931, - 3865,3843,5274,3693,2208,621,740,5276,641,4008, - 729,5277,5275,591,5270,5272,5273,5271,2106,4330, - 5249,1,5118,5114,580,12,1220,2032,2973,314, - 351,1266,5249,5243,314,4568,45,45,8,514, - 45,4853,4850,3404,922,3726,3799,2973,3407,3821, - 645,3777,3755,5249,5520,5518,5527,35,5526,5522, - 5523,5521,5524,5525,5528,5519,3865,3843,5274,3693, - 1,621,740,5276,641,4008,729,5277,5275,591, - 5270,5272,5273,5271,1,5082,5082,4856,5079,1814, - 2525,5249,366,5582,8,438,5243,1266,1,5118, - 5114,2794,5249,1220,5260,2973,5034,2883,5249,5268, - 5269,5256,45,4853,4850,3404,922,3726,3799,2973, - 3407,3821,645,3777,3755,4859,5520,5518,5527,437, - 5526,5522,5523,5521,5524,5525,5528,5519,3865,3843, - 5274,3693,5249,621,740,5276,641,4008,729,5277, - 5275,591,5270,5272,5273,5271,128,1814,366,1, - 5118,5114,580,5249,1220,4039,2973,3335,2681,1266, - 3887,614,5037,5249,4853,4850,5260,922,1220,366, - 2973,108,5249,5256,149,4853,4850,3404,922,3726, - 3799,2973,365,3821,645,3777,3755,142,5520,5518, - 5527,452,5526,5522,5523,5521,5524,5525,5528,5519, - 3865,3843,5274,3693,5249,621,740,5276,641,4008, - 729,5277,5275,591,5270,5272,5273,5271,2346,5249, - 1,4862,2032,348,45,45,2509,5293,366,2525, - 4751,1266,5582,5682,5683,5684,45,45,1,4941, - 4937,3404,4945,3726,3799,2973,446,3821,4901,3777, - 3755,780,4928,4934,4907,5249,4910,4922,4919,4925, - 4916,4913,4904,4931,3865,3843,5274,3693,5249,621, - 740,5276,641,4008,729,5277,5275,591,5270,5272, - 5273,5271,1814,442,1,1,2311,1,1,4874, - 1,2509,4874,2509,366,1266,344,5249,5034,5249, - 45,45,45,4853,4850,3404,922,3726,3799,2973, - 5261,3821,645,3777,3755,366,5520,5518,5527,626, - 5526,5522,5523,5521,5524,5525,5528,5519,3865,3843, - 5274,3693,5249,621,740,5276,641,4008,729,5277, - 5275,591,5270,5272,5273,5271,5249,1814,5249,1814, - 295,5268,5269,344,443,45,45,344,5293,1266, - 5076,5249,344,5073,5037,813,5260,45,4853,4850, - 3404,922,3726,3799,2973,5253,3821,645,3777,3755, - 45,5520,5518,5527,5293,5526,5522,5523,5521,5524, - 5525,5528,5519,3865,3843,5274,3693,2374,621,740, - 5276,641,4008,729,5277,5275,591,5270,5272,5273, - 5271,45,4853,4850,3404,922,3726,3799,2973,2069, - 3821,645,3777,3755,1246,5520,5518,5527,129,5526, - 5522,5523,5521,5524,5525,5528,5519,3865,3843,5274, - 3693,119,621,740,5276,641,4008,729,5277,5275, - 591,5270,5272,5273,5271,5249,233,5249,4853,4850, - 1,922,1220,1163,2973,5716,5710,47,1266,5714, - 5249,5708,5709,5513,1,5118,5114,2794,5259,1220, - 5249,2973,134,5258,45,5252,5739,5740,5293,5717, - 5719,5249,5268,5269,5682,5683,5684,4883,5249,5261, - 5516,5589,5590,5510,5517,5489,5515,5514,5511,5512, - 133,5490,2479,132,5249,5249,2628,2768,1163,574, - 5716,5710,1374,1507,5714,5720,5708,5709,1119,5741, - 5718,3909,5249,1814,100,1,1,3931,1,4167, - 5088,5739,5740,5088,5717,5719,306,4871,5730,5729, - 5742,5711,5712,5735,5736,5260,5554,5733,5734,5713, - 5715,5737,5738,5743,5723,5724,5725,5721,5722,5731, - 5732,5727,5726,5728,574,2425,2398,1374,1507,2392, - 5720,388,127,404,5741,5718,103,45,45,296, - 5293,5142,5166,3335,2681,5163,5145,5249,2628,2768, - 4570,2628,2768,5730,5729,5742,5711,5712,5735,5736, - 5249,4889,5733,5734,5713,5715,5737,5738,5743,5723, - 5724,5725,5721,5722,5731,5732,5727,5726,5728,45, - 4853,4850,3404,922,3726,3799,2973,5249,3821,645, - 3777,3755,5249,5520,5518,5527,324,5526,5522,5523, - 5521,5524,5525,5528,5519,3865,3843,5274,3693,1944, - 621,740,5276,641,4008,729,5277,5275,591,5270, - 5272,5273,5271,5249,5249,45,4853,4850,3404,922, - 3726,3799,2973,2933,3821,645,3777,3755,1432,5520, - 5518,5527,5249,5526,5522,5523,5521,5524,5525,5528, - 5519,3865,3843,5274,3693,1814,621,740,5276,641, - 4008,729,5277,5275,591,5270,5272,5273,5271,45, - 4853,4850,4642,922,3726,3799,2973,5249,3821,645, - 3777,3755,1266,5520,5518,5527,5249,5526,5522,5523, - 5521,5524,5525,5528,5519,3865,3843,5274,3693,5249, - 621,740,5276,641,4008,729,5277,5275,591,5270, - 5272,5273,5271,45,4853,4850,3404,922,3726,3799, - 2973,5249,3821,645,3777,3755,5249,5520,5518,5527, - 978,5526,5522,5523,5521,5524,5525,5528,5519,3865, - 3843,5274,3693,3290,621,740,5276,641,4008,729, - 5277,5275,591,5270,5272,5273,5271,45,4853,4850, - 3404,922,3726,3799,2973,5249,3821,645,3777,3755, - 5249,5520,5518,5527,5249,5526,5522,5523,5521,5524, - 5525,5528,5519,3865,3843,5274,3693,234,621,740, - 5276,641,4008,729,5277,5275,591,5270,5272,5273, - 5271,5249,4853,4850,5513,5293,5249,1,5118,5114, - 580,865,1220,136,2973,5520,5518,5527,5513,5526, - 5522,5523,5521,5524,5525,5528,5519,51,5058,5058, - 5759,5516,5589,5590,5510,5517,5489,5515,5514,5511, - 5512,5249,5490,2479,4736,5516,5589,5590,5510,5517, - 5489,5515,5514,5511,5512,378,5490,5249,1,5118, - 5114,5148,5646,5151,131,5154,339,1889,5647,5648, - 248,5021,5017,5249,5025,396,4853,4850,5067,5293, - 865,5055,5249,130,5008,5014,4987,4972,4990,5002, - 4999,5005,4996,4993,4984,5011,35,388,388,5049, - 388,388,5049,388,5052,5049,2425,2398,5249,5049, - 3067,5589,5590,388,4963,4957,4954,4981,4960,4951, - 4966,4969,4978,4975,135,4948,4856,5249,5249,45, - 294,5646,5249,5031,5028,5257,1889,5647,5648,5249, - 388,388,388,388,388,388,388,388,388,388, - 5249,388,2628,2768,2479,5052,38,389,389,5043, - 389,389,5043,389,5046,5043,42,5133,5130,5043, - 5052,2628,2768,389,3290,1,5202,5202,235,5202, - 235,235,235,5205,235,5249,5064,5061,235,5070, - 5249,5249,8616,3339,3887,614,1000,3441,5256,1211, - 389,389,389,389,389,389,389,389,389,389, - 107,389,2987,83,5249,5046,3195,2425,2398,1, - 5202,5202,235,5202,235,235,235,235,235,5199, - 5046,1899,235,2456,5249,2999,8616,5249,5249,5319, - 5320,4059,5259,5249,5268,5269,227,5258,1220,2881, - 2973,1,5202,5202,235,5202,235,235,235,5208, - 235,35,5747,1,235,43,5091,5091,8616,1981, - 5091,5259,3645,5199,5249,1899,5258,2456,5249,2999, - 5249,1,5202,5202,235,5202,235,235,235,5205, - 235,1125,1,5249,235,396,5268,5269,8616,43, - 5085,5085,5249,5111,5108,5199,5747,1899,1,2456, - 1125,2999,5249,5126,5122,5249,658,122,5211,3451, - 2997,5249,226,1,5202,5202,235,5202,235,235, - 235,5205,235,798,422,5199,235,1899,5747,2456, - 8616,2999,1,5202,5202,235,5202,235,235,235, - 235,235,227,3409,5249,235,5291,121,5688,8616, - 373,120,3032,5249,5249,5249,5291,1,5747,5214, - 53,5139,5139,5255,5249,169,56,5199,1,1899, - 5268,2456,5255,2999,1,5202,5202,235,5202,235, - 235,235,235,235,227,1,5199,235,1899,306, - 2456,8616,2999,1,1,5211,5268,3909,1125,5554, - 5747,5217,5220,3931,1,5202,5202,235,5202,235, - 235,235,235,235,5136,1,371,235,5702,5747, - 1173,8616,5249,5255,4679,5249,8700,7276,5199,5254, - 1899,169,2456,5249,2999,424,1,3909,5254,3032, - 81,3909,5249,3931,526,3106,5214,3931,5249,8700, - 7276,1,2881,5249,418,1,4200,5260,5199,171, - 1899,5747,2456,199,2999,5256,111,41,199,4269, - 5169,5249,3664,285,3296,5249,5196,5249,3008,447, - 5249,5249,313,4717,3138,506,1224,504,5249,5254, - 5249,5747,5249,4735,5249,4738,5249,4300,2827,4744, - 5249,5249,5249,4299,4530,5249,5249,4134,4772,519, - 526,508,2,5249,5249,5249,5249,5249,5249,5249, - 5249,5249,5249,5249,2120,171,5249,5249,5249,5249, - 5249,5249,5249,5249,5249,5249,5249,3288,5249,5249, - 5249,5249,43,5249,5249,5249,5249,5249,2729,5249, - 5249,4232,5249,5249,5249,4463,5249,4641,5249,5249, - 5249,3024,5249,4036,5249,5249,5249,5249,5249,5249, - 5249,3288,5249,5249,5249,5249,1902,5249,5249,5249, - 5249,935,5249,5249,5249,5249,5249,5249,5249,5249, - 5249,5249,5249,5249,5249,5249,5249,5249,5249,5249, - 5249,5249,5249,5249,5249,5249,5249,5249,5249,5249, - 5249,5249,5249,5249,5249,5249,5249,5249,5249,5249, - 5249,5249,5249,5249,5249,5249,5249,5249,3290 + 366,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3891,5250,5250,5269,5270,3153, + 3913,366,348,45,45,2528,5294,1,2291,373, + 43,5583,1,1,1,4933,4929,3449,4937,3715, + 3781,4574,5786,3803,4893,3759,3737,5250,4920,4926, + 4899,1730,4902,4914,4911,4917,4908,4905,4896,4923, + 3847,3825,5275,2701,5250,730,860,5277,743,3990, + 821,5278,5276,724,5271,5273,5274,5272,3869,741, + 129,1864,5250,128,5292,1,5110,5106,2813,5250, + 790,1305,4574,5026,3380,3355,45,45,1218,516, + 45,4845,4842,3449,868,3715,3781,4574,5244,3803, + 633,3759,3737,5250,5521,5519,5528,1773,5527,5523, + 5524,5522,5525,5526,5529,5520,3847,3825,5275,2701, + 108,730,860,5277,743,3990,821,5278,5276,724, + 5271,5273,5274,5272,1864,314,5175,5170,582,5071, + 790,5167,4574,294,5164,5250,5250,1305,1,5029, + 1,5110,5106,582,5228,790,366,4574,2646,2787, + 5250,5257,149,4845,4842,3449,868,3715,3781,4574, + 371,3803,633,3759,3737,4263,5521,5519,5528,4747, + 5527,5523,5524,5522,5525,5526,5529,5520,3847,3825, + 5275,2701,5250,730,860,5277,743,3990,821,5278, + 5276,724,5271,5273,5274,5272,5250,1,5110,5106, + 5140,2203,5143,1385,5146,5260,43,5083,5083,1305, + 5259,5083,366,2083,45,45,1,4933,4929,3449, + 4937,3715,3781,4574,2875,3803,4893,3759,3737,1262, + 4920,4926,4899,366,4902,4914,4911,4917,4908,4905, + 4896,4923,3847,3825,5275,2701,5250,730,860,5277, + 743,3990,821,5278,5276,724,5271,5273,5274,5272, + 1514,1,5110,5106,582,324,790,35,4574,314, + 5250,5269,5270,1305,314,790,4443,4574,45,45, + 45,4845,4842,3449,868,3715,3781,4574,5225,3803, + 633,3759,3737,5250,5521,5519,5528,4848,5527,5523, + 5524,5522,5525,5526,5529,5520,3847,3825,5275,2701, + 5250,730,860,5277,743,3990,821,5278,5276,724, + 5271,5273,5274,5272,1864,444,1,1,5250,1, + 1,4866,1,2528,4866,2528,5260,1305,344,316, + 5026,5259,3252,378,5228,45,4845,4842,3449,868, + 3715,3781,4574,5225,3803,633,3759,3737,2230,5521, + 5519,5528,5250,5527,5523,5524,5522,5525,5526,5529, + 5520,3847,3825,5275,2701,440,730,860,5277,743, + 3990,821,5278,5276,724,5271,5273,5274,5272,1864, + 4133,1864,5250,4845,4842,344,868,790,4196,4574, + 344,521,1305,1,344,4851,5029,5250,1090,5228, + 45,4845,4842,3449,868,3715,3781,4574,5254,3803, + 633,3759,3737,45,5521,5519,5528,5294,5527,5523, + 5524,5522,5525,5526,5529,5520,3847,3825,5275,2701, + 5250,730,860,5277,743,3990,821,5278,5276,724, + 5271,5273,5274,5272,45,4845,4842,3449,868,3715, + 3781,4574,3482,3803,633,3759,3737,1585,5521,5519, + 5528,133,5527,5523,5524,5522,5525,5526,5529,5520, + 3847,3825,5275,2701,532,730,860,5277,743,3990, + 821,5278,5276,724,5271,5273,5274,5272,5612,232, + 5250,4845,4842,1,868,790,877,4574,5719,5713, + 454,1305,5717,5652,5711,5712,5514,5250,4845,4842, + 3482,868,4890,322,4574,134,5152,56,5253,5742, + 5743,5270,5720,5722,5250,5269,5270,5685,5686,5687, + 4854,3308,5262,5517,5590,5591,5511,5518,5490,5516, + 5515,5512,5513,47,5491,2498,132,5270,5250,2646, + 2787,877,566,5719,5713,1395,1413,5717,5723,5711, + 5712,2157,5721,5744,1,5110,5106,2813,5250,790, + 448,4574,1864,4875,5742,5743,5262,5720,5722,5250, + 4863,5733,5732,5745,5714,5715,5738,5739,5261,390, + 5736,5737,5716,5718,5740,5741,5746,5726,5727,5728, + 5724,5725,5734,5735,5730,5729,5731,566,2444,2417, + 1395,1413,1,5723,5250,4469,127,5721,5744,4881, + 445,45,45,1864,5294,5250,5068,3380,3355,5065, + 5250,5250,5261,4125,2646,2787,5733,5732,5745,5714, + 5715,5738,5739,629,2237,5736,5737,5716,5718,5740, + 5741,5746,5726,5727,5728,5724,5725,5734,5735,5730, + 5729,5731,45,4845,4842,3449,868,3715,3781,4574, + 5250,3803,633,3759,3737,5250,5521,5519,5528,5762, + 5527,5523,5524,5522,5525,5526,5529,5520,3847,3825, + 5275,2701,3500,730,860,5277,743,3990,821,5278, + 5276,724,5271,5273,5274,5272,55,1,45,4845, + 4842,3449,868,3715,3781,4574,5250,3803,633,3759, + 3737,1466,5521,5519,5528,5250,5527,5523,5524,5522, + 5525,5526,5529,5520,3847,3825,5275,2701,5250,730, + 860,5277,743,3990,821,5278,5276,724,5271,5273, + 5274,5272,45,4845,4842,4262,868,3715,3781,4574, + 1299,3803,633,3759,3737,1305,5521,5519,5528,5250, + 5527,5523,5524,5522,5525,5526,5529,5520,3847,3825, + 5275,2701,3610,730,860,5277,743,3990,821,5278, + 5276,724,5271,5273,5274,5272,45,4845,4842,3449, + 868,3715,3781,4574,5250,3803,633,3759,3737,45, + 5521,5519,5528,5294,5527,5523,5524,5522,5525,5526, + 5529,5520,3847,3825,5275,2701,5250,730,860,5277, + 743,3990,821,5278,5276,724,5271,5273,5274,5272, + 45,4845,4842,3449,868,3715,3781,4574,5250,3803, + 633,3759,3737,1681,5521,5519,5528,5250,5527,5523, + 5524,5522,5525,5526,5529,5520,3847,3825,5275,2701, + 233,730,860,5277,743,3990,821,5278,5276,724, + 5271,5273,5274,5272,5250,4845,4842,5514,5294,5250, + 1,5110,5106,5140,861,5143,136,5146,5521,5519, + 5528,5514,5527,5523,5524,5522,5525,5526,5529,5520, + 51,5050,5050,5691,5517,5590,5591,5511,5518,5490, + 5516,5515,5512,5513,5250,5491,2498,4274,5517,5590, + 5591,5511,5518,5490,5516,5515,5512,5513,5250,5491, + 100,1,1,3064,1,5649,5080,131,1,5080, + 576,5650,5651,248,5013,5009,169,5017,398,4845, + 4842,5059,5294,861,5047,5250,130,5000,5006,4979, + 4964,4982,4994,4991,4997,4988,4985,4976,5003,35, + 390,390,5041,390,390,5041,390,5044,5041,2444, + 2417,5250,5041,295,5269,5270,390,4955,4949,4946, + 4973,4952,4943,4958,4961,4970,4967,5250,4940,4848, + 5250,2120,45,4298,5649,5256,5250,5023,5020,576, + 5650,5651,169,390,390,390,390,390,390,390, + 390,390,390,5250,390,2646,2787,122,5044,38, + 391,391,5035,391,391,5035,391,5038,5035,42, + 5125,5122,5035,5044,2646,2787,391,5250,1,5194, + 5194,235,5194,235,235,235,5197,235,103,45, + 45,235,5294,5250,5158,8845,4735,5155,3869,741, + 5250,5255,5250,391,391,391,391,391,391,391, + 391,391,391,1,391,5250,83,5250,5038,3600, + 5250,5209,1,5194,5194,235,5194,235,235,235, + 235,235,5191,5038,4388,235,3141,426,3195,8845, + 5250,5250,5320,5321,43,5077,5077,3891,5258,227, + 639,1,3049,3913,1,5194,5194,235,5194,235, + 235,235,5200,235,5250,5750,5250,235,5250,5103, + 5100,8845,135,2953,121,3457,5191,5261,4388,5250, + 3141,639,3195,120,1,5194,5194,235,5194,235, + 235,235,5197,235,5250,5056,5053,235,1428,5250, + 5250,8845,2498,5250,5118,5114,5705,575,5191,5750, + 4388,5257,3141,1,3195,53,5131,5131,5250,661, + 5250,4024,5292,5203,107,226,1,5194,5194,235, + 5194,235,235,235,5197,235,800,5062,5191,235, + 4388,5750,3141,8845,3195,1,5194,5194,235,5194, + 235,235,235,235,235,227,5250,5292,235,398, + 5269,5270,8845,5250,3891,2444,2417,3246,5250,5128, + 3913,5750,5250,3891,5206,306,5258,420,5250,3913, + 5191,4041,4388,2032,3141,5555,3195,1,5194,5194, + 235,5194,235,235,235,235,235,227,406,5191, + 235,4388,3049,3141,8845,3195,5134,1,1,111, + 234,5137,4228,5750,449,5212,5256,1,5194,5194, + 235,5194,235,235,235,235,235,5514,1,5250, + 235,1853,5750,5250,8845,313,528,5260,1002,5257, + 56,5191,5259,4388,5269,3141,2171,3195,5250,8757, + 7954,5250,8757,7954,5517,5590,5591,5511,5518,5490, + 5516,5515,5512,5513,81,5491,5250,41,1,5250, + 5269,5191,1,4388,5750,3141,5260,3195,5257,1, + 199,5259,5255,8,3341,199,5250,171,508,3473, + 285,5247,5250,5188,5161,3202,3609,5250,4012,4032, + 4355,506,528,5250,5750,4217,4292,5250,5250,5250, + 5250,4690,4701,4261,5250,5250,5250,4704,4472,5250, + 1,5250,5250,510,4749,2,5250,5250,1,5250, + 5250,5250,5250,5250,5250,5250,3124,5250,5250,5250, + 5250,5250,5250,5250,5250,5250,5250,5250,5250,5250, + 5250,5250,5250,171,5247,43,3142,4706,5250,5250, + 5250,5250,5250,5250,5250,5250,5250,5250,5250,5250, + 4714,5250,5250,5250,5250,5250,5250,5250,5250,5250, + 3007,5250,5250,5250,5250,5250,5250,5250,3124,3044, + 5250,1952,937,5250,5250,5250,5250,5250,5250,5250, + 5250,5250,5250,5250,5250,5250,5250,5250,5250,5250, + 5250,5250,5250,5250,5250,4434 }; }; public final static char termAction[] = TermAction.termAction; @@ -1716,59 +1712,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asb { public final static char asb[] = {0, - 663,7,131,1,425,726,726,726,726,1106, - 425,613,613,728,613,547,115,549,132,132, - 132,132,132,132,132,132,132,615,621,626, - 623,630,628,635,633,637,636,638,234,639, - 131,115,202,202,202,202,171,509,174,174, - 610,202,388,331,613,613,174,759,615,331, - 331,322,115,922,201,1004,1108,1043,115,613, - 615,852,852,509,131,132,132,132,132,132, - 132,132,132,132,132,132,132,132,132,132, - 132,132,132,132,131,131,131,131,131,131, - 131,131,131,131,131,131,132,331,331,798, - 798,798,798,478,331,174,174,1104,1032,1043, - 712,1043,707,1043,709,1043,1027,1106,171,388, - 388,174,132,1104,347,561,490,489,391,1050, - 1050,1106,549,388,201,131,169,1003,331,168, - 171,170,168,331,388,623,623,621,621,621, - 628,628,628,628,626,626,633,630,630,636, - 635,637,1120,638,425,425,425,425,171,171, - 798,797,798,610,171,606,433,171,429,478, - 554,427,712,600,171,171,171,478,798,322, - 388,654,331,563,565,171,1004,132,202,619, - 287,331,1108,171,171,726,170,1004,131,131, - 131,131,131,425,425,115,963,606,433,429, - 428,429,478,429,600,600,171,478,171,331, - 494,482,493,565,478,169,331,619,1104,1003, - 1108,171,169,331,331,331,331,509,509,606, - 605,506,171,433,1120,710,726,480,907,1110, - 433,429,429,914,171,600,506,504,505,171, - 804,131,491,491,334,334,171,559,1104,54, - 331,171,619,620,619,131,287,285,615,1108, - 331,331,606,1004,814,712,798,726,168,859, - 1112,165,425,715,229,915,171,506,132,171, - 804,131,131,565,1004,331,563,482,804,1085, - 619,509,132,388,285,169,814,814,10,449, - 169,429,429,165,659,1104,719,132,1120,342, - 914,171,1106,1106,171,1017,565,169,804,620, - 331,388,660,506,705,965,276,425,710,46, - 814,814,449,169,429,712,1106,1112,165,132, - 132,171,171,171,1017,331,1017,9,276,705, - 800,1106,506,797,726,498,498,660,712,95, - 715,171,425,171,171,425,1010,1017,10,814, - 660,341,659,331,1106,171,449,10,449,796, - 796,1025,96,1106,171,509,566,1010,814,131, - 869,165,660,171,171,449,202,202,1025,95, - 1120,132,1120,660,94,425,425,425,96,425, - 171,242,660,660,171,712,331,330,1012,506, - 331,868,171,660,797,87,425,87,96,1120, - 96,115,115,113,864,115,660,660,1023,1025, - 202,1012,868,660,598,54,96,331,165,331, - 113,276,425,331,1025,505,866,498,331,331, - 1098,96,1023,96,660,276,131,96,93,868, - 796,712,712,1100,131,94,509,660,331,168, - 96,331,660,96 + 341,67,159,61,289,780,780,780,780,1032, + 289,461,461,1048,461,754,143,756,160,160, + 160,160,160,160,160,160,160,463,469,474, + 471,478,476,483,481,485,484,486,202,487, + 159,143,29,29,29,29,199,716,1,1, + 458,29,338,581,461,461,1,1079,463,581, + 581,572,143,848,28,945,1034,969,143,461, + 463,834,834,716,159,160,160,160,160,160, + 160,160,160,160,160,160,160,160,160,160, + 160,160,160,160,159,159,159,159,159,159, + 159,159,159,159,159,159,160,581,581,1118, + 1118,1118,1118,449,581,1,1,1030,958,969, + 713,969,708,969,710,969,953,1032,199,338, + 338,1,160,1030,297,591,529,528,255,976, + 976,1032,756,338,28,159,197,944,581,196, + 199,198,196,581,338,471,471,469,469,469, + 476,476,476,476,474,474,481,478,478,484, + 483,485,1046,486,289,289,289,289,199,199, + 1118,1117,1118,458,199,454,404,199,400,449, + 511,398,713,516,199,199,199,449,1118,572, + 338,502,581,593,595,199,945,160,29,467, + 537,581,1034,199,199,780,198,945,159,159, + 159,159,159,289,289,143,889,454,404,400, + 399,400,449,400,516,516,199,449,199,581, + 533,521,532,595,449,197,581,467,1030,944, + 1034,199,197,581,581,581,581,716,716,454, + 453,586,199,404,1046,711,780,451,108,1036, + 404,400,400,761,199,516,586,584,585,199, + 786,159,530,530,385,385,199,589,1030,675, + 581,199,467,468,467,159,537,253,463,1034, + 581,581,454,945,796,713,1118,780,196,841, + 1038,193,289,769,56,762,199,586,160,199, + 786,159,159,595,945,581,593,521,786,1011, + 467,716,160,338,253,197,796,796,631,420, + 197,400,400,193,507,1030,773,160,1046,393, + 761,199,1032,1032,199,898,595,197,786,468, + 581,338,508,586,383,906,244,289,711,667, + 796,796,420,197,400,713,1032,1038,193,160, + 160,199,199,199,898,581,898,630,244,383, + 782,1032,586,1117,780,291,291,508,713,123, + 769,199,289,199,199,289,891,898,631,796, + 508,392,507,581,1032,199,420,631,420,1116, + 1116,951,124,1032,199,716,596,891,796,159, + 70,193,508,199,199,420,29,29,951,123, + 1046,160,1046,508,122,289,289,289,124,289, + 199,210,508,508,199,713,581,580,893,586, + 581,586,713,199,508,1117,115,289,115,124, + 1046,124,143,143,141,846,143,508,508,904, + 951,29,893,586,70,508,628,675,124,581, + 193,581,141,244,289,581,951,70,291,581, + 581,1024,124,904,124,508,244,159,124,121, + 585,1116,713,713,1026,159,122,716,508,581, + 506,69,196,124,581,508,506,506,124 }; }; public final static char asb[] = Asb.asb; @@ -1776,119 +1772,118 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asr { public final static byte asr[] = {0, - 8,73,118,74,13,69,121,0,64,61, - 45,16,66,48,18,49,50,19,20,51, - 52,21,22,53,67,55,68,23,44,24, - 46,25,15,14,47,8,3,9,6,13, - 58,60,87,17,54,7,1,2,5,4, - 10,56,0,47,14,15,61,45,16,66, - 48,17,18,49,50,19,20,51,52,21, - 22,53,67,55,10,68,23,44,24,46, - 25,1,2,4,95,0,87,114,115,116, - 54,73,119,122,71,72,75,58,56,60, - 77,79,85,83,76,81,82,84,86,64, - 78,80,13,8,47,61,45,66,48,17, - 49,50,51,52,53,67,55,68,44,46, - 57,62,63,10,32,36,34,31,39,15, + 31,62,32,33,63,7,34,35,36,37, + 57,38,39,40,41,42,28,26,27,9, + 6,11,12,5,29,65,43,3,47,14, + 15,61,45,16,66,48,17,18,49,50, + 19,20,51,52,21,22,53,67,55,10, + 68,23,24,46,25,1,2,4,44,0, + 8,73,118,74,13,70,121,0,71,62, + 63,57,26,27,9,6,11,12,29,35, + 3,40,43,41,42,28,38,33,37,15, 25,14,21,19,20,22,23,18,16,24, - 40,43,41,42,28,38,33,37,26,27, - 11,12,29,35,9,6,3,4,7,5, - 1,2,0,31,62,32,33,63,7,34, - 35,36,37,57,38,39,40,41,42,28, - 26,27,9,6,11,12,5,29,65,43, - 3,47,14,15,61,45,16,66,48,17, - 18,49,50,19,20,51,52,21,22,53, - 67,55,10,68,23,24,46,25,1,2, - 4,44,0,65,73,95,69,118,74,71, - 121,14,15,31,62,16,32,33,18,19, - 20,63,34,21,22,35,36,37,57,38, - 39,10,23,24,25,40,41,42,28,26, - 27,11,12,29,43,8,9,6,4,13, - 1,2,7,3,5,0,96,90,11,12, - 91,92,88,89,30,93,94,97,98,99, - 100,101,102,117,73,95,70,104,105,106, - 107,108,109,110,111,112,113,118,71,13, - 121,65,1,2,9,6,4,3,59,69, - 74,8,0,75,65,73,95,74,64,59, - 3,8,69,13,70,0,62,63,3,10, + 32,36,34,31,39,64,8,7,1,2, + 5,4,10,0,87,114,115,116,54,73, + 119,122,71,72,75,58,56,60,77,79, + 85,83,76,81,82,84,86,64,78,80, + 13,8,47,61,45,66,48,17,49,50, + 51,52,53,67,55,68,44,46,57,62, + 63,10,32,36,34,31,39,15,25,14, + 21,19,20,22,23,18,16,24,40,43, + 41,42,28,38,33,37,26,27,11,12, + 29,35,9,6,3,4,7,5,1,2, + 0,65,73,95,70,118,74,71,121,14, + 15,31,62,16,32,33,18,19,20,63, + 34,21,22,35,36,37,57,38,39,10, + 23,24,25,40,41,42,28,26,27,11, + 12,29,43,8,9,6,4,13,1,2, + 7,3,5,0,47,14,15,45,16,48, + 17,18,49,50,19,20,51,7,52,21, + 22,53,55,23,44,24,46,25,1,2, + 8,59,9,6,5,4,74,13,3,0, + 65,69,70,1,2,0,62,63,3,10, 32,36,34,31,39,15,25,14,21,19, 20,22,23,18,16,24,40,43,41,42, 28,38,33,37,5,7,4,26,27,9, 6,11,12,29,35,1,2,118,8,0, - 47,14,15,45,16,48,17,18,49,50, - 19,20,51,7,52,21,22,53,55,23, - 44,24,46,25,1,2,8,59,9,6, - 5,4,74,13,3,0,4,30,8,73, - 64,0,87,56,7,114,115,116,58,8, - 3,9,6,5,73,71,13,72,47,14, - 15,61,45,16,66,48,17,18,49,50, - 19,20,51,52,21,22,53,67,55,10, - 68,23,44,24,46,25,4,1,2,54, - 0,9,6,4,5,7,1,2,3,59, - 65,70,69,8,74,95,0,65,70,69, - 1,2,0,70,69,71,8,0,8,74, - 14,15,31,16,32,33,18,19,20,34, - 21,22,35,36,37,57,38,39,10,23, - 24,25,40,41,42,28,3,26,27,9, - 6,11,12,29,4,43,5,7,1,2, - 63,62,0,4,8,73,64,0,7,5, + 14,15,31,62,16,32,33,18,19,20, + 63,7,34,21,22,35,36,37,57,38, + 39,10,23,24,25,40,41,42,1,2, + 3,26,27,9,6,11,12,5,29,4, + 43,72,28,0,75,65,73,95,74,64, + 59,3,8,70,13,69,0,4,30,8, + 73,64,0,87,56,7,114,115,116,58, + 8,3,9,6,5,73,71,13,72,47, + 14,15,61,45,16,66,48,17,18,49, + 50,19,20,51,52,21,22,53,67,55, + 10,68,23,44,24,46,25,4,1,2, + 54,0,57,45,7,46,5,1,2,4, + 75,64,120,103,26,27,59,3,96,90, + 6,91,92,11,12,89,88,30,93,94, + 97,98,9,99,100,101,65,95,74,121, + 69,104,105,106,107,108,109,110,111,112, + 113,73,118,102,117,71,70,13,8,0, + 4,8,73,64,0,1,2,8,71,0, + 9,6,4,5,7,1,2,3,59,65, + 69,70,8,74,95,0,96,90,11,12, + 91,92,88,89,30,93,94,97,98,99, + 100,101,102,117,73,95,69,104,105,106, + 107,108,109,110,111,112,113,118,71,13, + 121,65,1,2,9,6,4,3,59,70, + 74,8,0,69,70,71,8,0,7,5, 3,59,6,9,95,47,14,15,45,16, 66,48,17,18,49,50,19,20,51,52, 21,22,53,67,55,10,68,23,44,24, - 46,25,1,2,4,74,8,61,0,1, - 2,8,71,0,57,45,7,46,5,1, - 2,4,75,64,120,103,26,27,59,3, - 96,90,6,91,92,11,12,89,88,30, - 93,94,97,98,9,99,100,101,65,95, - 74,121,70,104,105,106,107,108,109,110, - 111,112,113,73,118,71,102,117,69,13, - 8,0,14,15,31,62,16,32,33,18, - 19,20,63,7,34,21,22,35,36,37, - 57,38,39,10,23,24,25,40,41,42, - 1,2,3,26,27,9,6,11,12,5, - 29,4,43,72,28,0,54,73,4,1, - 2,64,8,0,8,64,69,0,73,8, - 59,3,70,69,13,30,0,47,14,15, + 46,25,1,2,4,74,8,61,0,64, + 61,45,16,66,48,18,49,50,19,20, + 51,52,21,22,53,67,55,68,23,44, + 24,46,25,15,14,47,8,3,9,6, + 13,58,60,87,17,54,7,1,2,5, + 4,10,56,0,47,14,15,61,45,16, + 66,48,17,18,49,50,19,20,51,52, + 21,22,53,67,55,10,68,23,44,24, + 46,25,1,2,4,95,0,54,73,4, + 1,2,64,8,0,8,74,14,15,31, + 16,32,33,18,19,20,34,21,22,35, + 36,37,57,38,39,10,23,24,25,40, + 41,42,28,3,26,27,9,6,11,12, + 29,4,43,5,7,1,2,63,62,0, + 44,1,2,4,114,115,116,0,8,64, + 70,0,73,8,59,3,69,70,13,30, + 0,8,64,69,0,45,57,46,8,65, + 95,69,70,74,0,60,47,14,15,61, + 45,16,66,48,87,17,18,49,50,19, + 20,51,56,52,21,22,53,67,55,10, + 68,23,58,44,24,46,25,8,3,9, + 6,71,13,7,4,54,5,1,2,0, + 8,73,64,75,0,76,0,62,63,26, + 27,9,11,12,5,29,35,3,4,7, + 40,43,41,42,28,38,33,37,15,25, + 14,21,19,20,22,23,18,16,24,10, + 32,36,34,31,39,59,1,2,6,0, + 45,46,75,3,73,13,64,57,8,65, + 95,70,74,69,0,61,45,16,66,48, + 18,49,50,19,20,51,52,21,22,53, + 67,55,10,68,23,44,24,46,25,15, + 14,47,8,3,9,13,58,56,60,87, + 17,30,4,6,7,1,2,5,54,0, + 119,0,10,66,61,67,68,15,25,14, + 21,19,20,22,23,18,16,24,75,73, + 95,118,71,64,121,120,96,103,90,26, + 27,11,12,91,92,88,89,30,65,93, + 94,97,98,99,100,101,102,117,69,104, + 105,106,107,108,109,110,111,112,113,70, + 47,45,48,17,49,50,51,52,53,55, + 44,46,13,8,74,3,59,7,5,6, + 9,1,2,4,0,13,8,7,5,3, + 1,2,6,9,4,73,0,47,14,15, 61,45,16,66,48,17,18,49,50,19, 20,51,52,21,22,53,67,55,10,68, 23,44,24,46,25,1,2,4,63,62, 11,12,6,91,92,99,9,100,5,29, 30,107,108,104,105,106,112,111,113,89, 88,109,110,97,98,93,94,101,102,26, - 27,90,103,3,59,70,69,65,0,8, - 64,70,0,45,57,46,8,65,95,70, - 69,74,0,60,47,14,15,61,45,16, - 66,48,87,17,18,49,50,19,20,51, - 56,52,21,22,53,67,55,10,68,23, - 58,44,24,46,25,8,3,9,6,71, - 13,7,4,54,5,1,2,0,8,73, - 64,75,0,76,0,69,13,71,62,63, - 57,26,27,9,6,11,12,29,35,3, - 40,43,41,42,28,38,33,37,15,25, - 14,21,19,20,22,23,18,16,24,32, - 36,34,31,39,64,8,7,1,2,5, - 4,10,0,44,1,2,4,114,115,116, - 0,62,63,26,27,9,11,12,5,29, - 35,3,4,7,40,43,41,42,28,38, - 33,37,15,25,14,21,19,20,22,23, - 18,16,24,10,32,36,34,31,39,59, - 1,2,6,0,61,45,16,66,48,18, - 49,50,19,20,51,52,21,22,53,67, - 55,10,68,23,44,24,46,25,15,14, - 47,8,3,9,13,58,56,60,87,17, - 30,4,6,7,1,2,5,54,0,45, - 46,75,3,73,13,64,57,8,65,95, - 69,74,70,0,119,0,10,66,61,67, - 68,15,25,14,21,19,20,22,23,18, - 16,24,75,73,95,118,71,64,121,120, - 96,103,90,26,27,11,12,91,92,88, - 89,30,65,93,94,97,98,99,100,101, - 102,117,70,104,105,106,107,108,109,110, - 111,112,113,69,47,45,48,17,49,50, - 51,52,53,55,44,46,13,8,74,3, - 59,7,5,6,9,1,2,4,0,13, - 8,7,5,3,1,2,6,9,4,73, - 0 + 27,90,103,3,59,69,70,65,0 }; }; public final static byte asr[] = Asr.asr; @@ -1896,59 +1891,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Nasb { public final static char nasb[] = {0, - 147,12,55,12,12,12,12,12,12,179, - 12,12,12,155,12,49,181,226,55,55, - 212,55,55,55,55,55,55,12,12,12, - 12,12,12,12,12,12,12,12,55,12, - 55,181,37,37,37,37,226,121,132,132, - 23,5,82,167,12,12,132,157,12,167, - 167,102,1,55,17,206,12,12,181,12, - 12,26,26,121,95,55,55,55,55,55, - 55,55,55,55,55,55,55,55,55,55, - 55,55,55,55,55,55,55,55,55,55, - 55,55,55,55,55,95,55,167,167,12, - 12,12,12,144,167,32,32,178,235,236, - 113,236,150,236,84,236,229,10,226,82, - 82,32,55,178,77,101,15,15,12,12, - 12,10,226,82,37,169,195,115,167,194, - 216,226,194,167,82,12,12,12,12,12, + 90,12,65,12,12,12,12,12,12,69, + 12,12,12,265,12,58,189,167,65,65, + 211,65,65,65,65,65,65,12,12,12, + 12,12,12,12,12,12,12,12,65,12, + 65,189,48,48,48,48,167,161,141,141, + 51,5,86,249,12,12,141,267,12,249, + 249,111,1,65,54,131,12,12,189,12, + 12,35,35,161,105,65,65,65,65,65, + 65,65,65,65,65,65,65,65,65,65, + 65,65,65,65,65,65,65,65,65,65, + 65,65,65,65,65,105,65,249,249,12, + 12,12,12,23,249,43,43,186,232,233, + 124,233,156,233,19,233,226,10,167,86, + 86,43,65,186,81,110,13,13,12,12, + 12,10,167,86,48,26,199,115,249,198, + 215,167,198,249,86,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,152,11, - 12,12,12,141,226,132,132,152,132,263, - 132,12,113,132,263,226,11,12,12,139, - 82,12,167,258,132,226,206,55,37,132, - 69,167,12,11,226,12,162,206,55,95, - 95,95,95,12,12,32,12,106,238,132, - 132,13,205,13,132,217,11,205,152,167, - 12,125,12,247,204,152,167,40,141,115, - 12,216,152,167,167,167,167,121,121,132, - 106,160,226,210,12,46,12,12,42,250, - 238,13,13,185,152,217,160,12,12,152, - 132,55,12,12,15,15,226,124,178,247, - 167,152,132,65,12,95,141,163,12,12, - 167,167,106,206,132,113,12,12,179,132, - 172,127,12,12,179,67,263,160,55,217, - 106,55,55,132,206,167,258,189,132,12, - 40,121,55,82,163,195,199,132,134,132, - 263,132,88,191,210,178,12,55,12,63, - 266,263,179,179,11,132,247,195,106,65, - 167,82,210,160,12,134,251,12,85,42, - 134,199,247,195,88,98,19,127,191,55, - 55,11,263,263,90,167,132,112,172,12, - 12,179,160,12,12,119,119,210,98,159, - 12,263,12,11,11,12,132,90,134,132, - 210,72,12,167,179,263,247,134,132,12, - 12,132,92,19,11,121,165,106,199,169, - 54,127,210,263,47,247,37,37,44,108, - 12,55,12,210,12,12,12,12,109,12, - 217,208,210,210,217,74,167,167,132,160, - 167,132,47,210,12,61,12,12,109,12, - 109,270,270,245,12,270,210,210,12,132, - 37,90,53,210,12,37,109,167,127,167, - 222,132,12,167,44,160,12,119,167,167, - 132,109,12,109,210,127,95,109,61,53, - 12,74,74,125,55,12,219,210,167,194, - 109,167,210,109 + 12,12,12,12,12,12,12,12,158,11, + 12,12,12,153,167,141,141,158,141,259, + 141,12,124,141,259,167,11,12,12,151, + 86,12,249,206,141,167,131,65,48,141, + 126,249,12,11,167,12,203,131,65,105, + 105,105,105,12,12,43,12,108,240,141, + 141,71,130,71,141,216,11,130,158,249, + 12,134,12,237,129,158,249,41,153,115, + 12,215,158,249,249,249,249,161,161,141, + 108,165,167,178,12,143,12,12,93,251, + 240,71,71,170,158,216,165,12,12,158, + 141,65,12,12,13,13,167,133,186,237, + 249,158,141,33,12,105,153,204,12,12, + 249,249,108,131,141,124,12,12,69,141, + 180,136,12,12,69,77,259,165,65,216, + 108,65,65,141,131,249,206,193,141,12, + 41,161,65,86,204,199,146,141,218,141, + 259,141,95,195,178,186,12,65,12,100, + 15,259,69,69,11,141,237,199,108,33, + 249,86,178,165,12,218,252,12,20,93, + 218,146,237,199,95,223,29,136,195,65, + 65,11,259,259,73,249,141,123,180,12, + 12,69,165,12,12,79,79,178,223,164, + 12,259,12,11,11,12,141,73,218,141, + 178,56,12,249,69,259,237,218,141,12, + 12,141,102,29,11,161,247,108,146,26, + 63,136,178,259,144,237,48,48,174,119, + 12,65,12,178,12,12,12,12,120,12, + 216,176,178,178,216,97,249,249,141,165, + 249,141,124,144,178,12,75,12,12,120, + 12,120,273,273,235,12,273,178,178,12, + 141,48,73,165,141,178,12,48,120,249, + 136,249,269,141,12,249,174,63,79,249, + 249,141,120,12,120,178,136,105,120,75, + 165,12,97,97,134,65,12,262,178,249, + 88,62,198,120,249,178,88,12,120 }; }; public final static char nasb[] = Nasb.nasb; @@ -1956,34 +1951,34 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,148,146,120,145,144,5, - 2,0,109,0,75,0,169,0,165,5, - 164,0,4,187,0,5,2,10,7,135, - 0,5,7,10,2,13,4,44,0,139, - 0,151,0,156,0,42,104,0,2,7, - 3,0,66,42,5,7,10,2,13,0, - 112,0,183,0,137,0,185,0,4,171, - 0,177,0,42,56,0,13,2,10,7, - 5,83,0,5,1,42,0,154,0,124, - 0,48,42,173,4,39,0,42,155,0, - 32,94,95,4,0,61,0,66,39,48, - 68,4,42,0,67,134,133,0,108,0, - 4,97,0,32,95,94,64,54,7,10, - 2,4,0,4,48,82,84,0,95,94, - 5,57,0,54,67,0,4,168,0,5, - 45,2,3,0,4,44,166,0,4,66, - 0,2,113,0,44,4,32,0,4,29, - 0,2,64,54,7,10,4,90,5,0, - 4,44,39,0,5,102,184,0,95,94, - 54,64,57,5,7,10,2,0,114,4, - 48,82,0,54,2,67,0,4,39,38, - 0,5,7,10,13,3,1,0,4,172, - 0,44,4,174,0,2,45,0,2,5, - 120,116,117,118,13,87,0,4,48,82, - 102,46,5,0,39,175,22,4,0,38, - 54,7,10,2,4,153,0,22,4,5, - 90,0,2,62,0,5,102,161,0,4, - 44,103,0 + 3,13,7,10,149,147,120,146,145,5, + 2,0,75,0,5,102,163,0,5,1, + 40,0,54,67,0,4,29,0,167,5, + 166,0,138,0,5,2,10,7,136,0, + 140,0,5,7,10,2,13,4,44,0, + 4,189,0,171,0,179,0,2,7,3, + 0,66,127,40,7,10,2,13,5,0, + 109,0,124,0,112,0,187,0,108,0, + 13,2,10,7,5,83,0,158,0,4, + 170,0,152,0,155,0,40,56,0,185, + 0,48,40,175,4,39,0,61,0,32, + 94,95,4,0,67,135,134,0,66,39, + 48,68,4,40,0,4,173,0,54,2, + 67,0,32,95,94,64,54,7,10,2, + 4,0,40,104,0,114,4,48,82,0, + 95,94,5,57,0,5,45,2,3,0, + 4,97,0,4,66,0,2,45,0,5, + 102,186,0,157,0,4,39,38,0,2, + 64,54,7,10,4,5,90,0,4,44, + 39,0,95,94,54,64,57,5,7,10, + 2,0,2,113,0,22,4,5,90,0, + 5,7,10,13,3,1,0,4,48,82, + 84,0,40,156,0,2,5,120,116,117, + 118,13,87,0,39,177,22,4,0,4, + 48,82,102,46,5,0,44,4,32,0, + 38,54,7,10,2,4,154,0,2,62, + 0,4,174,0,4,44,168,0,44,4, + 176,0,4,44,103,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1997,7 +1992,7 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 55,61,67,84,88,90,94,97,99,109, 110,111,123,104,54,106,47,64,70,73, 76,83,89,93,98,77,95,103,1,46, - 53,58,78,121,20,63,91,101,44,33, + 53,58,78,121,20,63,91,101,33,44, 119,122,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 15,16,21,22,32,4,23,24,25,26, @@ -2014,8 +2009,8 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 132,137,139,0,0,138,236,136,0,230, 135,0,146,134,0,0,145,151,0,0, 152,182,161,162,163,164,165,166,154,167, - 168,127,169,170,171,0,144,129,133,172, - 0,130,141,155,140,180,0,0,0,0, + 168,127,169,170,171,0,144,129,133,130, + 172,0,141,155,140,180,0,0,0,0, 0,0,0,0,148,175,158,0,205,0, 189,0,202,206,0,128,0,174,0,0, 0,0,0,0,207,178,0,0,0,0, @@ -2023,14 +2018,14 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 213,160,209,210,211,0,0,0,0,149, 208,221,177,198,0,0,212,0,0,0, 241,242,150,181,0,191,192,193,194,195, - 197,200,0,0,215,218,220,0,239,0, - 240,0,142,143,147,0,0,157,159,0, - 173,0,183,184,185,186,187,190,0,196, - 0,199,204,0,216,217,0,222,225,227, - 229,0,233,234,235,237,238,125,0,153, - 156,0,176,0,179,0,201,214,219,0, - 223,224,226,228,0,231,232,243,244,0, - 0,0,0,0,0 + 197,200,0,0,215,218,0,220,0,239, + 0,240,0,142,143,147,0,0,157,159, + 0,173,0,183,184,185,186,187,190,0, + 196,0,199,204,0,216,217,0,0,222, + 225,227,229,0,233,234,235,237,238,125, + 0,153,156,0,176,0,179,0,201,214, + 219,0,223,224,226,228,0,231,232,243, + 244,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2038,18 +2033,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopePrefix { public final static char scopePrefix[] = { - 151,573,592,524,540,551,562,356,261,275, - 297,303,42,286,376,414,159,581,467,20, - 51,71,80,85,90,127,187,292,309,320, - 331,267,281,495,27,366,331,600,27,209, - 240,1,14,61,76,106,141,222,314,327, - 336,345,349,432,460,489,516,520,610,614, - 618,97,7,97,141,394,410,423,444,508, - 423,531,547,558,569,199,478,56,56,148, - 214,217,235,256,217,217,56,353,457,464, - 148,56,631,110,228,398,438,451,116,116, - 228,56,228,385,169,104,436,622,629,622, - 629,65,404,134,104,104,245 + 156,578,597,529,545,556,567,361,266,280, + 302,308,42,291,381,419,164,586,472,20, + 51,71,80,85,90,127,192,297,314,325, + 336,141,272,286,500,27,141,371,336,605, + 27,214,245,1,14,61,76,106,227,319, + 332,341,350,354,437,465,494,521,525,615, + 619,623,97,7,97,399,415,428,449,513, + 428,536,552,563,574,204,483,56,56,153, + 219,222,240,261,222,222,56,358,462,469, + 153,56,636,110,233,403,443,456,116,116, + 233,56,233,390,174,104,441,627,634,627, + 634,65,409,134,104,104,250 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2057,18 +2052,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,363,132,95, - 132,132,48,272,382,420,165,67,473,25, - 25,25,59,59,95,132,192,132,132,325, - 325,272,101,500,38,371,587,605,32,203, - 203,5,18,5,59,95,132,226,318,318, - 318,95,95,132,238,5,5,5,5,5, - 238,226,11,101,145,363,363,363,448,500, - 427,535,535,535,535,203,482,59,59,5, - 5,220,238,5,259,259,343,95,5,238, - 5,493,5,113,340,401,441,454,119,123, - 231,512,503,388,172,95,95,624,624,626, - 626,67,406,136,194,179,247 + 18,5,5,5,5,5,5,368,132,95, + 132,132,48,277,387,425,170,67,478,25, + 25,25,59,59,95,132,197,132,132,330, + 330,146,277,101,505,38,149,376,592,610, + 32,208,208,5,18,5,59,95,231,323, + 323,323,95,95,132,243,5,5,5,5, + 5,243,231,11,101,368,368,368,453,505, + 432,540,540,540,540,208,487,59,59,5, + 5,225,243,5,264,264,348,95,5,243, + 5,498,5,113,345,406,446,459,119,123, + 236,517,508,393,177,95,95,629,629,631, + 631,67,411,136,199,184,252 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2078,16 +2073,16 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final static char scopeLhs[] = { 46,17,17,17,17,17,17,71,86,47, 80,118,77,52,71,70,46,17,19,3, - 6,9,161,161,158,116,46,81,118,117, - 119,53,47,135,130,71,17,17,130,96, - 58,132,74,164,161,158,126,60,117,117, - 119,176,50,56,139,18,17,17,17,17, - 17,12,112,158,126,71,70,70,36,135, - 70,17,17,17,17,96,19,165,161,177, - 94,101,75,59,153,76,119,72,140,139, - 169,135,16,158,119,103,69,21,127,127, - 57,135,135,71,46,158,65,133,45,133, - 45,164,103,116,46,46,58 + 6,9,163,163,160,116,46,81,118,117, + 119,126,53,47,136,131,126,71,17,17, + 131,96,58,133,74,166,163,160,60,117, + 117,119,178,50,56,140,18,17,17,17, + 17,17,12,112,160,71,70,70,36,136, + 70,17,17,17,17,96,19,167,163,179, + 94,101,75,59,154,76,119,72,141,140, + 171,136,16,160,119,103,69,21,128,128, + 57,136,136,71,46,160,65,134,45,134, + 45,166,103,116,46,46,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2098,13 +2093,13 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 119,74,74,74,74,74,74,74,71,13, 71,71,65,1,74,122,64,3,74,65, 65,65,1,1,13,71,64,71,71,1, - 1,1,1,4,65,13,1,1,65,74, - 74,74,119,74,1,13,71,1,1,1, - 1,13,13,71,118,74,74,74,74,74, - 118,1,74,1,69,74,74,74,73,4, + 1,71,1,1,4,65,70,13,1,1, + 65,74,74,74,119,74,1,13,1,1, + 1,1,13,13,71,118,74,74,74,74, + 74,118,1,74,1,74,74,74,73,4, 74,65,65,65,65,74,3,1,1,74, 74,3,118,74,1,1,1,13,74,118, - 74,5,74,1,54,70,73,74,1,1, + 74,5,74,1,54,69,73,74,1,1, 6,1,54,76,75,13,13,4,4,4, 4,3,1,64,1,1,3 }; @@ -2117,10 +2112,10 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 96,248,248,248,248,248,248,106,87,96, 85,154,85,98,106,106,96,248,248,181, 223,224,57,57,82,154,96,85,154,154, - 154,98,96,137,50,106,248,248,50,146, - 66,26,106,30,57,82,311,66,154,154, - 154,22,98,33,63,248,248,248,248,248, - 248,243,6,82,311,106,106,106,280,137, + 154,311,98,96,137,50,311,106,248,248, + 50,146,66,26,106,30,57,82,66,154, + 154,154,22,98,33,63,248,248,248,248, + 248,248,243,6,82,106,106,106,280,137, 106,248,248,248,248,146,248,30,57,24, 146,148,142,66,60,71,154,106,54,63, 140,137,248,82,154,1,106,249,154,154, @@ -2133,70 +2128,70 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeRhs { public final static char scopeRhs[] = {0, - 312,3,57,0,127,0,311,3,119,0, - 127,175,0,127,179,75,0,217,0,251, - 127,30,125,0,20,0,290,127,30,54, + 314,3,57,0,127,0,313,3,119,0, + 127,175,0,127,179,75,0,217,0,252, + 127,30,125,0,20,0,292,127,30,54, 0,20,53,0,33,134,0,20,53,0, - 0,290,127,30,54,205,0,20,131,0, - 251,127,30,130,0,185,128,0,144,0, - 220,3,288,0,288,0,2,0,127,0, - 251,127,30,133,0,185,128,225,0,185, - 128,44,225,0,185,128,308,44,0,131, + 0,292,127,30,54,205,0,20,131,0, + 252,127,30,130,0,185,128,0,144,0, + 220,3,290,0,290,0,2,0,127,0, + 252,127,30,133,0,185,128,225,0,185, + 128,44,225,0,185,128,310,44,0,131, 190,168,128,0,129,0,190,168,128,0, - 136,129,0,171,0,304,127,171,0,127, + 136,129,0,171,0,306,127,171,0,127, 171,0,223,129,0,168,243,0,139,0, - 0,0,137,0,0,0,303,127,165,250, - 0,128,0,250,0,130,0,0,128,0, - 302,127,165,0,44,128,0,152,3,0, - 127,278,277,127,75,276,171,0,277,127, - 75,276,171,0,216,0,217,0,276,171, - 0,96,0,0,216,0,217,0,204,96, - 0,0,216,0,217,0,277,127,276,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,190,168,177,0,136,0,168,128,0, - 10,0,0,0,215,59,0,126,0,228, - 127,3,182,0,182,0,2,0,0,127, - 0,0,0,0,0,199,3,0,202,0, - 238,127,165,28,17,0,185,128,56,58, - 0,198,129,0,131,185,128,274,58,0, - 185,128,274,58,0,185,128,70,124,56, - 0,238,127,165,56,0,238,127,165,227, - 56,0,272,127,165,124,66,0,272,127, - 165,66,0,185,128,66,0,137,0,190, - 185,128,243,0,139,0,185,128,243,0, - 190,168,128,10,0,168,128,10,0,93, - 139,0,149,0,265,127,145,0,265,127, - 171,0,162,85,0,295,161,297,298,3, - 82,0,127,174,0,297,298,3,82,0, - 129,0,127,174,0,162,3,76,191,81, - 0,127,129,0,191,81,0,108,2,133, - 127,129,0,226,3,76,0,199,167,0, - 33,172,0,167,0,178,33,172,0,226, - 3,86,0,191,155,226,3,84,0,62, - 174,0,226,3,84,0,127,174,62,174, - 0,296,127,165,0,162,0,215,78,0, - 30,174,0,162,117,158,0,30,172,0, - 178,3,0,127,152,0,220,3,0,215, - 59,262,0,162,59,0,178,3,292,63, - 128,0,127,0,0,0,0,292,63,128, - 0,2,148,127,0,0,0,0,178,3, - 35,0,150,0,126,54,168,128,0,31, - 150,0,93,139,31,150,0,223,185,128, - 0,149,31,150,0,178,3,39,0,162, - 3,39,0,162,3,65,178,30,31,0, - 178,30,31,0,20,2,133,127,0,162, - 3,65,178,30,34,0,178,30,34,0, - 162,3,65,178,30,36,0,178,30,36, - 0,162,3,65,178,30,32,0,178,30, - 32,0,220,3,126,190,168,128,10,0, - 126,190,168,128,10,0,139,2,0,127, - 0,220,3,125,177,168,128,10,0,177, - 168,128,10,0,137,2,0,127,0,220, - 3,136,0,220,3,140,0,162,59,140, - 0,257,0,31,0,31,142,0,166,0, - 162,3,0 + 0,0,137,0,0,0,305,127,163,251, + 0,128,0,251,0,130,0,0,128,0, + 304,127,163,250,0,128,0,0,44,128, + 0,0,152,3,0,127,279,278,127,75, + 277,171,0,278,127,75,277,171,0,216, + 0,217,0,277,171,0,96,0,0,216, + 0,217,0,204,96,0,0,216,0,217, + 0,278,127,277,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,190,168,177,0, + 136,0,168,128,0,10,0,0,0,215, + 59,0,126,0,228,127,3,182,0,182, + 0,2,0,0,127,0,0,0,0,0, + 199,3,0,202,0,238,127,163,28,17, + 0,185,128,56,58,0,198,129,0,131, + 185,128,275,58,0,185,128,275,58,0, + 185,128,69,124,56,0,238,127,163,56, + 0,238,127,163,227,56,0,273,127,163, + 124,66,0,273,127,163,66,0,185,128, + 66,0,137,0,190,185,128,243,0,139, + 0,185,128,243,0,190,168,128,10,0, + 168,128,10,0,93,139,0,149,0,266, + 127,145,0,266,127,171,0,162,85,0, + 297,161,299,300,3,82,0,127,174,0, + 299,300,3,82,0,129,0,127,174,0, + 162,3,76,191,81,0,127,129,0,191, + 81,0,108,2,133,127,129,0,226,3, + 76,0,199,167,0,33,172,0,167,0, + 178,33,172,0,226,3,86,0,191,155, + 226,3,84,0,62,174,0,226,3,84, + 0,127,174,62,174,0,298,127,163,0, + 162,0,215,78,0,30,174,0,162,117, + 158,0,30,172,0,178,3,0,127,152, + 0,220,3,0,215,59,263,0,162,59, + 0,178,3,294,63,128,0,127,0,0, + 0,0,294,63,128,0,2,148,127,0, + 0,0,0,178,3,35,0,150,0,126, + 54,168,128,0,31,150,0,93,139,31, + 150,0,223,185,128,0,149,31,150,0, + 178,3,39,0,162,3,39,0,162,3, + 65,178,30,31,0,178,30,31,0,20, + 2,133,127,0,162,3,65,178,30,34, + 0,178,30,34,0,162,3,65,178,30, + 36,0,178,30,36,0,162,3,65,178, + 30,32,0,178,30,32,0,220,3,126, + 190,168,128,10,0,126,190,168,128,10, + 0,139,2,0,127,0,220,3,125,177, + 168,128,10,0,177,168,128,10,0,137, + 2,0,127,0,220,3,136,0,220,3, + 140,0,162,59,140,0,258,0,31,0, + 31,142,0,166,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2204,38 +2199,38 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeState { public final static char scopeState[] = {0, - 4045,4744,4738,4735,0,1048,927,1004,794,0, - 3260,3206,3169,3115,3078,3024,2987,2933,2896,2543, - 2506,4300,0,1381,0,2990,2891,2474,0,2729, - 626,0,3260,3206,1552,1468,3169,3115,3078,3024, - 2987,2933,1384,2896,2543,2506,4578,2507,0,3136, - 3441,2954,0,1873,1202,0,4530,3457,0,2668, - 4387,0,1759,737,0,4398,2668,4376,3521,4387, - 3371,3997,4252,4232,2808,4167,580,3360,2794,2657, - 0,4422,4271,0,4422,4271,3639,4132,4113,3552, - 4044,4030,2827,3542,0,4422,4271,3639,4132,4113, - 3552,4044,4030,2827,3542,3260,3206,3169,3115,3078, - 3024,2987,2933,2896,2543,2506,0,3449,2673,0, - 2808,4398,4278,4376,3521,4438,3360,4150,1883,792, - 4415,2828,722,1205,721,0,798,658,0,614, - 0,1692,1566,1314,567,3521,2828,3371,2794,2657, - 2509,859,0,4244,535,2619,0,4657,4637,4611, - 4590,4585,4581,4563,4559,4725,4713,4704,4687,4675, - 4513,4509,4666,4489,4480,3607,2914,4264,4100,0, - 4657,3267,4637,3175,2822,4611,4590,4585,1216,733, - 4581,4563,4559,3748,4725,3565,3537,4713,3451,3437, - 3409,3283,3010,4704,3048,4687,3560,4675,4513,4509, - 2754,4666,2566,4489,1220,4480,3607,4244,2914,2619, - 4264,4100,922,3371,3997,4252,4232,2808,4398,4167, - 2836,2668,2530,4376,2514,3521,580,3360,2794,4387, - 2657,2194,935,2106,2018,798,658,4008,3975,3953, - 2208,2245,2311,2279,2370,2342,592,2768,2628,2479, - 2452,2425,2398,3492,3468,3382,3335,2681,3931,3909, - 3887,3865,3843,3821,3799,3777,3755,3726,3693,1902, - 2157,2120,2069,2032,1981,1224,1173,1944,1131,877, - 1851,1814,820,741,684,1772,1730,1688,1646,1604, - 1562,1520,1478,1436,1394,1352,535,1310,1266,1087, - 1000,956,1044,0 + 4663,4704,4701,4690,0,1688,3340,1094,3180,0, + 3280,3226,3189,3135,3098,3044,3007,2953,2916,2562, + 2525,4261,0,852,0,3586,3019,1089,0,3341, + 629,0,3280,3226,4239,3156,3189,3135,3098,3044, + 3007,2953,2200,2916,2562,2525,4681,4152,0,3030, + 3103,3028,0,981,635,0,575,3038,0,2686, + 4402,0,1240,680,0,4373,2686,4362,3568,4402, + 3416,3979,4391,4217,2827,4196,582,3405,2813,2675, + 0,4453,4264,0,4453,4264,3599,4163,4109,3589, + 4095,4026,4012,2846,0,4453,4264,3599,4163,4109, + 3589,4095,4026,4012,2846,3280,3226,3189,3135,3098, + 3044,3007,2953,2916,2562,2525,0,3153,2538,0, + 2827,4373,3615,4362,3568,4413,3405,3602,2526,2761, + 3601,2847,1933,1078,732,0,800,661,0,741, + 0,2318,1989,804,569,3568,2847,3416,2813,2675, + 2528,2763,0,4233,537,2637,0,4641,4634,4621, + 4614,4603,4588,4583,4557,4672,4652,4083,3653,3267, + 4536,4525,3176,4509,4505,4478,2934,3085,2994,0, + 4641,3014,4634,2567,926,4621,4614,4603,917,781, + 4588,4583,4557,1643,4672,1600,1557,4652,1514,1471, + 1428,1299,3582,4083,3067,3653,2910,3267,4536,4525, + 1255,3176,930,4509,790,4505,4478,4233,2934,2637, + 3085,2994,868,3416,3979,4391,4217,2827,4373,4196, + 2549,2686,2533,4362,2245,3568,582,3405,2813,4402, + 2675,1173,937,2157,2069,800,661,3990,3957,3935, + 2259,2296,2330,1184,2389,2361,594,2787,2646,2498, + 2471,2444,2417,3537,3513,3427,3380,3355,3913,3891, + 3869,3847,3825,3803,3781,3759,3737,3715,2701,1952, + 2208,2171,2120,2083,2032,1262,1218,1995,1136,880, + 1901,1864,823,744,687,1821,1778,1735,1692,1649, + 1606,1563,1520,1477,1434,1391,537,1348,1305,1046, + 1002,959,1090,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2243,59 +2238,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface InSymb { public final static char inSymb[] = {0, - 0,291,127,264,39,31,34,36,32,10, + 0,293,127,265,39,31,34,36,32,10, 136,125,133,7,130,4,3,128,35,29, 5,12,11,6,9,27,26,140,146,148, 147,150,149,153,151,156,154,157,57,158, - 69,3,30,30,30,30,128,3,30,30, + 70,3,30,30,30,30,128,3,30,30, 167,127,59,3,62,63,30,7,125,178, 162,167,127,62,63,168,166,125,3,124, 126,103,120,3,59,90,96,12,11,92, 91,6,94,93,65,30,88,89,9,98, 97,100,99,101,113,112,111,110,109,108, - 107,106,105,104,70,117,102,178,162,178, - 178,178,178,168,220,127,127,127,266,267, - 250,268,243,269,66,270,271,10,128,59, + 107,106,105,104,69,117,102,178,162,178, + 178,178,178,168,220,127,127,127,267,268, + 251,269,243,270,66,271,272,10,128,59, 59,127,155,127,59,3,218,217,136,126, - 125,10,128,59,292,3,190,4,178,54, + 125,10,128,59,294,3,190,4,178,54, 5,128,54,220,162,147,147,146,146,146, 149,149,149,149,148,148,151,150,150,154, 153,156,162,157,65,65,65,65,190,177, - 251,254,251,213,128,6,165,168,231,128, - 126,125,124,165,128,128,185,168,251,213, - 215,158,224,127,3,128,168,206,3,293, - 167,152,257,190,128,125,185,168,73,3, - 3,3,3,126,125,69,168,127,127,126, - 125,127,185,127,165,127,185,168,54,228, + 252,255,252,213,128,6,163,168,231,128, + 126,125,124,163,128,128,185,168,252,213, + 215,158,224,127,3,128,168,206,3,295, + 167,152,258,190,128,125,185,168,73,3, + 3,3,3,126,125,70,168,127,127,126, + 125,127,185,127,163,127,185,168,54,228, 229,145,230,127,168,54,178,127,127,4, 223,5,54,162,162,162,162,3,3,6, - 184,303,128,169,225,56,54,205,58,171, - 305,127,127,73,190,127,272,124,273,190, - 155,70,224,199,187,182,177,3,127,69, - 228,190,155,259,262,59,180,4,124,126, - 220,220,127,168,165,227,30,54,274,276, - 127,3,182,307,225,44,128,272,70,69, - 127,70,70,3,168,199,127,213,155,126, - 127,3,59,162,4,190,127,165,65,30, - 128,75,127,213,304,127,125,73,283,199, - 69,128,44,308,185,221,127,190,127,259, + 184,305,128,169,225,56,54,205,58,171, + 307,127,127,73,190,127,273,124,274,190, + 155,69,224,199,187,182,177,3,127,70, + 228,190,155,260,263,59,180,4,124,126, + 220,220,127,168,163,227,30,54,275,277, + 127,3,182,309,225,44,128,273,69,70, + 127,69,69,3,168,199,127,213,155,126, + 127,3,59,162,4,190,127,163,65,30, + 128,75,127,213,306,127,125,73,285,199, + 70,128,44,310,185,221,127,190,127,260, 220,215,131,238,17,54,171,60,56,58, - 237,127,127,185,127,277,73,69,213,73, - 70,185,128,128,127,228,221,28,127,3, - 124,56,238,290,54,10,61,131,277,165, - 287,128,288,185,185,57,155,127,127,165, - 265,199,275,28,70,128,69,65,30,231, - 231,278,127,69,185,3,3,127,127,3, - 70,69,155,128,185,127,70,70,127,296, + 237,127,127,185,127,278,73,70,213,73, + 69,185,128,128,127,228,221,28,127,3, + 124,56,238,292,54,10,61,131,278,163, + 289,128,290,185,185,57,155,127,127,163, + 266,199,276,28,69,128,70,65,30,231, + 231,279,127,70,185,3,3,127,127,3, + 69,70,155,128,185,127,69,69,127,298, 80,78,1,162,8,86,84,82,81,76, - 83,85,79,77,56,75,220,312,221,238, - 152,165,185,227,290,279,119,8,73,215, - 73,3,3,3,191,3,124,162,124,179, - 69,127,127,227,65,3,73,226,167,226, - 298,145,76,226,127,302,8,61,95,311, - 167,155,199,155,297,127,3,155,279,69, - 231,155,155,127,70,191,161,265,162,70, - 122,295,155,155 + 83,85,79,77,56,75,220,314,221,238, + 152,163,250,185,227,292,280,119,8,73, + 215,73,3,3,3,191,3,124,162,124, + 179,70,127,127,163,227,65,3,73,226, + 167,226,300,145,76,226,127,127,61,95, + 313,167,155,199,155,299,127,3,155,280, + 304,231,155,155,127,69,191,161,266,162, + 189,70,69,122,297,155,189,8,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2571,20 +2566,20 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 524, + NUM_STATES = 529, NT_OFFSET = 123, - LA_STATE_OFFSET = 5783, + LA_STATE_OFFSET = 5786, MAX_LA = 2147483647, - NUM_RULES = 534, - NUM_NONTERMINALS = 195, - NUM_SYMBOLS = 318, + NUM_RULES = 536, + NUM_NONTERMINALS = 197, + NUM_SYMBOLS = 320, SEGMENT_SIZE = 8192, - START_STATE = 2897, + START_STATE = 1945, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4849, - ERROR_ACTION = 5249; + ACCEPT_ACTION = 4841, + ERROR_ACTION = 5250; 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 61820da3034..b0e381e05b0 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 @@ -118,7 +118,7 @@ public interface CPPExpressionParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 70, + TK_Assign = 69, TK_StarAssign = 104, TK_SlashAssign = 105, TK_PercentAssign = 106, @@ -129,7 +129,7 @@ public interface CPPExpressionParsersym { TK_AndAssign = 111, TK_CaretAssign = 112, TK_OrAssign = 113, - TK_Comma = 69, + TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, TK_RightBrace = 71, @@ -209,8 +209,8 @@ public interface CPPExpressionParsersym { "enum", "struct", "union", - "Comma", "Assign", + "Comma", "RightBrace", "ERROR_TOKEN", "Colon", 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 87bcc883e07..e97f1711d64 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 @@ -171,13 +171,15 @@ private CPPParserAction action; public CPPNoCastExpressionParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { // binding resolution actions need access to IASTName nodes, temporary action = new CPPParserAction (); //action.resolver = new C99TypedefTrackerParserAction (this); action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); + action.builder.setParserOptions(options); + // comment this line to use with backtracking parser //setParserAction(action); } @@ -189,10 +191,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // _1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1856,14 +1858,14 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 382: initializer_clause ::= { <openscope-ast> initializer_list , } + // Rule 382: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // case 382: { action.builder. consumeInitializerList(); break; } // - // Rule 383: initializer_clause ::= { <openscope-ast> initializer_list } + // Rule 383: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // case 383: { action.builder. consumeInitializerList(); break; @@ -1877,380 +1879,394 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 389: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 385: start_initializer_list ::= $Empty // - case 389: { action.builder. - consumeClassSpecifier(); break; + case 385: { action.builder. + initializerListStart(); break; } // - // Rule 390: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt + // Rule 386: end_initializer_list ::= $Empty // - case 390: { action.builder. - consumeClassHead(false); break; + case 386: { action.builder. + initializerListEnd(); break; } // - // Rule 391: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt + // Rule 391: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // case 391: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // Rule 392: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // case 392: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt + // Rule 393: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // case 393: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 394: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // + case 394: { action.builder. consumeClassHead(true); break; } // - // Rule 395: identifier_name_opt ::= $Empty + // Rule 395: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // case 395: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 397: identifier_name_opt ::= $Empty + // + case 397: { action.builder. consumeEmpty(); break; } // - // Rule 399: visibility_label ::= access_specifier_keyword : + // Rule 401: visibility_label ::= access_specifier_keyword : // - case 399: { action.builder. + case 401: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 402: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 400: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt ; + // Rule 403: member_declaration ::= declaration_specifiers_opt ; // - case 401: { action.builder. + case 403: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 406: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 404: { action.builder. + case 406: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 410: member_declaration ::= ERROR_TOKEN + // Rule 412: member_declaration ::= ERROR_TOKEN // - case 410: { action.builder. + case 412: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 418: member_declarator ::= declarator constant_initializer + // Rule 420: member_declarator ::= declarator constant_initializer // - case 418: { action.builder. + case 420: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // Rule 421: member_declarator ::= bit_field_declarator : constant_expression // - case 419: { action.builder. + case 421: { action.builder. consumeBitField(true); break; } // - // Rule 420: member_declarator ::= : constant_expression + // Rule 422: member_declarator ::= : constant_expression // - case 420: { action.builder. + case 422: { action.builder. consumeBitField(false); break; } // - // Rule 421: bit_field_declarator ::= identifier_name + // Rule 423: bit_field_declarator ::= identifier_name // - case 421: { action.builder. + case 423: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 422: constant_initializer ::= = constant_expression + // Rule 424: constant_initializer ::= = constant_expression // - case 422: { action.builder. + case 424: { action.builder. consumeInitializer(); break; } // - // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 430: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 429: base_specifier ::= virtual access_specifier_keyword_opt 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 429: { action.builder. + case 431: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 430: base_specifier ::= access_specifier_keyword virtual 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 430: { action.builder. + case 432: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 433: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 431: { action.builder. + case 433: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 432: access_specifier_keyword ::= private + // Rule 434: access_specifier_keyword ::= private // - case 432: { action.builder. + case 434: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 433: access_specifier_keyword ::= protected + // Rule 435: access_specifier_keyword ::= protected // - case 433: { action.builder. + case 435: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= public + // Rule 436: access_specifier_keyword ::= public // - case 434: { action.builder. + case 436: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 436: access_specifier_keyword_opt ::= $Empty + // Rule 438: access_specifier_keyword_opt ::= $Empty // - case 436: { action.builder. + case 438: { action.builder. consumeEmpty(); break; } // - // Rule 438: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > + // Rule 440: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 438: { action.builder. + case 440: { action.builder. consumeTemplateId(); break; } // - // Rule 439: conversion_function_id ::= operator conversion_type_id + // Rule 441: conversion_function_id ::= operator conversion_type_id // - case 439: { action.builder. + case 441: { action.builder. consumeConversionName(); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 442: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 440: { action.builder. + case 442: { action.builder. consumeTypeId(true); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq + // Rule 443: conversion_type_id ::= type_specifier_seq // - case 441: { action.builder. + case 443: { action.builder. consumeTypeId(false); break; } // - // Rule 442: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 444: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 442: { action.builder. + case 444: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 450: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 448: { action.builder. + case 450: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 451: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 449: { action.builder. + case 451: { action.builder. consumeQualifiedId(false); break; } // - // Rule 452: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 454: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 452: { action.builder. + case 454: { action.builder. consumeTemplateId(); break; } // - // Rule 453: operator_id_name ::= operator overloadable_operator + // Rule 455: operator_id_name ::= operator overloadable_operator // - case 453: { action.builder. + case 455: { action.builder. consumeOperatorName(); break; } // - // Rule 496: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 498: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 496: { action.builder. + case 498: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 497: export_opt ::= export + // Rule 499: export_opt ::= export // - case 497: { action.builder. + case 499: { action.builder. consumePlaceHolder(); break; } // - // Rule 498: export_opt ::= $Empty + // Rule 500: export_opt ::= $Empty // - case 498: { action.builder. + case 500: { action.builder. consumeEmpty(); break; } // - // Rule 502: template_parameter ::= parameter_declaration + // Rule 504: template_parameter ::= parameter_declaration // - case 502: { action.builder. + case 504: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 503: type_parameter ::= class identifier_name_opt + // Rule 505: type_parameter ::= class identifier_name_opt // - case 503: { action.builder. + case 505: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt = type_id + // Rule 506: type_parameter ::= class identifier_name_opt = type_id // - case 504: { action.builder. + case 506: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 505: type_parameter ::= typename identifier_name_opt + // Rule 507: type_parameter ::= typename identifier_name_opt // - case 505: { action.builder. + case 507: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 506: type_parameter ::= typename identifier_name_opt = type_id + // Rule 508: type_parameter ::= typename identifier_name_opt = type_id // - case 506: { action.builder. + case 508: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 507: 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 // - case 507: { action.builder. + case 509: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 508: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 510: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 508: { action.builder. + case 510: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 509: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > + // Rule 511: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 509: { action.builder. + case 511: { action.builder. consumeTemplateId(); break; } // - // Rule 515: template_argument ::= type_id + // Rule 517: template_argument ::= type_id // - case 515: { action.builder. + case 517: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 516: explicit_instantiation ::= template declaration + // Rule 518: explicit_instantiation ::= template declaration // - case 516: { action.builder. + case 518: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 517: explicit_specialization ::= template < > declaration + // Rule 519: explicit_specialization ::= template < > declaration // - case 517: { action.builder. + case 519: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 518: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 520: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 518: { action.builder. + case 520: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // Rule 523: handler ::= catch ( exception_declaration ) compound_statement // - case 521: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 522: handler ::= catch ( ... ) compound_statement + // Rule 524: handler ::= catch ( ... ) compound_statement // - case 522: { action.builder. + case 524: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 523: { action.builder. + case 525: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 524: { action.builder. + case 526: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq + // Rule 527: exception_declaration ::= type_specifier_seq // - case 525: { action.builder. + case 527: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 533: no_cast_start ::= ERROR_TOKEN + // Rule 535: no_cast_start ::= ERROR_TOKEN // - case 533: { action.builder. + case 535: { action.builder. 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 e044e002845..2800f263c13 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 @@ -75,448 +75,451 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,5,4,3,1,3,1,1,5,4, - 4,5,5,1,0,1,1,1,2,4, - 2,2,1,5,1,1,1,1,1,1, - 1,2,1,0,1,3,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,7,6,3,0,0,1,3,1,1, + 5,4,4,5,5,1,0,1,1,1, + 2,4,2,2,1,5,1,1,1,1, + 1,1,1,2,1,0,1,3,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,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,-108,0,0,0,-230,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,-108,0,0,0,-120, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-54,0,0,0, - 0,0,-201,0,0,0,0,0,0,0, - 0,-124,0,0,0,-2,0,-4,-310,0, - 0,0,0,-5,0,0,0,0,0,0, - -86,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-53,0, + 0,0,0,0,-49,0,0,0,0,0, + 0,0,0,-127,0,0,0,0,0,0, + -310,0,0,0,0,-2,0,0,0,0, + 0,-280,-86,0,0,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,-375,0,0,-134,-17,0,-10, - 0,0,0,0,0,-296,0,0,0,0, - -6,0,0,-127,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-7,0,-8, - 0,-487,0,0,0,0,0,0,0,0, - 0,0,-280,-232,0,-9,0,0,0,0, - 0,0,-115,0,0,0,0,0,0,0, + 0,0,0,0,0,-4,0,0,0,0, + 0,-454,0,0,0,-207,0,0,0,-191, + -16,0,0,0,0,0,0,0,0,0, + 0,0,-54,0,0,-139,0,0,0,-239, + -354,0,0,0,0,0,0,-177,0,0, + 0,0,0,0,-365,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-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,0,0, - 0,-53,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-16,0, - 0,0,-354,0,0,0,-166,0,0,-116, + 0,0,0,0,-226,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-240,0, + 0,-5,0,0,-353,0,0,0,0,-449, + 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,0,0,0, - 0,0,0,0,0,0,0,0,-49,0, - 0,0,0,0,0,0,-171,0,0,0, - 0,0,0,0,0,0,0,0,0,-139, - 0,0,0,0,0,0,-69,0,0,0, - -11,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-264,0,0,-131,0,0, + 0,0,0,0,0,0,0,0,0,-380, 0,0,0,0,0,0,0,0,0,0, + -136,0,-171,0,0,-6,0,0,0,-69, + 0,0,0,-7,0,0,0,0,0,0, + 0,0,0,0,0,-50,0,0,0,0, + -131,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-12,0,0,0, - 0,0,0,0,-318,0,0,0,0,-250, - 0,0,0,-178,0,0,-117,0,-13,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,0,-178,0, + 0,0,0,-283,-117,0,-398,0,0,0, + 0,0,-8,-63,0,-9,0,-224,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-15,0,0,0,-72,0,0, - 0,0,-50,0,0,0,0,-28,0,0, - -394,0,0,0,-270,-51,0,-29,0,0, - 0,0,-70,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-30,0,-235, - 0,0,-481,0,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,-186,0,0,0,0,0, + 0,0,0,-11,0,0,-231,0,0,0, + -249,0,0,0,0,0,-521,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-62,0,0,0,0,0,0,0,-395, - 0,0,0,0,0,-508,0,0,0,-31, + 0,0,0,0,0,-496,0,0,0,-60, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-208,0, + 0,0,0,0,-348,0,0,0,0,0, + 0,0,0,0,-129,0,0,0,-520,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-32,0,0,0,0,0, - 0,0,-383,0,0,0,0,0,-104,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,-314,0,0, + 0,-12,0,0,0,0,0,0,0,0, + 0,-104,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-120,0,-262,-429,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -13,0,0,0,-182,0,-15,0,0,0, + -17,0,0,-28,0,-10,-429,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-249,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-177,0,0, - 0,0,-186,0,0,0,0,-3,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,-262,0,0,0,0,0,0, + -29,0,-3,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-30,0,0,0,0, + 0,0,0,0,0,-163,0,0,0,0, + 0,-453,0,0,0,-288,0,0,0,-31, 0,0,0,0,0,0,0,0,0,0, - -163,0,0,0,0,0,-57,0,0,-314, - 0,-288,0,0,0,-63,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,0,0,-260,0,0,-325,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-454,0,0,0,0,0, - 0,0,0,-325,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-260,0,0,0, + 0,-132,0,0,0,0,0,-134,0,0, + 0,0,0,0,0,0,-235,0,0,0, + 0,-138,0,0,0,-32,0,0,0,0, + 0,0,0,0,0,-33,0,-326,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-449,0,0,0,-518,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -191,0,-34,-326,0,0,0,-60,0,0, + 0,0,0,0,0,0,-184,0,0,0, + 0,0,0,0,-237,0,0,0,0,0, + -39,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-34, + 0,0,0,-105,0,0,0,-243,0,0, + 0,0,0,-41,0,0,0,-35,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-295,0,0,0, - 0,0,0,0,0,-39,0,0,0,-105, 0,0,0,0,0,0,0,0,0,0, + 0,0,-36,0,0,0,-58,0,0,0, + -318,0,0,-410,0,0,-92,0,0,0, + -37,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-217, + 0,0,0,0,0,-38,0,0,0,-106, + 0,0,0,-244,0,0,0,0,0,-93, + 0,0,0,-40,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,-103,0,0,0,0,-275,-41, + 0,0,0,0,0,0,0,0,-319,0, + 0,0,-114,0,0,0,-251,0,0,0, + 0,0,-94,0,0,0,0,0,0,0, 0,0,0,0,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,0, - 0,0,0,0,0,0,0,-36,0,0, - 0,-92,0,0,0,-106,0,0,0,0, + 0,0,0,0,0,-137,0,0,0,-273, + 0,0,0,0,0,-95,0,0,0,-55, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -386,0,0,0,0,0,0,0,0,-129, - -130,0,0,-93,0,0,0,-114,0,0, + 0,0,0,0,0,0,0,0,-142,0, + 0,0,-278,0,0,0,0,0,-96,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-304,0,0,0, - 0,0,0,0,0,0,-510,0,0,0, - 0,-132,-37,0,0,-94,0,0,0,-208, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-56,0,0, + 0,-295,0,0,0,0,0,-284,0,0, + 0,-97,0,0,0,-59,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,-143,0,0,-95,0,0, + 0,0,0,0,-64,0,0,0,0,0, + -185,0,0,0,0,0,0,0,-298,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,-65,0,0, + 0,0,0,-67,0,0,0,-344,0,0, + 0,0,0,-68,-166,0,0,-99,0,0, + 0,-202,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -40,0,0,0,0,0,0,0,0,0, - -511,0,0,0,0,-137,-55,0,0,-96, - 0,0,0,-142,0,0,0,0,0,0, + 0,0,0,0,0,0,-187,0,0,0, + 0,0,0,0,0,-109,-323,-143,0,0, + -100,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,-211,0, - 0,-97,0,0,0,0,0,0,0,0, + 0,0,0,-302,0,0,0,0,0,0, + 0,0,0,-213,0,0,0,0,-110,-111, + -167,0,0,-101,0,0,0,-112,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-348,0,0,0,0,0, - -185,0,0,0,0,0,0,0,-464,-167, - -322,0,0,-98,0,0,0,-202,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-59,0,0,0, - 0,0,-187,0,0,0,0,0,0,0, - 0,0,-64,0,0,-99,0,0,0,-65, + 0,0,-189,0,0,0,0,0,0,0, + 0,-394,0,0,0,0,-102,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,0,-189,0, - 0,0,0,0,-68,0,0,-100,0,0, - 0,-213,0,0,0,0,0,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,-341,-356,0,0,-101, - 0,0,0,-238,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-192, + 0,0,0,0,-144,-145,-211,0,0,-164, + 0,0,0,-146,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-109,0,0,0,0,0,-200,0, - 0,0,0,0,0,0,0,0,-110,0, - 0,-102,0,0,0,-217,0,0,0,0, + 0,0,-465,0,0,0,0,0,-51,0, + 0,0,0,0,0,0,-209,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,-111,0,0,0,0,0, - -215,0,0,0,0,0,0,0,-291,0, - -112,0,0,-164,0,0,0,-284,0,0, + 0,0,0,0,0,-200,0,0,0,0, + 0,0,0,-204,0,0,0,0,0,0, + 0,-147,0,-18,0,0,0,-514,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-144,0,0,0, - 0,0,0,0,0,0,-145,0,0,0, - -209,0,0,0,-507,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-316,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-146,-406, - 0,0,-237,0,0,0,0,-204,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,-147,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-148,0, - 0,0,0,-317,0,0,0,-373,0,0, + 0,0,0,0,-275,-148,0,0,0,0, + -317,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-267,0,0,0,0,0,-215, + 0,0,0,0,0,0,0,-321,0,0, + 0,-149,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, - -321,0,0,0,-149,0,0,0,0,0, + 0,0,0,0,0,0,-228,0,0,0, + 0,0,0,0,-141,0,0,0,-238,0, + 0,0,0,0,0,0,0,0,-346,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-150,0,0,0,0,0,-151, - 0,0,0,0,0,0,0,-138,0,0, 0,0,0,0,0,0,0,0,0,0, - -302,-346,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-229,0,0, + 0,0,0,0,0,-378,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-267,0,0,0,0,0, - -229,0,0,0,0,0,0,0,-378,0, + 0,0,0,0,0,0,0,0,-368,0, + 0,0,0,0,-233,0,0,0,0,0, + 0,0,-70,0,0,0,-245,0,0,0, + 0,0,0,0,0,0,-379,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-323,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-141,0,0,0,0, - 0,0,0,0,0,0,0,0,-152,-379, + 0,0,0,0,0,-258,0,0,0,0, + 0,0,0,-440,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-150,0,0,0, + 0,0,-201,0,0,0,0,0,0,0, + -135,0,0,0,-252,-151,0,0,0,0, + 0,-343,-291,-383,-91,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-153,0,0,0,0,0,-233,0, - 0,0,0,0,0,0,-440,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-368, - 0,0,0,0,0,-258,0,0,0,0, - 0,0,0,-135,0,0,0,-245,-292,0, - 0,0,0,0,0,0,-154,-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,0,-410,0,0,0, - -243,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,-343,0,0, - 0,0,0,0,0,0,-90,0,0,0, - -155,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-156, - 0,0,0,0,0,0,0,-87,0,0, - 0,-157,0,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,-158, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-159,0, - 0,0,0,-80,0,0,0,-160,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-161,0,0,0, - -81,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,-82,0,0, - 0,-168,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -328,0,0,0,-83,0,0,0,-169,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-421,0,0, - 0,0,-334,0,0,0,-239,-252,0,0, - 0,0,0,-361,-307,-359,0,0,0,0, - 0,0,0,0,0,0,0,-353,0,0, - 0,-231,0,0,-438,0,0,0,0,0, - 0,-253,-254,0,0,0,0,0,0,0, - 0,0,0,-18,0,0,0,0,-380,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-480,-453,0, - 0,0,0,0,0,0,0,0,-170,0, - 0,-244,0,0,0,0,0,0,0,0, - 0,-173,0,0,0,0,0,0,0,-313, - -52,0,0,0,0,0,-433,0,0,-84, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-174,0,-247,0, - 0,0,0,-226,0,0,0,0,0,-365, - 0,0,0,0,-175,0,0,0,0,0, - 0,0,-75,0,0,0,-176,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-351,0,0,0,0, - 0,0,0,-496,0,0,0,0,0,0, - 0,0,0,0,0,-271,-179,0,0,0, - 0,-234,0,0,0,-396,0,0,0,0, - 0,-180,-279,-274,0,-107,0,0,-319,0, - -181,0,0,0,0,-402,0,0,0,0, - -190,0,0,0,0,0,0,0,0,-85, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-294,0,0,0,0, - -196,0,0,0,0,0,-367,0,0,-387, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-372,0,0,0,-255,0,0, - 0,0,0,0,0,0,0,-197,0,0, - 0,0,-236,0,0,-344,0,-287,0,0, - 0,0,0,0,0,0,-203,-352,0,0, - 0,-165,0,0,0,0,0,0,0,0, - 0,0,0,0,-447,-1,-119,-206,0,0, - 0,0,-371,-362,0,0,0,0,0,0, - 0,0,0,0,0,-240,0,0,-212,0, - 0,-222,0,0,0,0,-461,0,0,0, - 0,-223,0,0,0,-133,0,-297,-225,0, - 0,0,0,0,0,0,0,0,-390,0, - -467,0,0,0,0,0,0,0,0,0, - -242,-299,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-300,0, - 0,0,0,0,0,0,-121,-469,0,0, - -246,0,0,0,0,-329,0,0,0,0, - 0,0,0,0,-259,0,-128,0,0,0, - 0,0,-422,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-248,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-485,0,0,-303,0,-263,0,0,0, - 0,-355,0,0,-113,0,0,0,0,0, - 0,0,-308,0,0,0,0,-327,0,0, - 0,0,-413,0,0,0,-123,0,-500,0, - 0,-182,0,0,0,-265,0,0,0,0, - 0,0,0,0,0,-266,0,-140,0,0, - 0,0,0,0,-276,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-332,-434, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-502,0,0,-336,0,0,0,0, - 0,0,0,0,-277,-281,0,0,0,0, - 0,0,0,-285,-338,0,-340,-349,0,0, - 0,0,0,0,0,0,-384,-286,-125,-506, - 0,0,-289,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-136,0,-172,0, - 0,0,0,-403,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-357, - 0,0,-412,0,-290,0,0,0,0,0, - 0,0,0,-519,0,0,-305,0,-210,0, - 0,0,0,0,0,-391,-306,0,0,0, - 0,0,0,0,-455,0,0,-385,0,0, - 0,0,0,0,-405,0,0,0,0,0, - -522,0,0,-408,0,0,-409,0,-311,0, - 0,0,0,0,0,0,0,0,0,-423, - 0,0,0,0,-456,0,0,-312,0,0, - -333,0,0,0,0,0,0,0,0,0, - -345,0,0,0,0,-347,0,0,0,0, - 0,0,0,0,-363,0,0,0,0,0, - 0,0,0,0,0,0,-366,-388,0,0, - 0,0,0,0,0,-76,0,0,0,-389, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-392,0, - -309,0,0,0,0,0,0,0,0,0, - 0,-512,0,0,0,0,-393,0,0,0, - 0,0,-77,0,0,0,-399,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-437,-401,-374,-122,0, - 0,0,-417,0,0,-459,0,0,0,0, - 0,-404,-420,0,0,0,0,-411,-48,0, - 0,0,0,-418,0,0,0,-251,0,0, - 0,-273,0,0,0,0,0,0,0,0, - 0,0,0,-278,0,0,0,0,-298,0, - 0,0,0,-419,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,-79,0,0,0,-431,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-397,-439,0,0,-441,0, - 0,-331,0,0,0,0,0,0,0,0, - 0,0,-442,0,-443,-444,-207,0,0,0, - -445,0,-335,-71,-451,-256,0,0,-301,0, - -486,-457,-324,-370,-214,0,0,0,0,0, - -452,0,0,-460,-478,0,-446,0,0,0, - 0,-448,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-458,-494,0,0, - 0,0,0,0,0,0,0,-463,0,0, - 0,0,0,0,0,0,0,-283,-488,0, - -492,0,0,0,0,0,0,0,-465,0, - 0,0,0,0,0,-427,0,0,0,0, + 0,0,0,-292,0,0,0,-253,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,-361,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,0,0,0,-152,0,0,0, + 0,0,0,0,-87,0,0,0,0,0, + 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, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -80,0,0,0,-230,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-428,-493,0,0,0,0, - 0,0,-490,-462,0,-466,0,0,0,0, - -475,0,0,0,0,0,0,0,0,-20, + 0,0,0,-153,0,0,0,-81,0,0, + 0,-341,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -519,0,0,0,-82,0,0,0,-232,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-154,0,0, + 0,-83,0,0,0,-155,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-421,0,0,0,0,-334, + 0,0,0,0,0,0,0,0,0,0, + -396,-307,-359,0,0,0,0,0,0,0, + 0,0,0,0,-402,0,0,0,-236,0, + 0,-438,0,0,0,0,-403,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -122,0,0,0,0,0,-156,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-316,0,-322,-241,0,0,0,0, + 0,0,0,0,0,0,0,0,-395,0, + 0,-270,-157,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-52,0,0,0, + -279,0,-158,-259,0,-84,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-159,0,0,-247,0,0,0,0,-362, + 0,0,0,0,0,-118,-160,0,0,-373, + -195,0,0,0,-250,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,-21,0,0,0,-468,0,0,0, + 0,0,0,0,0,0,0,0,0,-271, + 0,0,0,0,0,-161,0,0,0,0, + 0,0,0,-234,0,0,0,-287,0,0, + 0,0,0,0,0,0,0,-328,-375,0, + 0,0,-107,0,0,-162,0,0,0,0, + 0,-272,0,0,0,0,0,-274,0,-406, + 0,0,0,0,0,0,-85,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-499,-473,-477,-483,0,0, - 0,-22,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-168, + 0,0,-294,0,0,0,0,-169,0,0, + 0,0,0,-170,0,-113,-387,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-23,0,0,0,0,0,0, + -372,0,0,0,0,0,0,0,0,0, + 0,-173,-174,0,0,0,0,0,0,-497, + 0,0,-313,0,0,-303,0,0,-175,0, + 0,0,0,0,-301,0,0,-425,-386,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-24,0,0,0,-491, + 0,-447,0,0,0,0,-210,-176,0,-349, + 0,0,0,0,0,0,0,0,0,-179, + 0,-308,0,0,0,0,0,-119,0,-254, + 0,-121,0,0,0,0,-374,0,0,0, + 0,0,-14,0,0,0,0,0,0,0, + 0,0,0,0,0,-391,0,-468,0,0, + -165,0,0,0,0,0,0,0,-356,0, + 0,0,0,0,0,0,0,0,-481,0, + 0,0,0,0,-458,-351,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,-25,0,0, + 0,0,0,-180,0,0,0,0,0,0, + 0,0,0,0,-255,0,0,0,0,0, + 0,0,0,0,0,0,-47,0,0,0, + 0,0,0,0,0,0,0,0,-487,0, + 0,0,0,0,0,0,0,0,-297,0, + -181,0,0,0,0,0,0,0,0,-190, + -415,0,0,0,0,-196,-352,0,0,0, + 0,0,-299,-324,-123,-501,0,0,0,0, + -197,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-128,0,0,0,0,-437, + 0,0,-511,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-183,0,0,0, + 0,0,0,0,0,0,0,0,0,-503, + 0,0,-371,0,0,0,0,0,0,-203, + 0,-300,0,0,0,0,0,0,0,0, + -296,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-206,-125,-507,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,-495,0,0,0,0,0,0, + 0,0,0,-212,0,-140,0,0,0,0, + 0,0,-327,-512,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,-27,0,0,0,-501,0,0,0,0, + -522,0,0,0,0,-390,0,-413,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-61,0,0,0,-509,0,0, + 0,0,-43,0,0,-222,0,0,0,0, + 0,0,0,0,0,-223,0,-527,0,0, + 0,0,0,0,-409,0,0,0,0,0, + 0,0,0,0,-461,0,-205,0,0,0, + 0,-423,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-225, + -242,0,0,0,0,0,0,0,0,0, + 0,-332,0,0,0,0,-246,-336,0,0, + 0,0,0,-431,-248,0,0,0,0,0, + 0,0,-75,0,0,0,-263,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-73,0,0,0,-514, + 0,0,0,0,0,-265,0,-76,0,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,-198, - 0,0,0,-497,0,0,0,0,0,0, + -266,0,-309,0,0,0,0,0,0,0, + 0,0,0,-513,0,0,0,0,-276,0, + 0,0,0,0,-78,0,0,0,-277,0, 0,0,0,0,0,0,0,0,0,0, - 0,-504,0,0,0,0,-476,0,0,0, - 0,0,-19,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-216,0,0, + 0,-434,-329,-338,-340,0,0,0,0,0, + 0,0,0,-508,-358,0,0,0,0,-525, + -281,0,0,0,0,-48,0,0,0,0, + -482,-422,0,0,0,0,0,0,0,0, + 0,0,0,-331,0,0,0,-442,0,0, + 0,0,0,0,0,-285,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,-355,-286,0,-172,0,0,0, + -451,-289,0,-384,-335,-450,0,0,0,0, + 0,0,0,0,-370,0,0,0,0,-290, + -305,-357,-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,0,0,0,-311, + 0,0,0,0,0,0,0,0,-261,0, + 0,0,-428,-385,-427,-72,0,0,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,-333,0,0,0,0,0,-405, + -345,0,0,0,0,-347,-363,-366,0,0, + 0,0,0,0,0,0,0,0,0,0, + -19,0,0,0,-388,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,-20,0,0,0,-392,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-408,-393,-399,-401,0,0,0, + -21,0,0,0,-509,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-22,0,0,0,-404,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-23,0,0,0,-411,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,-25,0, + 0,0,-418,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -26,0,0,0,-419,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-27,0,0,0,-439,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-61,0,0,0,-441,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-73,0,0,0, + -443,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-74,0, + 0,0,-444,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-337,-482,0,-498,0,-195,0, - 0,0,-398,0,0,-415,0,-257,-364,0, - -358,0,0,0,0,0,0,-272,0,0, - 0,0,0,-218,0,0,0,0,0,0, + -198,0,0,0,-412,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-517,0, - 0,-241,0,0,0,0,0,0,0,0, - 0,0,0,-47,0,0,0,-503,0,-520, - 0,0,0,0,0,0,-369,0,0,0, - 0,0,-516,0,0,0,0,0,0,0, - 0,-407,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-183,0, - 0,0,-521,0,0,0,0,0,0,0, + 0,0,-505,0,0,0,0,-452,0,0, + 0,0,0,-455,-473,-445,-446,0,0,-42, + -103,-337,-448,0,0,0,-433,0,0,-417, + -456,-420,-44,0,-364,0,0,0,0,-464, + -466,-467,0,0,0,0,0,-71,0,0, + -469,0,0,0,-397,0,0,0,0,0, 0,0,0,0,0,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,0,0,-457,0,-459,-463,0,0,0, + 0,0,0,0,-460,0,0,0,0,0, + -474,0,0,0,0,0,0,-369,0,0, + 0,0,-478,-476,0,0,0,-407,0,-485, + 0,0,0,0,0,-479,-493,-416,-502,0, + 0,0,-1,-516,0,0,0,0,-495,-510, + 0,0,-483,-124,0,0,0,-515,0,-360, + 0,0,-477,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-416, 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,0,-376,0, 0,0,0,0,0,0,0,0,0,0, - -320,0,0,0,0,0,0,0,0,0, - 0,0,0,-430,0,0,0,0,0,0, - 0,0,0,0,0,-188,0,0,0,0, - 0,-219,-360,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-126,0,0,0,-450,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-425,-227, - 0,-472,0,0,0,0,0,0,0,0, - 0,0,0,0,-484,0,0,0,0,-42, - 0,0,0,0,0,0,-193,0,0,0, + 0,0,0,0,-376,0,0,0,0,-426, + 0,0,0,0,0,-430,0,0,0,0, + -526,0,0,0,0,0,-488,-490,-126,0, + 0,0,-218,0,0,-492,0,0,0,0, + 0,0,-342,0,0,0,0,0,0,0, + 0,0,0,-264,0,0,-484,-494,0,0, + 0,0,0,0,0,0,-504,0,0,0, + 0,0,-227,0,0,0,0,0,0,0, + 0,-367,0,0,-219,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-426,0,0,0,0,0,0,0,0, - 0,0,0,-424,0,0,0,0,0,0, + 0,0,0,-498,0,0,0,0,0,-499, + -500,0,0,0,0,0,0,0,0,0, + 0,0,-518,0,-377,0,0,0,0,0, + 0,0,0,0,0,-517,0,0,0,-524, + 0,0,0,-523,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-462,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,-489, 0,0,0,0,0,0,0,0,0,0, + 0,-268,0,0,0,0,0,0,0,0, + 0,0,0,0,-214,0,0,0,0,0, + 0,-269,0,-330,0,0,0,0,0,0, + 0,0,0,-193,0,0,0,0,0,0, + 0,-45,0,0,0,0,0,0,0,0, + 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,0,0,0, + 0,-339,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-381,0,0,0,-382, + 0,0,0,0,0,0,0,-400,0,0, + 0,0,0,0,0,0,-414,0,0,0, + 0,-432,0,0,0,-256,-257,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-491,0,0,-66,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-471,-472,0,0,0,0,0,0, + 0,0,0,0,0,-46,-475,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-199,0,0,0, + 0,0,0,0,0,0,-435,0,0,0, + 0,0,-436,-480,-486,0,0,0,0,0, + 0,0,0,0,-220,0,-320,0,0,0, + 0,0,0,0,0,0,0,0,-221,0, + 0,0,0,-282,0,-424,-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,0,0,-342,0,0,0,0,0, - 0,0,0,0,0,-268,0,0,0,0, - 0,0,0,0,0,0,-377,0,0,0, - -118,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-269,0,0, - 0,0,0,0,0,-330,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-315,0,0,0, - 0,0,0,0,-339,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,0,-381,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-382,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-489, - 0,0,0,0,0,0,0,0,0,-400, - 0,0,0,-414,0,0,0,0,0,-220, - 0,0,0,0,0,0,0,0,0,-432, 0,0,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,-515, - 0,-221,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-194,0,0,0, - 0,-205,0,0,0,0,0,0,0,0, - 0,0,-216,0,0,0,0,0,0,0, - 0,0,0,-261,0,0,0,-293,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-470,0,0,0, - 0,0,0,-471,0,0,0,0,-474,0, - 0,-43,0,0,0,0,0,0,0,0, - 0,0,0,-44,0,0,0,0,0,-45, - 0,0,0,0,0,0,-46,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-199,-282,0, - -435,0,0,0,0,-436,0,0,0,0, - 0,0,-479,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,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0 + 0,0,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; @@ -526,527 +529,530 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 168,4,54,83,83,33,33,66,66,38, - 38,42,42,191,191,192,192,193,193,1, + 170,4,54,83,83,33,33,66,66,38, + 38,40,40,193,193,194,194,195,195,1, 1,15,15,15,15,15,15,15,15,16, 16,16,14,11,11,8,8,8,8,8, 8,2,67,67,5,5,12,12,12,12, - 44,44,133,133,134,62,62,43,17,17, + 44,44,134,134,135,62,62,43,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,135,135, - 135,113,113,18,18,18,18,18,18,18, - 18,18,18,18,18,18,19,19,169,169, - 170,170,171,138,138,139,139,136,136,140, - 137,137,20,20,21,22,22,22,24,24, + 17,17,17,17,17,17,17,17,136,136, + 136,113,113,18,18,18,18,18,18,18, + 18,18,18,18,18,18,19,19,171,171, + 172,172,173,139,139,140,140,137,137,141, + 138,138,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,34,34,35,35,36,36,41,41, - 40,40,40,40,40,40,40,40,40,40, - 40,40,40,39,29,141,141,97,97,172, - 172,92,194,194,68,68,68,68,68,68, + 32,32,34,34,35,35,36,36,42,42, + 41,41,41,41,41,41,41,41,41,41, + 41,41,41,39,29,142,142,97,97,174, + 174,92,196,196,68,68,68,68,68,68, 68,68,68,69,69,69,65,65,55,55, - 173,173,70,70,70,103,103,174,174,71, - 71,71,175,175,72,72,72,72,72,73, + 175,175,70,70,70,103,103,176,176,71, + 71,71,177,177,72,72,72,72,72,73, 73,84,84,84,84,84,84,84,49,49, - 49,49,49,114,114,115,115,50,176,23, + 49,49,49,114,114,115,115,50,178,23, 23,23,23,23,48,48,87,87,87,87, - 87,148,148,143,143,143,143,143,144,144, - 144,145,145,145,146,146,146,147,147,147, + 87,149,149,144,144,144,144,144,145,145, + 145,146,146,146,147,147,147,148,148,148, 88,88,88,88,88,89,89,89,13,13, 13,13,13,13,13,13,13,13,13,100, 119,119,119,119,119,119,117,117,117,118, - 118,150,150,149,149,121,121,104,79,79, - 80,81,52,47,151,151,53,51,86,86, - 152,152,142,142,122,123,123,76,76,153, - 153,63,63,63,59,59,58,64,64,75, + 118,151,151,150,150,121,121,104,79,79, + 80,81,52,47,152,152,53,51,86,86, + 153,153,143,143,122,123,123,76,76,154, + 154,63,63,63,59,59,58,64,64,75, 75,57,57,57,90,90,99,98,98,61, 61,60,60,56,56,45,101,101,101,93, 93,93,94,94,95,95,95,96,96,105, - 105,105,107,107,106,106,195,195,91,91, - 178,178,178,178,178,125,46,46,155,177, - 177,126,126,126,126,179,179,37,37,116, - 127,127,127,127,108,108,120,120,120,157, - 158,158,158,158,158,158,158,158,158,158, - 158,182,182,180,180,181,181,159,159,159, - 159,160,183,110,109,109,184,184,161,161, - 161,161,102,102,102,185,185,9,9,10, - 186,186,187,162,154,154,163,163,164,165, - 165,6,6,7,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,77,82,82,167, - 167,129,129,130,130,130,130,130,130,3, - 131,131,128,128,111,111,85,78,74,156, - 156,112,112,188,188,188,132,132,124,124, - 189,189,168,168,1132,41,2609,2499,857,3179, - 36,904,33,37,869,32,34,2472,31,29, - 58,918,114,84,85,115,928,2902,1000,948, - 1043,1025,1389,2225,1273,1483,1398,2906,1515,1551, - 150,279,1350,1271,165,151,1075,4297,1119,2548, - 41,847,38,2856,71,36,904,341,37,869, - 494,2454,41,847,38,238,2574,36,904,33, - 37,869,32,34,801,31,29,58,918,114, - 84,85,115,928,1767,1000,948,1043,1025,2331, - 2206,241,236,237,592,41,450,31,31,4550, - 66,1128,1128,4648,280,4054,1023,322,2249,324, - 2631,1236,317,1859,592,41,285,390,424,4617, - 248,251,254,257,3399,2986,1658,163,1355,2669, - 1438,1072,2548,41,847,38,2856,1278,36,904, - 341,37,869,2859,857,578,1621,4401,2887,2977, - 3067,3159,4244,1655,41,847,38,2631,2574,36, - 904,33,37,869,32,34,801,31,29,58, - 918,114,84,85,115,928,345,1000,948,1043, - 1025,1389,1263,1273,1483,1398,4648,1515,1551,150, - 322,2249,324,514,151,317,1859,363,2756,1338, - 41,1677,49,2859,101,48,904,1711,3846,515, - 1655,41,847,38,2631,2574,36,904,33,37, - 869,32,34,801,31,29,58,918,114,84, - 85,115,928,345,1000,948,1043,1025,1389,31, - 1273,1483,1398,683,1515,1551,150,592,41,285, - 514,151,4633,391,424,2756,453,443,3377,3397, - 1238,1719,2888,40,510,495,515,1190,41,847, - 38,332,3088,36,904,33,37,869,65,34, - 96,2737,355,110,2752,2182,41,297,1655,41, - 847,38,2631,2574,36,904,33,37,869,32, - 34,801,31,29,58,918,114,84,85,115, - 928,345,1000,948,1043,1025,1389,1738,1273,1483, - 1398,510,1515,1551,150,1238,3095,3035,514,151, - 2911,41,283,2756,1238,41,2922,501,2761,1776, - 97,2752,4099,110,515,1929,41,847,38,2631, - 2574,36,904,33,37,869,32,34,801,31, - 29,58,918,114,84,85,115,928,345,1000, - 948,1043,1025,1389,1882,1273,1483,1398,31,1515, - 1551,150,1128,31,864,514,151,740,2754,1467, - 2756,2914,41,394,334,857,1974,3449,2132,510, - 867,515,69,1645,41,847,38,163,3088,36, - 904,33,37,869,64,34,2848,1525,1104,2752, - 1238,41,288,1721,41,847,38,3072,2574,36, - 904,33,37,869,32,34,801,31,29,58, - 918,114,84,85,115,928,292,1000,948,1043, - 1025,1389,506,1273,1483,1398,511,1515,1551,150, - 2914,41,394,381,151,3554,1793,41,847,38, - 327,2574,36,904,33,37,869,32,34,801, - 31,29,58,918,114,84,85,115,928,384, - 1000,948,1043,1025,1389,2173,1273,1483,1398,3424, - 1515,1551,150,1213,393,424,381,151,3554,2454, - 41,847,38,2119,2574,36,904,33,37,869, - 32,34,801,31,29,58,918,114,84,85, - 115,928,382,1000,948,1043,1025,1389,68,1273, - 1483,1398,1333,2445,2274,1993,41,847,38,385, - 2574,36,904,33,37,869,32,34,801,31, - 29,58,918,114,84,85,115,928,3454,1000, - 948,1043,1025,1389,1911,1273,1483,1398,2631,1515, - 1551,150,402,440,1641,381,151,3554,1238,41, - 2888,2912,386,1238,41,2111,2023,2669,2102,41, - 847,38,3578,2574,36,904,33,37,869,32, - 34,801,31,29,58,918,114,84,85,115, - 928,2926,1000,948,1043,1025,1389,358,1273,1483, - 1398,501,1515,1551,150,528,4099,31,165,151, - 1810,818,2102,41,847,38,1264,2574,36,904, - 33,37,869,32,34,801,31,29,58,918, - 114,84,85,115,928,362,1000,948,1043,1025, - 1389,379,1273,1483,1398,1333,1515,1551,150,2928, - 2981,3018,375,151,2102,41,847,38,334,2574, - 36,904,33,37,869,32,34,801,31,29, - 58,918,114,84,85,115,928,1533,1000,948, - 1043,1025,1389,2244,1273,1483,1398,3993,1515,1551, - 150,3219,1238,3661,375,151,2148,41,847,38, - 3555,4622,36,904,33,37,869,32,34,578, - 508,1333,435,153,2102,41,847,38,2902,2574, - 36,904,33,37,869,32,34,801,31,29, - 58,918,114,84,85,115,928,374,1000,948, - 1043,1025,1389,389,1273,1483,1398,501,1515,1551, - 150,30,4099,2199,375,151,1865,41,847,38, - 2902,2574,36,904,33,37,869,32,34,801, - 31,29,58,918,114,84,85,115,928,373, - 1000,948,1043,1025,1389,31,1273,1483,1398,2674, - 1515,1551,150,77,31,2868,149,151,1128,1533, - 2102,41,847,38,334,2574,36,904,33,37, - 869,32,34,801,31,29,58,918,114,84, - 85,115,928,163,1000,948,1043,1025,1389,60, - 1273,1483,1398,2437,1515,1551,150,3512,1212,371, - 166,151,2102,41,847,38,2902,2574,36,904, - 33,37,869,32,34,801,31,29,58,918, - 114,84,85,115,928,289,1000,948,1043,1025, - 1389,2751,1273,1483,1398,4082,1515,1551,150,76, - 1263,1263,162,151,2102,41,847,38,2902,2574, - 36,904,33,37,869,32,34,801,31,29, - 58,918,114,84,85,115,928,1333,1000,948, - 1043,1025,1389,3254,1273,1483,1398,1333,1515,1551, - 150,61,1263,756,161,151,2102,41,847,38, - 2806,2574,36,904,33,37,869,32,34,801, - 31,29,58,918,114,84,85,115,928,3126, - 1000,948,1043,1025,1389,321,1273,1483,1398,3993, - 1515,1551,150,457,456,1263,160,151,2102,41, - 847,38,522,2574,36,904,33,37,869,32, - 34,801,31,29,58,918,114,84,85,115, - 928,1265,1000,948,1043,1025,1389,2244,1273,1483, - 1398,1333,1515,1551,150,3930,2902,1260,159,151, - 2102,41,847,38,2902,2574,36,904,33,37, - 869,32,34,801,31,29,58,918,114,84, - 85,115,928,1584,1000,948,1043,1025,1389,95, - 1273,1483,1398,3993,1515,1551,150,60,59,1263, - 158,151,2102,41,847,38,521,2574,36,904, - 33,37,869,32,34,801,31,29,58,918, - 114,84,85,115,928,3004,1000,948,1043,1025, - 1389,31,1273,1483,1398,4270,1515,1551,150,3039, - 1357,1263,157,151,2102,41,847,38,2902,2574, - 36,904,33,37,869,32,34,801,31,29, - 58,918,114,84,85,115,928,2158,1000,948, - 1043,1025,1389,31,1273,1483,1398,538,1515,1551, - 150,98,329,679,156,151,2102,41,847,38, - 2272,2574,36,904,33,37,869,32,34,801, - 31,29,58,918,114,84,85,115,928,1353, - 1000,948,1043,1025,1389,356,1273,1483,1398,680, - 1515,1551,150,674,105,1469,155,151,2102,41, - 847,38,2902,2574,36,904,33,37,869,32, - 34,801,31,29,58,918,114,84,85,115, - 928,520,1000,948,1043,1025,1389,31,1273,1483, - 1398,2742,1515,1551,150,352,1937,1263,154,151, - 2102,41,847,38,2902,2574,36,904,33,37, - 869,32,34,801,31,29,58,918,114,84, - 85,115,928,1162,1000,948,1043,1025,1389,31, - 1273,1483,1398,2527,1515,1551,150,2753,418,1844, - 153,151,2102,41,847,38,2782,2574,36,904, - 33,37,869,32,34,801,31,29,58,918, - 114,84,85,115,928,2023,1000,948,1043,1025, - 1389,31,1273,1483,1398,1104,1515,1551,150,2802, - 106,2205,152,151,2058,41,847,38,331,2574, - 36,904,33,37,869,32,34,801,31,29, - 58,918,114,84,85,115,928,675,1000,948, - 1043,1025,1389,2244,1273,1483,1398,762,1515,2909, - 171,2102,41,847,38,3050,2574,36,904,33, - 37,869,32,34,801,31,29,58,918,114, - 84,85,115,928,1533,1000,948,1043,1025,1389, - 3398,1273,1483,1398,327,1515,1551,150,444,2695, - 1213,147,151,1238,41,2888,282,330,1238,41, - 1700,388,2366,41,847,38,1609,2574,36,904, - 33,37,869,32,34,801,31,29,58,918, - 114,84,85,115,928,2858,1000,948,1043,1025, - 1389,78,1273,1483,1398,57,1515,1551,150,2898, - 290,54,196,151,2454,41,847,38,1937,2574, - 36,904,33,37,869,32,34,801,31,29, - 58,918,114,84,85,115,928,520,1000,948, - 1043,1025,1389,31,1273,1483,1398,925,1515,2909, - 171,2454,41,847,38,2201,2574,36,904,33, - 37,869,32,34,801,31,29,58,918,114, - 84,85,115,928,2204,1000,948,1043,1025,1389, - 2605,1273,1483,1398,357,1515,2909,171,1854,41, - 847,38,528,4622,36,904,33,37,869,67, - 34,1264,2454,41,847,38,296,2574,36,904, - 33,37,869,32,34,801,31,29,58,918, - 114,84,85,115,928,1863,1000,948,1043,1025, - 1389,2923,1273,1483,1398,2736,1515,2909,171,2454, - 41,847,38,1777,2574,36,904,33,37,869, - 32,34,801,31,29,58,918,114,84,85, - 115,928,331,1000,948,1043,1025,1389,2523,1273, - 1483,1398,3505,1515,2909,171,1854,41,847,38, - 444,4622,36,904,33,37,869,66,34,2856, - 2454,41,847,38,420,2574,36,904,33,37, - 869,32,34,801,31,29,58,918,114,84, - 85,115,928,1837,1000,948,1043,1025,1389,31, - 1273,1483,1398,2754,1515,2909,171,2498,41,847, - 38,419,2574,36,904,33,37,869,32,34, - 801,31,29,58,918,114,84,85,115,928, - 2940,1000,948,1043,1025,1389,31,1273,1483,1398, - 3539,1515,2909,171,2730,41,847,38,2902,1476, - 36,904,46,37,869,79,2535,2273,2454,41, - 847,38,422,2574,36,904,33,37,869,32, - 34,801,31,29,58,918,114,84,85,115, - 928,2858,1000,948,1043,1025,1389,420,1273,1483, - 2418,1238,3144,2888,82,2454,41,847,38,3707, - 2574,36,904,33,37,869,32,34,801,31, - 29,58,918,114,84,85,115,928,2161,1000, - 948,1043,1025,1389,328,1273,2390,2454,41,847, - 38,147,2574,36,904,33,37,869,32,34, - 801,31,29,58,918,114,84,85,115,928, - 2554,1000,948,1043,1025,1389,400,2409,2454,41, - 847,38,2810,2574,36,904,33,37,869,32, - 34,801,31,29,58,918,114,84,85,115, - 928,2535,1000,948,1043,2350,2454,41,847,38, - 1878,2574,36,904,33,37,869,32,34,801, - 31,29,58,918,114,84,85,115,928,240, - 1000,948,1043,2362,2454,41,847,38,1508,2574, - 36,904,33,37,869,32,34,801,31,29, - 58,918,114,84,85,115,928,161,1000,948, - 2035,2454,41,847,38,669,2574,36,904,33, - 37,869,32,34,801,31,29,58,918,114, - 84,85,115,928,316,1000,948,2054,2454,41, - 847,38,1553,2574,36,904,33,37,869,32, - 34,801,31,29,58,918,114,84,85,115, - 928,1264,1000,948,2060,2454,41,847,38,2697, - 2574,36,904,33,37,869,32,34,801,31, - 29,58,918,114,84,85,115,928,262,1000, - 948,2169,534,2730,41,847,38,1862,2902,36, - 904,2534,37,869,2804,66,2730,41,847,38, - 4475,235,36,904,342,37,869,163,1238,41, - 1700,388,2841,41,286,1,187,3523,2536,534, - 3993,75,2902,2902,210,221,2680,209,218,219, - 220,222,404,176,1789,41,1700,388,235,1238, - 41,1700,388,175,163,428,190,174,177,178, - 179,180,181,187,3523,74,73,3993,1213,1238, - 3727,210,221,2680,209,218,219,220,222,2637, - 176,57,2707,41,2888,3158,431,1693,1176,3432, - 175,188,1585,191,174,177,178,179,180,181, - 2175,2542,41,1700,388,4484,2997,1238,41,297, - 2454,41,847,38,243,2574,36,904,33,37, - 869,32,34,801,31,29,58,918,114,84, - 85,115,928,673,1000,2193,3136,1713,279,1485, - 41,847,38,1307,2607,36,904,341,37,869, - 2599,41,847,38,2820,2288,36,904,341,37, - 869,2555,238,2454,41,847,38,2582,2574,36, - 904,33,37,869,32,34,801,31,29,58, - 918,114,84,85,115,928,66,1887,241,236, - 237,4505,326,4648,2914,41,394,322,2249,324, - 528,280,317,1859,4648,2995,857,2506,319,3259, - 324,3654,2041,3095,354,3205,2804,248,251,254, - 257,3399,1530,31,2041,3095,1979,2759,1072,1862, - 1161,2779,346,1650,737,351,1238,41,1700,388, - 3163,1110,331,337,4401,2887,2977,3067,3159,4244, - 2454,41,847,38,303,2574,36,904,33,37, - 869,32,34,801,31,29,58,918,114,84, - 85,115,928,430,1000,2257,1779,41,847,38, - 4426,1314,36,904,341,37,869,2182,3330,297, - 1545,41,847,38,2856,4099,36,904,341,37, - 869,354,3868,3053,2730,41,847,38,2902,353, - 36,904,2746,37,869,392,424,368,2901,346, - 1650,737,351,2841,41,283,501,344,31,3035, - 4648,4099,3543,291,322,2249,324,1668,66,317, - 1859,72,1981,4522,4648,291,3545,334,322,2249, - 324,354,2986,317,1859,349,1591,1258,2919,534, - 1128,1359,3135,2614,1533,733,2287,2631,3136,346, - 1650,737,351,1924,3135,353,501,1742,235,1583, - 4375,4099,2712,334,163,163,2669,1238,41,297, - 3444,1467,2755,187,3523,532,1410,3993,2902,408, - 2631,210,221,2680,209,218,219,220,222,66, - 176,436,310,314,4554,534,4397,354,238,345, - 175,1942,2902,3726,174,177,178,179,180,181, - 301,3109,3257,3598,235,346,1650,737,351,2902, - 163,563,3418,1742,250,236,237,1467,523,187, - 3523,849,534,3993,502,63,2902,210,221,2680, - 209,218,219,220,222,2607,176,1241,41,1700, - 388,235,62,1027,41,450,175,163,4550,185, - 174,177,178,179,180,181,187,3523,2669,325, - 3993,3985,499,501,210,221,2680,209,218,219, - 220,222,610,176,57,31,534,1425,238,3533, - 1693,2811,2902,175,102,1386,183,174,177,178, - 179,180,181,1186,576,235,2995,1776,31,3989, - 3349,163,4001,66,253,236,237,2147,4570,697, - 187,3523,2045,534,3993,109,2952,4099,210,221, - 2680,209,218,219,220,222,1734,176,1393,41, - 1700,388,235,336,337,2280,1809,175,163,864, - 184,174,177,178,179,180,181,187,3523,31, - 2936,3993,1118,4223,2631,210,221,2680,209,218, - 219,220,222,784,176,57,31,534,238,335, - 3544,1693,1490,2669,175,2967,2337,194,174,177, - 178,179,180,181,2980,31,235,31,2071,2893, - 3527,1998,163,4467,256,236,237,2902,2052,2528, - 871,187,3523,2984,534,3993,447,3377,3397,210, - 221,2680,209,218,219,220,222,2568,176,2726, - 41,1700,388,235,1238,41,1700,388,175,163, - 3245,3890,174,177,178,179,180,181,187,3523, - 31,502,3993,2902,1033,2989,210,221,2680,209, - 218,219,220,222,958,176,57,2998,534,1914, - 238,429,1693,1826,4099,175,1533,3001,199,174, - 177,178,179,180,181,2902,3486,235,31,499, - 501,3989,1940,163,1948,31,259,236,237,4312, - 2630,1045,187,3523,31,534,3993,2804,3616,3002, - 210,221,2680,209,218,219,220,222,448,176, - 1238,41,1700,388,235,2665,335,3588,3003,175, - 163,3017,193,174,177,178,179,180,181,187, - 3523,2821,300,3993,354,227,2037,210,221,2680, - 209,218,219,220,222,1389,176,449,526,427, - 50,2867,348,1650,737,351,175,3018,2623,201, - 174,177,178,179,180,181,2454,41,847,38, - 3008,2574,36,904,33,37,869,32,34,801, - 31,29,58,918,114,84,85,115,928,1346, - 1897,1635,41,3291,38,2856,4099,36,904,341, - 37,869,2165,41,847,38,1307,3016,36,904, - 341,37,869,2454,41,847,38,3022,2574,36, - 904,33,37,869,32,34,801,31,29,58, - 918,114,84,85,115,1939,2365,3023,1333,2616, - 41,2771,1729,31,4216,4648,2902,3110,334,322, - 2249,324,3024,31,317,1859,4648,3396,3025,2897, - 322,2249,324,1128,3028,317,1859,1635,2707,41, - 2888,282,1238,41,2888,287,57,354,523,380, - 3993,4375,1693,1123,1238,41,2888,284,167,1238, - 41,2888,3281,378,3029,346,1650,737,351,2454, - 41,847,38,524,2574,36,904,33,37,869, - 32,34,801,31,29,58,918,114,84,85, - 115,1975,2454,41,847,38,2804,2574,36,904, - 33,37,869,32,34,801,31,29,58,918, - 114,84,85,115,1989,1333,2301,1683,519,2680, - 415,3296,1228,41,847,38,1448,4099,36,904, - 341,37,869,2804,307,88,3030,940,41,1700, - 388,3032,2318,2716,2897,2804,2897,2631,1128,2607, - 1128,2902,31,2607,2822,1765,2598,3993,2631,2631, - 4099,2804,1649,376,31,31,235,3034,953,3646, - 378,186,3038,167,279,167,4648,235,2669,335, - 322,2249,324,205,3069,318,1859,1533,2837,212, - 221,2680,211,218,219,220,222,354,2671,204, - 212,221,2680,211,218,219,220,222,2277,2902, - 2995,2902,334,4099,2995,348,1650,737,351,3044, - 213,215,217,298,299,3086,2864,223,214,216, - 2631,213,215,217,298,299,3086,2951,223,214, - 216,1574,3123,2952,3160,3219,362,333,337,235, - 80,3200,337,308,383,31,2365,4067,2894,1128, - 2248,2981,3018,31,2804,3598,175,3952,4067,3226, - 3413,2804,212,221,2680,211,218,219,220,222, - 2454,41,847,38,3406,2574,36,904,33,37, - 869,32,34,801,31,29,58,918,114,84, - 85,93,306,213,215,217,298,299,3086,208, - 223,214,216,2454,1719,847,1735,3040,2574,36, - 904,33,37,869,32,34,801,31,29,58, - 918,114,84,85,92,2978,588,3045,2838,3362, - 4067,3577,2454,41,847,38,104,2574,36,904, - 33,37,869,32,34,801,31,29,58,918, - 114,84,85,91,2454,41,847,38,519,2574, - 36,904,33,37,869,32,34,801,31,29, - 58,918,114,84,85,90,2454,41,847,38, - 3048,2574,36,904,33,37,869,32,34,801, - 31,29,58,918,114,84,85,89,2454,41, - 847,38,1905,2574,36,904,33,37,869,32, - 34,801,31,29,58,918,114,84,85,88, - 2454,41,847,38,1706,2574,36,904,33,37, - 869,32,34,801,31,29,58,918,114,84, - 85,87,2454,41,847,38,3049,2574,36,904, - 33,37,869,32,34,801,31,29,58,918, - 114,84,85,86,2320,41,847,38,3053,2574, - 36,904,33,37,869,32,34,801,31,29, - 58,918,114,84,85,112,2454,41,847,38, - 814,2574,36,904,33,37,869,32,34,801, - 31,29,58,918,114,84,85,117,2454,41, - 847,38,5201,2574,36,904,33,37,869,32, - 34,801,31,29,58,918,114,84,85,116, - 2454,41,847,38,2902,2574,36,904,33,37, - 869,32,34,801,31,29,58,918,114,84, - 85,113,1702,41,847,38,2856,2804,36,904, - 341,37,869,2410,41,847,38,1477,2574,36, - 904,33,37,869,32,34,801,31,29,58, - 918,94,84,85,2883,2804,5201,2902,2631,1238, - 41,1700,388,2778,5201,206,2614,2518,2897,2760, - 2631,1911,1128,2631,5201,2631,4648,235,2071,5201, - 322,2249,324,4467,31,317,1859,5201,1128,2669, - 1561,5201,235,302,2669,5201,279,167,2287,5201, - 212,221,2680,211,218,219,220,222,5201,2902, - 5201,5201,2853,163,5201,212,221,2680,211,218, - 219,220,222,2528,1238,41,1700,388,2804,189, - 2902,213,215,217,298,299,3086,2792,517,214, - 216,2631,4103,2804,310,314,213,215,217,298, - 299,3086,2925,516,214,216,2631,502,5201,281, - 235,57,362,3251,4073,2969,4600,1693,3045,1238, - 41,1700,388,2804,3418,235,3157,2981,3018,1948, - 2630,228,5201,212,221,2680,211,218,219,220, - 222,5201,5201,5201,5201,500,501,5201,212,221, - 2680,211,218,219,220,222,57,5201,5201,5201, - 5201,200,1693,2929,213,215,217,298,299,3086, - 2955,224,214,216,2631,5201,5201,5201,5201,213, - 215,217,298,299,3086,5201,309,214,216,426, - 2151,5201,5201,235,2631,52,2867,5201,5201,1840, - 41,3291,38,2856,5201,36,904,341,37,869, - 5201,2897,3278,345,5201,1128,212,221,2680,211, - 218,219,220,222,2548,41,847,38,2856,5201, - 36,904,341,37,869,926,1419,41,1700,388, - 167,5201,31,2607,5201,5201,1128,213,215,217, - 298,299,3086,4648,496,214,216,322,2249,324, - 5201,5201,317,1859,2611,41,1700,388,2987,2997, - 5201,163,1128,57,5201,1635,5201,244,4648,1693, - 55,2562,322,2249,324,5201,5201,317,1859,2969, - 1201,5201,2987,2631,2631,4644,534,163,2552,5201, - 2287,279,5201,5201,2995,1751,207,3957,3042,2631, - 31,5201,345,235,534,3653,5201,1241,41,1700, - 388,163,527,5201,5201,238,5201,5201,345,5201, - 187,3523,2607,345,2756,5201,1074,405,4386,163, - 5201,3238,337,5201,2897,530,311,314,1128,1406, - 3725,242,236,237,57,2756,453,202,416,3296, - 1693,55,5201,5201,280,5201,1320,406,407,408, - 298,299,3086,167,5201,5201,439,5201,5201,950, - 249,252,255,258,3399,5201,5201,5201,5201,5201, - 5201,1072,3037,2995,5201,1500,41,847,38,5201, - 4099,36,904,341,37,869,1524,41,847,38, - 3351,5201,36,904,341,37,869,1500,41,847, - 38,1384,4099,36,904,341,37,869,5201,5201, - 3542,337,5201,5201,245,5201,5201,5201,1276,5201, - 5201,3235,2631,4644,401,5201,1765,409,411,4648, - 2631,4099,335,322,2249,324,5201,5201,320,1859, - 4648,235,5201,5201,319,3259,324,4540,203,2669, - 1237,4648,4418,5201,335,322,2249,324,3275,5201, - 318,1859,238,5201,1074,405,4386,2832,41,1700, - 388,5201,5201,3987,5201,1393,41,1700,388,5201, - 5201,5201,5201,334,2832,41,1700,388,246,236, - 237,5201,5201,5201,5201,406,407,408,298,299, - 3086,5201,5201,5201,57,2832,41,1700,388,5201, - 1693,55,57,5201,5201,5201,3512,362,1693,55, - 3037,57,2832,41,1700,388,5201,1693,55,2548, - 5201,2248,2981,3018,5201,5201,5201,2834,5201,3053, - 3006,5201,57,5201,534,5201,2579,5201,1693,55, - 2832,41,1700,388,2973,41,1700,388,5201,57, - 31,5201,5201,345,1128,1693,55,2766,5201,163, - 2991,41,1700,388,5201,409,412,5201,5201,195, - 5201,5201,31,5201,3184,662,534,57,5201,163, - 5201,57,5201,1693,55,5201,5201,1693,55,2563, - 2999,5201,31,5201,1128,345,1128,57,5201,5201, - 5201,163,3270,1693,55,5201,2637,1238,41,1700, - 388,1278,1238,41,1700,388,5201,2756,5201,163, - 5201,163,2917,1238,41,1700,388,5201,1566,169, - 5201,2838,5201,197,1238,41,1700,388,1238,41, - 1700,388,5201,5201,57,5201,5201,5201,5201,57, - 1693,2853,5201,5201,5201,1693,1176,31,5201,5201, - 57,534,5201,5201,31,5201,1693,860,534,31, - 5201,57,31,534,5201,57,2631,1693,2081,5201, - 345,1693,2491,5201,31,5201,163,345,2631,5201, - 31,5201,345,163,2631,345,195,31,163,5201, - 5201,2631,662,195,4058,5201,5201,345,195,662, - 5201,5201,5201,345,662,5201,5201,2756,31,31, - 345,31,2631,1128,5201,2631,31,5201,1803,2756, - 2631,5201,5201,31,5201,2756,5201,2631,5201,5201, - 1819,345,2756,5201,345,5201,1845,31,163,345, - 5201,1128,5201,1861,5201,5201,345,5201,1651,5201, - 3541,5201,4060,2756,5201,5201,2756,3599,5201,5201, - 5201,2756,3601,5201,1784,5201,163,506,2756,5201, - 5201,5201,504,5201,5201,5201,4039,5201,5201,531, - 5201,0,45,5221,0,45,5220,0,769,35, - 0,437,913,0,451,1167,0,44,5221,0, - 44,5220,0,2468,133,0,1,441,0,455, - 1440,0,454,1441,0,769,47,0,627,99, - 0,769,387,0,41,39,0,38,40,0, - 45,790,0,1,630,0,1,5479,0,1, - 5478,0,1,5477,0,1,5476,0,1,5475, - 0,1,5474,0,1,5473,0,1,5472,0, - 1,5471,0,1,5470,0,1,5469,0,45, - 1,5221,0,45,1,5220,0,729,1,0, - 5441,247,0,5440,247,0,5541,247,0,5540, - 247,0,5468,247,0,5467,247,0,5466,247, - 0,5465,247,0,5464,247,0,5463,247,0, - 5462,247,0,5461,247,0,5479,247,0,5478, - 247,0,5477,247,0,5476,247,0,5475,247, - 0,5474,247,0,5473,247,0,5472,247,0, - 5471,247,0,5470,247,0,5469,247,0,45, - 247,5221,0,45,247,5220,0,5245,247,0, - 56,5221,0,56,5220,0,51,5243,0,51, - 43,0,5221,56,0,5220,56,0,2468,135, - 0,2468,134,0,5207,1,0,5206,1,0, - 243,3419,0,388,38,0,38,388,0,387, - 35,0,35,387,0,5533,442,0,1345,442, - 0,1,100,0,43,55,0,5245,1,0, - 45,1,0,55,43,0,498,3076,0,5245, - 234,1,0,45,234,1,0,234,414,0, - 43,5221,0,43,5220,0,5243,53,0,53, - 43,0,5221,42,0,5220,42,0,1,5221, - 2,0,1,5220,2,0,43,5221,2,0, - 43,5220,2,0,5211,403,0,5210,403,0, - 1,579,0,1,790,0,1,4170,0,234, - 413,0,5533,103,0,1345,103,0,41,81, - 0,3058,321,0,1,5533,0,1,1345,0, - 45,1,5221,2,0,45,1,5220,2,0, - 45,5221,2,0,45,5220,2,0,284,3536, - 0,498,3999,0,234,1,0,234,226,0, - 234,225,0,1,921,0,1,990,0,5213, - 1,0,5209,1,0,234,1,3509,0,5210, - 234,0,3525,234,0,3656,234,0,10,12, - 0,8,10,12,0,8,12,0,192,3214, - 0 + 105,105,107,107,106,106,197,197,91,91, + 180,180,180,180,180,125,46,46,156,179, + 179,126,126,126,126,127,158,181,181,37, + 37,116,128,128,128,128,108,108,120,120, + 120,159,160,160,160,160,160,160,160,160, + 160,160,160,184,184,182,182,183,183,161, + 161,161,161,162,185,110,109,109,186,186, + 163,163,163,163,102,102,102,187,187,9, + 9,10,188,188,189,164,155,155,165,165, + 166,167,167,6,6,7,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,77,82, + 82,169,169,130,130,131,131,131,131,131, + 131,3,132,132,129,129,111,111,85,78, + 74,157,157,112,112,190,190,190,133,133, + 124,124,191,191,170,170,1132,41,2834,2828, + 2219,3527,36,1077,33,37,1071,32,34,2820, + 31,29,58,1084,114,84,85,115,1131,1411, + 1180,1156,1276,1266,1368,31,1350,1411,1393,686, + 1436,1454,150,279,592,41,285,165,151,3218, + 1651,1530,41,1032,38,1698,1212,36,1077,341, + 37,1071,2909,2447,41,1032,38,238,1964,36, + 1077,33,37,1071,32,34,924,31,29,58, + 1084,114,84,85,115,1131,420,1180,1156,1276, + 1266,2516,2219,241,236,237,940,41,1688,390, + 2219,1263,41,1626,49,4350,280,48,1077,322, + 2304,324,497,2658,317,2273,1238,1694,3175,40, + 1751,2909,248,251,254,257,2591,3443,1238,41, + 3175,3256,867,279,540,2541,41,1032,38,2837, + 2165,36,1077,341,37,1071,496,4096,616,506, + 2696,2928,2932,3085,3176,4209,1655,41,1032,38, + 2647,1964,36,1077,33,37,1071,32,34,924, + 31,29,58,1084,114,84,85,115,1131,345, + 1180,1156,1276,1266,1368,1375,1350,1411,1393,4350, + 1436,1454,150,319,3590,324,3311,516,151,501, + 96,2773,71,110,3127,1238,41,1688,390,80, + 1238,4084,517,1655,41,1032,38,2647,1964,36, + 1077,33,37,1071,32,34,924,31,29,58, + 1084,114,84,85,115,1131,345,1180,1156,1276, + 1266,1368,430,1350,1411,1393,2654,1436,1454,150, + 1238,41,1688,390,516,151,864,592,2773,97, + 3461,2561,110,592,41,285,1467,512,3438,517, + 1190,41,1032,38,1511,3196,36,1077,33,37, + 1071,65,34,331,337,2920,31,433,3014,2922, + 743,1655,41,1032,38,2647,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,114, + 84,85,115,1131,345,1180,1156,1276,1266,1368, + 907,1350,1411,1393,512,1436,1454,150,1954,1238, + 41,3266,516,151,2719,501,2773,2938,102,3127, + 3127,2535,3061,1776,1651,3014,1887,517,1857,41, + 1032,38,2647,1964,36,1077,33,37,1071,32, + 34,924,31,29,58,1084,114,84,85,115, + 1131,345,1180,1156,1276,1266,1368,1357,1350,1411, + 1393,2647,1436,1454,150,1238,41,2128,2077,516, + 151,864,334,2773,332,50,3150,2799,41,286, + 345,1779,512,189,517,2647,69,2141,41,1032, + 38,2261,3287,36,1077,33,37,1071,32,34, + 3091,510,2253,3014,2685,1075,1986,41,1032,38, + 2658,1964,36,1077,33,37,1071,32,34,924, + 31,29,58,1084,114,84,85,115,1131,1847, + 1180,1156,1276,1266,1368,2998,1350,1411,1393,513, + 1436,1454,150,30,1530,1411,4065,381,151,1721, + 41,1032,38,104,1964,36,1077,33,37,1071, + 32,34,924,31,29,58,1084,114,84,85, + 115,1131,362,1180,1156,1276,1266,1368,1271,1350, + 1411,1393,1908,1436,1454,150,3059,3327,3335,4065, + 381,151,2447,41,1032,38,2261,1964,36,1077, + 33,37,1071,32,34,924,31,29,58,1084, + 114,84,85,115,1131,3460,1180,1156,1276,1266, + 1368,2016,1350,1411,1393,2271,2776,2151,459,1946, + 3127,31,387,3285,2747,1133,66,1921,41,1032, + 38,3037,1964,36,1077,33,37,1071,32,34, + 924,31,29,58,1084,114,84,85,115,1131, + 163,1180,1156,1276,1266,1368,1411,1350,1411,1393, + 960,1436,1454,150,2929,388,3285,4065,381,151, + 437,1545,335,2095,41,1032,38,3725,1964,36, + 1077,33,37,1071,32,34,924,31,29,58, + 1084,114,84,85,115,1131,1104,1180,1156,1276, + 1266,1368,404,1350,1411,1393,501,1436,1454,150, + 420,3127,1238,4083,165,151,2095,41,1032,38, + 327,1964,36,1077,33,37,1071,32,34,924, + 31,29,58,1084,114,84,85,115,1131,458, + 1180,1156,1276,1266,1368,31,1350,1411,1393,821, + 1436,1454,150,379,3285,3077,2700,375,151,2095, + 41,1032,38,334,1964,36,1077,33,37,1071, + 32,34,924,31,29,58,1084,114,84,85, + 115,1131,1411,1180,1156,1276,1266,1368,31,1350, + 1411,1393,1133,1436,1454,150,2907,1238,41,288, + 375,151,2033,41,1032,38,2166,3287,36,1077, + 33,37,1071,67,34,616,1701,1712,2095,41, + 1032,38,391,1964,36,1077,33,37,1071,32, + 34,924,31,29,58,1084,114,84,85,115, + 1131,374,1180,1156,1276,1266,1368,31,1350,1411, + 1393,715,1436,1454,150,1238,41,3175,282,375, + 151,1793,41,1032,38,3941,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,114, + 84,85,115,1131,373,1180,1156,1276,1266,1368, + 153,1350,1411,1393,2658,1436,1454,150,1238,3496, + 3175,82,149,151,2095,41,1032,38,60,1964, + 36,1077,33,37,1071,32,34,924,31,29, + 58,1084,114,84,85,115,1131,77,1180,1156, + 1276,1266,1368,1236,1350,1411,1393,2199,1436,1454, + 150,1238,3409,371,1980,166,151,2095,41,1032, + 38,756,1964,36,1077,33,37,1071,32,34, + 924,31,29,58,1084,114,84,85,115,1131, + 2775,1180,1156,1276,1266,1368,321,1350,1411,1393, + 2658,1436,1454,150,2644,41,3175,3525,162,151, + 2095,41,1032,38,1410,1964,36,1077,33,37, + 1071,32,34,924,31,29,58,1084,114,84, + 85,115,1131,76,1180,1156,1276,1266,1368,1751, + 1350,1411,1393,2658,1436,1454,150,2644,41,3175, + 282,161,151,2095,41,1032,38,2261,1964,36, + 1077,33,37,1071,32,34,924,31,29,58, + 1084,114,84,85,115,1131,61,1180,1156,1276, + 1266,1368,292,1350,1411,1393,2658,1436,1454,150, + 1238,41,3175,287,160,151,2095,41,1032,38, + 1260,1964,36,1077,33,37,1071,32,34,924, + 31,29,58,1084,114,84,85,115,1131,95, + 1180,1156,1276,1266,1368,455,1350,1411,1393,2658, + 1436,1454,150,1238,41,3175,284,159,151,2095, + 41,1032,38,316,1964,36,1077,33,37,1071, + 32,34,924,31,29,58,1084,114,84,85, + 115,1131,60,1180,1156,1276,1266,1368,1338,1350, + 1411,1393,501,1436,1454,150,651,3127,331,3461, + 158,151,2095,41,1032,38,2194,1964,36,1077, + 33,37,1071,32,34,924,31,29,58,1084, + 114,84,85,115,1131,679,1180,1156,1276,1266, + 1368,31,1350,1411,1393,4253,1436,1454,150,1238, + 41,3175,3634,157,151,2095,41,1032,38,334, + 1964,36,1077,33,37,1071,32,34,924,31, + 29,58,1084,114,84,85,115,1131,2240,1180, + 1156,1276,1266,1368,1353,1350,1411,1393,501,1436, + 1454,150,3484,3127,1469,1493,156,151,2095,41, + 1032,38,2658,1964,36,1077,33,37,1071,32, + 34,924,31,29,58,1084,114,84,85,115, + 1131,78,1180,1156,1276,1266,1368,31,1350,1411, + 1393,2435,1436,1454,150,98,1162,331,1411,155, + 151,2095,41,1032,38,334,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,114, + 84,85,115,1131,1651,1180,1156,1276,1266,1368, + 355,1350,1411,1393,2658,1436,1454,150,4305,1777, + 1934,2164,154,151,2095,41,1032,38,2230,1964, + 36,1077,33,37,1071,32,34,924,31,29, + 58,1084,114,84,85,115,1131,352,1180,1156, + 1276,1266,1368,680,1350,1411,1393,2489,1436,1454, + 150,59,2890,41,396,153,151,2095,41,1032, + 38,2540,1964,36,1077,33,37,1071,32,34, + 924,31,29,58,1084,114,84,85,115,1131, + 79,1180,1156,1276,1266,1368,356,1350,1411,1393, + 31,1436,1454,150,2754,675,762,1411,152,151, + 2051,41,1032,38,2688,1964,36,1077,33,37, + 1071,32,34,924,31,29,58,1084,114,84, + 85,115,1131,2768,1180,1156,1276,1266,1368,1966, + 1350,1411,1393,865,1436,3194,171,2095,41,1032, + 38,2219,1964,36,1077,33,37,1071,32,34, + 924,31,29,58,1084,114,84,85,115,1131, + 3813,1180,1156,1276,1266,1368,31,1350,1411,1393, + 650,1436,1454,150,1238,41,1688,390,147,151, + 329,3328,2805,330,1637,41,1688,390,2359,41, + 1032,38,1877,1964,36,1077,33,37,1071,32, + 34,924,31,29,58,1084,114,84,85,115, + 1131,57,1180,1156,1276,1266,1368,54,1350,1411, + 1393,57,1436,1454,150,2700,2814,1645,874,196, + 151,2447,41,1032,38,522,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,114, + 84,85,115,1131,1378,1180,1156,1276,1266,1368, + 31,1350,1411,1393,931,1436,3194,171,2447,41, + 1032,38,2112,1964,36,1077,33,37,1071,32, + 34,924,31,29,58,1084,114,84,85,115, + 1131,289,1180,1156,1276,1266,1368,31,1350,1411, + 1393,2632,1436,3194,171,2033,41,1032,38,2658, + 3287,36,1077,33,37,1071,66,34,442,2447, + 41,1032,38,296,1964,36,1077,33,37,1071, + 32,34,924,31,29,58,1084,114,84,85, + 115,1131,2651,1180,1156,1276,1266,1368,2812,1350, + 1411,1393,2740,1436,3194,171,2447,41,1032,38, + 2969,1964,36,1077,33,37,1071,32,34,924, + 31,29,58,1084,114,84,85,115,1131,2906, + 1180,1156,1276,1266,1368,31,1350,1411,1393,2788, + 1436,3194,171,2158,41,1032,38,2658,3196,36, + 1077,33,37,1071,64,34,2552,2447,41,1032, + 38,422,1964,36,1077,33,37,1071,32,34, + 924,31,29,58,1084,114,84,85,115,1131, + 2758,1180,1156,1276,1266,1368,31,1350,1411,1393, + 2885,1436,3194,171,2491,41,1032,38,421,1964, + 36,1077,33,37,1071,32,34,924,31,29, + 58,1084,114,84,85,115,1131,2197,1180,1156, + 1276,1266,1368,2591,1350,1411,1393,729,1436,3194, + 171,1911,41,1032,38,2658,2598,36,1077,46, + 37,1071,1969,2044,2125,2447,41,1032,38,424, + 1964,36,1077,33,37,1071,32,34,924,31, + 29,58,1084,114,84,85,115,1131,75,1180, + 1156,1276,1266,1368,2779,1350,1411,2697,2658,68, + 402,2552,2447,41,1032,38,4011,1964,36,1077, + 33,37,1071,32,34,924,31,29,58,1084, + 114,84,85,115,1131,2960,1180,1156,1276,1266, + 1368,74,1350,2653,2447,41,1032,38,327,1964, + 36,1077,33,37,1071,32,34,924,31,29, + 58,1084,114,84,85,115,1131,2617,1180,1156, + 1276,1266,1368,406,2682,2447,41,1032,38,328, + 1964,36,1077,33,37,1071,32,34,924,31, + 29,58,1084,114,84,85,115,1131,358,1180, + 1156,1276,2597,2447,41,1032,38,530,1964,36, + 1077,33,37,1071,32,34,924,31,29,58, + 1084,114,84,85,115,1131,101,1180,1156,1276, + 2633,2447,41,1032,38,857,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,114, + 84,85,115,1131,1513,1180,1156,2052,2447,41, + 1032,38,2081,1964,36,1077,33,37,1071,32, + 34,924,31,29,58,1084,114,84,85,115, + 1131,55,1180,1156,2247,2447,41,1032,38,857, + 1964,36,1077,33,37,1071,32,34,924,31, + 29,58,1084,114,84,85,115,1131,1704,1180, + 1156,2266,2447,41,1032,38,147,1964,36,1077, + 33,37,1071,32,34,924,31,29,58,1084, + 114,84,85,115,1131,262,1180,1156,2367,536, + 1911,41,1032,38,392,426,36,1077,2335,37, + 1071,2960,66,1911,41,1032,38,4462,235,36, + 1077,342,37,1071,163,1238,41,1688,390,2799, + 41,283,1,187,3488,867,536,1238,41,1688, + 390,210,221,665,209,218,219,220,222,303, + 176,2609,41,3070,1823,235,4050,2547,393,426, + 175,163,432,190,174,177,178,179,180,181, + 187,3488,867,2700,431,1411,2834,2937,210,221, + 665,209,218,219,220,222,446,176,57,2890, + 41,396,857,2803,1645,915,1573,175,188,383, + 191,174,177,178,179,180,181,2535,41,1688, + 390,31,3105,1314,1375,1479,2447,41,1032,38, + 243,1964,36,1077,33,37,1071,32,34,924, + 31,29,58,1084,114,84,85,115,1131,290, + 1180,2454,240,1954,279,1485,41,1032,38,1612, + 2700,36,1077,341,37,1071,1384,1508,105,1737, + 2081,1238,41,1688,390,2846,41,283,238,245, + 2572,2447,41,1032,38,2654,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,114, + 84,85,115,1884,241,236,237,3835,279,4350, + 857,395,426,322,2304,324,161,280,317,2273, + 52,3150,336,337,2265,3409,301,238,31,859, + 354,3550,3084,248,251,254,257,2591,1651,592, + 41,452,1659,1971,4528,540,669,1166,346,1791, + 1705,351,2064,246,236,237,3532,4453,2265,3409, + 2125,2696,2928,2932,3085,3176,4209,2447,41,1032, + 38,281,1964,36,1077,33,37,1071,32,34, + 924,31,29,58,1084,114,84,85,115,1131, + 2276,1180,2508,1706,41,1032,38,4404,2690,36, + 1077,341,37,1071,2630,2553,1339,1766,41,1032, + 38,1698,3127,36,1077,341,37,1071,354,394, + 426,1911,41,1032,38,4015,353,36,1077,2551, + 37,1071,2278,2575,446,368,346,1791,1705,351, + 2890,41,396,2460,344,291,31,4350,4470,2661, + 3535,322,2304,324,2873,1375,317,2273,2939,2744, + 859,4350,2647,4088,334,322,2304,324,354,3443, + 317,2273,349,658,2005,3419,536,1643,2724,291, + 2064,345,3127,1404,357,4453,346,1791,1705,351, + 2499,529,2433,530,1784,235,2462,4223,1258,3714, + 2658,163,2140,2773,445,3716,3717,2219,2613,3419, + 187,3488,867,2144,532,428,2654,2647,210,221, + 665,209,218,219,220,222,2700,176,436,310, + 314,1973,536,73,335,4395,345,175,3633,1411, + 4071,174,177,178,179,180,181,867,4110,2125, + 3275,235,354,333,337,2700,66,163,1909,238, + 3769,4516,378,238,353,523,187,3488,867,536, + 348,1791,1705,351,210,221,665,209,218,219, + 220,222,2873,176,1075,250,236,237,235,253, + 236,237,300,175,163,2658,185,174,177,178, + 179,180,181,187,3488,867,354,1238,41,1688, + 390,210,221,665,209,218,219,220,222,610, + 176,308,106,536,346,1791,1705,351,72,2658, + 175,2772,1784,183,174,177,178,179,180,181, + 1110,1335,235,429,57,2647,2357,66,163,3991, + 1645,2836,4520,2658,1375,2521,697,187,3488,867, + 536,2849,3322,376,2685,210,221,665,209,218, + 219,220,222,326,176,1241,41,1688,390,235, + 2042,455,530,2219,175,163,63,184,174,177, + 178,179,180,181,187,3488,867,1238,41,1688, + 390,441,210,221,665,209,218,219,220,222, + 784,176,57,1335,536,2654,238,2647,1645,3076, + 1636,175,2658,867,194,174,177,178,179,180, + 181,2263,504,235,57,2647,2685,2701,524,163, + 1645,3310,256,236,237,2701,2941,871,187,3488, + 867,536,3552,337,2685,62,210,221,665,209, + 218,219,220,222,1381,176,1415,41,1688,390, + 235,502,503,31,2219,175,163,3455,4118,174, + 177,178,179,180,181,187,3488,867,1238,41, + 1688,390,521,210,221,665,209,218,219,220, + 222,958,176,57,504,536,66,238,66,1645, + 979,4537,175,4542,867,199,174,177,178,179, + 180,181,363,31,235,57,2748,2647,626,523, + 163,1645,2569,259,236,237,2852,1903,1045,187, + 3488,867,536,501,503,2960,345,210,221,665, + 209,218,219,220,222,2219,176,1238,41,1688, + 390,235,1238,41,1688,390,175,163,2773,193, + 174,177,178,179,180,181,187,3488,867,1746, + 408,1668,3696,227,210,221,665,209,218,219, + 220,222,31,176,57,4113,4120,849,31,451, + 1645,874,3545,175,2960,1118,201,174,177,178, + 179,180,181,2447,41,1032,38,1526,1964,36, + 1077,33,37,1071,32,34,924,31,29,58, + 1084,114,84,85,115,1131,2903,1875,2447,41, + 1032,38,307,1964,36,1077,33,37,1071,32, + 34,924,31,29,58,1084,114,84,85,115, + 1131,2540,1876,1367,41,3641,38,1698,3127,36, + 1077,341,37,1071,2215,41,1032,38,1612,1650, + 36,1077,341,37,1071,2447,41,1032,38,1774, + 1964,36,1077,33,37,1071,32,34,924,31, + 29,58,1084,114,84,85,115,1962,1238,41, + 1688,390,2844,2658,31,31,2647,4350,3143,2700, + 334,322,2304,324,2945,1779,317,2273,4350,2647, + 55,1906,322,2304,324,2685,2599,317,2273,985, + 1133,2700,1027,41,452,57,325,4528,2685,354, + 525,1645,2705,4223,1228,41,1032,38,2960,3127, + 36,1077,341,37,1071,167,2995,346,1791,1705, + 351,2447,41,1032,38,526,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,114, + 84,85,115,2006,2658,1734,186,2667,41,1688, + 390,2960,1801,504,2658,2709,2999,384,4350,2647, + 1133,335,322,2304,324,2815,362,318,2273,2647, + 2908,2964,31,2997,417,3646,2274,109,235,354, + 3534,3327,3335,1483,57,163,522,3640,235,205, + 1645,1430,501,503,207,4123,2272,348,1791,1705, + 351,212,221,665,211,218,219,220,222,2701, + 2940,212,221,665,211,218,219,220,222,1238, + 41,1688,390,31,31,2857,31,1133,2790,2647, + 1133,4000,213,215,217,298,299,3391,382,223, + 214,216,213,215,217,298,299,3391,235,223, + 214,216,4056,2781,3017,163,57,449,3716,3717, + 31,1395,1645,1774,4190,1748,2221,1318,3021,4078, + 2690,212,221,665,211,218,219,220,222,4078, + 2956,2403,41,1032,38,1837,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,94, + 84,85,213,215,217,298,299,3391,3000,223, + 214,216,2447,41,1032,38,1196,1964,36,1077, + 33,37,1071,32,34,924,31,29,58,1084, + 114,84,85,93,31,3015,2966,3023,3605,4078, + 2985,2447,1694,1032,1704,2899,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,114, + 84,85,92,2447,41,1032,38,3028,1964,36, + 1077,33,37,1071,32,34,924,31,29,58, + 1084,114,84,85,91,2447,41,1032,38,3019, + 1964,36,1077,33,37,1071,32,34,924,31, + 29,58,1084,114,84,85,90,2447,41,1032, + 38,2481,1964,36,1077,33,37,1071,32,34, + 924,31,29,58,1084,114,84,85,89,2447, + 41,1032,38,3030,1964,36,1077,33,37,1071, + 32,34,924,31,29,58,1084,114,84,85, + 88,2447,41,1032,38,3032,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,114, + 84,85,87,2447,41,1032,38,2589,1964,36, + 1077,33,37,1071,32,34,924,31,29,58, + 1084,114,84,85,86,2313,41,1032,38,3034, + 1964,36,1077,33,37,1071,32,34,924,31, + 29,58,1084,114,84,85,112,2447,41,1032, + 38,88,1964,36,1077,33,37,1071,32,34, + 924,31,29,58,1084,114,84,85,117,2447, + 41,1032,38,3037,1964,36,1077,33,37,1071, + 32,34,924,31,29,58,1084,114,84,85, + 116,2447,41,1032,38,2658,1964,36,1077,33, + 37,1071,32,34,924,31,29,58,1084,114, + 84,85,113,1902,41,1032,38,1698,2960,36, + 1077,341,37,1071,2658,2999,3038,3039,3334,536, + 31,31,2876,3043,536,1133,2647,1238,41,297, + 31,1476,31,31,3442,2753,3110,2647,4216,2647, + 1312,3044,175,345,163,235,204,450,2599,163, + 163,3048,1133,187,3488,2219,345,4350,235,1440, + 2746,322,2304,324,528,2773,317,2273,212,221, + 665,211,218,219,220,222,1354,167,2773,1404, + 202,212,221,665,211,218,219,220,222,1789, + 1583,41,1688,390,31,867,2658,2960,2979,213, + 215,217,298,299,3391,31,519,214,216,3471, + 378,588,213,215,217,298,299,3391,2785,518, + 214,216,2647,3049,2960,310,314,57,2918,380, + 2282,4057,2647,1645,55,306,31,3050,2948,3051, + 4109,235,2647,1591,3010,1569,4316,1133,1133,2042, + 3054,235,927,31,1350,630,3769,956,814,4414, + 1375,235,208,2960,212,221,665,211,218,219, + 220,222,163,163,212,221,665,211,218,219, + 220,222,534,169,212,221,665,211,218,219, + 220,222,4566,203,1870,213,215,217,298,299, + 3391,206,224,214,216,213,215,217,298,299, + 3391,3992,309,214,216,213,215,217,298,299, + 3391,2654,498,214,216,1781,41,3641,38,1698, + 1375,36,1077,341,37,1071,1530,41,1032,38, + 1698,3014,36,1077,341,37,1071,2658,2658,2604, + 41,1688,390,31,3105,5236,31,1133,3604,337, + 3963,521,244,1500,41,1032,38,5236,3127,36, + 1077,341,37,1071,2175,41,297,2960,2658,4350, + 3086,3140,163,322,2304,324,279,2960,317,2273, + 4350,2654,2265,1201,322,2304,324,2647,3599,317, + 2273,985,2175,3688,297,31,3454,5236,5236,1133, + 238,3177,1404,586,2876,302,235,4350,4324,5236, + 335,322,2304,324,2658,4104,320,2273,4054,337, + 2658,2959,5236,5236,163,3404,242,236,237,1124, + 407,4382,2876,2658,2308,1500,41,1032,38,280, + 3127,36,1077,341,37,1071,2960,3113,311,314, + 2960,5236,5236,3204,2658,249,252,255,258,2591, + 408,409,410,298,299,3391,4320,540,1921,1238, + 41,297,5236,5236,5236,5236,418,3646,5236,5236, + 1238,41,1688,390,228,3347,5236,3268,200,4350, + 5236,5236,335,322,2304,324,1921,5236,318,2273, + 1530,41,1032,38,1698,5236,36,1077,341,37, + 1071,5236,1838,41,1032,38,3393,57,36,1077, + 341,37,1071,1645,2768,1547,5236,5236,5236,2647, + 3127,5236,1276,5236,1547,5236,2647,3599,2647,3127, + 5236,5236,411,413,1241,41,1688,390,2685,5236, + 403,5236,31,5236,4350,235,2647,2685,322,2304, + 324,5236,5236,317,2273,1216,4350,4402,5236,5236, + 319,3590,324,4237,5236,345,4099,5236,1124,407, + 4382,57,334,2825,41,1688,390,1645,55,5236, + 5236,334,1415,41,1688,390,5236,2773,5236,5236, + 2825,41,1688,390,5236,5236,1257,5236,1790,408, + 409,410,298,299,3391,2907,362,5236,5236,5236, + 57,5236,5236,5236,3484,362,1645,55,5236,57, + 2177,3327,3335,5236,3347,1645,55,57,5236,2177, + 3327,3335,5236,1645,55,735,2825,41,1688,390, + 2825,41,1688,390,2851,5236,5236,5236,2825,41, + 1688,390,780,5236,5236,5236,2922,2979,41,1688, + 390,5236,2982,41,1688,390,2599,2599,5236,5236, + 1133,1133,5236,57,5236,5236,5236,57,5236,1645, + 55,411,414,1645,55,57,3003,5236,5236,31, + 536,1645,55,536,57,167,167,5236,2565,57, + 1645,55,2577,31,31,1645,55,536,536,345, + 3292,5236,345,5236,5236,163,31,31,163,3987, + 2647,536,5236,5236,4339,195,345,345,960,5236, + 5236,4370,163,163,2773,5236,5236,31,5236,345, + 345,2647,195,195,5236,1526,163,31,4370,4370, + 5236,2647,5236,31,31,2702,195,2647,2647,2647, + 345,2773,4370,3083,3152,31,5236,2599,5236,1133, + 345,1133,1798,5236,5236,5236,345,345,345,31, + 5236,5236,2773,1133,31,5236,2599,31,1133,197, + 1133,1133,2773,2089,163,5236,167,5236,2773,2773, + 4291,5236,5236,508,2930,5236,4207,4208,163,506, + 533,5236,5236,163,5236,167,163,5236,3025,5236, + 4238,5236,5236,2615,5236,5236,4303,5236,5236,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, + 5236,5236,4247,5236,3524,5236,5236,5236,5236,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, + 5236,5236,5236,3974,5236,5236,5236,5236,5236,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, + 5236,5236,5236,5236,5236,4290,5236,0,45,5256, + 0,45,5255,0,565,35,0,439,816,0, + 453,1205,0,44,5256,0,44,5255,0,2485, + 133,0,1,443,0,457,995,0,456,1116, + 0,565,47,0,1248,99,0,565,389,0, + 41,39,0,38,40,0,45,646,0,1, + 1086,0,1,5514,0,1,5513,0,1,5512, + 0,1,5511,0,1,5510,0,1,5509,0, + 1,5508,0,1,5507,0,1,5506,0,1, + 5505,0,1,5504,0,45,1,5256,0,45, + 1,5255,0,631,1,0,5476,247,0,5475, + 247,0,5576,247,0,5575,247,0,5503,247, + 0,5502,247,0,5501,247,0,5500,247,0, + 5499,247,0,5498,247,0,5497,247,0,5496, + 247,0,5514,247,0,5513,247,0,5512,247, + 0,5511,247,0,5510,247,0,5509,247,0, + 5508,247,0,5507,247,0,5506,247,0,5505, + 247,0,5504,247,0,45,247,5256,0,45, + 247,5255,0,5280,247,0,56,5256,0,56, + 5255,0,51,5278,0,51,43,0,5256,56, + 0,5255,56,0,2485,135,0,2485,134,0, + 5242,1,0,5241,1,0,243,3466,0,390, + 38,0,38,390,0,389,35,0,35,389, + 0,5568,444,0,1307,444,0,1,100,0, + 43,55,0,5280,1,0,45,1,0,55, + 43,0,500,3366,0,5280,234,1,0,45, + 234,1,0,234,416,0,43,5256,0,43, + 5255,0,5278,53,0,53,43,0,5256,42, + 0,5255,42,0,1,5256,2,0,1,5255, + 2,0,43,5256,2,0,43,5255,2,0, + 5246,405,0,5245,405,0,1,581,0,1, + 646,0,1,2943,0,234,415,0,5568,103, + 0,1307,103,0,41,81,0,3203,321,0, + 1,5568,0,1,1307,0,45,1,5256,2, + 0,45,1,5255,2,0,45,5256,2,0, + 45,5255,2,0,284,4546,0,500,3995,0, + 234,1,0,234,226,0,234,225,0,1, + 1832,0,1,2629,0,5248,1,0,5244,1, + 0,234,1,3879,0,5245,234,0,3901,234, + 0,5248,385,0,5247,385,0,4002,234,0, + 10,12,0,8,10,12,0,192,3231,0, + 4201,385,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1098,7 +1104,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 42,43,44,45,46,47,48,49,50,51, 52,53,0,55,56,57,58,0,60,61, 62,63,64,6,66,67,68,91,92,0, - 72,101,3,75,76,77,78,79,80,81, + 72,101,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, @@ -1167,213 +1173,213 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,0,55, 56,57,58,0,60,61,62,63,64,0, - 66,67,68,4,11,12,72,95,0,75, + 66,67,68,4,11,12,72,0,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,30, - 9,10,11,12,0,14,15,16,17,18, + 9,10,11,12,70,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,0,55,69,57,0, - 1,2,61,4,5,121,7,66,67,68, + 49,50,51,52,53,0,55,70,57,0, + 1,2,61,4,5,0,7,66,67,68, 0,1,2,3,4,5,6,7,8,9, 10,0,0,13,14,15,16,17,18,19, 20,21,22,23,24,25,65,0,1,2, 3,4,5,6,7,0,9,0,1,2, 0,1,2,54,44,45,46,47,48,49, 50,51,52,53,54,55,56,0,58,0, - 75,61,0,0,0,30,66,67,68,57, - 8,71,72,73,17,0,1,2,3,4, + 65,61,0,1,2,70,66,67,68,7, + 0,71,72,73,17,0,1,2,3,4, 5,6,7,8,9,10,59,87,13,14, 15,16,17,18,19,20,21,22,23,24, 25,44,45,46,47,48,49,50,51,52, - 53,100,55,0,114,115,116,54,59,44, + 53,0,55,0,114,115,116,0,59,44, 45,46,47,48,49,50,51,52,53,54, - 55,56,0,58,70,0,61,0,1,2, - 8,66,67,68,7,0,71,72,73,0, + 55,56,121,58,0,100,61,0,0,1, + 2,66,67,68,10,28,71,72,73,0, 1,2,0,4,0,3,0,8,6,3, - 8,9,87,11,12,13,102,54,104,105, - 106,107,108,109,110,111,112,113,26,27, - 118,117,30,0,30,0,1,2,0,114, - 115,116,0,1,2,0,64,14,15,16, + 8,9,87,11,12,13,0,1,2,3, + 4,5,6,7,0,9,65,0,26,27, + 0,70,30,0,114,115,116,10,54,114, + 115,116,54,0,0,61,59,14,15,16, 17,18,19,20,21,22,23,24,25,0, - 65,59,3,64,69,59,28,65,0,1, - 2,69,70,71,0,73,74,44,45,46, - 47,48,49,50,51,52,53,0,55,54, + 0,59,99,64,0,1,2,65,8,45, + 46,69,70,71,30,73,74,44,45,46, + 47,48,49,50,51,52,53,0,55,73, 88,89,90,91,92,93,94,95,96,97, 98,99,100,101,102,103,104,105,106,107, - 108,109,110,111,112,113,0,30,0,117, - 118,3,120,121,6,0,8,9,3,11, - 12,13,0,17,0,1,2,3,4,5, - 6,7,0,9,26,27,4,73,30,0, + 108,109,110,111,112,113,0,73,0,117, + 118,3,120,121,6,0,8,9,69,11, + 12,13,102,8,0,1,2,3,4,5, + 6,7,0,9,26,27,30,117,30,0, 1,2,3,4,5,6,7,0,9,0, - 44,45,46,47,48,49,50,51,52,53, - 0,55,30,0,1,2,3,59,5,0, - 7,8,0,65,59,0,13,69,70,71, - 8,73,74,59,0,1,2,3,4,5, - 6,7,0,9,70,3,88,89,90,91, + 0,102,0,104,105,106,107,108,109,110, + 111,112,113,11,12,0,117,59,118,0, + 1,2,3,65,5,0,7,69,70,71, + 30,73,74,59,0,70,0,1,2,74, + 4,59,6,69,8,9,88,89,90,91, 92,93,94,95,96,97,98,99,100,101, 102,103,104,105,106,107,108,109,110,111, - 112,113,0,0,0,117,118,3,120,121, - 0,1,2,3,4,5,6,7,69,9, - 10,11,12,71,14,15,16,100,18,19, + 112,113,0,1,2,117,118,0,120,121, + 0,1,2,3,4,5,6,7,73,9, + 10,11,12,0,14,15,16,100,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,0,1,2,3,4,5, - 6,7,59,9,0,1,2,57,4,5, - 30,7,62,63,0,1,2,3,4,5, + 74,31,32,33,34,35,36,37,38,39, + 40,41,42,43,90,0,0,1,2,4, + 96,95,0,1,2,3,4,57,6,0, + 0,9,62,63,0,1,2,3,4,5, 6,7,72,9,10,11,12,0,14,15, 16,4,18,19,20,21,22,23,24,25, - 26,27,28,29,102,31,32,33,34,35, - 36,37,38,39,40,41,42,43,54,117, - 0,0,1,2,3,0,5,73,7,8, - 0,57,0,8,13,3,62,63,13,65, + 26,27,28,29,0,31,32,33,34,35, + 36,37,38,39,40,41,42,43,62,63, + 0,59,0,0,54,0,1,2,3,0, + 5,57,7,8,11,12,62,63,69,65, 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,0,18,19, + 10,11,12,0,14,15,16,4,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,0,1,2,30,4,59, - 6,0,8,9,69,0,71,57,0,1, - 2,3,0,5,64,7,8,54,0,1, - 2,71,0,1,2,3,4,5,6,7, - 8,9,10,11,12,30,14,15,16,0, + 40,41,42,43,59,0,1,2,3,4, + 5,6,7,0,9,0,0,57,0,74, + 0,1,2,3,64,5,8,7,88,89, + 0,71,0,1,2,3,4,5,6,7, + 0,9,10,11,12,30,14,15,16,59, 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,0,59,74,0, - 1,2,3,0,5,95,7,11,12,57, - 62,63,74,0,1,2,64,4,5,95, - 7,0,0,71,0,1,2,3,4,5, - 6,7,10,9,10,11,12,0,14,15, + 38,39,40,41,42,43,0,0,1,2, + 3,65,5,70,7,8,0,1,2,57, + 13,5,74,73,62,63,0,1,2,3, + 4,5,6,7,28,9,10,11,12,69, + 14,15,16,95,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, + 54,0,1,2,3,0,5,0,7,8, + 0,1,2,57,13,5,30,7,62,63, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,0,14,15,16,30,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,59,0,1,2,0,4, + 0,6,0,3,9,3,8,57,8,0, + 8,13,3,0,64,0,1,2,3,4, + 5,6,7,8,9,10,11,12,65,14, + 15,16,0,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,59, + 28,59,0,1,2,65,4,5,70,7, + 70,0,57,0,74,30,74,0,69,64, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,0,14,15,16,4,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,0,1,2,3,4,5, + 6,7,59,9,10,11,12,44,14,15, 16,0,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,65,0, - 0,30,73,0,1,2,3,4,8,6, - 59,57,9,114,115,116,62,63,0,1, + 36,37,38,39,40,41,42,43,0,0, + 0,1,2,0,4,5,3,7,5,6, + 0,57,9,73,11,12,17,0,1,2, + 119,4,5,0,7,0,3,0,118,26, + 27,4,29,30,0,1,2,114,115,116, + 30,57,8,44,45,46,47,48,49,50, + 51,52,53,0,55,30,0,30,0,88, + 89,3,59,5,6,62,63,9,65,11, + 12,54,69,70,0,1,2,3,0,5, + 0,7,59,30,26,27,8,29,30,0, + 65,88,89,90,91,92,93,94,64,0, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,59,93,94, + 62,63,0,65,0,1,2,69,70,30, + 0,1,2,59,4,0,6,0,3,9, + 3,0,64,0,88,89,88,89,90,91, + 92,93,94,73,65,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,0,1,2,3,4,5,6,7, + 0,9,10,11,12,0,14,15,16,0, + 18,19,20,21,22,23,24,25,26,27, + 28,29,61,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,95,0,1, 2,3,4,5,6,7,0,9,10,11, - 12,0,14,15,16,4,18,19,20,21, + 12,59,14,15,16,0,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,59,0,1,2,99,4,0,6, - 0,3,9,3,74,57,8,0,8,0, - 62,63,0,1,2,3,4,5,6,7, - 8,9,10,11,12,95,14,15,16,73, + 42,43,0,1,2,3,4,5,6,7, + 54,9,10,11,12,57,14,15,16,0, 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,0,59,0,59, - 0,1,2,65,0,1,2,69,4,57, - 6,0,74,9,74,4,64,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 0,14,15,16,4,18,19,20,21,22, - 23,24,25,26,27,28,29,65,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,0,1,2,3,4,5,6,7,73, - 9,10,11,12,44,14,15,16,0,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,0,0,0,1,2, - 0,4,5,3,7,5,6,0,57,9, - 0,11,12,17,0,1,2,3,8,5, - 0,7,0,13,0,118,26,27,4,29, - 30,0,1,2,114,115,116,30,0,8, - 44,45,46,47,48,49,50,51,52,53, - 0,55,30,0,0,0,88,89,3,59, - 5,6,62,63,9,65,11,12,44,69, - 70,90,0,59,0,1,2,96,4,69, - 6,26,27,9,29,30,0,65,88,89, - 90,91,92,93,94,64,0,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,59,93,94,62,63,65, - 65,0,0,0,69,70,0,1,2,0, - 4,8,6,11,12,9,13,0,88,89, - 3,88,89,88,89,90,91,92,93,94, - 0,30,97,98,99,100,101,102,103,104, - 105,106,107,108,109,110,111,112,113,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,0,14,15,16,0,18,19,20, - 21,22,23,24,25,26,27,28,29,70, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,0,0,0,1,2,3,4, - 5,6,7,73,9,10,11,12,59,14, - 15,16,0,18,19,20,21,22,23,24, - 25,26,27,28,29,59,31,32,33,34, - 35,36,37,38,39,40,41,42,43,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,57,14,15,16,0,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,0,1,2,3,4,5,6, - 7,0,9,10,11,12,0,14,15,16, - 0,18,19,20,21,22,23,24,25,26, - 27,28,29,119,31,32,33,34,35,36, - 37,38,39,40,41,42,43,0,1,2, - 3,4,5,6,7,0,9,10,11,12, - 0,14,15,16,0,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,0,1,2,17,4,0,0,1,2, - 3,10,5,0,7,14,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 65,44,45,46,47,48,49,50,51,52, - 53,0,55,30,3,44,45,46,47,48, - 49,50,51,52,53,0,55,0,0,1, - 2,3,61,5,0,7,0,66,67,68, - 0,1,2,0,4,0,1,2,65,4, - 10,54,0,10,14,15,16,17,18,19, - 20,21,22,23,24,25,0,1,2,3, - 4,5,6,7,8,9,93,94,0,13, - 28,45,46,17,44,45,46,47,48,49, - 50,51,52,53,0,55,30,54,0,54, - 0,61,8,0,61,0,66,67,68,0, - 44,45,46,47,48,49,50,51,52,53, - 0,55,88,89,0,59,0,1,2,3, - 4,5,6,7,8,9,0,1,2,13, - 74,0,0,17,3,0,1,2,3,4, - 5,6,7,8,9,0,1,2,13,0, - 1,2,17,69,5,65,7,69,74,69, - 44,45,46,47,48,49,50,51,52,53, - 0,55,73,0,0,59,3,3,8,0, - 1,2,3,4,5,6,7,8,9,54, - 74,56,13,58,0,60,17,0,0,26, - 27,0,1,2,90,8,71,62,63,30, - 96,0,1,2,3,4,5,6,7,8, - 9,0,87,0,13,0,1,2,17,0, - 5,8,59,54,64,56,13,58,0,60, - 0,0,1,2,3,4,5,6,7,8, - 9,0,1,2,13,54,0,0,17,30, - 0,1,2,65,8,54,87,56,71,58, - 30,60,0,1,2,0,103,0,0,54, - 59,3,71,0,1,2,3,4,5,6, - 7,8,9,120,65,54,13,56,87,58, - 17,60,0,1,2,3,4,5,6,7, - 8,9,71,73,54,13,0,0,61,17, - 0,0,93,94,8,69,54,71,87,8, - 0,1,2,0,1,2,0,54,0,56, - 4,58,0,60,0,1,2,3,4,5, - 6,7,8,9,71,0,54,13,56,0, - 58,17,60,88,89,10,30,90,30,10, - 87,0,30,96,0,1,2,3,4,5, - 6,7,8,9,54,65,0,13,0,87, - 74,17,0,1,2,74,8,0,54,0, - 56,30,58,0,60,8,0,90,0,54, - 0,1,2,96,8,56,61,0,0,13, - 0,0,0,0,3,0,8,0,54,30, - 56,87,58,8,60,0,0,0,13,3, - 3,0,0,0,0,3,3,0,0,0, - 30,0,3,0,3,69,3,0,0,0, - 3,87,74,0,0,30,3,0,0,0, - 3,74,0,70,0,0,0,0,70,0, - 0,0,65,0,0,0,0,0,0,0, - 0,69,74,70,0,0,0,70,0,0, - 0,0,0,28,30,0,0,0,0,0, - 69,0,0,69,0,0,0,70,70,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,73,0,70,0,0,0,70,0, - 0,0,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,0, - 0,0,0,0,0,0,0,119,0,0, - 0,0,0,0,0,0,0,0,119,0, - 0,0,0,0,0,0,0,0,0 + 38,39,40,41,42,43,0,1,2,3, + 4,5,6,7,0,9,10,11,12,0, + 14,15,16,4,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, + 0,1,2,3,4,5,6,7,0,9, + 10,11,12,44,14,15,16,75,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,0,1,2,17,4,0, + 0,1,2,3,10,5,0,7,14,15, + 16,17,18,19,20,21,22,23,24,25, + 0,1,2,65,44,45,46,47,48,49, + 50,51,52,53,0,55,30,3,44,45, + 46,47,48,49,50,51,52,53,0,55, + 0,1,2,54,4,61,6,0,0,9, + 66,67,68,0,1,2,8,4,0,1, + 2,65,4,10,54,0,0,14,15,16, + 17,18,19,20,21,22,23,24,25,0, + 1,2,3,4,5,6,7,8,9,93, + 94,0,13,0,1,2,17,44,45,46, + 47,48,49,50,51,52,53,0,55,30, + 0,73,54,3,61,8,0,1,2,66, + 67,68,74,44,45,46,47,48,49,50, + 51,52,53,0,55,88,89,0,59,0, + 1,2,3,4,5,6,7,8,9,0, + 0,0,13,74,88,89,17,8,0,1, + 2,3,4,5,6,7,8,9,0,1, + 2,13,4,0,6,17,3,9,62,63, + 30,74,0,44,45,46,47,48,49,50, + 51,52,53,0,55,0,0,0,59,3, + 3,8,0,1,2,3,4,5,6,7, + 8,9,54,74,56,13,58,0,60,17, + 71,0,26,27,0,1,2,90,0,71, + 0,3,30,96,0,1,2,3,4,5, + 6,7,8,9,0,87,95,13,0,1, + 2,17,0,0,0,59,54,64,56,0, + 58,0,60,0,0,1,2,3,4,5, + 6,7,8,9,0,1,2,13,54,0, + 0,17,30,0,1,2,65,59,54,87, + 56,30,58,0,60,0,1,2,0,103, + 70,0,54,10,3,71,0,1,2,3, + 4,5,6,7,8,9,120,65,54,13, + 56,87,58,17,60,0,1,2,3,4, + 5,6,7,8,9,71,119,54,13,0, + 1,2,17,0,90,93,94,54,0,54, + 96,87,0,90,61,0,8,0,0,96, + 54,3,56,65,58,10,60,0,1,2, + 3,4,5,6,7,8,9,71,0,54, + 13,56,30,58,17,60,8,0,0,0, + 0,13,3,87,0,8,8,0,1,2, + 3,4,5,6,7,8,9,17,0,0, + 13,56,87,0,17,0,8,8,70,71, + 0,54,13,56,4,58,69,60,0,1, + 2,0,1,2,44,45,46,47,48,49, + 50,51,52,53,0,55,0,0,0,0, + 30,54,0,56,87,58,8,60,71,0, + 8,13,74,0,0,13,0,8,0,3, + 0,8,0,3,30,3,30,0,65,0, + 3,0,74,0,87,70,0,0,0,3, + 3,3,0,0,30,3,3,0,0,0, + 0,0,3,0,0,0,0,0,0,0, + 0,0,0,119,0,0,69,0,69,0, + 0,0,0,0,0,0,0,0,0,0, + 0,30,0,74,71,0,0,0,70,0, + 0,0,0,0,0,0,0,0,69,0, + 69,0,0,0,0,0,73,0,0,0, + 0,0,0,0,0,0,0,69,0,69, + 73,0,69,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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; @@ -1381,323 +1387,319 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5201,5175,5154,5154,5154,5154,5154,5154,5185,5154, - 1,1,1,5179,1,1,1,1,1,1, + 5236,5201,5180,5180,5180,5180,5180,5180,5217,5180, + 1,1,1,5205,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,1,1,1,5201,1,2599,1,2230,136, - 3317,1,1,1,5212,45,1,1,1,5245, - 5201,5208,5383,4290,5201,1205,3562,3551,2207,3535, - 3506,2885,3557,1252,3531,4248,3526,10,5188,5188, - 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, - 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, - 5188,5188,5188,5188,5188,5188,5188,5201,5188,5188, - 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, - 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, - 5188,5201,5188,5188,5188,5188,137,5188,5188,5188, - 5188,5188,138,5188,5188,5188,2386,2358,5188,5188, - 5201,591,5188,5188,5188,5188,5188,5188,5188,5188, - 5188,5188,5188,5188,8,5191,5191,5191,5191,5191, - 5191,5191,5191,5191,5191,5191,5191,5191,5191,5191, - 5191,5191,5191,5191,5191,5191,5191,5191,5191,5191, - 5191,5191,5191,5191,5201,5191,5191,5191,5191,5191, - 5191,5191,5191,5191,5191,5191,5191,5191,5191,5191, - 5191,5191,5191,5191,5191,5191,5191,5191,5201,5191, - 5191,5191,5191,1901,5191,5191,5191,5191,5191,139, - 5191,5191,5191,2386,2358,5191,5191,5201,591,5191, - 5191,5191,5191,5191,5191,5191,5191,5191,5191,5191, - 5191,5201,5175,5154,5154,5154,5154,5154,5154,5182, - 5154,1,1,1,5179,1,1,1,1,1, + 1,1,1,1,386,1,1172,1,2159,136, + 3648,1,1,1,5247,45,1,1,1,5280, + 5236,5243,5418,3980,5236,622,3983,3968,2224,3531, + 3857,2902,3977,740,3976,3536,3923,10,5220,5220, + 5220,5220,5220,5220,5220,5220,5220,5220,5220,5220, + 5220,5220,5220,5220,5220,5220,5220,5220,5220,5220, + 5220,5220,5220,5220,5220,5220,5220,5236,5220,5220, + 5220,5220,5220,5220,5220,5220,5220,5220,5220,5220, + 5220,5220,5220,5220,5220,5220,5220,5220,5220,5220, + 5220,5236,5220,5220,5220,5220,137,5220,5220,5220, + 5220,5220,138,5220,5220,5220,2403,2375,5220,5220, + 5236,593,5220,5220,5220,5220,5220,5220,5220,5220, + 5220,5220,5220,5220,8,5223,5223,5223,5223,5223, + 5223,5223,5223,5223,5223,5223,5223,5223,5223,5223, + 5223,5223,5223,5223,5223,5223,5223,5223,5223,5223, + 5223,5223,5223,5223,5236,5223,5223,5223,5223,5223, + 5223,5223,5223,5223,5223,5223,5223,5223,5223,5223, + 5223,5223,5223,5223,5223,5223,5223,5223,5236,5223, + 5223,5223,5223,1917,5223,5223,5223,5223,5223,139, + 5223,5223,5223,2403,2375,5223,5223,5236,593,5223, + 5223,5223,5223,5223,5223,5223,5223,5223,5223,5223, + 5223,5236,5201,5180,5180,5180,5180,5180,5180,5208, + 5180,1,1,1,5205,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5201,1,1,1,1,1,1,1,1, + 1,5236,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5201,1,2599,1,2230, - 144,3317,1,1,1,5212,122,1,1,1, - 5201,5201,3482,5383,3419,2291,1205,3562,3551,2207, - 3535,3506,2885,3557,1252,3531,4248,3526,5201,5175, - 5154,5154,5154,5154,5154,5154,5182,5154,1,1, - 1,5179,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5201,1, + 1,1,1,1,1,5236,1,1172,1,2159, + 144,3648,1,1,1,5247,122,1,1,1, + 5236,5236,3501,5418,3466,1358,622,3983,3968,2224, + 3531,3857,2902,3977,740,3976,3536,3923,5236,5201, + 5180,5180,5180,5180,5180,5180,5208,5180,1,1, + 1,5205,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5236,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5201,1,2599,1,2230,5201,3317,1, - 1,1,5212,2236,1,1,1,3459,3373,315, - 5383,2258,3645,1205,3562,3551,2207,3535,3506,2885, - 3557,1252,3531,4248,3526,5201,5175,5154,5154,5154, - 5154,5154,5154,5182,5154,1,1,1,5179,1, + 1,1,5236,1,1172,1,2159,5236,3648,1, + 1,1,5247,2216,1,1,1,3415,2711,164, + 5418,2275,5236,622,3983,3968,2224,3531,3857,2902, + 3977,740,3976,3536,3923,5236,5201,5180,5180,5180, + 5180,5180,5180,5208,5180,1,1,1,5205,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5201,1,1,1,1, + 1,1,1,1,1,5236,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1075, - 1,2599,1,2230,5201,3317,1,1,1,5212, - 45,1,1,1,5245,99,1345,5383,4838,5533, - 1205,3562,3551,2207,3535,3506,2885,3557,1252,3531, - 4248,3526,5201,5175,5154,5154,5154,5154,5154,5154, - 5182,5154,1,1,1,5179,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1364, + 1,1172,1,2159,5236,3648,1,1,1,5247, + 45,1,1,1,5280,99,1307,5418,4864,5568, + 622,3983,3968,2224,3531,3857,2902,3977,740,3976, + 3536,3923,5236,5201,5180,5180,5180,5180,5180,5180, + 5208,5180,1,1,1,5205,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5201,1,1,1,1,1,1,1, + 1,1,5236,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5201,1,2599,1, - 2230,5201,3317,1,1,1,5212,5201,1,1, - 1,5201,4805,4802,5383,5245,5201,1205,3562,3551, - 2207,3535,3506,2885,3557,1252,3531,4248,3526,5201, - 5175,5154,5154,5154,5154,5154,5154,5182,5154,1, - 1,1,5179,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5201, + 1,1,1,1,1,1,5236,1,1172,1, + 2159,5236,3648,1,1,1,5247,5236,1,1, + 1,5236,4831,4828,5418,5280,5236,622,3983,3968, + 2224,3531,3857,2902,3977,740,3976,3536,3923,5236, + 5201,5180,5180,5180,5180,5180,5180,5208,5180,1, + 1,1,5205,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5236, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3780,1,2599,1,2230,145,3317, - 1,1,1,5212,124,1,1,1,5201,1, - 3482,5383,3177,388,1205,3562,3551,2207,3535,3506, - 2885,3557,1252,3531,4248,3526,5201,5175,5154,5154, - 5154,5154,5154,5154,5182,5154,1,1,1,5179, + 1,1,1,4097,1,1172,1,2159,145,3648, + 1,1,1,5247,124,1,1,1,5236,1, + 3501,5418,791,390,622,3983,3968,2224,3531,3857, + 2902,3977,740,3976,3536,3923,5236,5201,5180,5180, + 5180,5180,5180,5180,5208,5180,1,1,1,5205, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5201,1,1,1, + 1,1,1,1,1,1,5236,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5201,1,2599,1,2230,140,3317,1,1,1, - 5212,123,1,1,1,3459,3373,3482,5383,2258, - 5201,1205,3562,3551,2207,3535,3506,2885,3557,1252, - 3531,4248,3526,5201,5175,5154,5154,5154,5154,5154, - 5154,5182,5154,1,1,1,5179,1,1,1, + 5236,1,1172,1,2159,140,3648,1,1,1, + 5247,123,1,1,1,3415,2711,3501,5418,2275, + 5236,622,3983,3968,2224,3531,3857,2902,3977,740, + 3976,3536,3923,5236,5201,5180,5180,5180,5180,5180, + 5180,5208,5180,1,1,1,5205,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,192,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5201,1,2599, - 1,2230,5201,3317,1,1,1,5212,360,1, - 1,1,3459,3373,2327,5383,425,5201,1205,3562, - 3551,2207,3535,3506,2885,3557,1252,3531,4248,3526, - 5201,5175,5154,5154,5154,5154,5154,5154,5182,5154, - 1,1,1,5179,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5236,1,1172, + 1,2159,5236,3648,1,1,1,5247,360,1, + 1,1,3415,2711,2344,5418,427,5236,622,3983, + 3968,2224,3531,3857,2902,3977,740,3976,3536,3923, + 5236,5201,5180,5180,5180,5180,5180,5180,5208,5180, + 1,1,1,5205,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5201,1,1,1,1,1,1,1,1,1, + 5236,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5201,1,2599,1,2230,4008, - 3317,1,1,1,5212,5198,1,1,1,5201, - 5220,5221,5383,5560,2291,1205,3562,3551,2207,3535, - 3506,2885,3557,1252,3531,4248,3526,5201,5175,5154, - 5154,5154,5154,5154,5154,5182,5154,1,1,1, - 5179,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5201,1,1, + 1,1,1,1,5236,1,1172,1,2159,2782, + 3648,1,1,1,5247,5227,1,1,1,5236, + 5255,5256,5418,5595,1358,622,3983,3968,2224,3531, + 3857,2902,3977,740,3976,3536,3923,5236,5201,5180, + 5180,5180,5180,5180,5180,5208,5180,1,1,1, + 5205,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5236,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5201,1,2599,1,2230,5201,3317,1,1, - 1,5212,1,1,1,1,5201,4805,4802,5383, - 5245,5201,1205,3562,3551,2207,3535,3506,2885,3557, - 1252,3531,4248,3526,5201,3509,1,1,1,1, - 1,1,3525,1,1,1,1,5210,1,1, + 1,5236,1,1172,1,2159,5236,3648,1,1, + 1,5247,5236,1,1,1,5236,4831,4828,5418, + 5280,5236,622,3983,3968,2224,3531,3857,2902,3977, + 740,3976,3536,3923,5236,3879,1,1,1,1, + 1,1,3901,1,1,1,1,5245,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5201,1,1,1,1,1, + 1,1,1,1,514,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5201,1, - 2599,1,2230,125,3317,1,1,1,5212,394, - 1,1,1,387,3326,2693,5383,5562,164,1205, - 3562,3551,2207,3535,3506,2885,3557,1252,3531,4248, - 3526,45,4805,4802,628,729,3703,3776,4170,769, - 3798,777,3754,3732,5201,5471,5469,5478,5464,5477, - 5473,5474,5472,5475,5476,5479,5470,3842,3820,5226, - 3670,5201,641,676,5228,658,3963,660,5229,5227, - 584,5222,5224,5225,5223,5467,5540,5541,5461,5468, - 5440,5466,5465,5462,5463,1,5441,1360,1316,5201, - 4805,4802,5597,729,4850,4801,4170,572,5598,5599, - 5201,5053,5053,234,5049,234,234,234,5057,234, - 1,142,529,234,1,1,1,1,1,1, - 1,1,1,1,1,1,2622,347,5144,5140, - 2806,5245,790,1345,4170,5201,5533,5201,5220,5221, - 5201,4983,4980,2068,1,1,1,1,1,1, - 1,1,1,1,5046,1,815,230,2105,455, - 3147,1,5201,43,146,4682,1,1,1,3412, - 5205,414,5611,234,5464,5201,5053,5053,234,5049, - 234,234,234,5109,234,1,1864,5698,234,1, + 1,1,1,1,1,1,1,1,5236,1, + 1172,1,2159,125,3648,1,1,1,5247,396, + 1,1,1,389,3368,3343,5418,364,5236,622, + 3983,3968,2224,3531,3857,2902,3977,740,3976,3536, + 3923,45,4831,4828,1081,631,3721,3787,2943,565, + 3809,793,3765,3743,878,5506,5504,5513,5499,5512, + 5508,5509,5507,5510,5511,5514,5505,3853,3831,5261, + 3692,5236,796,876,5263,804,3661,873,5264,5262, + 732,5257,5259,5260,5258,5502,5575,5576,5496,5503, + 5475,5501,5500,5497,5498,5236,5476,3161,1321,5236, + 4831,4828,5634,631,4876,5236,2943,4114,5635,5636, + 5236,5079,5079,234,5075,234,234,234,5083,234, + 1,5236,5236,234,1,1,1,1,1,1, + 1,1,1,1,1,1,2862,347,5170,5166, + 2823,5280,646,1307,2943,142,5568,5236,5255,5256, + 5236,5009,5006,1262,1,1,1,1,1,1, + 1,1,1,1,5072,1,4234,230,2034,457, + 4098,1,44,4846,4843,3071,1,1,1,1397, + 438,416,5648,234,5499,5236,5079,5079,234,5075, + 234,234,234,5135,234,1,1880,5735,234,1, 1,1,1,1,1,1,1,1,1,1, - 1,5467,5540,5541,5461,5468,5440,5466,5465,5462, - 5463,2295,5441,55,5633,5634,5635,5243,4829,1, - 1,1,1,1,1,1,1,1,1,5046, - 1,815,5201,2105,1822,5201,1,44,4820,4817, - 5213,1,1,1,620,5201,413,5611,234,5201, - 4805,4802,39,5245,5201,4844,349,5213,4844,1851, - 4844,4844,5698,4844,4844,4844,1039,1943,1780,1738, - 1696,1654,1612,1570,1528,1486,1444,1402,4844,4844, - 5204,1354,4844,229,4694,5201,8789,8789,5201,5633, - 5634,5635,56,4995,4992,5201,5212,5471,5469,5478, - 5464,5477,5473,5474,5472,5475,5476,5479,5470,1, - 4150,4844,4728,5212,3996,1864,1431,4844,56,4983, - 4980,4844,4844,4844,5201,4844,4844,5467,5540,5541, - 5461,5468,5440,5466,5465,5462,5463,5201,5441,5243, - 4844,4844,4844,4844,4844,4844,4844,4844,4844,4844, - 4844,4844,4844,4844,4844,4844,4844,4844,4844,4844, - 4844,4844,4844,4844,4844,4844,231,4700,5201,4844, - 4844,4847,4844,4844,4847,321,4847,4847,5121,4847, - 4847,4847,5201,5464,369,5082,5078,2806,1,790, - 1,4170,56,1,4847,4847,5221,5600,4847,5201, - 5144,5140,579,5245,790,1345,4170,143,5533,5201, - 5467,5540,5541,5461,5468,5440,5466,5465,5462,5463, - 5201,5441,5221,1,5082,5078,5100,4847,5103,512, - 5106,5211,5201,4847,1864,5201,5210,4847,4847,4847, - 5209,4847,4847,1864,313,5135,5130,579,5037,790, - 5127,4170,243,5124,1172,5010,4847,4847,4847,4847, - 4847,4847,4847,4847,4847,4847,4847,4847,4847,4847, - 4847,4847,4847,4847,4847,4847,4847,4847,4847,4847, - 4847,4847,146,454,5201,4847,4847,4014,4847,4847, - 5201,1,1,1,1,1,1,1,875,1, - 1,1,1,5208,1,1,1,2295,1,1, + 1,5502,5575,5576,5496,5503,5475,5501,5500,5497, + 5498,5236,5476,141,5670,5671,5672,5236,4855,1, + 1,1,1,1,1,1,1,1,1,5072, + 1,4234,4827,2034,1,2312,1,456,5236,8823, + 8823,1,1,1,5189,2889,415,5648,234,5236, + 4831,4828,39,5280,5236,4870,1,5248,4870,4617, + 4870,4870,5735,4870,4870,4870,5236,5161,5156,581, + 5063,646,5153,2943,338,5150,4090,305,4870,4870, + 146,3071,4870,229,5670,5671,5672,5540,3715,5670, + 5671,5672,5278,5236,35,5192,4858,5506,5504,5513, + 5499,5512,5508,5509,5507,5510,5511,5514,5505,146, + 5236,4870,2344,5247,56,5021,5018,4870,5240,5575, + 5576,4870,4870,4870,565,4870,4870,5502,5575,5576, + 5496,5503,5475,5501,5500,5497,5498,5236,5476,2099, + 4870,4870,4870,4870,4870,4870,4870,4870,4870,4870, + 4870,4870,4870,4870,4870,4870,4870,4870,4870,4870, + 4870,4870,4870,4870,4870,4870,5236,423,5236,4870, + 4870,4873,4870,4870,4873,5236,4873,4873,1837,4873, + 4873,4873,1042,5242,369,5108,5104,2823,1,646, + 1,2943,350,1,4873,4873,3253,3981,4873,5236, + 5170,5166,581,5280,646,1307,2943,143,5568,5236, + 5236,1042,127,1794,1751,1708,1665,1622,1579,1536, + 1493,1450,1407,3368,3343,5236,3981,4873,5239,1, + 5108,5104,581,4873,646,5236,2943,4873,4873,4873, + 3993,4873,4873,1880,118,4634,1,5066,5066,5241, + 5063,1880,1307,1176,365,5568,4873,4873,4873,4873, + 4873,4873,4873,4873,4873,4873,4873,4873,4873,4873, + 4873,4873,4873,4873,4873,4873,4873,4873,4873,4873, + 4873,4873,56,5009,5006,4873,4873,5236,4873,4873, + 5236,1,1,1,1,1,1,1,5637,1, + 1,1,1,5236,1,1,1,2312,1,1, 1,1,1,1,1,1,1,1,1,1, - 5201,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5201,5135,5130,579,5037,790, - 5127,4170,4832,5124,5201,4805,4802,1,729,4850, - 4707,4170,1,1,1,4893,4889,628,4897,3703, - 3776,4170,5734,3798,4853,3754,3732,5201,4880,4886, - 4859,4042,4862,4874,4871,4877,4868,4865,4856,4883, - 3842,3820,5226,3670,1039,641,676,5228,658,3963, - 660,5229,5227,584,5222,5224,5225,5223,2156,1354, - 5201,1,5082,5078,579,12,790,2082,4170,313, - 350,1316,5201,5195,313,4222,45,45,8,513, - 45,4805,4802,628,729,3703,3776,4170,3824,3798, - 630,3754,3732,5201,5471,5469,5478,35,5477,5473, - 5474,5472,5475,5476,5479,5470,3842,3820,5226,3670, - 1,641,676,5228,658,3963,660,5229,5227,584, - 5222,5224,5225,5223,1,5040,5040,4808,5037,1864, - 1345,5201,365,5533,8,437,5195,1316,1,5082, - 5078,2806,5201,790,5212,4170,5004,3227,5201,5220, - 5221,5208,45,4805,4802,628,729,3703,3776,4170, - 3824,3798,630,3754,3732,4811,5471,5469,5478,436, - 5477,5473,5474,5472,5475,5476,5479,5470,3842,3820, - 5226,3670,5201,641,676,5228,658,3963,660,5229, - 5227,584,5222,5224,5225,5223,127,1864,365,1, - 5082,5078,579,5201,790,3934,4170,3326,2693,1316, - 3864,982,5007,5201,4805,4802,5212,729,790,365, - 4170,108,305,5208,148,4805,4802,628,729,3703, - 3776,4170,5505,3798,630,3754,3732,141,5471,5469, - 5478,451,5477,5473,5474,5472,5475,5476,5479,5470, - 3842,3820,5226,3670,5201,641,676,5228,658,3963, - 660,5229,5227,584,5222,5224,5225,5223,2667,5201, - 1,4814,2082,347,45,45,2872,5245,365,1345, - 4729,1316,5533,5633,5634,5635,45,45,1,4893, - 4889,628,4897,3703,3776,4170,445,3798,4853,3754, - 3732,5201,4880,4886,4859,1868,4862,4874,4871,4877, - 4868,4865,4856,4883,3842,3820,5226,3670,5201,641, - 676,5228,658,3963,660,5229,5227,584,5222,5224, - 5225,5223,1864,441,1,1,2327,1,1,4826, - 1,2872,4826,2872,365,1316,343,5201,5004,5201, - 45,45,45,4805,4802,628,729,3703,3776,4170, - 5213,3798,630,3754,3732,365,5471,5469,5478,624, - 5477,5473,5474,5472,5475,5476,5479,5470,3842,3820, - 5226,3670,5201,641,676,5228,658,3963,660,5229, - 5227,584,5222,5224,5225,5223,5201,1864,5201,1864, - 294,5220,5221,343,442,45,45,343,5245,1316, - 5028,5201,343,5025,5007,2142,5212,45,4805,4802, - 628,729,3703,3776,4170,5205,3798,630,3754,3732, - 45,5471,5469,5478,5245,5477,5473,5474,5472,5475, - 5476,5479,5470,3842,3820,5226,3670,2685,641,676, - 5228,658,3963,660,5229,5227,584,5222,5224,5225, - 5223,45,4805,4802,628,729,3703,3776,4170,2119, - 3798,630,3754,3732,1170,5471,5469,5478,128,5477, - 5473,5474,5472,5475,5476,5479,5470,3842,3820,5226, - 3670,118,641,676,5228,658,3963,660,5229,5227, - 584,5222,5224,5225,5223,5201,232,5201,4805,4802, - 1,729,790,557,4170,5667,5661,47,1316,5665, - 5201,5659,5660,5464,1,5082,5078,2806,5211,790, - 5201,4170,133,5210,45,5204,5690,5691,5245,5668, - 5670,5201,5220,5221,5633,5634,5635,4835,5201,5213, - 5467,5540,5541,5461,5468,5440,5466,5465,5462,5463, - 132,5441,2495,131,5201,5201,2640,2780,557,712, - 5667,5661,1567,1593,5665,5671,5659,5660,2716,5692, - 5669,3886,5201,1864,100,1,1,3908,1,4179, - 5031,5690,5691,5031,5668,5670,5201,4823,5681,5680, - 5693,5662,5663,5686,5687,5212,5201,5684,5685,5664, - 5666,5688,5689,5694,5674,5675,5676,5672,5673,5682, - 5683,5678,5677,5679,712,2441,2414,1567,1593,2697, - 5671,387,126,403,5692,5669,103,45,45,295, - 5245,5094,5115,3326,2693,5112,5097,5201,2640,2780, - 4560,2640,2780,5681,5680,5693,5662,5663,5686,5687, - 5201,4841,5684,5685,5664,5666,5688,5689,5694,5674, - 5675,5676,5672,5673,5682,5683,5678,5677,5679,45, - 4805,4802,628,729,3703,3776,4170,5201,3798,630, - 3754,3732,5201,5471,5469,5478,107,5477,5473,5474, - 5472,5475,5476,5479,5470,3842,3820,5226,3670,1994, - 641,676,5228,658,3963,660,5229,5227,584,5222, - 5224,5225,5223,5201,5201,45,4805,4802,628,729, - 3703,3776,4170,2941,3798,630,3754,3732,1482,5471, - 5469,5478,5201,5477,5473,5474,5472,5475,5476,5479, - 5470,3842,3820,5226,3670,2031,641,676,5228,658, - 3963,660,5229,5227,584,5222,5224,5225,5223,45, - 4805,4802,4582,729,3703,3776,4170,5201,3798,630, - 3754,3732,1316,5471,5469,5478,5201,5477,5473,5474, - 5472,5475,5476,5479,5470,3842,3820,5226,3670,5201, - 641,676,5228,658,3963,660,5229,5227,584,5222, - 5224,5225,5223,45,4805,4802,628,729,3703,3776, - 4170,5201,3798,630,3754,3732,5201,5471,5469,5478, - 5201,5477,5473,5474,5472,5475,5476,5479,5470,3842, - 3820,5226,3670,3609,641,676,5228,658,3963,660, - 5229,5227,584,5222,5224,5225,5223,45,4805,4802, - 628,729,3703,3776,4170,5201,3798,630,3754,3732, - 5201,5471,5469,5478,5201,5477,5473,5474,5472,5475, - 5476,5479,5470,3842,3820,5226,3670,233,641,676, - 5228,658,3963,660,5229,5227,584,5222,5224,5225, - 5223,5201,4805,4802,5464,5245,5201,1,5082,5078, - 579,644,790,135,4170,5471,5469,5478,5464,5477, - 5473,5474,5472,5475,5476,5479,5470,51,4989,4989, - 5710,5467,5540,5541,5461,5468,5440,5466,5465,5462, - 5463,5201,5441,2495,4602,5467,5540,5541,5461,5468, - 5440,5466,5465,5462,5463,5201,5441,5201,1,5082, - 5078,5100,5597,5103,130,5106,338,572,5598,5599, - 247,4973,4969,1,4977,395,4805,4802,4998,5245, - 644,4986,5201,5163,4960,4966,4939,4924,4942,4954, - 4951,4957,4948,4945,4936,4963,35,387,387,5019, - 387,387,5019,387,5022,5019,2441,2414,5201,5019, - 3203,5540,5541,387,4915,4909,4906,4933,4912,4903, - 4918,4921,4930,4927,5201,4900,4808,3367,364,45, - 5201,5597,5207,5201,5166,5201,572,5598,5599,5201, - 387,387,387,387,387,387,387,387,387,387, - 5201,387,2640,2780,121,5022,38,388,388,5013, - 388,388,5013,388,5016,5013,42,5075,5072,5013, - 5022,5201,5201,388,3536,1,5154,5154,234,5154, - 234,234,234,5157,234,5201,4983,4980,234,5201, - 5220,5221,8790,4743,790,3728,4170,636,5206,3996, - 388,388,388,388,388,388,388,388,388,388, - 1,388,2978,83,5201,5016,3534,3998,5169,1, - 5154,5154,234,5154,234,234,234,234,234,5151, - 5016,2817,234,2230,5201,3317,8790,1,5201,5271, - 5272,43,5043,5043,3886,5172,226,3864,982,3217, - 3908,1,5154,5154,234,5154,234,234,234,5160, - 234,323,5698,5201,234,43,5034,5034,8790,134, - 5034,5211,908,5151,5212,2817,5210,2230,5201,3317, - 35,1,5154,5154,234,5154,234,234,234,5157, - 234,5201,4995,4992,234,3428,5201,5201,8790,2495, - 5201,5063,5060,5639,5209,5151,5698,2817,5208,2230, - 769,3317,53,5069,5069,129,797,120,111,2612, - 1864,4191,225,1,5154,5154,234,5154,234,234, - 234,5157,234,933,5001,5151,234,2817,5698,2230, - 8790,3317,1,5154,5154,234,5154,234,234,234, - 234,234,226,421,5243,234,1,119,2724,8790, - 5201,5201,2441,2414,168,996,5066,5208,5698,5207, - 5201,5090,5086,395,5220,5221,56,5151,5201,2817, - 5220,2230,1,3317,1,5154,5154,234,5154,234, - 234,234,234,234,226,1,5151,234,2817,305, - 2230,8790,3317,2640,2780,5163,5220,3886,769,5505, - 5698,5201,769,3908,1,5154,5154,234,5154,234, - 234,234,234,234,5243,5653,293,234,1,5698, - 168,8790,5201,8651,7227,5206,5207,1,5151,81, - 2817,3217,2230,372,3317,525,1,3886,370,3367, - 5201,8651,7227,3908,5211,2939,5166,5201,1,5210, - 5201,5201,423,417,3058,1,170,41,5151,5118, - 2817,5698,2230,198,3317,5201,284,5201,198,5148, - 3318,446,5201,5201,312,4324,4269,505,503,5201, - 3145,5201,4667,5201,4674,855,4272,5201,377,5201, - 4679,5698,5206,5201,5201,3403,4285,5201,5201,518, - 4757,525,507,1214,2,1,5201,5201,1274,5201, - 5201,5201,3984,5201,5201,5201,5201,5201,5201,5201, - 5201,3148,170,2170,5201,5201,5201,3063,5201,5201, - 5201,5201,5201,3305,43,5201,5201,5201,5201,5201, - 3003,5201,5201,4204,5201,5201,5201,4731,4736,5201, - 5201,5201,5201,5201,5201,5201,5201,5201,5201,5201, - 5201,5201,3032,5201,3063,5201,5201,5201,1952,5201, - 5201,5201,1256,5201,5201,5201,5201,5201,5201,5201, - 5201,5201,5201,5201,5201,5201,5201,5201,5201,5201, - 5201,5201,5201,5201,5201,5201,5201,5201,5201,5201, - 5201,5201,5201,5201,5201,5201,5201,3609,5201,5201, - 5201,5201,5201,5201,5201,5201,5201,5201,3609 + 365,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3897,5236,5236,5255,5256,2616, + 3919,365,347,45,45,2961,5280,1,1307,295, + 43,5568,1,1,1,4919,4915,1081,4923,3721, + 3787,2943,5771,3809,4879,3765,3743,5236,4906,4912, + 4885,1618,4888,4900,4897,4903,4894,4891,4882,4909, + 3853,3831,5261,3692,5236,796,876,5263,804,3661, + 873,5264,5262,732,5257,5259,5260,5258,3875,679, + 128,1880,5236,126,5278,1,5108,5104,2823,5236, + 646,1321,2943,5030,3368,3343,45,45,2011,515, + 45,4831,4828,1081,631,3721,3787,2943,5230,3809, + 1086,3765,3743,5236,5506,5504,5513,1747,5512,5508, + 5509,5507,5510,5511,5514,5505,3853,3831,5261,3692, + 108,796,876,5263,804,3661,873,5264,5262,732, + 5257,5259,5260,5258,1880,313,5161,5156,581,5063, + 646,5153,2943,293,5150,5236,5236,1321,1,5033, + 1,5108,5104,581,5214,646,365,2943,2656,2797, + 5236,5243,148,4831,4828,1081,631,3721,3787,2943, + 372,3809,1086,3765,3743,4422,5506,5504,5513,4664, + 5512,5508,5509,5507,5510,5511,5514,5505,3853,3831, + 5261,3692,5236,796,876,5263,804,3661,873,5264, + 5262,732,5257,5259,5260,5258,5236,1,5108,5104, + 5126,2863,5129,1401,5132,5246,43,5060,5060,1321, + 5245,5060,365,2099,45,45,1,4919,4915,1081, + 4923,3721,3787,2943,3945,3809,4879,3765,3743,1219, + 4906,4912,4885,365,4888,4900,4897,4903,4894,4891, + 4882,4909,3853,3831,5261,3692,5236,796,876,5263, + 804,3661,873,5264,5262,732,5257,5259,5260,5258, + 1444,1,5108,5104,581,107,646,35,2943,313, + 5236,5255,5256,1321,313,646,4596,2943,45,45, + 45,4831,4828,1081,631,3721,3787,2943,5211,3809, + 1086,3765,3743,5236,5506,5504,5513,4834,5512,5508, + 5509,5507,5510,5511,5514,5505,3853,3831,5261,3692, + 5236,796,876,5263,804,3661,873,5264,5262,732, + 5257,5259,5260,5258,2048,443,1,1,5236,1, + 1,4852,1,2961,4852,2961,5246,1321,343,315, + 5030,5245,3603,5236,5214,45,4831,4828,1081,631, + 3721,3787,2943,5211,3809,1086,3765,3743,2879,5506, + 5504,5513,1,5512,5508,5509,5507,5510,5511,5514, + 5505,3853,3831,5261,3692,439,796,876,5263,804, + 3661,873,5264,5262,732,5257,5259,5260,5258,1880, + 3647,1880,5236,4831,4828,343,631,646,4185,2943, + 343,5236,1321,323,343,4837,5033,5236,1087,5214, + 45,4831,4828,1081,631,3721,3787,2943,5240,3809, + 1086,3765,3743,45,5506,5504,5513,5280,5512,5508, + 5509,5507,5510,5511,5514,5505,3853,3831,5261,3692, + 447,796,876,5263,804,3661,873,5264,5262,732, + 5257,5259,5260,5258,45,4831,4828,1081,631,3721, + 3787,2943,1880,3809,1086,3765,3743,1028,5506,5504, + 5513,132,5512,5508,5509,5507,5510,5511,5514,5505, + 3853,3831,5261,3692,531,796,876,5263,804,3661, + 873,5264,5262,732,5257,5259,5260,5258,5236,231, + 5236,4831,4828,1,631,646,643,2943,5704,5698, + 453,1321,5702,2769,5696,5697,5499,5236,4831,4828, + 4001,631,4876,349,2943,133,2040,56,5239,5727, + 5728,5256,5705,5707,5236,5255,5256,5670,5671,5672, + 4840,3747,5248,5502,5575,5576,5496,5503,5475,5501, + 5500,5497,5498,47,5476,2512,131,5256,5236,2656, + 2797,643,559,5704,5698,1540,1608,5702,5708,5696, + 5697,2085,5706,5729,1,5108,5104,2823,5236,646, + 5236,2943,1880,4861,5727,5728,5248,5705,5707,5236, + 4849,5718,5717,5730,5699,5700,5723,5724,5247,389, + 5721,5722,5701,5703,5725,5726,5731,5711,5712,5713, + 5709,5710,5719,5720,5715,5714,5716,559,2458,2431, + 1540,1608,1,5708,294,5255,5256,5706,5729,4867, + 444,45,45,1880,5280,243,5054,5236,5036,5051, + 4213,5236,5247,5236,2656,2797,5718,5717,5730,5699, + 5700,5723,5724,2136,2908,5721,5722,5701,5703,5725, + 5726,5731,5711,5712,5713,5709,5710,5719,5720,5715, + 5714,5716,45,4831,4828,1081,631,3721,3787,2943, + 5236,3809,1086,3765,3743,5236,5506,5504,5513,5236, + 5512,5508,5509,5507,5510,5511,5514,5505,3853,3831, + 5261,3692,2870,796,876,5263,804,3661,873,5264, + 5262,732,5257,5259,5260,5258,55,5597,45,4831, + 4828,1081,631,3721,3787,2943,5236,3809,1086,3765, + 3743,1242,5506,5504,5513,5236,5512,5508,5509,5507, + 5510,5511,5514,5505,3853,3831,5261,3692,5236,796, + 876,5263,804,3661,873,5264,5262,732,5257,5259, + 5260,5258,45,4831,4828,4569,631,3721,3787,2943, + 1315,3809,1086,3765,3743,1321,5506,5504,5513,5236, + 5512,5508,5509,5507,5510,5511,5514,5505,3853,3831, + 5261,3692,1,796,876,5263,804,3661,873,5264, + 5262,732,5257,5259,5260,5258,45,4831,4828,1081, + 631,3721,3787,2943,5236,3809,1086,3765,3743,45, + 5506,5504,5513,5280,5512,5508,5509,5507,5510,5511, + 5514,5505,3853,3831,5261,3692,5236,796,876,5263, + 804,3661,873,5264,5262,732,5257,5259,5260,5258, + 45,4831,4828,1081,631,3721,3787,2943,5236,3809, + 1086,3765,3743,2986,5506,5504,5513,3445,5512,5508, + 5509,5507,5510,5511,5514,5505,3853,3831,5261,3692, + 232,796,876,5263,804,3661,873,5264,5262,732, + 5257,5259,5260,5258,5236,4831,4828,5499,5280,5236, + 1,5108,5104,5126,574,5129,135,5132,5506,5504, + 5513,5499,5512,5508,5509,5507,5510,5511,5514,5505, + 51,5015,5015,5747,5502,5575,5576,5496,5503,5475, + 5501,5500,5497,5498,5236,5476,2512,4265,5502,5575, + 5576,5496,5503,5475,5501,5500,5497,5498,5236,5476, + 100,1,1,3553,1,5634,5057,130,1,5057, + 4114,5635,5636,247,4999,4995,168,5003,397,4831, + 4828,5024,5280,574,5012,5236,129,4986,4992,4965, + 4950,4968,4980,4977,4983,4974,4971,4962,4989,35, + 389,389,5045,389,389,5045,389,5048,5045,2458, + 2431,5236,5045,42,5101,5098,389,4941,4935,4932, + 4959,4938,4929,4944,4947,4956,4953,5236,4926,4834, + 5236,2958,45,4645,5634,5242,5236,5009,5006,4114, + 5635,5636,168,389,389,389,389,389,389,389, + 389,389,389,5236,389,2656,2797,121,5048,38, + 390,390,5039,390,390,5039,390,5042,5039,5236, + 5236,1,5039,5048,2656,2797,390,5244,1,5180, + 5180,234,5180,234,234,234,5183,234,103,45, + 45,234,5280,5236,5141,7774,4659,5138,3875,679, + 565,5241,5236,390,390,390,390,390,390,390, + 390,390,390,1,390,5236,83,5236,5042,4008, + 4546,5195,1,5180,5180,234,5180,234,234,234, + 234,234,5177,5042,4262,234,2159,377,3648,7774, + 5243,5236,5306,5307,43,5069,5069,3897,321,226, + 425,5147,3551,3919,1,5180,5180,234,5180,234, + 234,234,5186,234,5236,5735,4284,234,5236,5089, + 5086,7774,134,5236,120,3606,5177,5247,4262,5236, + 2159,1,3648,119,1,5180,5180,234,5180,234, + 234,234,5183,234,5236,5021,5018,234,1487,5236, + 5236,7774,2512,53,5095,5095,5676,1880,5177,5735, + 4262,565,2159,1,3648,5236,5116,5112,5236,800, + 2910,5236,5278,5189,4547,225,1,5180,5180,234, + 5180,234,234,234,5183,234,2173,5027,5177,234, + 4262,5735,2159,7774,3648,1,5180,5180,234,5180, + 234,234,234,234,234,226,4001,5092,234,397, + 5255,5256,7774,5236,3897,2458,2431,3715,5236,5278, + 3919,5735,5236,3897,5192,305,5244,370,111,3919, + 5177,4647,4262,5690,2159,5540,3648,1,5180,5180, + 234,5180,234,234,234,234,234,226,405,5177, + 234,4262,3551,2159,7774,3648,5120,1,1,5236, + 233,5123,3203,5735,520,5198,5242,1,5180,5180, + 234,5180,234,234,234,234,234,5499,1,5236, + 234,3236,5735,5236,7774,448,527,5246,999,5243, + 56,5177,5245,4262,5255,2159,1278,3648,5236,8742, + 7939,5236,8742,7939,5502,5575,5576,5496,5503,5475, + 5501,5500,5497,5498,81,5476,5236,419,1,41, + 5255,5177,1,4262,5735,2159,5246,3648,5243,1, + 198,5245,5241,8,5236,198,284,170,312,5174, + 5236,5233,5236,3665,5144,4666,3444,5236,3982,507, + 2888,505,527,5236,5735,3472,5236,5236,5236,4583, + 4584,3975,5236,5236,3990,4597,4635,5236,5236,5236, + 5236,2,4667,509,5236,5236,5236,5236,5236,5236, + 5236,5236,5236,4001,5236,5236,2187,5236,3238,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, + 5236,43,5236,170,5233,5236,5236,5236,4196,5236, + 5236,5236,5236,5236,5236,5236,5236,5236,4627,5236, + 4633,5236,5236,5236,5236,5236,2995,5236,5236,5236, + 5236,5236,5236,5236,5236,5236,5236,3238,5236,1968, + 3049,5236,937 }; }; public final static char termAction[] = TermAction.termAction; @@ -1705,59 +1707,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 565,54,346,48,490,748,748,748,748,1106, - 490,617,617,955,617,802,346,804,347,347, - 347,347,347,347,347,347,347,619,625,630, - 627,634,632,639,637,641,640,642,155,643, - 346,330,117,117,117,117,386,764,89,89, - 614,117,453,45,617,617,89,986,619,45, - 859,116,941,1108,1043,330,617,619,705,705, - 764,346,347,347,347,347,347,347,347,347, - 347,347,347,347,347,347,347,347,347,347, - 347,346,346,346,346,346,346,346,346,346, - 346,346,346,347,45,45,36,330,1025,1025, - 1025,1025,298,45,89,89,1104,1032,1043,759, - 1043,754,1043,756,1043,1027,1106,386,453,453, - 89,453,116,346,384,940,45,383,386,385, - 383,45,453,627,627,625,625,625,632,632, - 632,632,630,630,637,634,634,640,639,641, - 1120,642,1104,412,516,500,499,456,1050,1050, - 1106,804,490,490,490,490,386,386,1025,1024, - 1025,614,386,610,253,386,510,298,389,508, - 759,394,386,386,386,298,1025,347,117,623, - 1,45,1108,386,386,748,385,941,346,36, - 453,658,45,518,520,386,941,346,346,346, - 346,490,490,330,900,610,253,510,509,510, - 298,510,394,394,386,298,386,45,623,1104, - 940,1108,386,384,45,504,492,503,520,298, - 384,45,45,45,45,764,764,610,609,719, - 386,253,1120,757,748,300,852,1110,253,510, - 510,947,386,394,719,717,718,386,623,624, - 623,346,1,206,619,1108,555,346,501,501, - 399,399,386,514,1104,56,45,386,45,45, - 610,941,667,759,1025,748,383,712,1112,380, - 490,737,144,948,386,719,347,386,623,764, - 347,453,206,555,346,346,520,941,45,518, - 492,555,1085,384,667,667,209,269,384,510, - 510,380,663,1104,741,347,1120,407,947,386, - 1106,1106,386,624,45,453,729,520,384,555, - 664,719,607,902,197,490,757,245,667,667, - 269,384,510,759,1106,1112,380,347,347,386, - 386,386,729,45,729,208,197,607,750,1106, - 719,1024,748,149,149,664,759,310,737,386, - 490,386,386,490,722,729,209,667,664,406, - 663,45,1106,386,269,209,269,1023,1023,762, - 311,1106,386,764,521,722,667,346,814,380, - 664,386,386,269,117,117,762,310,1120,347, - 1120,664,309,490,490,490,311,490,386,163, - 664,664,386,759,45,44,724,719,45,813, - 386,664,1024,302,490,302,311,1120,311,330, - 330,328,809,330,664,664,735,762,117,724, - 813,664,553,56,311,45,380,45,328,197, - 490,45,762,718,811,149,45,45,1098,311, - 735,311,664,197,346,311,308,813,1023,759, - 759,1100,346,309,764,664,45,383,311,45, - 664,311 + 981,67,321,61,558,883,883,883,883,1104, + 558,440,440,696,440,850,321,852,322,322, + 322,322,322,322,322,322,322,442,448,453, + 450,457,455,462,460,464,463,465,115,466, + 321,305,29,29,29,29,361,812,1,1, + 437,29,274,408,440,440,1,727,442,408, + 889,28,973,1106,1041,305,440,442,639,639, + 812,321,322,322,322,322,322,322,322,322, + 322,322,322,322,322,322,322,322,322,322, + 322,321,321,321,321,321,321,321,321,321, + 321,321,321,322,408,408,399,305,766,766, + 766,766,213,408,1,1,1102,1030,1041,429, + 1041,424,1041,426,1041,1025,1104,361,274,274, + 1,274,28,321,359,972,408,358,361,360, + 358,408,274,450,450,448,448,448,455,455, + 455,455,453,453,460,457,457,463,462,464, + 1118,465,1102,233,562,498,497,524,1048,1048, + 1104,852,558,558,558,558,361,361,766,765, + 766,437,361,433,168,361,770,213,217,768, + 429,228,361,361,361,213,766,322,29,446, + 364,408,1106,361,361,883,360,973,321,399, + 274,481,408,564,566,361,973,321,321,321, + 321,558,558,305,930,433,168,770,769,770, + 213,770,228,228,361,213,361,408,446,1102, + 972,1106,361,359,408,502,490,501,566,213, + 359,408,408,408,408,812,812,433,432,809, + 361,168,1118,427,883,215,108,1108,168,770, + 770,516,361,228,809,807,808,361,446,447, + 446,321,364,166,442,1106,506,321,499,499, + 411,411,361,560,1102,774,408,361,408,408, + 433,973,601,429,766,883,358,691,1110,355, + 558,857,56,517,361,809,322,361,446,812, + 322,274,166,506,321,321,566,973,408,564, + 490,506,1083,359,601,601,647,184,359,770, + 770,355,486,1102,876,322,1118,419,516,361, + 1104,1104,361,447,408,274,868,566,359,506, + 487,809,1023,934,157,558,427,683,601,601, + 184,359,770,429,1104,1110,355,322,322,361, + 361,361,868,408,868,646,157,1023,885,1104, + 809,765,883,222,222,487,429,285,857,361, + 558,361,361,558,861,868,647,601,487,418, + 486,408,1104,361,184,647,184,764,764,932, + 286,1104,361,812,567,861,601,321,70,355, + 487,361,361,184,29,29,932,285,1118,322, + 1118,487,284,558,558,558,286,558,361,123, + 487,487,361,429,408,407,863,809,408,809, + 429,361,487,765,277,558,277,286,1118,286, + 305,305,303,979,305,487,487,874,932,29, + 863,809,70,487,599,774,286,408,355,408, + 303,157,558,408,932,70,222,408,408,1096, + 286,874,286,487,157,321,286,283,808,764, + 429,429,1098,321,284,812,487,408,485,69, + 358,286,408,487,485,485,286 }; }; public final static char asb[] = Asb.asb; @@ -1765,119 +1767,118 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 96,90,11,12,91,92,88,89,30,93, - 94,97,98,99,100,101,102,117,73,95, - 70,104,105,106,107,108,109,110,111,112, - 113,118,71,13,121,65,1,2,9,6, - 4,3,59,69,74,8,0,8,73,118, - 74,13,69,121,0,47,14,15,61,45, - 16,66,48,17,18,49,50,19,20,51, - 52,21,22,53,67,55,10,68,23,44, - 24,46,25,1,2,4,95,0,31,62, - 32,33,63,7,34,35,36,37,57,38, - 39,40,41,42,28,26,27,9,6,11, - 12,5,29,65,43,3,47,14,15,61, - 45,16,66,48,17,18,49,50,19,20, - 51,52,21,22,53,67,55,10,68,23, - 24,46,25,1,2,4,44,0,65,70, - 69,1,2,0,65,73,95,69,118,74, + 31,62,32,33,63,7,34,35,36,37, + 57,38,39,40,41,42,28,26,27,9, + 6,11,12,5,29,65,43,3,47,14, + 15,61,45,16,66,48,17,18,49,50, + 19,20,51,52,21,22,53,67,55,10, + 68,23,24,46,25,1,2,4,44,0, + 8,73,118,74,13,70,121,0,71,62, + 63,57,26,27,9,6,11,12,29,35, + 3,40,43,41,42,28,38,33,37,15, + 25,14,21,19,20,22,23,18,16,24, + 32,36,34,31,39,64,8,7,1,2, + 5,4,10,0,65,73,95,70,118,74, 71,121,14,15,31,62,16,32,33,18, 19,20,63,34,21,22,35,36,37,57, 38,39,10,23,24,25,40,41,42,28, 26,27,11,12,29,43,8,9,6,4, - 13,1,2,7,3,5,0,64,61,45, - 16,66,48,18,49,50,19,20,51,52, - 21,22,53,67,55,68,23,44,24,46, - 25,15,14,47,8,3,9,6,13,58, - 60,87,17,54,7,1,2,5,4,10, - 56,0,87,56,7,114,115,116,58,8, - 3,9,6,5,73,71,13,72,47,14, - 15,61,45,16,66,48,17,18,49,50, - 19,20,51,52,21,22,53,67,55,10, - 68,23,44,24,46,25,4,1,2,54, - 0,87,114,115,116,54,73,119,122,71, - 72,75,58,56,60,77,79,85,83,76, - 81,82,84,86,64,78,80,13,8,47, - 61,45,66,48,17,49,50,51,52,53, - 67,55,68,44,46,57,62,63,10,32, - 36,34,31,39,15,25,14,21,19,20, - 22,23,18,16,24,40,43,41,42,28, - 38,33,37,26,27,11,12,29,35,9, - 6,3,4,7,5,1,2,0,4,8, - 73,64,0,1,2,8,71,0,75,65, - 73,95,74,64,59,3,8,69,13,70, - 0,62,63,10,32,36,34,31,39,15, + 13,1,2,7,3,5,0,87,56,7, + 114,115,116,58,8,3,9,6,5,73, + 71,13,72,47,14,15,61,45,16,66, + 48,17,18,49,50,19,20,51,52,21, + 22,53,67,55,10,68,23,44,24,46, + 25,4,1,2,54,0,4,8,73,64, + 0,65,69,70,1,2,0,1,2,8, + 71,0,62,63,10,32,36,34,31,39, + 15,25,14,21,19,20,22,23,18,16, + 24,40,43,41,42,28,38,33,37,5, + 7,4,3,26,27,9,6,11,12,29, + 35,1,2,118,8,0,87,114,115,116, + 54,73,119,122,71,72,75,58,56,60, + 77,79,85,83,76,81,82,84,86,64, + 78,80,13,8,47,61,45,66,48,17, + 49,50,51,52,53,67,55,68,44,46, + 57,62,63,10,32,36,34,31,39,15, 25,14,21,19,20,22,23,18,16,24, - 40,43,41,42,28,38,33,37,5,7, - 4,3,26,27,9,6,11,12,29,35, - 1,2,118,8,0,47,14,15,45,16, - 48,17,18,49,50,19,20,51,7,52, - 21,22,53,55,23,44,24,46,25,1, - 2,8,59,9,6,5,4,74,13,3, - 0,9,6,4,5,7,1,2,3,59, - 65,70,69,8,74,95,0,4,30,8, - 73,64,0,7,5,3,59,6,9,95, - 47,14,15,45,16,66,48,17,18,49, - 50,19,20,51,52,21,22,53,67,55, - 10,68,23,44,24,46,25,1,2,4, - 74,8,61,0,45,57,46,8,65,95, - 70,69,74,0,14,15,31,62,16,32, - 33,18,19,20,63,7,34,21,22,35, - 36,37,57,38,39,10,23,24,25,40, - 41,42,1,2,3,26,27,9,6,11, - 12,5,29,4,43,72,28,0,57,45, - 7,46,5,1,2,4,75,64,120,103, - 26,27,59,3,96,90,6,91,92,11, - 12,89,88,30,93,94,97,98,9,99, - 100,101,65,95,74,121,70,104,105,106, - 107,108,109,110,111,112,113,73,118,71, - 102,117,69,13,8,0,60,47,14,15, - 61,45,16,66,48,87,17,18,49,50, - 19,20,51,56,52,21,22,53,67,55, - 10,68,23,58,44,24,46,25,8,3, - 9,6,71,13,7,4,54,5,1,2, - 0,8,73,64,75,0,70,69,71,8, - 0,45,46,75,3,73,13,64,57,8, - 65,95,69,74,70,0,8,64,69,0, - 73,8,59,3,70,69,13,30,0,8, - 64,70,0,54,73,4,1,2,64,8, - 0,119,0,8,74,14,15,31,16,32, - 33,18,19,20,34,21,22,35,36,37, - 57,38,39,10,23,24,25,40,41,42, - 28,3,26,27,9,6,11,12,29,4, - 43,5,7,1,2,63,62,0,76,0, - 69,13,71,62,63,57,26,27,9,6, - 11,12,29,35,3,40,43,41,42,28, - 38,33,37,15,25,14,21,19,20,22, - 23,18,16,24,32,36,34,31,39,64, - 8,7,1,2,5,4,10,0,62,63, + 40,43,41,42,28,38,33,37,26,27, + 11,12,29,35,9,6,3,4,7,5, + 1,2,0,96,90,11,12,91,92,88, + 89,30,93,94,97,98,99,100,101,102, + 117,73,95,69,104,105,106,107,108,109, + 110,111,112,113,118,71,13,121,65,1, + 2,9,6,4,3,59,70,74,8,0, + 75,65,73,95,74,64,59,3,8,70, + 13,69,0,54,73,4,1,2,64,8, + 0,57,45,7,46,5,1,2,4,75, + 64,120,103,26,27,59,3,96,90,6, + 91,92,11,12,89,88,30,93,94,97, + 98,9,99,100,101,65,95,74,121,69, + 104,105,106,107,108,109,110,111,112,113, + 73,118,102,117,71,70,13,8,0,9, + 6,4,5,7,1,2,3,59,65,69, + 70,8,74,95,0,45,57,46,8,65, + 95,69,70,74,0,44,1,2,4,114, + 115,116,0,47,14,15,45,16,48,17, + 18,49,50,19,20,51,7,52,21,22, + 53,55,23,44,24,46,25,1,2,8, + 59,9,6,5,4,74,13,3,0,7, + 5,3,59,6,9,95,47,14,15,45, + 16,66,48,17,18,49,50,19,20,51, + 52,21,22,53,67,55,10,68,23,44, + 24,46,25,1,2,4,74,8,61,0, + 60,47,14,15,61,45,16,66,48,87, + 17,18,49,50,19,20,51,56,52,21, + 22,53,67,55,10,68,23,58,44,24, + 46,25,8,3,9,6,71,13,7,4, + 54,5,1,2,0,64,61,45,16,66, + 48,18,49,50,19,20,51,52,21,22, + 53,67,55,68,23,44,24,46,25,15, + 14,47,8,3,9,6,13,58,60,87, + 17,54,7,1,2,5,4,10,56,0, + 8,73,64,75,0,47,14,15,61,45, + 16,66,48,17,18,49,50,19,20,51, + 52,21,22,53,67,55,10,68,23,44, + 24,46,25,1,2,4,63,62,11,12, + 6,91,92,99,9,100,5,29,30,107, + 108,104,105,106,112,111,113,89,88,109, + 110,97,98,93,94,101,102,26,27,90, + 103,3,59,69,70,65,0,4,30,8, + 73,64,0,47,14,15,61,45,16,66, + 48,17,18,49,50,19,20,51,52,21, + 22,53,67,55,10,68,23,44,24,46, + 25,1,2,4,95,0,69,70,71,8, + 0,8,74,14,15,31,16,32,33,18, + 19,20,34,21,22,35,36,37,57,38, + 39,10,23,24,25,40,41,42,28,3, + 26,27,9,6,11,12,29,4,43,5, + 7,1,2,63,62,0,8,64,70,0, + 45,46,75,3,73,13,64,57,8,65, + 95,70,74,69,0,73,8,59,3,69, + 70,13,30,0,8,64,69,0,62,63, 26,27,9,11,12,5,29,35,3,4, 7,40,43,41,42,28,38,33,37,15, 25,14,21,19,20,22,23,18,16,24, 10,32,36,34,31,39,59,1,2,6, - 0,61,45,16,66,48,18,49,50,19, - 20,51,52,21,22,53,67,55,10,68, - 23,44,24,46,25,15,14,47,8,3, - 9,13,58,56,60,87,17,30,4,6, - 7,1,2,5,54,0,44,1,2,4, - 114,115,116,0,47,14,15,61,45,16, - 66,48,17,18,49,50,19,20,51,52, - 21,22,53,67,55,10,68,23,44,24, - 46,25,1,2,4,63,62,11,12,6, - 91,92,99,9,100,5,29,30,107,108, - 104,105,106,112,111,113,89,88,109,110, - 97,98,93,94,101,102,26,27,90,103, - 3,59,70,69,65,0,10,66,61,67, - 68,15,25,14,21,19,20,22,23,18, - 16,24,75,73,95,118,71,64,121,120, - 96,103,90,26,27,11,12,91,92,88, - 89,30,65,93,94,97,98,99,100,101, - 102,117,70,104,105,106,107,108,109,110, - 111,112,113,69,47,45,48,17,49,50, - 51,52,53,55,44,46,13,8,74,3, - 59,7,5,6,9,1,2,4,0,13, - 8,7,5,3,1,2,6,9,4,73, - 0 + 0,119,0,61,45,16,66,48,18,49, + 50,19,20,51,52,21,22,53,67,55, + 10,68,23,44,24,46,25,15,14,47, + 8,3,9,13,58,56,60,87,17,30, + 4,6,7,1,2,5,54,0,76,0, + 14,15,31,62,16,32,33,18,19,20, + 63,7,34,21,22,35,36,37,57,38, + 39,10,23,24,25,40,41,42,1,2, + 3,26,27,9,6,11,12,5,29,4, + 43,72,28,0,10,66,61,67,68,15, + 25,14,21,19,20,22,23,18,16,24, + 75,73,95,118,71,64,121,120,96,103, + 90,26,27,11,12,91,92,88,89,30, + 65,93,94,97,98,99,100,101,102,117, + 69,104,105,106,107,108,109,110,111,112, + 113,70,47,45,48,17,49,50,51,52, + 53,55,44,46,13,8,74,3,59,7, + 5,6,9,1,2,4,0,13,8,7, + 5,3,1,2,6,9,4,73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1885,59 +1886,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 132,12,65,12,12,12,12,12,12,158, - 12,12,12,215,12,39,100,112,65,65, - 196,65,65,65,65,65,65,12,12,12, - 12,12,12,12,12,12,12,12,65,12, - 65,251,36,36,36,36,112,170,125,125, - 60,5,91,237,12,12,125,217,12,237, - 65,71,56,12,12,251,12,12,45,45, - 170,100,65,65,65,65,65,65,65,65, - 65,65,65,65,65,65,65,65,65,65, - 65,65,65,65,65,65,65,65,65,65, - 65,65,100,65,237,237,128,1,12,12, - 12,12,135,237,31,31,157,228,229,110, - 229,165,229,18,229,222,10,112,91,91, - 31,91,36,26,179,142,237,178,200,112, - 178,237,91,12,12,12,12,12,12,12, + 227,12,57,12,12,12,12,12,12,61, + 12,12,12,161,12,21,105,86,57,57, + 203,57,57,57,57,57,57,12,12,12, + 12,12,12,12,12,12,12,12,57,12, + 57,215,34,34,34,34,86,181,140,140, + 83,5,79,147,12,12,140,163,12,147, + 57,27,122,12,12,215,12,12,43,43, + 181,105,57,57,57,57,57,57,57,57, + 57,57,57,57,57,57,57,57,57,57, + 57,57,57,57,57,57,57,57,57,57, + 57,57,105,57,147,147,166,1,12,12, + 12,12,142,147,29,29,178,243,244,113, + 244,115,244,233,244,237,10,86,79,79, + 29,79,34,65,190,39,147,189,207,86, + 189,147,79,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,157,86,127,43,43,12,12,12, - 10,112,12,12,12,12,167,11,12,12, - 12,148,112,125,125,167,125,219,125,12, - 110,125,219,112,11,12,12,65,36,125, - 15,237,12,11,112,12,183,56,65,146, - 91,12,237,191,125,112,56,100,100,100, - 100,12,12,31,12,115,239,125,125,13, - 55,13,125,201,11,55,167,237,103,148, - 142,12,200,167,237,12,118,12,248,54, - 167,237,237,237,237,170,170,125,115,209, - 112,233,12,51,12,12,93,255,239,13, - 13,211,167,201,209,12,12,167,125,29, - 12,100,148,184,12,12,125,65,12,12, - 43,43,112,117,157,248,237,167,237,237, - 115,56,125,110,12,12,158,125,151,120, - 12,12,158,75,219,209,65,201,103,170, - 65,91,184,115,65,65,125,56,237,191, - 173,125,12,179,186,125,203,125,219,125, - 84,175,233,157,12,65,12,80,138,219, - 158,158,11,29,237,91,125,248,179,115, - 233,209,12,203,256,12,19,93,203,186, - 248,179,84,162,22,120,175,65,65,11, - 219,219,73,237,125,109,151,12,12,158, - 209,12,12,58,58,233,162,208,12,219, - 12,11,11,12,125,73,203,125,233,95, - 12,237,158,219,248,203,125,12,12,125, - 97,22,11,170,235,115,186,26,64,120, - 233,219,52,248,36,36,160,105,12,65, - 12,233,12,12,12,12,106,12,201,231, - 233,233,201,77,237,237,125,209,237,125, - 52,233,12,82,12,12,106,12,106,270, - 270,246,12,270,233,233,12,125,36,73, - 63,233,12,36,106,237,120,237,263,125, - 12,237,160,209,12,58,237,237,125,106, - 12,106,233,120,100,106,82,63,12,77, - 77,118,65,12,267,233,237,178,106,237, - 233,106 + 12,12,178,74,165,70,70,12,12,12, + 10,86,12,12,12,12,117,11,12,12, + 12,151,86,140,140,117,140,224,140,12, + 113,140,224,86,11,12,12,57,34,140, + 91,147,12,11,86,12,18,122,57,149, + 79,12,147,264,140,86,122,105,105,105, + 105,12,12,29,12,37,249,140,140,96, + 121,96,140,208,11,121,117,147,25,151, + 39,12,207,117,147,12,133,12,212,120, + 117,147,147,147,147,181,181,140,37,50, + 86,201,12,246,12,12,89,256,249,96, + 96,128,117,208,50,12,12,117,140,13, + 12,105,151,19,12,12,140,57,12,12, + 70,70,86,132,178,212,147,117,147,147, + 37,122,140,113,12,12,61,140,172,135, + 12,12,61,63,224,50,57,208,25,181, + 57,79,19,37,57,57,140,122,147,264, + 184,140,12,190,194,140,219,140,224,140, + 98,186,201,178,12,57,12,52,154,224, + 61,61,11,13,147,79,140,212,190,37, + 201,50,12,219,257,12,234,89,219,194, + 212,190,98,158,124,135,186,57,57,11, + 224,224,94,147,140,112,172,12,12,61, + 50,12,12,72,72,201,158,49,12,224, + 12,11,11,12,140,94,219,140,201,68, + 12,147,61,224,212,219,140,12,12,140, + 102,124,11,181,145,37,194,65,55,135, + 201,224,247,212,34,34,170,108,12,57, + 12,201,12,12,12,12,109,12,208,199, + 201,201,208,15,147,147,140,50,147,140, + 113,247,201,12,81,12,12,109,12,109, + 273,273,210,12,273,201,201,12,140,34, + 94,50,140,201,12,34,109,147,135,147, + 269,140,12,147,170,55,72,147,147,140, + 109,12,109,201,135,105,109,81,50,12, + 15,15,133,57,12,230,201,147,100,54, + 189,109,147,201,100,12,109 }; }; public final static char nasb[] = Nasb.nasb; @@ -1945,34 +1946,34 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,148,146,120,145,144,5, - 2,0,109,0,4,171,0,5,1,42, - 0,165,5,164,0,4,29,0,137,0, - 5,7,10,2,13,4,45,0,2,7, - 3,0,75,0,5,2,10,7,135,0, - 42,104,0,54,2,67,0,108,0,4, - 187,0,66,42,5,7,10,2,13,0, - 169,0,124,0,185,0,42,55,0,183, - 0,112,0,154,0,13,2,10,7,5, - 83,0,151,0,177,0,48,42,173,4, - 39,0,139,0,66,39,48,68,4,42, - 0,2,44,0,61,0,33,95,94,64, - 54,7,10,2,4,0,33,94,95,4, - 0,4,168,0,54,67,0,5,102,161, - 0,67,134,133,0,95,94,5,57,0, - 2,64,54,7,10,4,90,5,0,156, - 0,42,155,0,5,44,2,3,0,4, - 97,0,95,94,54,64,57,5,7,10, - 2,0,2,113,0,114,4,48,82,0, - 23,4,5,90,0,5,7,10,13,3, - 1,0,4,48,82,84,0,4,66,0, - 5,102,184,0,4,45,166,0,2,62, - 0,2,5,120,116,117,118,13,87,0, - 4,39,38,0,45,4,33,0,4,48, - 82,102,46,5,0,39,175,23,4,0, - 4,45,39,0,38,54,7,10,2,4, - 153,0,45,4,174,0,4,172,0,4, - 45,103,0 + 3,13,7,10,149,147,120,146,145,5, + 2,0,138,0,40,55,0,2,113,0, + 2,7,3,0,140,0,171,0,5,7, + 10,2,13,4,45,0,61,0,67,135, + 134,0,5,2,10,7,136,0,4,66, + 0,185,0,66,127,40,7,10,2,13, + 5,0,187,0,4,29,0,179,0,75, + 0,108,0,13,2,10,7,5,83,0, + 112,0,4,189,0,2,44,0,152,0, + 4,173,0,124,0,109,0,155,0,158, + 0,48,40,175,4,39,0,66,39,48, + 68,4,40,0,5,44,2,3,0,54, + 2,67,0,167,5,166,0,5,102,186, + 0,33,95,94,64,54,7,10,2,4, + 0,54,67,0,45,4,33,0,95,94, + 5,57,0,5,102,163,0,40,156,0, + 4,45,168,0,33,94,95,4,0,157, + 0,2,64,54,7,10,4,5,90,0, + 4,97,0,95,94,54,64,57,5,7, + 10,2,0,114,4,48,82,0,4,39, + 38,0,5,7,10,13,3,1,0,39, + 177,23,4,0,4,45,39,0,4,48, + 82,84,0,2,62,0,4,170,0,4, + 174,0,5,1,40,0,2,5,120,116, + 117,118,13,87,0,40,104,0,4,48, + 82,102,46,5,0,38,54,7,10,2, + 4,154,0,23,4,5,90,0,45,4, + 176,0,4,45,103,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1986,7 +1987,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 55,61,67,84,88,90,94,97,99,109, 110,111,123,104,54,106,47,64,70,73, 76,83,89,93,98,77,95,103,1,46, - 53,58,78,121,20,63,91,101,44,33, + 53,58,78,121,20,63,91,101,33,44, 119,122,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 15,16,21,22,32,4,23,24,25,26, @@ -2003,8 +2004,8 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 132,137,139,0,0,138,236,136,0,230, 135,0,146,134,0,0,145,151,0,0, 152,161,182,162,163,164,165,166,154,167, - 168,169,127,170,171,0,144,129,133,172, - 0,130,141,140,155,180,0,0,0,0, + 168,169,127,170,171,0,144,129,133,130, + 172,0,141,140,155,180,0,0,0,0, 0,0,0,0,175,148,158,0,205,0, 189,0,202,206,0,128,0,174,0,0, 0,0,0,0,207,178,0,0,0,0, @@ -2012,14 +2013,14 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 213,160,209,210,211,0,0,0,0,149, 208,221,177,198,0,0,212,0,0,0, 241,242,150,181,0,191,192,193,194,195, - 197,200,0,0,215,218,220,0,239,0, - 240,0,142,143,147,0,0,157,159,0, - 173,0,183,184,185,186,187,190,0,196, - 0,199,204,0,216,217,0,222,225,227, - 229,0,233,234,235,237,238,125,0,153, - 156,0,176,0,179,0,201,214,219,0, - 223,224,226,228,0,231,232,243,244,0, - 0,0,0,0,0 + 197,200,0,0,215,218,0,220,0,239, + 0,240,0,142,143,147,0,0,157,159, + 0,173,0,183,184,185,186,187,190,0, + 196,0,199,204,0,216,217,0,0,222, + 225,227,229,0,233,234,235,237,238,125, + 0,153,156,0,176,0,179,0,201,214, + 219,0,223,224,226,228,0,231,232,243, + 244,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2027,18 +2028,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 151,567,586,518,534,545,556,356,261,275, - 297,303,42,286,376,414,159,575,461,20, - 51,71,80,85,90,127,187,292,309,320, - 331,267,281,489,27,366,331,594,27,209, - 240,1,14,61,76,106,141,222,314,327, - 336,345,349,432,454,483,510,514,604,608, - 612,97,7,97,141,394,410,423,444,502, - 423,525,541,552,563,199,472,56,56,148, - 214,217,235,256,217,217,56,353,451,458, - 148,56,625,110,228,398,438,116,116,228, - 56,228,385,169,104,436,616,623,616,623, - 65,404,134,104,104,245 + 156,572,591,523,539,550,561,361,266,280, + 302,308,42,291,381,419,164,580,466,20, + 51,71,80,85,90,127,192,297,314,325, + 336,141,272,286,494,27,141,371,336,599, + 27,214,245,1,14,61,76,106,227,319, + 332,341,350,354,437,459,488,515,519,609, + 613,617,97,7,97,399,415,428,449,507, + 428,530,546,557,568,204,477,56,56,153, + 219,222,240,261,222,222,56,358,456,463, + 153,56,630,110,233,403,443,116,116,233, + 56,233,390,174,104,441,621,628,621,628, + 65,409,134,104,104,250 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2046,18 +2047,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,363,132,95, - 132,132,48,272,382,420,165,67,467,25, - 25,25,59,59,95,132,192,132,132,325, - 325,272,101,494,38,371,581,599,32,203, - 203,5,18,5,59,95,132,226,318,318, - 318,95,95,132,238,5,5,5,5,5, - 238,226,11,101,145,363,363,363,448,494, - 427,529,529,529,529,203,476,59,59,5, - 5,220,238,5,259,259,343,95,5,238, - 5,487,5,113,340,401,441,119,123,231, - 506,497,388,172,95,95,618,618,620,620, - 67,406,136,194,179,247 + 18,5,5,5,5,5,5,368,132,95, + 132,132,48,277,387,425,170,67,472,25, + 25,25,59,59,95,132,197,132,132,330, + 330,146,277,101,499,38,149,376,586,604, + 32,208,208,5,18,5,59,95,231,323, + 323,323,95,95,132,243,5,5,5,5, + 5,243,231,11,101,368,368,368,453,499, + 432,534,534,534,534,208,481,59,59,5, + 5,225,243,5,264,264,348,95,5,243, + 5,492,5,113,345,406,446,119,123,236, + 511,502,393,177,95,95,623,623,625,625, + 67,411,136,199,184,252 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2067,16 +2068,16 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static char scopeLhs[] = { 46,17,17,17,17,17,17,71,86,47, 80,118,77,52,71,70,46,17,19,3, - 6,9,161,161,158,116,46,81,118,117, - 119,53,47,135,130,71,17,17,130,96, - 58,132,74,164,161,158,126,60,117,117, - 119,176,50,55,139,18,17,17,17,17, - 17,12,112,158,126,71,70,70,36,135, - 70,17,17,17,17,96,19,165,161,177, - 94,101,75,59,153,76,119,72,140,139, - 169,135,16,158,119,103,69,127,127,57, - 135,135,71,46,158,65,133,44,133,44, - 164,103,116,46,46,58 + 6,9,163,163,160,116,46,81,118,117, + 119,126,53,47,136,131,126,71,17,17, + 131,96,58,133,74,166,163,160,60,117, + 117,119,178,50,55,140,18,17,17,17, + 17,17,12,112,160,71,70,70,36,136, + 70,17,17,17,17,96,19,167,163,179, + 94,101,75,59,154,76,119,72,141,140, + 171,136,16,160,119,103,69,128,128,57, + 136,136,71,46,160,65,134,44,134,44, + 166,103,116,46,46,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2087,13 +2088,13 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 119,74,74,74,74,74,74,74,71,13, 71,71,65,1,74,122,64,3,74,65, 65,65,1,1,13,71,64,71,71,1, - 1,1,1,4,65,13,1,1,65,74, - 74,74,119,74,1,13,71,1,1,1, - 1,13,13,71,118,74,74,74,74,74, - 118,1,74,1,69,74,74,74,73,4, + 1,71,1,1,4,65,70,13,1,1, + 65,74,74,74,119,74,1,13,1,1, + 1,1,13,13,71,118,74,74,74,74, + 74,118,1,74,1,74,74,74,73,4, 74,65,65,65,65,74,3,1,1,74, 74,3,118,74,1,1,1,13,74,118, - 74,5,74,1,54,70,73,1,1,6, + 74,5,74,1,54,69,73,1,1,6, 1,54,76,75,13,13,4,4,4,4, 3,1,64,1,1,3 }; @@ -2106,10 +2107,10 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 96,248,248,248,248,248,248,106,87,96, 85,154,85,98,106,106,96,248,248,181, 223,224,57,57,82,154,96,85,154,154, - 154,98,96,149,50,106,248,248,50,141, - 63,26,106,30,57,82,310,63,154,154, - 154,22,98,33,79,248,248,248,248,248, - 248,243,6,82,310,106,106,106,279,149, + 154,310,98,96,149,50,310,106,248,248, + 50,141,63,26,106,30,57,82,63,154, + 154,154,22,98,33,79,248,248,248,248, + 248,248,243,6,82,106,106,106,279,149, 106,248,248,248,248,141,248,30,57,24, 141,143,137,63,60,68,154,106,54,79, 152,149,248,82,154,1,106,154,154,121, @@ -2122,69 +2123,70 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 312,3,57,0,127,0,311,3,119,0, - 127,175,0,127,178,75,0,217,0,251, - 127,30,125,0,20,0,290,127,30,54, + 314,3,57,0,127,0,313,3,119,0, + 127,175,0,127,178,75,0,217,0,252, + 127,30,125,0,20,0,292,127,30,54, 0,20,53,0,33,134,0,20,53,0, - 0,290,127,30,54,205,0,20,131,0, - 251,127,30,130,0,185,128,0,144,0, - 220,3,288,0,288,0,2,0,127,0, - 251,127,30,133,0,185,128,225,0,185, - 128,44,225,0,185,128,308,44,0,131, + 0,292,127,30,54,205,0,20,131,0, + 252,127,30,130,0,185,128,0,144,0, + 220,3,290,0,290,0,2,0,127,0, + 252,127,30,133,0,185,128,225,0,185, + 128,44,225,0,185,128,310,44,0,131, 190,167,128,0,129,0,190,167,128,0, - 136,129,0,171,0,304,127,171,0,127, + 136,129,0,171,0,306,127,171,0,127, 171,0,223,129,0,167,243,0,139,0, - 0,0,137,0,0,0,303,127,165,250, - 0,128,0,250,0,130,0,0,128,0, - 302,127,165,0,44,128,0,152,3,0, - 127,278,277,127,75,276,171,0,277,127, - 75,276,171,0,216,0,217,0,276,171, - 0,96,0,0,216,0,217,0,204,96, - 0,0,216,0,217,0,277,127,276,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,190,167,177,0,136,0,167,128,0, - 10,0,0,0,215,59,0,126,0,228, - 127,3,182,0,182,0,2,0,0,127, - 0,0,0,0,0,199,3,0,202,0, - 238,127,165,28,17,0,185,128,56,58, - 0,198,129,0,131,185,128,274,58,0, - 185,128,274,58,0,185,128,70,124,56, - 0,238,127,165,56,0,238,127,165,227, - 56,0,272,127,165,124,66,0,272,127, - 165,66,0,185,128,66,0,137,0,190, - 185,128,243,0,139,0,185,128,243,0, - 190,167,128,10,0,167,128,10,0,93, - 139,0,149,0,265,127,146,0,265,127, - 171,0,162,85,0,295,161,297,298,3, - 82,0,127,174,0,297,298,3,82,0, - 129,0,127,174,0,162,3,76,191,81, - 0,127,129,0,191,81,0,108,2,133, - 127,129,0,226,3,76,0,199,168,0, - 33,172,0,168,0,178,33,172,0,226, - 3,86,0,191,156,226,3,84,0,62, - 174,0,226,3,84,0,127,174,62,174, - 0,296,127,165,0,162,0,215,78,0, - 30,174,0,162,117,158,0,30,172,0, - 220,3,0,215,59,262,0,162,59,0, - 179,3,292,63,128,0,127,0,0,0, - 0,292,63,128,0,2,148,127,0,0, - 0,0,179,3,35,0,150,0,126,54, - 167,128,0,31,150,0,93,139,31,150, - 0,223,185,128,0,149,31,150,0,179, - 3,39,0,162,3,39,0,162,3,65, - 179,30,31,0,179,30,31,0,20,2, - 133,127,0,162,3,65,179,30,34,0, - 179,30,34,0,162,3,65,179,30,36, - 0,179,30,36,0,162,3,65,179,30, - 32,0,179,30,32,0,220,3,126,190, - 167,128,10,0,126,190,167,128,10,0, - 139,2,0,127,0,220,3,125,177,167, - 128,10,0,177,167,128,10,0,137,2, - 0,127,0,220,3,136,0,220,3,140, - 0,162,59,140,0,257,0,31,0,31, - 142,0,166,0,162,3,0 + 0,0,137,0,0,0,305,127,163,251, + 0,128,0,251,0,130,0,0,128,0, + 304,127,163,250,0,128,0,0,44,128, + 0,0,152,3,0,127,279,278,127,75, + 277,171,0,278,127,75,277,171,0,216, + 0,217,0,277,171,0,96,0,0,216, + 0,217,0,204,96,0,0,216,0,217, + 0,278,127,277,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,190,167,177,0, + 136,0,167,128,0,10,0,0,0,215, + 59,0,126,0,228,127,3,182,0,182, + 0,2,0,0,127,0,0,0,0,0, + 199,3,0,202,0,238,127,163,28,17, + 0,185,128,56,58,0,198,129,0,131, + 185,128,275,58,0,185,128,275,58,0, + 185,128,69,124,56,0,238,127,163,56, + 0,238,127,163,227,56,0,273,127,163, + 124,66,0,273,127,163,66,0,185,128, + 66,0,137,0,190,185,128,243,0,139, + 0,185,128,243,0,190,167,128,10,0, + 167,128,10,0,93,139,0,149,0,266, + 127,146,0,266,127,171,0,162,85,0, + 297,161,299,300,3,82,0,127,174,0, + 299,300,3,82,0,129,0,127,174,0, + 162,3,76,191,81,0,127,129,0,191, + 81,0,108,2,133,127,129,0,226,3, + 76,0,199,168,0,33,172,0,168,0, + 178,33,172,0,226,3,86,0,191,156, + 226,3,84,0,62,174,0,226,3,84, + 0,127,174,62,174,0,298,127,163,0, + 162,0,215,78,0,30,174,0,162,117, + 158,0,30,172,0,220,3,0,215,59, + 263,0,162,59,0,179,3,294,63,128, + 0,127,0,0,0,0,294,63,128,0, + 2,148,127,0,0,0,0,179,3,35, + 0,150,0,126,54,167,128,0,31,150, + 0,93,139,31,150,0,223,185,128,0, + 149,31,150,0,179,3,39,0,162,3, + 39,0,162,3,65,179,30,31,0,179, + 30,31,0,20,2,133,127,0,162,3, + 65,179,30,34,0,179,30,34,0,162, + 3,65,179,30,36,0,179,30,36,0, + 162,3,65,179,30,32,0,179,30,32, + 0,220,3,126,190,167,128,10,0,126, + 190,167,128,10,0,139,2,0,127,0, + 220,3,125,177,167,128,10,0,177,167, + 128,10,0,137,2,0,127,0,220,3, + 136,0,220,3,140,0,162,59,140,0, + 258,0,31,0,31,142,0,166,0,162, + 3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2192,38 +2194,38 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4540,4679,4674,4667,0,1905,3646,1649,3396,0, - 3251,3214,3160,3123,3069,3032,2978,2941,2885,2555, - 2518,4272,0,2287,0,2598,1940,1033,0,3003, - 624,0,3251,3214,1561,1477,3160,3123,3069,3032, - 2978,2941,1205,2885,2555,2518,3505,3398,0,3110, - 3996,2893,0,733,673,0,3148,4008,0,2680, - 4386,0,4397,2680,4375,3512,4386,3362,3952,662, - 4204,2820,4179,579,3351,2806,2669,0,2759,2527, - 0,4418,4270,0,4418,4270,3616,4150,4082,3544, - 4067,3999,3984,3533,0,4418,4270,3616,4150,4082, - 3544,4067,3999,3984,3533,3251,3214,3160,3123,3069, - 3032,2978,2941,2885,2555,2518,0,4042,3177,0, - 2820,4397,2856,4375,3512,4426,3351,1307,3598,2906, - 3545,3219,3072,1161,867,0,2249,1859,1650,737, - 3512,3219,3362,2806,2669,2872,2756,0,933,797, - 0,982,0,4244,534,2631,0,4570,4554,4550, - 4522,4505,4484,4475,4467,4648,4644,4633,4622,4617, - 4297,4216,4099,3179,3088,2997,3399,4054,2574,0, - 4570,3270,4554,3184,2766,4550,4522,4505,2579,2548, - 4484,4475,4467,3449,4648,3444,3432,4644,3428,2612, - 2291,1943,4633,3527,4622,1948,3989,4617,4297,4216, - 1123,4099,1118,3179,3088,790,2997,4244,3399,2631, - 4054,2574,729,3362,3952,662,4204,2820,4397,4179, - 2834,2680,2536,4375,2523,3512,579,3351,2806,4386, - 2669,2244,1256,2156,2068,933,797,3930,1039,2258, - 2327,2295,2386,2358,591,2780,2640,2495,2468,2441, - 2414,3482,3459,3373,3326,2693,3908,3886,3864,3842, - 3820,3798,3776,3754,3732,3703,3670,3963,1952,2207, - 2170,2119,2082,1274,1214,2031,1994,1172,875,1901, - 1864,818,740,683,534,1822,1780,1738,1696,1654, - 1612,1570,1528,1486,1444,1402,1360,1316,1128,996, - 953,1075,0 + 4566,4597,4584,4583,0,3454,4109,1903,3110,0, + 3268,3231,3177,3140,3086,3049,2995,2958,2902,2572, + 2535,3975,0,1404,0,2979,2790,2274,0,3472, + 2769,0,3268,3231,3204,3113,3177,3140,3086,3049, + 2995,2958,622,2902,2572,2535,4015,2937,0,3442, + 3071,3143,0,651,592,0,2910,2782,0,665, + 4382,0,4305,665,4223,3484,4382,3404,3963,4370, + 4196,2837,4185,581,3393,2823,2685,0,1479,650, + 0,4402,4253,0,4402,4253,3605,4098,4088,3545, + 4078,3995,3982,3535,0,4402,4253,3605,4098,4088, + 3545,4078,3995,3982,3535,3268,3231,3177,3140,3086, + 3049,2995,2958,2902,2572,2535,0,2616,791,0, + 2837,4305,1698,4223,3484,4404,3393,1612,864,729, + 4395,2907,1075,1166,865,0,2304,2273,1791,1705, + 3484,2907,3404,2823,2685,2961,2773,0,2173,800, + 0,679,0,4209,536,2647,0,4542,4537,4528, + 4520,4516,4470,4462,4453,4350,3599,3438,3287,3218, + 4414,4050,3127,3527,3196,3105,2591,3037,1964,0, + 4542,3292,4537,2577,2565,4528,4520,4516,780,735, + 4470,4462,4453,1659,4350,1573,1530,3599,1487,1444, + 1358,1315,3438,626,3287,1954,2701,3218,4414,4050, + 915,3127,658,3527,3196,646,3105,4209,2591,2647, + 3037,1964,631,3404,3963,4370,4196,2837,4305,4185, + 2851,665,2553,4223,2540,3484,581,3393,2823,4382, + 2685,2261,937,2085,1262,2173,800,3941,1042,2275, + 2344,2312,2403,2375,593,2797,2656,2512,2485,2458, + 2431,3501,3415,2711,3368,3343,3919,3897,3875,3853, + 3831,3809,3787,3765,3743,3721,3692,3661,1968,2224, + 2187,2136,2099,1278,1219,2048,2011,1176,878,1917, + 1880,821,743,686,536,1837,1794,1751,1708,1665, + 1622,1579,1536,1493,1450,1407,1364,1321,1133,999, + 956,1087,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2231,59 +2233,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,291,127,264,39,31,34,36,32,10, + 0,293,127,265,39,31,34,36,32,10, 136,125,133,7,130,4,3,128,35,29, 5,12,11,6,9,27,26,140,145,148, 147,150,149,153,151,155,154,157,57,158, - 69,3,30,30,30,30,128,3,30,30, + 70,3,30,30,30,30,128,3,30,30, 168,127,59,3,62,63,30,7,125,162, 62,63,167,166,125,3,124,126,103,120, 3,59,90,96,12,11,92,91,6,94, 93,65,30,88,89,9,98,97,100,99, 101,113,112,111,110,109,108,107,106,105, - 104,70,117,102,179,162,168,127,179,179, - 179,179,167,220,127,127,127,266,267,250, - 268,243,269,66,270,271,10,128,59,59, - 127,59,292,3,190,4,179,54,5,128, + 104,69,117,102,179,162,168,127,179,179, + 179,179,167,220,127,127,127,267,268,251, + 269,243,270,66,271,272,10,128,59,59, + 127,59,294,3,190,4,179,54,5,128, 54,220,162,147,147,145,145,145,149,149, 149,149,148,148,151,150,150,154,153,155, 162,157,127,59,3,218,217,136,126,125, - 10,128,65,65,65,65,190,177,251,254, - 251,213,128,6,165,167,231,128,126,125, - 124,165,128,128,185,167,251,206,3,293, - 168,152,257,190,128,125,185,167,73,213, + 10,128,65,65,65,65,190,177,252,255, + 252,213,128,6,163,167,231,128,126,125, + 124,163,128,128,185,167,252,206,3,295, + 168,152,258,190,128,125,185,167,73,213, 215,158,224,127,3,128,167,3,3,3, - 3,126,125,69,167,127,127,126,125,127, - 185,127,165,127,185,167,54,179,127,127, + 3,126,125,70,167,127,127,126,125,127, + 185,127,163,127,185,167,54,179,127,127, 4,223,5,54,228,229,146,230,127,167, - 54,162,162,162,162,3,3,6,184,303, - 128,169,225,56,54,205,58,171,305,127, - 127,73,190,127,272,124,273,190,156,259, - 262,59,180,4,124,126,156,70,224,199, - 187,182,177,3,127,69,228,190,220,220, - 127,167,165,227,30,54,274,276,127,3, - 182,307,225,44,128,272,70,69,127,3, - 59,162,4,127,70,70,3,167,199,127, - 213,156,126,190,127,165,65,30,128,75, - 127,213,304,127,125,73,283,199,69,128, - 44,308,185,259,220,215,221,127,190,127, + 54,162,162,162,162,3,3,6,184,305, + 128,169,225,56,54,205,58,171,307,127, + 127,73,190,127,273,124,274,190,156,260, + 263,59,180,4,124,126,156,69,224,199, + 187,182,177,3,127,70,228,190,220,220, + 127,167,163,227,30,54,275,277,127,3, + 182,309,225,44,128,273,69,70,127,3, + 59,162,4,127,69,69,3,167,199,127, + 213,156,126,190,127,163,65,30,128,75, + 127,213,306,127,125,73,285,199,70,128, + 44,310,185,260,220,215,221,127,190,127, 131,238,17,54,171,60,56,58,237,127, - 127,185,127,277,73,69,213,73,70,185, + 127,185,127,278,73,70,213,73,69,185, 128,128,127,228,221,28,127,3,124,56, - 238,290,54,10,61,131,277,165,287,128, - 288,185,185,57,156,127,127,165,265,199, - 275,28,70,128,69,65,30,231,231,278, - 127,69,185,3,3,127,127,3,70,69, - 156,128,185,127,70,70,127,296,80,78, + 238,292,54,10,61,131,278,163,289,128, + 290,185,185,57,156,127,127,163,266,199, + 276,28,69,128,70,65,30,231,231,279, + 127,70,185,3,3,127,127,3,69,70, + 156,128,185,127,69,69,127,298,80,78, 1,162,8,86,84,82,81,76,83,85, - 79,77,56,75,220,312,221,238,152,165, - 185,227,290,279,119,8,73,215,73,3, - 3,3,191,3,124,162,124,178,69,127, - 127,227,65,3,73,226,168,226,298,146, - 76,226,127,302,8,61,95,311,168,156, - 199,156,297,127,3,156,279,69,231,156, - 156,127,70,191,161,265,162,70,122,295, - 156,156 + 79,77,56,75,220,314,221,238,152,163, + 250,185,227,292,280,119,8,73,215,73, + 3,3,3,191,3,124,162,124,178,70, + 127,127,163,227,65,3,73,226,168,226, + 300,146,76,226,127,127,61,95,313,168, + 156,199,156,299,127,3,156,280,304,231, + 156,156,127,69,191,161,266,162,189,70, + 69,122,297,156,189,8,156 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2559,20 +2561,20 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 522, + NUM_STATES = 527, NT_OFFSET = 123, - LA_STATE_OFFSET = 5734, + LA_STATE_OFFSET = 5771, MAX_LA = 2147483647, - NUM_RULES = 533, - NUM_NONTERMINALS = 195, - NUM_SYMBOLS = 318, + NUM_RULES = 535, + NUM_NONTERMINALS = 197, + NUM_SYMBOLS = 320, SEGMENT_SIZE = 8192, - START_STATE = 2886, + START_STATE = 4103, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4801, - ERROR_ACTION = 5201; + ACCEPT_ACTION = 4827, + ERROR_ACTION = 5236; 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 1ed67e27ad1..7e02aa0d315 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 @@ -118,7 +118,7 @@ public interface CPPNoCastExpressionParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 70, + TK_Assign = 69, TK_StarAssign = 104, TK_SlashAssign = 105, TK_PercentAssign = 106, @@ -129,7 +129,7 @@ public interface CPPNoCastExpressionParsersym { TK_AndAssign = 111, TK_CaretAssign = 112, TK_OrAssign = 113, - TK_Comma = 69, + TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, TK_RightBrace = 71, @@ -209,8 +209,8 @@ public interface CPPNoCastExpressionParsersym { "enum", "struct", "union", - "Comma", "Assign", + "Comma", "RightBrace", "ERROR_TOKEN", "Colon", 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 8c3ffee46c4..417afe54624 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 @@ -171,13 +171,15 @@ private CPPParserAction action; public CPPNoFunctionDeclaratorParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { // binding resolution actions need access to IASTName nodes, temporary action = new CPPParserAction (); //action.resolver = new C99TypedefTrackerParserAction (this); action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); + action.builder.setParserOptions(options); + // comment this line to use with backtracking parser //setParserAction(action); } @@ -189,10 +191,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // _1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1856,14 +1858,14 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor } // - // Rule 381: initializer_clause ::= { <openscope-ast> initializer_list , } + // Rule 381: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // case 381: { action.builder. consumeInitializerList(); break; } // - // Rule 382: initializer_clause ::= { <openscope-ast> initializer_list } + // Rule 382: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // case 382: { action.builder. consumeInitializerList(); break; @@ -1877,380 +1879,394 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor } // - // Rule 388: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 384: start_initializer_list ::= $Empty // - case 388: { action.builder. - consumeClassSpecifier(); break; + case 384: { action.builder. + initializerListStart(); break; } // - // Rule 389: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt + // Rule 385: end_initializer_list ::= $Empty // - case 389: { action.builder. - consumeClassHead(false); break; + case 385: { action.builder. + initializerListEnd(); break; } // - // Rule 390: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt + // Rule 390: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // case 390: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // Rule 391: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // case 391: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt + // Rule 392: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // case 392: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // + case 393: { action.builder. consumeClassHead(true); break; } // - // Rule 394: identifier_name_opt ::= $Empty + // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // case 394: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 396: identifier_name_opt ::= $Empty + // + case 396: { action.builder. consumeEmpty(); break; } // - // Rule 398: visibility_label ::= access_specifier_keyword : + // Rule 400: visibility_label ::= access_specifier_keyword : // - case 398: { action.builder. + case 400: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 399: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 399: { action.builder. + case 401: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 400: member_declaration ::= declaration_specifiers_opt ; + // Rule 402: member_declaration ::= declaration_specifiers_opt ; // - case 400: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 403: { action.builder. + case 405: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 409: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 409: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 417: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 417: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 418: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 418: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 419: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 419: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 420: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 420: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 421: constant_initializer ::= = constant_expression + // Rule 423: constant_initializer ::= = constant_expression // - case 421: { action.builder. + case 423: { action.builder. consumeInitializer(); break; } // - // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 428: base_specifier ::= virtual access_specifier_keyword_opt 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 428: { action.builder. + case 430: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 429: base_specifier ::= access_specifier_keyword virtual 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 429: { action.builder. + case 431: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 432: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 431: access_specifier_keyword ::= private + // Rule 433: access_specifier_keyword ::= private // - case 431: { action.builder. + case 433: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 432: access_specifier_keyword ::= protected + // Rule 434: access_specifier_keyword ::= protected // - case 432: { action.builder. + case 434: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 433: access_specifier_keyword ::= public + // Rule 435: access_specifier_keyword ::= public // - case 433: { action.builder. + case 435: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 435: access_specifier_keyword_opt ::= $Empty + // Rule 437: access_specifier_keyword_opt ::= $Empty // - case 435: { action.builder. + case 437: { action.builder. consumeEmpty(); break; } // - // Rule 437: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > + // Rule 439: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 437: { action.builder. + case 439: { action.builder. consumeTemplateId(); break; } // - // Rule 438: conversion_function_id ::= operator conversion_type_id + // Rule 440: conversion_function_id ::= operator conversion_type_id // - case 438: { action.builder. + case 440: { action.builder. consumeConversionName(); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 439: { action.builder. + case 441: { action.builder. consumeTypeId(true); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq + // Rule 442: conversion_type_id ::= type_specifier_seq // - case 440: { action.builder. + case 442: { action.builder. consumeTypeId(false); break; } // - // Rule 441: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 443: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 441: { action.builder. + case 443: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 447: { action.builder. + case 449: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 448: { action.builder. + case 450: { action.builder. consumeQualifiedId(false); break; } // - // Rule 451: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 453: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 451: { action.builder. + case 453: { action.builder. consumeTemplateId(); break; } // - // Rule 452: operator_id_name ::= operator overloadable_operator + // Rule 454: operator_id_name ::= operator overloadable_operator // - case 452: { action.builder. + case 454: { action.builder. consumeOperatorName(); break; } // - // Rule 495: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 497: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 495: { action.builder. + case 497: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 496: export_opt ::= export + // Rule 498: export_opt ::= export // - case 496: { action.builder. + case 498: { action.builder. consumePlaceHolder(); break; } // - // Rule 497: export_opt ::= $Empty + // Rule 499: export_opt ::= $Empty // - case 497: { action.builder. + case 499: { action.builder. consumeEmpty(); break; } // - // Rule 501: template_parameter ::= parameter_declaration + // Rule 503: template_parameter ::= parameter_declaration // - case 501: { action.builder. + case 503: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 502: type_parameter ::= class identifier_name_opt + // Rule 504: type_parameter ::= class identifier_name_opt // - case 502: { action.builder. + case 504: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 503: type_parameter ::= class identifier_name_opt = type_id + // Rule 505: type_parameter ::= class identifier_name_opt = type_id // - case 503: { action.builder. + case 505: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 504: type_parameter ::= typename identifier_name_opt + // Rule 506: type_parameter ::= typename identifier_name_opt // - case 504: { action.builder. + case 506: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= typename identifier_name_opt = type_id + // Rule 507: type_parameter ::= typename identifier_name_opt = type_id // - case 505: { action.builder. + case 507: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt + // Rule 508: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 506: { action.builder. + case 508: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 507: { action.builder. + case 509: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 508: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > + // Rule 510: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 508: { action.builder. + case 510: { action.builder. consumeTemplateId(); break; } // - // Rule 514: template_argument ::= type_id + // Rule 516: template_argument ::= type_id // - case 514: { action.builder. + case 516: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 515: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 515: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 516: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 516: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 517: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 519: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 517: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 520: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 521: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 521: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 522: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 522: { action.builder. + case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 523: { action.builder. + case 525: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq + // Rule 526: exception_declaration ::= type_specifier_seq // - case 524: { action.builder. + case 526: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 532: no_function_declarator_start ::= ERROR_TOKEN + // Rule 534: no_function_declarator_start ::= ERROR_TOKEN // - case 532: { action.builder. + case 534: { action.builder. 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 46c7168ea5a..15cfcc0baf6 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 @@ -75,444 +75,447 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 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, - 5,4,3,1,3,1,1,5,4,4, - 5,5,1,0,1,1,1,2,4,2, - 2,1,5,1,1,1,1,1,1,1, - 2,1,0,1,3,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, + 7,6,3,0,0,1,3,1,1,5, + 4,4,5,5,1,0,1,1,1,2, + 4,2,2,1,5,1,1,1,1,1, + 1,1,2,1,0,1,3,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,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,-107,0,0,0,-2,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,-2, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-7,0,0,0,0, - 0,0,0,-263,0,-102,0,0,0,0, - 0,-455,0,0,0,-196,0,0,0,-25, - 0,0,0,0,0,0,0,0,-8,-134, + 0,0,0,0,0,0,0,-7,0,0, + 0,0,0,0,0,-264,0,-8,0,0, + 0,0,0,-231,0,0,0,0,-197,0, + 0,0,-4,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,-3,0,0,0,0,0,0, + 0,0,0,0,-386,0,0,-11,-276,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,0,0,-115,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-381,0,0,-11,-340,0,-49,0, + 0,-10,0,0,0,-292,0,-18,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,-113,0,0,0,0, - 0,0,0,0,0,0,0,0,-22,-286, - 0,0,0,0,-18,0,0,0,0,0, - 0,-74,0,0,0,0,0,0,0,0, + 0,0,0,0,-95,0,0,0,0,0, + 0,-227,0,0,-13,0,0,-5,0,0, + -22,-289,0,0,0,-6,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,0,0,0,0,0,0,0, - 0,-171,0,0,0,0,0,0,-226,0, - 0,0,0,0,-289,0,-45,0,0,0, - -20,0,0,0,0,0,0,-75,0,0, + -19,0,0,0,0,0,0,-26,0,0, + 0,0,0,0,0,0,0,0,-24,0, + 0,0,0,0,-335,0,0,0,-116,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-158,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,-31,0,-3, - 0,0,0,0,-83,0,0,0,0,0, - 0,0,-19,-35,0,0,0,0,0,0, - -73,-26,0,0,-17,-520,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -27,0,-260,0,0,0,0,-90,0,0, + -27,0,0,0,0,0,0,-28,-87,0, + 0,0,0,0,0,-251,-79,-29,0,0, + 0,0,-241,0,0,0,-222,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-413,0,0, + 0,0,0,0,0,0,-104,0,0,0, + 0,0,0,-357,0,0,0,0,0,0, + 0,-46,0,0,0,-103,0,0,0,0, + -39,0,0,0,-293,-525,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-24,0,-309,0,0,-150,0, - 0,0,0,-221,0,0,0,0,0,0, + 0,0,0,0,0,0,-173,0,0,0, + -40,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-308,0, + 0,0,0,0,0,0,-41,0,0,0, + 0,0,0,0,-312,0,0,0,0,-277, + 0,0,0,-42,0,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,-156,0,0,0,0,0,-45,0,0, + 0,0,-36,0,0,0,-111,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-28,0,0,0,0,0,0, - -443,0,-21,0,0,0,0,0,-10,0, - 0,0,0,0,-156,0,0,0,0,0, - -114,0,0,0,-29,0,0,0,0,0, - 0,0,0,-38,0,0,0,0,-94,0, - 0,0,-39,0,0,0,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,0,0,0,-326,0,0,0, - 0,-234,0,0,0,-41,0,0,0,0, + -44,0,0,0,0,0,-15,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,-334,0, + 0,0,0,0,0,0,0,0,0,-233, + 0,0,0,-322,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-42,0,0,0,0,0,0,-230,0, - 0,0,0,0,-15,0,0,0,-44,0, + 0,0,0,0,0,-59,0,0,0,0, + 0,0,0,-71,0,0,0,0,0,0, + -235,-190,0,0,0,0,0,0,-60,-135, 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,-62, + 0,0,0,-361,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-229,0,0,0,0,0,-36,0,0, - 0,-79,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-225, - 0,0,0,0,0,0,0,-57,0,-43, - 0,0,0,0,0,-58,0,0,0,-86, - 0,0,0,0,0,0,-4,0,-434,-317, - 0,0,0,-161,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-256,0,0,0,0,0,0,0,0, - 0,-70,0,0,0,0,-373,0,0,0, - 0,-356,0,0,0,0,0,0,0,0, + 0,0,0,-180,0,0,0,0,0,0, + -240,0,0,0,0,0,0,0,-362,0, + 0,0,-63,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -17,0,0,0,0,0,0,0,-379,0, + -89,0,0,0,0,-25,-64,0,-74,0, + 0,-270,0,0,0,-16,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,-189,0,0,0,0,0,0, - 0,-357,0,0,0,-60,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,-69,0,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, - -250,0,0,-109,0,-16,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,0,-305,0,0, - 0,0,-68,0,0,0,-62,0,0,0, + 0,0,0,0,-465,0,0,0,0,-444, + 0,0,0,0,0,-90,-259,0,-275,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,-63,0,-88,0,0,0,0,-240, - 0,0,0,0,-101,0,-379,0,0,-402, - 0,0,-136,0,0,0,0,0,0,0, + 0,0,-66,0,0,0,0,0,0,-371, + 0,0,0,0,0,-139,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-67,0,0, + 0,0,0,0,0,-68,0,0,0,0, + 0,0,-290,0,0,0,0,0,-140,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-296,0,-89,0,0,0,0,-64, - 0,0,0,0,-137,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -70,0,0,0,0,0,0,0,-367,0, + -72,0,0,0,0,-295,0,0,0,0, + 0,-141,0,0,0,-345,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,-191,0,0,-138,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-92,0,-94,0,0,0,0,-296,0, + 0,0,0,0,-142,0,0,0,-384,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-460,0, - 0,0,0,-459,0,-5,0,0,-139,0, + 0,0,0,0,0,0,-105,0,0,0, + 0,0,0,0,-114,0,-151,0,0,0, + 0,-329,0,0,0,0,0,-143,0,0, + 0,-153,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-154, + 0,0,0,0,0,0,0,-155,0,-162, + 0,0,0,0,0,-460,0,0,0,0, + -144,0,0,0,-168,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-169,0,0,0,0,0,0,0, + 0,0,-302,0,0,0,0,0,-473,0, + -38,0,0,-145,0,0,0,-176,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-177,0,0,0,0, + 0,0,0,0,0,-178,0,0,0,0, + 0,-515,0,-80,0,0,-146,0,0,0, + -179,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,-188,0,-189,0, + 0,0,0,0,-464,0,-163,0,0,-147, + 0,0,0,-202,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-66,-184,0,0, - -140,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-203, + 0,-204,0,0,0,0,0,-205,-206,-299, + 0,0,-148,0,0,0,-207,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-346,0,0,0,0,0,0,0, - 0,0,-512,0,0,0,0,-67,-69,-185, - 0,0,-141,0,0,0,-71,0,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,-91, - -93,-200,0,0,-142,0,0,0,0,0, + 0,0,-208,0,-209,0,0,0,0,0, + -210,-211,-212,0,0,-172,0,0,0,-213, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-103,0,0,0, - 0,0,0,0,0,0,-513,0,0,0, - 0,-112,-149,-151,0,0,-143,0,0,0, + 0,0,0,0,0,0,0,-214,0,0, + 0,0,0,0,0,-215,0,-307,0,0, + 0,0,0,-418,-216,-217,0,0,-256,0, + 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,-246,0, - 0,0,0,0,0,0,-152,0,0,0, - 0,0,0,0,-153,-365,0,0,-144,0, + -219,0,0,0,0,0,0,0,-220,0, + -439,0,0,0,0,-313,-236,-237,-238,0, + 0,-520,0,0,0,-351,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-239,0,0,0,0,0,0, + 0,-260,0,-262,0,0,0,0,-257,-263, + -273,-274,0,0,-311,0,0,0,-282,0, 0,0,0,0,0,0,0,0,0,0, - -254,0,0,0,0,0,0,0,-160,0, - -104,0,0,0,0,0,-166,-393,0,0, - -145,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-283,0,0,0, + 0,0,0,0,-285,0,0,0,0,0, + 0,-349,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -167,0,-105,0,0,0,0,0,-172,-175, - 0,0,-146,0,0,0,0,0,0,0, + 0,-287,0,0,0,0,0,0,-199,0, 0,0,0,0,0,0,0,0,0,0, + 0,-369,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-176,0,-173,0,0,0,0,0, - -177,-178,0,0,-170,0,0,0,-186,0, 0,0,0,0,0,0,0,0,0,0, + 0,-294,0,-300,0,0,0,0,-388,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-187,0,-174,0,0,0, - 0,-188,-201,-202,0,0,-255,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,0,0,-468,0,-180,0, - 0,0,0,-330,-204,-205,0,0,-515,0, - 0,0,-206,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-301,0, + -331,0,0,0,0,-73,0,0,0,-305, + -185,0,0,0,0,0,-31,-306,-389,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-207,0, - -195,0,0,0,0,-366,-374,-208,0,0, - -308,0,0,0,-271,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -314,0,0,0,0,0,0,0,0,0, + -323,0,0,0,0,-451,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -209,0,-210,0,0,0,0,-344,0,0, - 0,-510,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-324,0,0, + 0,0,0,0,0,0,0,-332,0,0, + 0,0,-195,0,0,0,-336,-186,0,0, + 0,0,0,-35,-337,-150,0,0,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,0, - 0,0,0,0,-198,0,0,0,-211,0, - 0,0,0,0,0,0,0,-364,0,0, + 0,-348,-137,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-350,0,0,0,0,0, + 0,0,0,0,-366,0,-132,0,0,0, + -374,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-377,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,-212,0,-213, - 0,0,0,0,-383,0,0,0,0,0, + 0,0,0,0,0,0,0,-272,0,0, + 0,0,0,-134,0,0,0,-201,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-370,0,0,0,0, + 0,-126,0,0,0,-401,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-214,0,0,0, - 0,-72,0,0,0,-215,-216,0,0,0, - 0,0,-199,-217,-384,0,0,0,0,0, + 0,0,0,-402,0,0,0,0,-127,0, 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,-219,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,-235,0,0,0,0,0,0, - 0,-496,0,-236,0,0,0,0,-194,0, - 0,0,-237,-238,0,0,0,0,0,-242, - -259,-148,0,0,0,0,0,0,0,0, + -405,0,0,0,0,-128,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-261,0,0,0,0,0,0, - 0,0,0,-30,0,0,-251,0,-135,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-129,0,0,0,-310,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -294,0,0,0,0,0,0,0,0,0, - -258,0,-133,0,0,0,-262,0,0,0, + 0,0,0,0,-406,0,0,0,0,-433, + -226,-412,-385,0,-261,0,0,-376,0,0, + 0,0,-414,0,0,0,0,0,-98,-399, + -423,0,0,0,-338,0,0,0,-430,0, + 0,0,0,0,0,-431,-347,0,0,0, + 0,0,0,-373,0,0,0,0,0,0, + 0,0,0,-449,-438,0,-461,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-23,0,0,0, + -355,0,-356,0,-184,0,0,0,0,0, + -450,0,0,0,0,0,-448,-452,-454,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-272,0,-130,0,0,0,0,0, + 0,0,-81,0,-84,0,0,0,0,0, + 0,0,0,0,0,0,0,-455,-88,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, - 0,0,0,-131,0,0,0,0,0,0, + 0,0,0,0,0,0,-20,-456,-457,-83, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-307,0,0,0,0, - 0,-132,0,0,0,-273,0,0,0,0, + -383,0,0,0,0,-459,0,0,0,0, + 0,0,-398,0,0,0,0,0,0,0, + 0,-112,-247,0,-512,0,0,0,0,0, + 0,0,0,0,0,-391,0,0,0,0, + 0,0,0,0,0,-131,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-279,0,0,0,0,0,-124, - 0,0,0,-280,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-458,0,0, + 0,0,0,0,-472,0,0,0,0,-21, + -106,0,0,0,-93,0,0,0,0,0, + -434,0,0,-474,0,0,-475,0,0,-30, + -117,-517,-518,0,0,0,0,0,-416,0, 0,0,0,0,0,0,0,0,0,0, - 0,-282,0,0,0,0,-125,0,0,0, + 0,-476,-411,0,-85,0,0,-77,0,0, + 0,0,0,-477,0,0,0,0,0,0, + 0,0,0,0,0,0,-387,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,-126,0,0,0,-291,0,0, + 0,0,-167,0,0,0,0,0,0,0, + 0,0,0,0,0,-478,0,0,-242,0, + -372,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-502,0,0,-255,0, + 0,-482,-14,0,0,0,0,0,0,-486, + 0,0,0,0,0,0,0,-107,0,-491, + 0,0,0,0,0,0,0,0,0,-493, + -193,0,0,0,0,-501,-244,0,-297,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-297,0,0,0,0, - -127,0,0,0,-298,0,0,0,0,0, + -34,0,0,0,0,0,0,0,0,0, + -183,0,-99,-499,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-302,0,0,0,0,-428,-92,-183, - -342,0,-303,0,-333,0,0,0,-368,-318, - 0,0,0,0,0,-378,0,0,0,0, - -281,0,0,0,0,0,-14,0,-34,-154, - 0,0,0,-444,0,0,0,0,0,0, - -403,0,0,0,0,0,0,0,0,0, - 0,-319,0,0,-13,0,0,-299,0,0, - -327,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-231,0,0,0, - 0,0,0,0,0,0,0,-331,0,0, - -227,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-23,0,0, - 0,-37,0,0,-332,0,-128,0,0,0, + 0,0,0,-508,0,0,-403,0,-382,-509, + -288,0,0,0,0,0,0,0,0,0, + 0,0,0,-516,0,0,0,0,0,-521, + 0,0,0,0,-171,-228,-492,0,0,0, + 0,0,0,0,-427,0,0,0,0,0, + 0,0,0,0,0,0,0,-510,0,0, + -425,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-37,0,0, + 0,0,-12,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-343,0, - 0,0,0,0,0,-119,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-514,0,0,-409,0,0,0,0,-96, + -221,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-50,0,0,0,-345,0,0,0,0, + 0,0,-234,0,0,0,0,0,-360,0, + 0,0,0,-407,0,0,0,0,0,0, + 0,0,0,0,0,-526,-326,0,-157,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-232,0,0,0, - 0,0,-51,0,0,0,0,0,0,0, + 0,0,0,0,0,-108,0,0,0,0, + -495,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-100,0,0,0, + 0,0,0,0,0,0,0,0,0,-529, + -159,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,-239, - 0,0,0,0,-1,0,0,0,0,-361, - 0,0,0,0,0,-380,-270,0,-369,0, - 0,0,0,0,0,-129,0,0,0,-367, + 0,0,0,-422,0,0,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,-422,-404,-372,-391,0,0,0,-322, - -192,0,0,0,0,0,0,0,-106,0, - -396,0,0,-397,0,-155,-157,0,0,0, - 0,0,0,-471,-405,0,0,0,-377,0, - -400,0,0,0,0,0,0,0,0,0, - 0,-401,-96,0,0,0,0,-304,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-290,0,0,0,-407,0,0, - 0,0,0,0,0,0,0,-473,0,0, - 0,0,0,0,-285,-409,0,0,0,0, - 0,0,0,0,0,0,0,0,-497,0, - 0,0,0,0,0,0,0,0,0,-76, - 0,-418,0,-488,0,0,0,0,0,0, + 0,0,0,-230,0,0,0,0,0,0, + 0,0,0,0,-442,0,0,0,0,0, + 0,0,0,-121,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-97,0,0,0,0,-429,0,0, - -288,0,0,0,0,0,0,0,0,0, - 0,0,0,-350,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-503,0,0, - 0,0,0,-425,0,-426,0,0,-310,0, - 0,0,0,0,0,0,0,0,-241,0, - 0,0,0,0,-179,0,-351,0,0,-398, - 0,0,-78,-505,0,0,0,0,-440,0, - 0,-311,0,0,0,0,0,0,0,0, - 0,0,-9,0,-159,0,0,-433,0,0, - 0,0,-80,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-312,0,0,0, - 0,0,0,0,0,0,0,-509,-445,0, - 0,0,0,0,-385,-162,0,0,0,0, - 0,0,0,0,0,0,0,-447,0,0, - 0,0,0,0,-417,-313,0,0,0,0, - 0,-266,0,-521,-449,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-450,-98,0,-399,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-420,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-524,-168,0, - -451,0,0,-452,0,-323,0,0,-454,-362, - 0,0,0,0,0,0,0,0,-467,0, - 0,0,0,-469,-456,0,-115,0,0,0, - 0,-269,0,0,0,0,0,0,0,0, - -499,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-223,0,-470,0,0, - -472,0,0,0,0,0,0,0,0,0, - 0,-120,0,0,0,-477,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-481,0,0,-283,0,0,0, - 0,-486,0,0,0,0,0,-320,0,0, - 0,0,-494,0,0,0,0,0,-48,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,-437,0,-116,0, - 0,-99,0,0,0,0,-193,0,0,-224, - 0,0,-314,0,0,0,0,-504,0,0, - 0,0,-353,0,-511,-315,-406,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-267,-228,0,0,-516,0,0, - 0,0,0,-82,0,0,0,0,-395,0, - 0,0,0,0,0,0,0,0,0,-121, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-448,-382,0,0,0,0,0, - 0,0,0,0,0,-46,-95,-147,0,0, - 0,0,0,0,-244,0,0,0,0,0, - 0,0,-249,0,0,-295,0,0,0,0, - -300,0,0,0,0,0,0,0,-316,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,-122,0,0,0,0,0, + 0,0,0,0,0,-267,0,0,-122,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-301,0, 0,0,0,0,0,0,0,0,0,0, - -352,0,0,0,0,-123,0,0,0,0, + 0,0,0,-286,0,0,0,0,0,0, + 0,0,0,0,-325,0,0,0,0,-174, + 0,0,0,0,0,-49,0,0,0,-404, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-160,0,0, + 0,0,-470,0,0,0,0,0,-101,-164, + 0,0,0,0,0,0,-271,0,0,-268, + -194,0,0,-175,0,0,0,0,0,-181, + 0,0,0,0,0,0,0,-170,0,0, + 0,0,0,0,0,0,0,0,0,-269, 0,0,0,0,0,0,0,0,0,0, - -6,0,0,0,-334,-487,-394,0,0,0, - 0,0,0,0,-376,0,0,0,0,0, - 0,-325,0,0,0,0,0,0,0,-517, - 0,-335,0,0,0,0,0,0,-274,0, - 0,0,-337,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,-264, + 0,0,0,0,0,-400,0,0,0,0, + 0,0,0,0,0,0,-123,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-458,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -435,-339,-347,0,0,0,0,0,-165,0, - 0,0,-287,0,0,0,0,0,0,0, - 0,-360,0,0,0,0,0,0,-182,0, - 0,0,0,0,-514,0,0,0,0,0, + -196,-32,0,0,0,0,0,0,0,0, + 0,0,-47,-97,-118,0,0,0,0,0, + 0,0,0,0,0,-396,0,0,0,0, + 0,0,0,0,0,0,-224,-225,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,-52,0,0,0,-354,0, + 0,-200,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,0,0, + 0,0,0,0,0,-304,0,0,0,0, + 0,0,0,0,0,0,-229,0,-243,0, + 0,0,0,-125,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,-292,0,0, - 0,0,-293,0,0,0,0,0,0,0, - -324,0,0,0,-414,0,0,0,0,-416, - 0,0,0,0,-392,0,0,0,0,0, - -53,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-149,-113,-339, + 0,0,0,0,-254,0,0,0,-252,0, + 0,-381,0,0,0,0,0,0,0,-245, + 0,0,0,0,0,0,-250,0,0,0, + 0,-298,0,0,-363,0,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,-284,0,0,0,0,0, + 0,0,0,0,0,-165,0,0,0,-152, + 0,0,0,-291,0,0,0,0,0,0, + 0,-278,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-440,0,0, + -303,0,0,0,0,0,0,-469,0,-319, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-55,0,0,0,0,0, + 0,-321,0,0,0,0,0,0,0,-390, + -378,0,0,0,-417,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,-519,0,0,0,0,0,0, + 0,0,0,0,-330,-249,0,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,-51,0,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,0,0,0,0,0,0,-340,-342,0, + 0,0,0,0,0,-344,-352,0,0,0, + 0,0,0,0,0,0,0,0,-435,0, + 0,0,0,0,0,0,0,0,0,-52, 0,0,0,0,0,0,0,0,0,0, - -117,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-118,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,0,0, - 0,0,0,0,-181,0,0,0,-464,0, + 0,0,0,-54,0,0,0,0,0,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,-55,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-359,0, - 0,0,0,0,0,0,0,0,0,-386, - 0,0,0,0,0,-275,-410,-419,-336,0, - -466,-461,0,0,-253,0,0,0,-370,-243, - 0,-484,0,0,0,-411,0,0,0,0, - 0,-465,0,0,-479,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,-84,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,-87,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,0,0,0,0, - -375,0,0,0,0,-480,-485,0,0,0, - -415,0,0,0,0,0,-329,0,0,0, - -423,0,0,-489,0,0,0,0,0,-424, - 0,-427,0,0,0,0,-506,0,0,0, - 0,-432,0,0,0,0,0,0,0,0, - 0,0,0,0,-518,0,0,0,0,0, - 0,0,0,0,-169,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,-120,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-182,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-507,0,0,0, - 0,0,0,0,0,0,0,-85,0,0, - 0,0,0,0,0,-436,0,0,0,0, - 0,0,0,0,0,0,-476,-248,0,-321, - 0,0,-233,-222,0,-482,-276,0,0,0, - 0,-483,-491,0,0,0,-495,0,0,0, - 0,0,0,0,0,0,0,0,0,-158, - 0,0,0,-348,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-248, + 0,0,0,-410,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-500,-412,0,0,0,0,0, - 0,-501,0,0,0,0,0,0,0,-493, + 0,-364,0,0,0,-315,0,0,0,0, + 0,0,-408,0,0,-279,-316,-317,-462,0, + -446,-341,-479,0,0,0,0,0,-327,0, + -365,-375,0,-318,0,0,-394,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,-523,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-265,0,0,0,0,0,0,-33,0, - 0,0,-12,0,0,0,0,0,0,0, - 0,0,0,0,0,-430,0,0,0,0, - -32,0,0,0,0,0,0,0,0,0, - 0,0,-502,-519,-522,0,0,0,0,0, - -268,0,0,0,0,0,-163,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-191,0,0,0,-198, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-463,0,0,0,0,0,0, + 0,0,0,-380,0,0,0,0,0,-471, + -484,0,0,-420,0,-445,0,0,0,0, + 0,0,0,-428,0,0,-421,0,-280,0, + 0,0,0,0,0,0,-328,0,0,-429, + -432,-353,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-355,0,0,0, - 0,0,0,-341,0,0,0,0,0,0, - 0,0,0,0,-490,0,0,0,0,0, - 0,0,0,0,0,-371,0,0,0,0, - 0,0,0,0,0,0,0,0,-390,0, - 0,-358,0,0,0,0,0,-190,0,0, - 0,0,-197,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-277,0,0,-111, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-358,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-1, + 0,0,0,0,-359,0,0,0,0,0, + -86,0,0,0,0,0,-485,0,-441,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-78,0,0,0,-223,0,-320, + -437,0,0,0,0,-397,0,0,-522,-415, + -424,-487,0,0,0,0,0,0,0,0, + 0,0,-82,0,0,0,0,0,-466,0, 0,0,0,0,0,0,0,0,0,0, - 0,-306,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-338,0,0,0, - -349,0,0,0,0,-387,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-388, + 0,0,0,0,0,0,-266,0,-490,0, 0,0,0,0,0,0,0,0,0,0, - -278,0,0,0,0,0,0,0,-462,0, + 0,-511,-488,0,0,0,0,0,0,0, + 0,0,-395,0,0,0,0,0,0,0, + 0,0,0,0,-489,0,0,0,0,0, + 0,0,0,0,0,0,-494,0,0,0, + 0,-265,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-467,0,-309,0,0, + 0,-496,0,0,0,0,0,0,0,0, + -498,0,0,0,0,-346,0,0,0,0, + 0,0,0,0,0,0,-481,0,-281,0, + 0,-500,0,0,0,0,0,0,0,0, + 0,-523,0,-505,-343,0,0,0,0,0, + 0,-354,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,-507,0, + -524,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-527,0,0,0,-392, + 0,0,0,-393,0,0,0,0,-413,0, + 0,0,0,0,0,-426,0,0,0,0, + -443,0,0,0,-368,-497,0,0,0,0, + -33,0,0,0,0,0,0,0,-528,0, 0,0,0,0,0,0,0,0,0,0, - 0,-408,0,0,0,0,0,0,0,0, - 0,-492,0,0,0,0,0,0,0,0, - -421,0,0,0,-438,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, - 0,-100,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,0,-77,0,0,0,0,0,0,-245, - 0,0,0,-363,0,0,0,0,-252,0, - 0,0,-257,0,0,0,-463,-474,-441,0, - 0,0,0,0,-475,0,0,0,0,0, - 0,0,0,0,0,0,0,-478,0,0, + 0,0,0,0,0,0,0,0,0,-48, + 0,0,0,0,0,0,-102,0,0,0, + 0,-166,0,0,0,-246,0,0,0,0, + -504,0,0,0,0,-253,0,0,0,-258, + 0,0,0,-468,0,0,0,0,0,0, + 0,-480,0,0,0,0,-436,0,0,0, + 0,0,0,-483,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-9, + 0,0,0,0,0,0,0,0,-447,0, + 0,0,0,0,0,0,-503,0,0,-333, + 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,-442,-498,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-431,0,0,-328,0,0,0,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,0, 0,0,0,0,0,0,0,0,0,0, @@ -523,7 +526,9 @@ 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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -533,533 +538,539 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface BaseAction { public final static char baseAction[] = { - 168,4,54,82,82,32,32,65,65,38, - 38,42,42,191,191,192,192,193,193,1, + 170,4,54,82,82,32,32,65,65,38, + 38,40,40,193,193,194,194,195,195,1, 1,15,15,15,15,15,15,15,15,16, 16,16,14,11,11,8,8,8,8,8, 8,2,66,66,5,5,12,12,12,12, - 45,45,132,132,133,63,63,43,17,17, + 45,45,133,133,134,63,63,43,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,134,134, - 134,114,114,18,18,18,18,18,18,18, - 18,18,18,18,18,18,19,19,169,169, - 170,170,171,137,137,138,138,135,135,139, - 136,136,20,20,21,21,23,23,23,24, + 17,17,17,17,17,17,17,17,135,135, + 135,114,114,18,18,18,18,18,18,18, + 18,18,18,18,18,18,19,19,171,171, + 172,172,173,138,138,139,139,136,136,140, + 137,137,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,34,34,35,35,36,36,41, - 41,40,40,40,40,40,40,40,40,40, - 40,40,40,40,39,30,140,140,96,96, - 172,172,91,194,194,67,67,67,67,67, + 31,33,33,34,34,35,35,36,36,42, + 42,41,41,41,41,41,41,41,41,41, + 41,41,41,41,39,30,141,141,96,96, + 174,174,91,196,196,67,67,67,67,67, 67,67,67,67,68,68,68,64,64,56, - 56,173,173,69,69,69,102,102,174,174, - 70,70,70,175,175,71,71,71,71,71, + 56,175,175,69,69,69,102,102,176,176, + 70,70,70,177,177,71,71,71,71,71, 72,72,83,83,83,83,83,83,83,49, - 49,49,49,49,115,115,116,116,50,176, + 49,49,49,49,115,115,116,116,50,178, 22,22,22,22,22,48,48,86,86,86, - 86,86,147,147,142,142,142,142,142,143, - 143,143,144,144,144,145,145,145,146,146, - 146,87,87,87,87,87,88,88,88,13, + 86,86,148,148,143,143,143,143,143,144, + 144,144,145,145,145,146,146,146,147,147, + 147,87,87,87,87,87,88,88,88,13, 13,13,13,13,13,13,13,13,13,13, 99,120,120,120,120,120,120,118,118,118, - 119,119,149,149,148,148,122,122,103,78, - 78,79,80,52,47,150,150,53,51,85, - 85,151,151,141,141,105,105,74,74,152, - 152,61,61,57,57,153,62,62,75,75, + 119,119,150,150,149,149,122,122,103,78, + 78,79,80,52,47,151,151,53,51,85, + 85,152,152,142,142,105,105,74,74,153, + 153,61,61,57,57,154,62,62,75,75, 59,59,59,89,89,98,97,97,60,60, 58,58,55,55,44,100,100,100,92,92, 92,93,93,94,94,94,95,95,106,106, - 106,108,108,107,107,195,195,90,90,178, - 178,178,178,178,124,46,46,155,177,177, - 125,125,125,125,179,179,37,37,117,126, - 126,126,126,109,109,121,121,121,157,158, - 158,158,158,158,158,158,158,158,158,158, - 182,182,180,180,181,181,159,159,159,159, - 160,183,111,110,110,184,184,161,161,161, - 161,101,101,101,185,185,9,9,10,186, - 186,187,162,154,154,163,163,164,165,165, - 6,6,7,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,76,81,81,167,167, - 128,128,129,129,129,129,129,129,3,130, - 130,127,127,112,112,84,77,73,156,156, - 113,113,188,188,188,131,131,123,123,189, - 189,168,168,104,1132,41,1852,1845,1214,4448, - 36,556,33,37,589,32,34,1819,31,29, - 58,1108,114,84,85,116,1371,1116,1226,1204, - 1307,1288,1390,1333,2295,1517,2151,1427,1558,1559, - 151,280,1114,3995,166,152,2182,41,626,38, - 1258,4669,36,556,33,37,589,67,34,1848, - 2401,41,626,38,239,4605,36,556,33,37, - 589,32,34,1039,31,29,58,1108,114,84, - 85,116,493,1116,1226,1204,1307,1288,1390,2107, - 242,237,238,592,41,449,1976,2769,4572,2401, - 41,626,38,281,4605,36,556,33,37,589, - 32,34,1039,31,29,58,1108,114,84,85, - 93,249,252,255,258,3281,1190,41,626,38, - 1082,4453,36,556,33,37,589,65,34,2202, - 2774,41,284,2900,1601,66,4653,2993,3023,3344, - 4013,4178,1543,41,626,38,2608,4605,36,556, - 33,37,589,32,34,1039,31,29,58,1108, - 114,84,85,116,344,1116,1226,1204,1307,1288, - 1390,1333,1871,1517,2558,1427,1558,1559,151,2533, - 41,287,513,152,1340,2565,2799,1263,41,1627, - 49,31,452,48,556,682,3731,514,1543,41, - 626,38,2608,4605,36,556,33,37,589,32, - 34,1039,31,29,58,1108,114,84,85,116, - 344,1116,1226,1204,1307,1288,1390,1333,1258,1517, - 507,1427,1558,1559,151,1442,1134,382,513,152, - 4357,2746,2799,2019,1258,3172,442,2858,2876,443, - 69,1352,1449,514,509,1319,2712,41,626,38, - 324,4669,36,556,33,37,589,32,34,1644, - 507,1692,1677,2023,41,298,379,3056,1543,41, - 626,38,2608,4605,36,556,33,37,589,32, - 34,1039,31,29,58,1108,114,84,85,116, - 344,1116,1226,1204,1307,1288,1390,1333,2179,1517, - 509,1427,1558,1559,151,3416,439,869,513,152, - 987,2102,2799,2561,1110,1685,1114,2303,1677,1114, - 41,783,387,514,1882,41,626,38,2608,4605, - 36,556,33,37,589,32,34,1039,31,29, - 58,1108,114,84,85,116,344,1116,1226,1204, - 1307,1288,1390,1333,2035,1517,57,1427,1558,1559, - 151,2862,54,31,513,152,1383,738,2799,1114, - 935,904,40,50,1643,1114,41,3300,3196,514, - 509,2009,41,626,38,1366,4453,36,556,33, - 37,589,64,34,71,1761,494,316,1677,1609, - 41,626,38,2171,4605,36,556,33,37,589, - 32,34,1039,31,29,58,1108,114,84,85, - 116,357,1116,1226,1204,1307,1288,1390,1333,527, - 1517,2340,1427,1558,1559,151,510,2409,293,380, - 152,2612,1681,41,626,38,2603,4605,36,556, - 33,37,589,32,34,1039,31,29,58,1108, - 114,84,85,116,383,1116,1226,1204,1307,1288, - 1390,1333,2663,1517,518,1427,1558,1559,151,1114, - 41,289,380,152,2612,1753,41,626,38,332, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,116,381,1116,1226, - 1204,1307,1288,1390,1333,68,1517,1887,1427,1558, - 1559,151,2646,2303,384,380,152,2612,2105,41, - 626,38,1993,4605,36,556,33,37,589,32, - 34,1039,31,29,58,1108,114,84,85,116, - 857,1116,1226,1204,1307,1288,1390,1333,2529,1517, - 418,1427,1558,1559,151,4622,2119,385,166,152, - 592,41,286,96,2806,4643,110,1243,712,2179, - 2105,41,626,38,1993,4605,36,556,33,37, - 589,32,34,1039,31,29,58,1108,114,84, - 85,116,2810,1116,1226,1204,1307,1288,1390,1333, - 378,1517,1110,1427,1558,1559,151,2023,2804,298, - 374,152,2105,41,626,38,3335,4605,36,556, - 33,37,589,32,34,1039,31,29,58,1108, - 114,84,85,116,292,1116,1226,1204,1307,1288, - 1390,1333,327,1517,1227,1427,1558,1559,151,3416, - 389,423,374,152,592,41,286,388,1601,4660, - 1945,2366,2105,41,626,38,414,4605,36,556, - 33,37,589,32,34,1039,31,29,58,1108, - 114,84,85,116,328,1116,1226,1204,1307,1288, - 1390,1333,356,1517,373,1427,1558,1559,151,2173, - 527,2517,374,152,680,2854,1946,41,626,38, - 1383,4605,36,556,33,37,589,32,34,1039, - 31,29,58,1108,114,84,85,116,2524,1116, - 1226,1204,1307,1288,1390,1333,372,1517,1488,1427, - 1558,1567,172,1818,41,626,38,1320,4605,36, - 556,33,37,589,32,34,1039,31,29,58, - 1108,114,84,85,116,869,1116,1226,1204,1307, - 1288,1390,1333,153,1517,1110,1427,1558,1559,151, - 1114,41,2394,150,152,2199,370,2769,329,1078, - 2897,41,393,2105,41,626,38,1162,4605,36, - 556,33,37,589,32,34,1039,31,29,58, - 1108,114,84,85,116,168,1116,1226,1204,1307, - 1288,1390,1333,1993,1517,1110,1427,1558,1559,151, - 60,52,1643,163,152,2105,41,626,38,434, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,116,456,1116,1226, - 1204,1307,1288,1390,1333,3552,1517,1397,1427,1558, - 1559,151,101,2791,1110,162,152,2105,41,626, - 38,1889,4605,36,556,33,37,589,32,34, - 1039,31,29,58,1108,114,84,85,116,2964, - 1116,1226,1204,1307,1288,1390,1333,455,1517,1993, - 1427,1558,1559,151,1114,3234,1351,161,152,2105, - 41,626,38,2987,4605,36,556,33,37,589, - 32,34,1039,31,29,58,1108,114,84,85, - 116,2815,1116,1226,1204,1307,1288,1390,1333,443, - 1517,3317,1427,1558,1559,151,3927,756,1809,160, - 152,2105,41,626,38,4206,4605,36,556,33, - 37,589,32,34,1039,31,29,58,1108,114, - 84,85,116,2457,1116,1226,1204,1307,1288,1390, - 1333,326,1517,1993,1427,1558,1559,151,408,1278, - 1675,159,152,2105,41,626,38,1143,4605,36, - 556,33,37,589,32,34,1039,31,29,58, - 1108,114,84,85,116,1319,1116,1226,1204,1307, - 1288,1390,1333,354,1517,3317,1427,1558,1559,151, - 234,1119,1110,158,152,2105,41,626,38,521, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,116,2756,1116,1226, - 1204,1307,1288,1390,1333,355,1517,1993,1427,1558, - 1559,151,1421,419,1075,157,152,2105,41,626, - 38,2189,4605,36,556,33,37,589,32,34, - 1039,31,29,58,1108,114,84,85,116,2750, - 1116,1226,1204,1307,1288,1390,1333,1213,1517,3317, - 1427,1558,1559,151,59,1743,1110,156,152,2105, - 41,626,38,520,4605,36,556,33,37,589, - 32,34,1039,31,29,58,1108,114,84,85, - 116,2548,1116,1226,1204,1307,1288,1390,1333,2048, - 1517,1258,1427,1558,1559,151,417,1620,1110,155, - 152,2105,41,626,38,2189,4605,36,556,33, - 37,589,32,34,1039,31,29,58,1108,114, - 84,85,116,3905,1116,1226,1204,1307,1288,1390, - 1333,1764,1517,1258,1427,1558,1559,151,105,2623, - 1767,154,152,2105,41,626,38,2189,4605,36, - 556,33,37,589,32,34,1039,31,29,58, - 1108,114,84,85,116,30,1116,1226,1204,1307, - 1288,1390,1333,1793,1517,1258,1427,1558,1559,151, - 106,2321,2350,153,152,2105,41,626,38,1365, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,116,77,1116,1226, - 1204,1307,1288,1390,1333,2651,1517,1258,1427,1558, - 1559,151,2590,675,762,167,152,2105,41,626, - 38,2364,4605,36,556,33,37,589,32,34, - 1039,31,29,58,1108,114,84,85,116,76, - 1116,1226,1204,1307,1288,1390,1333,2863,1517,1258, - 1427,1558,1559,151,490,2739,2744,148,152,2310, - 41,626,38,1583,4605,36,556,33,37,589, - 32,34,1039,31,29,58,1108,114,84,85, - 116,61,1116,1226,1204,1307,1288,1390,1333,2158, - 1517,1258,1427,1558,1559,151,490,1186,2689,197, - 152,2401,41,626,38,2810,4605,36,556,33, - 37,589,32,34,1039,31,29,58,1108,114, - 84,85,116,95,1116,1226,1204,1307,1288,1390, - 1333,2718,1517,1346,1427,1558,1567,172,2401,41, - 626,38,3008,4605,36,556,33,37,589,32, - 34,1039,31,29,58,1108,114,84,85,116, - 519,1116,1226,1204,1307,1288,1390,1333,78,1517, - 290,1427,1558,1567,172,2182,41,626,38,2799, - 4669,36,556,33,37,589,66,34,2401,41, - 626,38,297,4605,36,556,33,37,589,32, - 34,1039,31,29,58,1108,114,84,85,116, - 79,1116,1226,1204,1307,1288,1390,1333,147,1517, - 2678,1427,1558,1567,172,2401,41,626,38,419, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,116,2558,1116,1226, - 1204,1307,1288,1390,1333,519,1517,2715,1427,1558, - 1567,172,2566,41,626,38,1162,588,36,556, - 341,37,589,1258,2076,2401,41,626,38,1728, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,116,248,1116,1226, - 1204,1307,1288,1390,1333,60,1517,669,1427,1558, - 1567,172,2446,41,626,38,418,4605,36,556, - 33,37,589,32,34,1039,31,29,58,1108, - 114,84,85,116,1598,1116,1226,1204,1307,1288, - 1390,1333,2862,1517,1890,1427,1558,1567,172,2566, - 41,626,38,1957,2113,36,556,46,37,589, - 1258,944,2401,41,626,38,421,4605,36,556, - 33,37,589,32,34,1039,31,29,58,1108, - 114,84,85,116,2848,1116,1226,1204,1307,1288, - 1390,1333,351,1517,31,1427,2147,1258,818,2401, - 41,626,38,3201,4605,36,556,33,37,589, - 32,34,1039,31,29,58,1108,114,84,85, - 116,1319,1116,1226,1204,1307,1288,1390,1333,98, - 1517,2816,2114,2401,41,626,38,1623,4605,36, - 556,33,37,589,32,34,1039,31,29,58, - 1108,114,84,85,116,518,1116,1226,1204,1307, - 1288,1390,1333,1588,2106,2401,41,626,38,401, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,116,2505,1116,1226, - 1204,1307,1288,2058,2401,41,626,38,1982,4605, - 36,556,33,37,589,32,34,1039,31,29, - 58,1108,114,84,85,116,2810,1116,1226,1204, - 1307,2060,2401,41,626,38,2476,4605,36,556, - 33,37,589,32,34,1039,31,29,58,1108, - 114,84,85,116,2150,1116,1226,1204,1307,2097, - 2401,41,626,38,2152,4605,36,556,33,37, - 589,32,34,1039,31,29,58,1108,114,84, - 85,116,1331,1116,1226,1204,1903,2401,41,626, - 38,291,4605,36,556,33,37,589,32,34, - 1039,31,29,58,1108,114,84,85,116,2494, - 1116,1226,1204,1929,2401,41,626,38,2225,4605, - 36,556,33,37,589,32,34,1039,31,29, - 58,1108,114,84,85,116,2431,1116,1226,1204, - 1938,2401,41,626,38,2865,4605,36,556,33, - 37,589,32,34,1039,31,29,58,1108,114, - 84,85,116,2276,1116,1226,1204,1971,262,1318, - 2746,1668,534,2503,3980,2566,41,626,38,2810, - 1826,36,556,2760,37,589,2566,41,626,38, - 236,1258,36,556,2784,37,589,31,164,31, - 2222,1078,352,2499,1,4309,188,3384,534,399, - 3317,2897,41,393,211,222,4426,210,219,220, - 221,223,2135,3429,177,327,236,784,418,4125, - 4309,2625,176,4517,164,191,175,178,179,180, - 181,182,188,3384,302,353,3317,2533,41,284, - 211,222,4426,210,219,220,221,223,2956,334, - 177,857,345,1560,1518,350,330,336,176,189, - 2200,192,175,178,179,180,181,182,2491,41, - 783,387,31,4035,333,2547,949,2401,41,626, - 38,244,4605,36,556,33,37,589,32,34, - 1039,31,29,58,1108,114,84,85,116,1423, - 1116,1226,1973,3559,4331,280,2401,41,626,38, - 2966,4605,36,556,33,37,589,32,34,1039, - 31,29,58,1108,114,84,85,116,239,1116, - 1853,2534,2401,935,626,1642,2841,4605,36,556, - 33,37,589,32,34,1039,31,29,58,1108, - 114,84,85,92,242,237,238,1114,41,904, - 283,390,423,2401,41,626,38,281,4605,36, - 556,33,37,589,32,34,1039,31,29,58, - 1108,114,84,85,91,249,252,255,258,3281, - 1114,41,904,2384,1082,1229,41,626,38,2555, - 2525,36,556,340,37,589,1993,2646,2303,2695, - 4653,2993,3023,3344,4013,4178,2401,41,626,38, - 2892,4605,36,556,33,37,589,32,34,1039, - 31,29,58,1108,114,84,85,116,349,1116, - 1226,2019,534,1428,2892,2616,2409,2608,3317,3521, - 1711,1551,1127,323,2608,2608,317,1476,403,1933, - 236,2879,377,3649,2755,3237,31,31,164,770, - 4204,1100,3237,344,436,1993,188,3384,534,1428, - 3317,1943,304,2608,211,222,4426,210,219,220, - 221,223,2959,31,177,1261,236,2608,1441,531, - 533,3237,176,4521,164,3216,175,178,179,180, - 181,182,188,3384,327,344,3317,3317,2679,4309, - 211,222,4426,210,219,220,221,223,523,292, - 177,377,534,501,353,2614,2779,2799,176,2608, - 362,186,175,178,179,180,181,182,1770,2179, - 236,345,1560,1518,350,2356,2366,3237,164,343, - 327,375,2925,538,610,4309,188,3384,534,501, - 3317,499,500,4077,211,222,4426,210,219,220, - 221,223,97,31,177,110,236,2608,1027,41, - 449,1258,176,4572,164,184,175,178,179,180, - 181,182,188,3384,418,344,3317,498,500,4526, - 211,222,4426,210,219,220,221,223,697,333, - 177,3413,534,3542,2930,361,2935,2799,176,1258, - 4092,185,175,178,179,180,181,182,1803,1863, - 236,3146,2412,2439,4309,1535,2821,418,164,2530, - 418,102,4540,1367,784,4591,188,3384,534,2005, - 3317,75,1258,2608,211,222,4426,210,219,220, - 221,223,325,1991,177,1995,236,2608,2976,2591, - 527,3237,176,2145,164,195,175,178,179,180, - 181,182,188,3384,74,344,3317,1258,334,1340, - 211,222,4426,210,219,220,221,223,871,2939, - 177,2730,534,239,353,2614,31,669,176,2608, - 1072,3338,175,178,179,180,181,182,2975,73, - 236,347,1560,1518,350,2892,1258,3237,164,251, - 237,238,857,239,958,88,188,3384,534,501, - 3317,446,2858,2876,211,222,4426,210,219,220, - 221,223,2977,31,177,2810,236,2608,72,254, - 237,238,176,228,164,200,175,178,179,180, - 181,182,188,3384,418,344,3317,498,500,4595, - 211,222,4426,210,219,220,221,223,1045,31, - 177,2984,534,4203,2988,361,1258,2799,176,2992, - 2565,194,175,178,179,180,181,182,1811,1986, - 236,3967,2412,2439,3006,2894,3159,2199,164,1078, - 301,1078,1114,41,904,288,188,3384,3642,452, - 3317,2897,41,393,211,222,4426,210,219,220, - 221,223,392,423,177,164,31,168,175,438, - 3082,2990,176,208,4066,202,175,178,179,180, - 181,182,2401,41,626,38,849,4605,36,556, - 33,37,589,32,34,1039,31,29,58,1108, - 114,84,85,116,2996,1116,1854,1590,41,626, - 38,4200,1870,36,556,340,37,589,1662,41, - 626,38,4442,3010,36,556,340,37,589,2356, - 41,626,38,2113,4605,36,556,33,37,589, - 32,34,1039,31,29,58,1108,94,84,85, - 352,1398,41,1719,3015,2786,4230,2892,2561,31, - 3315,3521,31,1078,1127,323,2608,31,317,1476, - 2758,1078,3521,2199,3334,1127,323,1078,3002,317, - 1476,2552,353,1258,344,3014,2199,2901,57,164, - 1078,2498,768,353,675,308,925,2237,1602,345, - 1560,1518,350,168,857,31,2799,2510,379,2747, - 345,1560,1518,350,2915,63,168,1812,2200,1798, - 41,626,38,2555,4309,36,556,340,37,589, - 2401,41,626,38,5265,4605,36,556,33,37, - 589,32,34,1039,31,29,58,1108,114,84, - 85,116,190,1861,2892,2165,41,2639,38,2555, - 2807,36,556,340,37,589,31,31,31,3313, - 534,534,1078,3521,239,31,1127,323,333,2875, - 317,1476,3679,31,5265,367,31,725,344,344, - 3525,2569,187,770,5265,627,164,164,164,31, - 257,237,238,4397,5265,1763,1847,2137,4404,3521, - 2799,2799,1127,323,391,423,317,1476,1114,41, - 298,1721,1805,311,533,2401,41,626,38,1543, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,116,5265,1895,1321, - 41,2639,38,2555,4309,36,556,340,37,589, - 3075,1114,41,783,387,5265,2401,41,626,38, - 2902,4605,36,556,33,37,589,32,34,1039, - 31,29,58,1108,114,84,85,116,5265,1896, - 5265,1114,41,783,387,2666,2998,2522,427,2608, - 2608,4071,5265,3521,5265,2789,1127,323,333,2608, - 317,1476,31,5265,415,2676,3150,236,344,5265, - 2973,3971,31,1543,1078,5265,3535,236,57,1114, - 41,904,285,31,675,5265,795,2819,4404,3740, - 4343,213,222,4426,212,219,220,221,223,2892, - 164,213,222,4426,212,219,220,221,223,170, - 1739,41,626,38,3479,5265,36,556,340,37, - 589,214,216,218,299,300,2277,2892,224,215, - 217,214,216,218,299,300,2277,206,224,215, - 217,2850,31,31,5265,2608,1347,3055,400,1114, - 41,783,387,2831,41,904,283,5265,414,2676, - 4061,2509,31,236,3521,205,4439,2493,323,327, - 4061,3105,5265,5265,4309,2027,41,626,38,4200, - 2501,36,556,340,37,589,280,213,222,4426, - 212,219,220,221,223,2401,41,626,38,1258, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,90,214,216,218, - 299,300,2277,31,224,215,217,848,333,3521, - 5265,62,1127,323,4262,5265,317,1476,1114,2588, - 904,82,4345,2831,41,904,2615,5265,282,522, - 353,1114,41,904,2740,31,4061,3909,2979,1129, - 31,5265,3421,319,3621,1258,5265,345,1560,1518, - 350,2401,41,626,38,523,4605,36,556,33, - 37,589,32,34,1039,31,29,58,1108,114, - 84,85,89,2401,41,626,38,109,4605,36, - 556,33,37,589,32,34,1039,31,29,58, - 1108,114,84,85,88,2401,41,626,38,5265, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,87,2401,41,626, - 38,5265,4605,36,556,33,37,589,32,34, - 1039,31,29,58,1108,114,84,85,86,2265, - 41,626,38,5265,4605,36,556,33,37,589, - 32,34,1039,31,29,58,1108,114,84,85, - 112,2401,41,626,38,5265,4605,36,556,33, - 37,589,32,34,1039,31,29,58,1108,114, - 84,85,118,2401,41,626,38,5265,4605,36, - 556,33,37,589,32,34,1039,31,29,58, - 1108,114,84,85,117,2401,41,626,38,2810, - 4605,36,556,33,37,589,32,34,1039,31, - 29,58,1108,114,84,85,115,2401,41,626, - 38,5265,4605,36,556,33,37,589,32,34, - 1039,31,29,58,1108,114,84,85,113,1498, - 41,626,38,5265,4309,36,556,340,37,589, - 1114,41,783,387,5265,5265,31,1258,1258,2866, - 1078,2892,1258,2608,309,940,41,783,387,2727, - 1275,5265,2161,2608,2608,4309,1114,41,783,387, - 5265,236,1114,41,298,2892,164,430,5265,4102, - 3287,236,3237,3521,447,2969,1127,323,334,307, - 318,1476,280,2971,525,213,222,4426,212,219, - 220,221,223,429,353,213,222,4426,212,219, - 220,221,223,209,5265,1285,41,783,387,333, - 5265,347,1560,1518,350,214,216,218,299,300, - 2277,5265,516,215,217,214,216,218,299,300, - 2277,2759,515,215,217,2608,2892,2892,5265,2979, - 361,2882,57,239,2448,2608,5265,2681,675,5265, - 1727,2943,4309,236,1258,2608,2521,2412,2439,80, - 31,5265,31,236,2999,4067,911,2892,3629,260, - 237,238,31,236,207,303,4559,213,222,4426, - 212,219,220,221,223,2892,2958,213,222,4426, - 212,219,220,221,223,1318,5265,213,222,4426, - 212,219,220,221,223,3550,4077,214,216,218, - 299,300,2277,5265,225,215,217,214,216,218, - 299,300,2277,229,310,215,217,214,216,218, - 299,300,2277,5265,495,215,217,1927,41,626, - 38,2555,5265,36,556,340,37,589,2560,41, - 783,387,5265,4035,5265,4125,1654,41,626,38, - 2555,245,36,556,340,37,589,2894,31,5265, - 327,534,2608,1318,1201,4309,31,31,2608,4673, - 2182,1078,31,1258,104,280,2889,1258,5265,4270, - 344,3521,335,336,1127,323,236,164,317,1476, - 2217,41,783,387,2707,188,3384,164,239,4502, - 3521,770,2799,1127,323,2994,3002,317,1476,3048, - 2271,404,3590,2931,1258,1114,41,783,387,333, - 770,203,1258,4125,243,237,238,57,5265,5265, - 31,311,533,675,4167,55,5265,281,5265,5265, - 405,406,407,299,300,2277,1553,2892,5265,3949, - 312,533,428,719,1637,250,253,256,259,3281, - 332,336,1289,5265,1082,2201,2608,4673,4115,1114, - 41,783,387,1654,41,626,38,2555,2902,36, - 556,340,37,589,236,201,1114,41,783,387, - 5265,1726,41,626,38,2838,4309,36,556,340, - 37,589,5265,2933,1258,1258,57,3655,2271,404, - 3590,2707,675,5265,1600,5265,4502,1285,41,783, - 387,408,410,448,5265,5265,5265,3521,5265,5265, - 1127,323,4582,204,317,1476,4287,3138,405,406, - 407,299,300,2277,1152,3521,4302,768,1127,323, - 334,5265,318,1476,57,426,5265,1318,5265,5265, - 675,5265,55,2201,1726,41,626,38,5265,4309, - 36,556,340,37,589,1654,41,626,38,2555, - 1029,36,556,340,37,589,2497,41,626,38, - 3349,5265,36,556,340,37,589,5265,5265,1318, - 5265,5265,1275,5265,5265,5265,2608,4309,1814,41, - 783,387,2838,2232,41,783,387,4125,3521,408, - 411,1127,323,334,3237,320,1476,31,5265,3521, - 31,1078,1127,323,534,5265,317,1476,5265,5265, - 3521,5265,5265,2493,323,57,5265,5265,5265,3308, - 57,675,344,1669,3703,336,675,164,1711,4125, - 164,333,2836,41,783,387,3037,5265,5265,1763, - 5265,3629,425,5265,2799,5265,3975,2232,41,783, - 387,2836,41,783,387,1931,2836,41,783,387, - 5265,3949,361,5265,5265,2503,3735,336,5265,57, - 2836,41,783,387,5265,675,5265,55,2521,2412, - 2439,31,5265,5265,57,1078,5265,5265,57,1318, - 675,5265,55,57,675,3491,55,5265,5265,675, - 5265,55,2836,41,783,387,5265,57,3421,319, - 2516,164,2923,675,3960,55,534,5265,5265,3986, - 3076,2911,41,783,387,2916,41,783,387,5265, - 5265,5265,5265,4255,344,1811,41,783,387,57, - 5265,5265,164,5265,5265,675,5265,55,5265,4125, - 5265,196,1114,41,783,387,4415,5265,57,5265, - 5265,5265,57,5265,675,4326,55,5265,675,5265, - 55,5265,57,1114,41,783,387,5265,675,5265, - 1585,5265,5265,2022,3448,5265,4212,336,3992,57, - 1114,41,783,387,2199,675,246,2985,1078,1114, - 41,783,387,1114,41,783,387,2919,31,31, - 57,2608,534,2608,198,31,675,5265,2577,534, - 5265,5265,5265,5265,168,5265,5265,57,31,344, - 344,344,534,675,5265,670,57,344,164,526, - 57,5265,675,239,1585,164,675,196,2261,5265, - 344,2799,4415,2799,196,5265,31,31,164,4415, - 2608,2608,529,5265,505,5265,5265,196,5265,247, - 237,238,4415,2199,5265,5265,31,1078,344,344, - 1078,5265,5265,31,5265,5265,4097,1078,5265,5265, - 3745,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 2799,2799,5265,168,5265,5265,164,5265,5265,5265, - 4084,503,530,164,5265,1686,5265,4213,5265,5265, - 5265,5265,4344,5265,5265,5265,5265,5265,5265,5265, - 4217,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,3972, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,3982,5265,0,5285, - 2,1,0,5284,2,1,0,450,731,0, - 436,913,0,2234,35,0,45,5285,0,45, - 5284,0,2234,386,0,1,440,0,454,1335, - 0,453,1385,0,41,39,0,45,5285,2, - 0,45,5284,2,0,44,5285,0,44,5284, - 0,2444,134,0,51,5307,0,51,43,0, - 1,1110,0,1,5544,0,1,5543,0,1, - 5542,0,1,5541,0,1,5540,0,1,5539, - 0,1,5538,0,1,5537,0,1,5536,0, - 1,5535,0,1,5534,0,45,5285,1,0, - 45,5284,1,0,727,1,0,5506,248,0, - 5505,248,0,5604,248,0,5603,248,0,5533, - 248,0,5532,248,0,5531,248,0,5530,248, - 0,5529,248,0,5528,248,0,5527,248,0, - 5526,248,0,5544,248,0,5543,248,0,5542, - 248,0,5541,248,0,5540,248,0,5539,248, - 0,5538,248,0,5537,248,0,5536,248,0, - 5535,248,0,5534,248,0,45,248,5285,0, - 45,248,5284,0,5309,248,0,56,5285,0, - 56,5284,0,2234,47,0,3297,99,0,38, - 40,0,45,919,0,5596,441,0,2529,441, - 0,8,12,0,5271,1,0,5270,1,0, - 244,1345,0,387,38,0,38,387,0,386, - 35,0,35,386,0,5285,56,0,5284,56, - 0,2444,136,0,2444,135,0,5307,53,0, - 53,43,0,497,2224,0,5309,235,1,0, - 45,235,1,0,235,413,0,43,5285,0, - 43,5284,0,5309,1,0,45,1,0,55, - 43,0,1,100,0,43,55,0,5275,402, - 0,5274,402,0,4313,1,0,919,1,0, - 3013,1,0,235,412,0,43,5285,2,0, - 43,5284,2,0,5285,42,0,5284,42,0, - 1,5596,0,1,2529,0,45,5285,2,1, - 0,45,5284,2,1,0,5596,103,0,2529, - 103,0,41,81,0,497,3979,0,235,1, - 0,235,227,0,285,3303,0,235,226,0, - 1,1350,0,1,2541,0,5277,1,0,5273, - 1,0,235,1,3068,0,5274,235,0,3085, - 235,0,3198,235,0,10,12,0,8,10, - 12,0,193,3084,0 + 106,108,108,107,107,197,197,90,90,180, + 180,180,180,180,124,46,46,156,179,179, + 125,125,125,125,126,158,181,181,37,37, + 117,127,127,127,127,109,109,121,121,121, + 159,160,160,160,160,160,160,160,160,160, + 160,160,184,184,182,182,183,183,161,161, + 161,161,162,185,111,110,110,186,186,163, + 163,163,163,101,101,101,187,187,9,9, + 10,188,188,189,164,155,155,165,165,166, + 167,167,6,6,7,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,76,81,81, + 169,169,129,129,130,130,130,130,130,130, + 3,131,131,128,128,112,112,84,77,73, + 157,157,113,113,190,190,190,132,132,123, + 123,191,191,170,170,104,1132,41,1769,1767, + 1227,4186,36,558,33,37,568,32,34,1759, + 31,29,58,1109,114,84,85,116,1213,1156, + 1202,1179,1263,1210,1336,1297,1229,1458,1527,1423, + 1466,1501,151,280,1114,41,289,166,152,1190, + 41,628,38,1287,4686,36,558,33,37,568, + 67,34,2459,41,628,38,239,4660,36,558, + 33,37,568,32,34,1038,31,29,58,1109, + 114,84,85,116,1858,1156,1202,1179,1263,1210, + 1336,1906,242,237,238,592,41,451,1539,55, + 4589,2459,41,628,38,281,4660,36,558,33, + 37,568,32,34,1038,31,29,58,1109,114, + 84,85,93,249,252,255,258,4383,327,2063, + 41,628,38,1734,4190,36,558,33,37,568, + 65,34,1114,868,858,40,2291,1554,66,4354, + 867,2633,2690,2825,4331,1604,41,628,38,2597, + 4660,36,558,33,37,568,32,34,1038,31, + 29,58,1109,114,84,85,116,344,1156,1202, + 1179,1263,1210,1336,1297,2262,1458,1683,1423,1466, + 1501,151,2816,41,287,327,515,152,1433,3166, + 4611,1715,2863,41,284,2828,1114,41,771,389, + 516,1604,41,628,38,2597,4660,36,558,33, + 37,568,32,34,1038,31,29,58,1109,114, + 84,85,116,344,1156,1202,1179,1263,1210,1336, + 1297,2100,1458,57,1423,1466,1501,151,1481,678, + 383,1281,515,152,333,3166,873,382,1302,1110, + 444,2522,2533,316,69,490,516,511,1602,2078, + 41,628,38,326,4190,36,558,33,37,568, + 64,34,2151,1612,3472,2238,1630,1114,41,3508, + 3507,1604,41,628,38,2597,4660,36,558,33, + 37,568,32,34,1038,31,29,58,1109,114, + 84,85,116,344,1156,1202,1179,1263,1210,1336, + 1297,1504,1458,511,1423,1466,1501,151,2204,592, + 41,286,515,152,4672,3166,2255,1230,1366,1638, + 935,496,1630,1114,41,2017,516,1936,41,628, + 38,2597,4660,36,558,33,37,568,32,34, + 1038,31,29,58,1109,114,84,85,116,344, + 1156,1202,1179,1263,1210,1336,1297,2206,1458,78, + 1423,1466,1501,151,1114,41,771,389,515,152, + 441,3166,1264,41,1587,49,2859,239,48,558, + 1043,71,516,511,68,327,1363,41,628,38, + 4611,4686,36,558,33,37,568,32,34,1673, + 509,429,1630,251,237,238,168,1871,41,628, + 38,2258,4660,36,558,33,37,568,32,34, + 1038,31,29,58,1109,114,84,85,116,1286, + 1156,1202,1179,1263,1210,1336,1297,2260,1458,512, + 1423,1466,1501,151,1119,1114,1991,3058,380,152, + 1670,41,628,38,2272,4660,36,558,33,37, + 568,32,34,1038,31,29,58,1109,114,84, + 85,116,3400,1156,1202,1179,1263,1210,1336,1297, + 2591,1458,1982,1423,1466,1501,151,4611,332,101, + 3058,380,152,2159,41,628,38,1407,4660,36, + 558,33,37,568,32,34,1038,31,29,58, + 1109,114,84,85,116,1946,1156,1202,1179,1263, + 1210,1336,1297,102,1458,454,1423,1466,1501,151, + 436,418,386,1691,166,152,4667,1742,41,628, + 38,334,4660,36,558,33,37,568,32,34, + 1038,31,29,58,1109,114,84,85,116,2554, + 1156,1202,1179,1263,1210,1336,1297,293,1458,2277, + 1423,1466,1501,151,4611,387,1691,3058,380,152, + 1114,41,858,283,2159,41,628,38,1171,4660, + 36,558,33,37,568,32,34,1038,31,29, + 58,1109,114,84,85,116,1772,1156,1202,1179, + 1263,1210,1336,1297,1110,1458,2603,1423,1466,1501, + 151,1796,592,41,286,374,152,4676,1119,1320, + 2459,41,628,38,1554,4660,36,558,33,37, + 568,32,34,1038,31,29,58,1109,114,84, + 85,116,414,1156,1202,1179,1263,1210,1336,1297, + 1901,1905,378,1691,2159,41,628,38,2931,4660, + 36,558,33,37,568,32,34,1038,31,29, + 58,1109,114,84,85,116,629,1156,1202,1179, + 1263,1210,1336,1297,2629,1458,328,1423,1466,1501, + 151,1114,41,858,1999,374,152,104,373,2159, + 41,628,38,1212,4660,36,558,33,37,568, + 32,34,1038,31,29,58,1109,114,84,85, + 116,1452,1156,1202,1179,1263,1210,1336,1297,1186, + 1458,1110,1423,1466,1501,151,2763,153,873,1352, + 374,152,1114,41,858,288,2000,41,628,38, + 1251,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,114,84,85,116,495,1156, + 1202,1179,1263,1210,1336,1297,60,1458,372,1423, + 1466,1511,172,1807,41,628,38,2156,4660,36, + 558,33,37,568,32,34,1038,31,29,58, + 1109,114,84,85,116,3680,1156,1202,1179,1263, + 1210,1336,1297,458,1458,1926,1423,1466,1501,151, + 1114,41,298,370,150,152,1110,1710,329,1114, + 41,858,285,2159,41,628,38,1164,4660,36, + 558,33,37,568,32,34,1038,31,29,58, + 1109,114,84,85,116,2823,1156,1202,1179,1263, + 1210,1336,1297,1258,1458,403,1423,1466,1501,151, + 490,4372,50,1597,163,152,2159,41,628,38, + 1683,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,114,84,85,116,408,1156, + 1202,1179,1263,1210,1336,1297,582,1458,457,1423, + 1466,1501,151,2623,41,858,283,162,152,2159, + 41,628,38,4220,4660,36,558,33,37,568, + 32,34,1038,31,29,58,1109,114,84,85, + 116,1411,1156,1202,1179,1263,1210,1336,1297,2291, + 1458,1408,1423,1466,1501,151,1114,2247,858,82, + 161,152,2159,41,628,38,1245,4660,36,558, + 33,37,568,32,34,1038,31,29,58,1109, + 114,84,85,116,79,1156,1202,1179,1263,1210, + 1336,1297,234,1458,855,1423,1466,1501,151,2623, + 41,858,2255,160,152,2159,41,628,38,1245, + 4660,36,558,33,37,568,32,34,1038,31, + 29,58,1109,114,84,85,116,2645,1156,1202, + 1179,1263,1210,1336,1297,1482,1458,419,1423,1466, + 1501,151,1114,41,858,2325,159,152,2159,41, + 628,38,1618,4660,36,558,33,37,568,32, + 34,1038,31,29,58,1109,114,84,85,116, + 1542,1156,1202,1179,1263,1210,1336,1297,1782,1458, + 1507,1423,1466,1501,151,3496,1114,4221,2238,158, + 152,2159,41,628,38,1976,4660,36,558,33, + 37,568,32,34,1038,31,29,58,1109,114, + 84,85,116,1932,1156,1202,1179,1263,1210,1336, + 1297,2523,1458,418,1423,1466,1501,151,4525,2736, + 445,1926,157,152,2159,41,628,38,2040,4660, + 36,558,33,37,568,32,34,1038,31,29, + 58,1109,114,84,85,116,2055,1156,1202,1179, + 1263,1210,1336,1297,4084,1458,2263,1423,1466,1501, + 151,3100,2902,445,1926,156,152,2159,41,628, + 38,2707,4660,36,558,33,37,568,32,34, + 1038,31,29,58,1109,114,84,85,116,1659, + 1156,1202,1179,1263,1210,1336,1297,2709,1458,2647, + 1423,1466,1501,151,3149,1114,2910,1926,155,152, + 2159,41,628,38,675,4660,36,558,33,37, + 568,32,34,1038,31,29,58,1109,114,84, + 85,116,521,1156,1202,1179,1263,1210,1336,1297, + 762,1458,2518,1423,1466,1501,151,3577,2750,2752, + 1926,154,152,2159,41,628,38,1732,4660,36, + 558,33,37,568,32,34,1038,31,29,58, + 1109,114,84,85,116,521,1156,1202,1179,1263, + 1210,1336,1297,2084,1458,2119,1423,1466,1501,151, + 3828,2473,1554,2273,153,152,2159,41,628,38, + 147,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,114,84,85,116,1920,1156, + 1202,1179,1263,1210,1336,1297,2047,1458,2069,1423, + 1466,1501,151,4532,2499,1162,501,167,152,2159, + 41,628,38,1426,4660,36,558,33,37,568, + 32,34,1038,31,29,58,1109,114,84,85, + 116,248,1156,1202,1179,1263,1210,1336,1297,669, + 1458,2499,1423,1466,1501,151,55,2776,2919,2953, + 148,152,2365,41,628,38,2205,4660,36,558, + 33,37,568,32,34,1038,31,29,58,1109, + 114,84,85,116,2957,1156,1202,1179,1263,1210, + 1336,1297,944,1458,2751,1423,1466,1501,151,2262, + 2189,1119,1815,197,152,2459,41,628,38,2966, + 4660,36,558,33,37,568,32,34,1038,31, + 29,58,1109,114,84,85,116,2968,1156,1202, + 1179,1263,1210,1336,1297,1549,1458,357,1423,1466, + 1511,172,2459,41,628,38,529,4660,36,558, + 33,37,568,32,34,1038,31,29,58,1109, + 114,84,85,116,390,1156,1202,1179,1263,1210, + 1336,1297,1989,1458,356,1423,1466,1511,172,1190, + 41,628,38,529,4686,36,558,33,37,568, + 66,34,2459,41,628,38,297,4660,36,558, + 33,37,568,32,34,1038,31,29,58,1109, + 114,84,85,116,381,1156,1202,1179,1263,1210, + 1336,1297,1788,1458,2797,1423,1466,1511,172,2459, + 41,628,38,421,4660,36,558,33,37,568, + 32,34,1038,31,29,58,1109,114,84,85, + 116,419,1156,1202,1179,1263,1210,1336,1297,2934, + 1458,2973,1423,1466,1511,172,2577,41,628,38, + 2972,1601,36,558,341,37,568,2763,2210,2459, + 41,628,38,2713,4660,36,558,33,37,568, + 32,34,1038,31,29,58,1109,114,84,85, + 116,2575,1156,1202,1179,1263,1210,1336,1297,324, + 1458,1373,1423,1466,1511,172,2504,41,628,38, + 420,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,114,84,85,116,1668,1156, + 1202,1179,1263,1210,1336,1297,354,1458,2301,1423, + 1466,1511,172,2577,41,628,38,2974,1260,36, + 558,46,37,568,2763,2955,2459,41,628,38, + 423,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,114,84,85,116,1110,1156, + 1202,1179,1263,1210,1336,1297,379,1458,96,1423, + 1939,110,1351,2459,41,628,38,2834,4660,36, + 558,33,37,568,32,34,1038,31,29,58, + 1109,114,84,85,116,2214,1156,1202,1179,1263, + 1210,1336,1297,355,1458,2996,1913,2459,41,628, + 38,1371,4660,36,558,33,37,568,32,34, + 1038,31,29,58,1109,114,84,85,116,3000, + 1156,1202,1179,1263,1210,1870,2459,41,628,38, + 4080,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,114,84,85,116,2262,1156, + 1202,1179,1263,1888,2459,41,628,38,1110,4660, + 36,558,33,37,568,32,34,1038,31,29, + 58,1109,114,84,85,116,1110,1156,1202,1179, + 1263,1896,2459,41,628,38,2444,4660,36,558, + 33,37,568,32,34,1038,31,29,58,1109, + 114,84,85,116,2489,1156,1202,1179,1827,2459, + 41,628,38,290,4660,36,558,33,37,568, + 32,34,1038,31,29,58,1109,114,84,85, + 116,1075,1156,1202,1179,1853,2459,41,628,38, + 59,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,114,84,85,116,105,1156, + 1202,1179,1855,2459,41,628,38,2262,4660,36, + 558,33,37,568,32,34,1038,31,29,58, + 1109,114,84,85,116,2982,1156,1202,1179,1861, + 262,857,2941,1926,536,2229,41,298,1543,41, + 628,38,3436,3002,36,558,340,37,568,31, + 2103,2980,236,2597,4224,2577,41,628,38,2534, + 164,36,558,2881,37,568,2593,2740,188,3817, + 2823,344,291,2823,2262,3642,211,222,2528,210, + 219,220,221,223,1,3006,177,2853,536,377, + 4237,1043,736,3166,176,2160,323,191,175,178, + 179,180,181,182,1698,401,236,2549,41,771, + 389,418,2649,418,164,2552,4580,164,4584,2937, + 244,2672,188,3817,2823,208,4337,1684,2995,88, + 211,222,2528,210,219,220,221,223,1820,302, + 177,391,425,2046,280,2765,1777,352,176,189, + 3676,192,175,178,179,180,181,182,3013,1596, + 41,771,389,2459,41,628,38,239,4660,36, + 558,33,37,568,32,34,1038,31,29,58, + 1109,114,84,85,116,3380,1156,1202,1862,375, + 353,3711,319,242,237,238,57,31,3014,3015, + 2076,685,678,239,1655,2574,281,345,2248,2161, + 350,2577,41,628,38,3579,3019,36,558,3095, + 37,568,2863,1110,249,252,255,258,4383,254, + 237,238,1452,2834,1734,1916,41,628,38,725, + 520,36,558,340,37,568,1114,41,771,389, + 4354,867,2633,2690,2825,4331,2459,41,628,38, + 239,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,114,84,85,116,349,1156, + 1202,1863,536,432,1689,2676,257,237,238,736, + 31,2763,583,323,741,1349,317,728,2243,2243, + 236,1027,41,451,3023,106,4589,175,164,614, + 31,2859,1926,1926,821,1043,188,3817,2823,1114, + 41,771,389,4058,211,222,2528,210,219,220, + 221,223,436,2830,177,2199,536,2520,327,311, + 535,168,176,4611,3001,2902,175,178,179,180, + 181,182,2823,2823,236,3015,431,2219,41,2292, + 38,725,164,36,558,340,37,568,523,522, + 188,3817,2823,1114,41,771,389,4522,211,222, + 2528,210,219,220,221,223,523,2541,177,1558, + 536,2053,330,336,4611,239,176,333,190,186, + 175,178,179,180,181,182,2499,3532,236,2742, + 280,736,588,31,583,323,164,1043,317,728, + 2701,260,237,238,188,3817,2823,1032,2763,405, + 2334,1956,211,222,2528,210,219,220,221,223, + 610,2774,177,2254,536,2597,1684,1789,334,1452, + 176,2597,4611,184,175,178,179,180,181,182, + 30,31,236,344,353,2785,448,2522,2533,3324, + 164,327,282,31,3025,2243,4611,2597,188,3817, + 2823,347,2248,2161,350,866,211,222,2528,210, + 219,220,221,223,697,344,177,418,536,2052, + 3008,2844,4596,2597,176,2597,333,185,175,178, + 179,180,181,182,3027,2545,236,3166,417,2315, + 727,3324,5326,3324,164,1349,857,3007,1716,325, + 333,2597,188,3817,2823,2052,2879,361,529,2597, + 211,222,2528,210,219,220,221,223,784,344, + 177,418,536,3665,2025,2062,4601,3324,176,520, + 2879,195,175,178,179,180,181,182,31,5326, + 236,4559,715,1427,41,628,38,725,164,36, + 558,340,37,568,5326,3015,188,3817,2823,503, + 5326,361,5326,5326,211,222,2528,210,219,220, + 221,223,871,1732,177,2053,536,4247,2025,2062, + 31,2680,176,3637,957,3010,175,178,179,180, + 181,182,335,336,236,503,5326,736,500,502, + 583,323,164,1349,317,728,392,425,5326,1349, + 188,3817,2823,304,2703,41,395,2167,211,222, + 2528,210,219,220,221,223,958,327,177,31, + 536,5326,4611,4358,501,502,176,5326,2461,200, + 175,178,179,180,181,182,1922,3680,236,5326, + 2961,1427,41,628,38,725,164,36,558,340, + 37,568,5326,3015,188,3817,2823,31,5326,3015, + 5326,2597,211,222,2528,210,219,220,221,223, + 1045,31,177,5326,536,2521,333,4547,680,344, + 176,5326,3016,194,175,178,179,180,181,182, + 332,336,236,5326,2053,736,4137,336,583,323, + 164,3166,317,728,52,1597,4102,5326,188,3817, + 2823,353,1726,2549,5326,2990,211,222,2528,210, + 219,220,221,223,2410,1991,177,5326,345,2248, + 2161,350,228,5326,176,2053,343,202,175,178, + 179,180,181,182,2459,41,628,38,5326,4660, + 36,558,33,37,568,32,34,1038,31,29, + 58,1109,114,84,85,116,857,1156,1784,2459, + 41,628,38,308,4660,36,558,33,37,568, + 32,34,1038,31,29,58,1109,114,84,85, + 116,5326,1156,1810,1321,41,628,38,3147,5326, + 36,558,340,37,568,1728,41,628,38,3645, + 2763,36,558,340,37,568,2414,41,628,38, + 2262,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,94,84,85,352,2087,41, + 771,389,77,1114,41,298,292,5326,736,31, + 31,583,323,2597,3254,317,728,2410,1991,736, + 857,31,583,323,2763,1043,317,728,2228,353, + 2763,344,5326,2378,1992,57,394,425,31,2167, + 353,678,3123,55,5326,301,345,2248,2161,350, + 2735,3619,5326,3166,2201,4478,76,345,2248,2161, + 350,722,61,5326,1741,3579,1529,41,628,38, + 725,4611,36,558,340,37,568,2459,41,628, + 38,5326,4660,36,558,33,37,568,32,34, + 1038,31,29,58,1109,114,84,85,116,5326, + 1812,2763,1231,41,628,38,4409,4611,36,558, + 340,37,568,31,31,31,5326,536,536,1043, + 736,5326,5326,583,323,333,2973,317,728,5326, + 393,425,5326,95,367,344,344,31,2678,292, + 614,3296,3390,164,164,164,2816,41,284,5326, + 5326,1898,2918,3394,2388,4496,736,3166,3166,583, + 323,334,2763,318,728,5326,2497,1992,2781,3340, + 311,535,2459,41,628,38,5326,4660,36,558, + 33,37,568,32,34,1038,31,29,58,1109, + 114,84,85,116,60,1818,1649,41,2292,38, + 725,4611,36,558,340,37,568,31,3224,2763, + 5326,3387,1389,427,2459,41,628,38,2541,4660, + 36,558,33,37,568,32,34,1038,31,29, + 58,1109,114,84,85,116,2168,1819,31,31, + 2724,351,1043,536,2597,940,41,771,389,2763, + 736,5326,2819,583,323,333,2597,317,728,5326, + 31,344,236,97,2991,5326,110,31,164,164, + 1956,676,31,5326,236,1789,3610,1931,2918,2597, + 4611,98,280,3166,5326,4496,213,222,2528,212, + 219,220,221,223,3471,2763,5326,3324,213,222, + 2528,212,219,220,221,223,1596,41,771,389, + 1114,41,771,389,2763,5326,214,216,218,299, + 300,1990,31,224,215,217,1043,3732,214,216, + 218,299,300,1990,333,224,215,217,2891,5326, + 5326,1284,2597,57,2112,1526,3775,57,2262,678, + 2859,55,164,54,1043,4214,2564,416,2315,80, + 236,4106,31,5326,4102,361,3129,4214,3350,574, + 2844,2229,2434,298,2597,1114,41,771,389,2557, + 168,3665,2025,2062,213,222,2528,212,219,220, + 221,223,3324,5326,2585,41,628,38,3147,5326, + 36,558,340,37,568,31,31,5326,5326,1509, + 2597,3642,430,309,214,216,218,299,300,1990, + 5326,224,215,217,2459,868,628,1595,344,4660, + 36,558,33,37,568,32,34,1038,31,29, + 58,1109,114,84,85,92,4306,2053,736,5326, + 3166,583,323,4214,3718,317,728,5326,31,31, + 361,3684,3622,2989,5326,5326,31,31,524,353, + 1569,3740,5326,5326,1820,5326,4370,2025,2062,1114, + 41,771,389,5326,5326,187,345,2248,2161,350, + 2459,41,628,38,525,4660,36,558,33,37, + 568,32,34,1038,31,29,58,1109,114,84, + 85,91,2459,41,628,38,450,4660,36,558, + 33,37,568,32,34,1038,31,29,58,1109, + 114,84,85,90,2459,41,628,38,5326,4660, + 36,558,33,37,568,32,34,1038,31,29, + 58,1109,114,84,85,89,2459,41,628,38, + 5326,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,114,84,85,88,2459,41, + 628,38,5326,4660,36,558,33,37,568,32, + 34,1038,31,29,58,1109,114,84,85,87, + 2459,41,628,38,5326,4660,36,558,33,37, + 568,32,34,1038,31,29,58,1109,114,84, + 85,86,2320,41,628,38,5326,4660,36,558, + 33,37,568,32,34,1038,31,29,58,1109, + 114,84,85,112,2459,41,628,38,5326,4660, + 36,558,33,37,568,32,34,1038,31,29, + 58,1109,114,84,85,118,2459,41,628,38, + 5326,4660,36,558,33,37,568,32,34,1038, + 31,29,58,1109,114,84,85,117,2459,41, + 628,38,5326,4660,36,558,33,37,568,32, + 34,1038,31,29,58,1109,114,84,85,115, + 2459,41,628,38,1926,4660,36,558,33,37, + 568,32,34,1038,31,29,58,1109,114,84, + 85,113,1382,41,628,38,2763,4611,36,558, + 340,37,568,2703,41,395,31,2763,2763,2053, + 1043,31,2907,31,2823,2597,2597,536,5326,2517, + 5326,31,2785,2597,2763,4433,2597,31,75,5326, + 377,1904,5326,344,236,344,164,5326,31,74, + 73,3324,1941,164,236,4117,736,206,5326,583, + 323,334,196,318,728,3166,72,3171,213,222, + 2528,212,219,220,221,223,507,353,213,222, + 2528,212,219,220,221,223,1738,41,771,389, + 2240,41,771,389,347,2248,2161,350,214,216, + 218,299,300,1990,2053,518,215,217,214,216, + 218,299,300,1990,2800,517,215,217,2597,362, + 2053,2053,2556,57,2923,4457,2228,57,2597,678, + 2597,2723,5326,678,2984,2899,236,31,2597,31, + 4251,3708,205,1043,5326,5326,236,2763,3324,2863, + 31,31,2735,3615,4226,2617,236,4478,307,209, + 213,222,2528,212,219,220,221,223,5326,164, + 213,222,2528,212,219,220,221,223,4118,4131, + 213,222,2528,212,219,220,221,223,5326,5326, + 214,216,218,299,300,1990,5326,225,215,217, + 214,216,218,299,300,1990,2763,310,215,217, + 214,216,218,299,300,1990,503,497,215,217, + 1496,41,628,38,725,2763,36,558,340,37, + 568,2618,41,771,389,5326,2649,2053,63,1427, + 41,628,38,725,245,36,558,340,37,568, + 5326,5326,5326,1898,1398,500,502,62,1201,5326, + 2859,31,2597,4690,1043,4476,2763,246,280,2950, + 2763,2763,31,1043,736,207,2936,583,323,5326, + 236,317,728,2605,41,1640,3208,5326,3368,2763, + 168,239,5326,736,614,2775,583,323,109,164, + 317,728,4361,3265,1387,406,4462,1289,170,2053, + 5326,2597,4690,614,239,428,5326,243,237,238, + 57,449,2053,31,533,535,678,2896,817,236, + 281,5326,5326,1349,407,408,409,299,300,1990, + 247,237,238,312,535,2868,5326,303,250,253, + 256,259,4383,1387,406,4462,4325,2763,1734,1982, + 4369,5326,1852,41,628,38,3566,5326,36,558, + 340,37,568,5326,5326,5326,1349,527,2688,41, + 771,389,2763,407,408,409,299,300,1990,2984, + 540,31,3201,3015,5326,2725,1231,41,628,38, + 402,4611,36,558,340,37,568,2853,1982,31, + 5326,536,2763,1043,3038,57,736,410,412,2160, + 323,678,2053,55,2763,2240,41,771,389,4491, + 4148,336,2688,41,771,389,3015,164,5326,164, + 1989,914,4407,4576,3092,188,3817,2763,4134,5326, + 736,5326,5326,583,323,334,2802,320,728,2946, + 229,2763,57,3764,5326,5326,410,413,678,57, + 55,203,5326,4423,336,678,2763,55,5326,2803, + 2688,41,771,389,2688,41,771,389,2701,2688, + 41,771,389,4619,5326,2736,2880,41,771,389, + 5326,2883,41,771,389,2859,2935,5326,3200,1043, + 536,1114,41,771,389,3711,319,57,5326,2053, + 5326,57,5326,678,5326,55,57,678,344,55, + 5326,5326,678,57,55,168,164,5326,57,678, + 5326,55,5326,2809,678,196,55,3745,57,5326, + 3171,5326,3849,5326,678,5326,1552,201,5326,1380, + 1663,41,771,389,3373,5326,5326,1114,41,771, + 389,5326,1114,41,771,389,1114,41,771,389, + 5326,2703,41,395,4606,204,1114,41,771,389, + 1114,41,771,389,2878,5326,5326,57,2597,5326, + 5326,4366,31,678,57,2722,536,2859,198,57, + 678,1043,1244,57,31,678,344,3516,536,678, + 5326,732,5326,57,344,5326,528,57,5326,678, + 2045,2722,164,678,2597,2939,344,168,3166,31, + 5326,196,5326,2597,164,5326,3171,31,5326,531, + 31,2597,344,196,1043,5326,31,5326,3171,5326, + 1043,344,5326,5326,5326,5326,5326,5326,5326,344, + 5326,5326,5326,5326,731,5326,5326,5326,5326,5326, + 164,5326,4422,3166,5326,5326,164,5326,5326,2406, + 3004,3166,5326,5326,505,4561,5326,5326,5326,5326, + 5326,5326,532,4389,4482,5326,5326,5326,5326,5326, + 5326,5326,5326,5326,5326,5326,4512,5326,5326,5326, + 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, + 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, + 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, + 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, + 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, + 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, + 5326,5326,5326,5326,5326,4445,5326,5326,5326,5326, + 5326,5326,5326,5326,5326,5326,5326,5326,454,5326, + 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, + 5326,5326,5326,5326,5326,5326,5326,5326,440,5326, + 0,5346,2,1,0,5345,2,1,0,452, + 2687,0,438,2780,0,2800,35,0,5338,384, + 0,5337,384,0,45,5346,0,45,5345,0, + 2800,388,0,1,442,0,456,1291,0,455, + 1386,0,41,39,0,45,5346,2,0,45, + 5345,2,0,44,5346,0,44,5345,0,2466, + 134,0,51,5368,0,51,43,0,1,1081, + 0,1,5605,0,1,5604,0,1,5603,0, + 1,5602,0,1,5601,0,1,5600,0,1, + 5599,0,1,5598,0,1,5597,0,1,5596, + 0,1,5595,0,45,5346,1,0,45,5345, + 1,0,922,1,0,5567,248,0,5566,248, + 0,5665,248,0,5664,248,0,5594,248,0, + 5593,248,0,5592,248,0,5591,248,0,5590, + 248,0,5589,248,0,5588,248,0,5587,248, + 0,5605,248,0,5604,248,0,5603,248,0, + 5602,248,0,5601,248,0,5600,248,0,5599, + 248,0,5598,248,0,5597,248,0,5596,248, + 0,5595,248,0,45,248,5346,0,45,248, + 5345,0,5370,248,0,56,5346,0,56,5345, + 0,2800,47,0,3391,99,0,38,40,0, + 45,672,0,5657,443,0,2951,443,0,5332, + 1,0,5331,1,0,244,926,0,389,38, + 0,38,389,0,388,35,0,35,388,0, + 5346,56,0,5345,56,0,2466,136,0,2466, + 135,0,5368,53,0,53,43,0,499,1984, + 0,5370,235,1,0,45,235,1,0,235, + 415,0,43,5346,0,43,5345,0,5370,1, + 0,45,1,0,55,43,0,1,100,0, + 43,55,0,5336,404,0,5335,404,0,3063, + 1,0,672,1,0,4730,1,0,235,414, + 0,2191,384,0,43,5346,2,0,43,5345, + 2,0,5346,42,0,5345,42,0,1,5657, + 0,1,2951,0,45,5346,2,1,0,45, + 5345,2,1,0,8,12,0,5657,103,0, + 2951,103,0,41,81,0,499,4132,0,235, + 1,0,235,227,0,285,3720,0,235,226, + 0,1,3134,0,1,4113,0,5338,1,0, + 5334,1,0,235,1,2618,0,5335,235,0, + 2619,235,0,2797,235,0,10,12,0,8, + 10,12,0,193,3146,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1119,25 +1130,25 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 35,36,37,38,39,40,41,42,43,44, 45,46,47,48,49,50,51,52,53,0, 55,56,57,58,5,60,61,62,63,64, - 122,66,67,68,91,92,0,72,101,3, + 0,66,67,68,91,92,99,72,0,9, 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,0,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,70,55,56,57, + 48,49,50,51,52,53,0,55,56,57, 58,0,60,61,62,63,64,0,66,67, - 68,0,1,2,72,4,9,75,76,77, + 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,0, 31,32,33,34,35,36,37,38,39,40, 41,42,43,44,45,46,47,48,49,50, - 51,52,53,0,55,56,57,58,0,60, + 51,52,53,76,55,56,57,58,0,60, 61,62,63,64,0,66,67,68,0,0, - 6,72,3,0,75,76,77,78,79,80, + 6,72,101,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, @@ -1153,15 +1164,15 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 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,0,55,56, - 57,58,0,60,61,62,63,64,0,66, - 67,68,91,92,99,72,0,0,75,76, + 57,58,0,60,61,62,63,64,122,66, + 67,68,91,92,0,72,0,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, 0,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,76,55,56,57,58,73, + 50,51,52,53,70,55,56,57,58,73, 60,61,62,63,64,0,66,67,68,0, 1,2,72,0,5,75,76,77,78,79, 80,81,82,83,84,85,86,0,1,2, @@ -1183,207 +1194,208 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 66,67,68,0,1,2,72,8,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,65, - 9,10,0,12,13,14,15,16,17,18, + 9,10,11,12,70,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,0,55,69,57,0, 1,2,61,4,5,10,7,66,67,68, 0,1,2,3,4,5,6,7,8,9, - 10,11,0,0,14,15,16,17,18,19, - 20,21,22,23,24,25,0,118,0,1, - 2,3,4,5,6,7,0,9,12,13, - 40,56,0,54,102,45,46,47,48,49, - 50,51,52,53,54,55,56,0,58,117, - 99,61,0,1,2,8,66,67,68,7, - 0,71,72,73,0,1,2,0,4,0, - 6,69,8,9,0,1,2,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 72,59,14,15,16,17,18,19,20,21, - 22,23,24,25,114,115,116,0,0,0, + 10,0,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,0,118,0,0, + 0,1,2,3,4,5,6,7,10,9, + 40,56,30,14,0,45,46,47,48,49, + 50,51,52,53,54,55,56,0,58,0, + 99,61,3,0,1,2,66,67,68,40, + 7,71,72,73,45,46,47,48,49,50, + 51,52,53,0,55,0,0,87,0,1, + 2,3,4,5,6,7,8,9,10,88, + 89,13,14,15,16,17,18,19,20,21, + 22,23,24,25,114,115,116,73,59,0, 0,1,2,3,4,5,6,7,40,9, - 0,74,119,45,46,47,48,49,50,51, - 52,53,54,55,56,0,58,70,74,61, - 0,0,1,2,66,67,68,12,13,71, - 72,73,45,46,0,0,0,3,3,95, - 0,6,54,8,9,87,11,12,13,102, - 14,104,105,106,107,108,109,110,111,112, - 113,26,27,73,117,30,0,0,1,2, - 30,4,114,115,116,54,40,88,89,59, - 0,45,46,47,48,49,50,51,52,53, - 0,55,0,3,59,95,6,0,8,9, - 65,11,12,13,69,70,71,10,73,74, - 0,0,1,2,4,4,26,27,0,8, - 30,54,30,88,89,90,91,92,93,94, + 11,12,0,45,46,47,48,49,50,51, + 52,53,54,55,56,59,58,121,0,61, + 0,0,1,2,66,67,68,100,75,71, + 72,73,0,1,2,0,4,5,3,7, + 0,6,0,8,9,87,11,12,13,59, + 30,0,1,2,3,4,5,6,7,69, + 9,26,27,45,46,30,0,0,28,114, + 115,116,114,115,116,54,0,0,0,3, + 0,14,15,16,17,18,19,20,21,22, + 23,24,25,73,59,0,0,1,2,3, + 65,5,0,7,69,70,71,40,73,74, + 59,69,45,46,47,48,49,50,51,52, + 53,0,55,88,89,90,91,92,93,94, 95,96,97,98,99,100,101,102,103,104, - 105,106,107,108,109,110,111,112,113,59, - 40,54,117,118,119,65,121,0,61,69, - 70,71,0,73,74,73,100,0,1,2, - 3,4,5,6,7,64,9,59,88,89, - 90,91,92,93,94,95,96,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,0,1,2,117,118,119, - 0,121,0,1,2,3,4,5,6,7, - 0,9,10,3,12,13,59,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,0,41,42,43,44,0,54,0, - 1,2,3,4,5,6,7,0,9,57, - 3,114,115,116,62,63,0,65,0,1, - 2,3,4,5,6,7,8,9,10,0, - 12,13,0,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,59,41, - 42,43,44,0,1,2,3,70,5,70, - 7,0,1,2,3,57,5,0,7,8, - 88,89,64,54,0,8,54,3,11,71, + 105,106,107,108,109,110,111,112,113,69, + 0,0,117,118,3,120,121,6,0,8, + 9,59,11,12,13,0,1,2,3,4, + 5,6,7,0,9,54,0,26,27,102, + 4,30,102,0,104,105,106,107,108,109, + 110,111,112,113,117,100,0,117,0,1, + 2,3,4,5,6,7,30,9,0,59, + 59,0,0,1,2,3,65,5,0,7, + 69,70,71,0,73,74,30,0,1,2, + 3,4,59,6,11,12,9,72,30,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,113,0,1,2,117,118, + 0,120,121,0,1,2,3,4,5,6, + 7,70,9,10,11,12,59,0,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,95,41,42,43,44,0,1, + 2,3,4,5,6,7,0,9,0,59, + 57,3,0,1,2,62,63,0,65,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,65,0,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,0, + 41,42,43,44,0,1,2,8,4,0, + 6,73,13,9,62,63,57,0,1,2, + 3,0,5,64,7,8,69,0,1,2, + 71,0,1,2,3,4,5,6,7,8, + 9,10,11,12,0,0,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,0,41,42,43,44,59,0,0,1, + 2,4,4,0,6,0,8,9,57,62, + 63,74,119,8,0,64,0,1,2,3, + 4,5,6,7,0,9,10,11,12,88, + 89,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,65,41,42,43, + 44,0,1,2,3,0,5,0,7,8, + 3,90,74,57,13,70,71,96,62,63, 0,1,2,3,4,5,6,7,8,9, - 10,0,12,13,0,15,16,17,18,19, + 10,11,12,95,70,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, - 59,41,42,43,44,0,1,2,3,4, - 5,6,7,59,9,74,69,57,0,1, - 2,3,0,5,64,7,8,0,0,11, - 59,71,0,1,2,3,4,5,6,7, - 8,9,10,0,12,13,0,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,0,41,42,43,44,0,1,2, - 3,4,5,6,7,95,9,65,0,57, - 0,1,2,0,1,2,64,0,1,2, - 3,4,5,6,7,0,9,10,65,12, - 13,65,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,65,41,42, - 43,44,0,1,2,3,4,59,6,0, - 0,9,62,63,57,62,63,30,8,62, - 63,0,1,2,3,4,5,6,7,0, - 9,10,3,12,13,70,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,59,41,42,43,44,0,1,2,3, - 61,5,0,7,8,3,0,11,57,69, - 8,71,0,62,63,0,1,2,3,4, - 5,6,7,8,9,10,0,12,13,3, + 0,41,42,43,44,0,1,2,3,0, + 5,0,7,8,3,0,69,57,13,8, + 30,0,0,8,64,0,1,2,3,4, + 5,6,7,0,9,10,11,12,0,30, 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,0,31,32,33,34, + 25,26,27,28,29,65,31,32,33,34, 35,36,37,38,39,0,41,42,43,44, - 0,59,0,3,0,5,6,65,4,9, - 8,69,12,13,0,30,74,65,0,1, - 2,69,4,5,10,7,26,27,0,29, - 30,0,0,1,2,0,0,1,2,3, - 8,5,0,7,0,14,15,16,17,18, - 19,20,21,22,23,24,25,0,30,59, - 65,4,62,63,69,65,64,0,54,69, - 70,40,54,118,30,61,45,46,47,48, - 49,50,51,52,53,0,55,30,88,89, - 90,91,92,93,94,59,64,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,0,1,2,3,4,5, - 6,7,0,9,10,3,12,13,0,15, + 59,0,1,2,65,4,65,6,0,64, + 9,70,57,93,94,74,65,62,63,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,93,94,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,54, + 31,32,33,34,35,36,37,38,39,0, + 41,42,43,44,0,0,0,3,0,5, + 6,0,0,9,0,11,12,0,70,14, + 8,10,0,1,2,13,4,5,0,7, + 26,27,4,29,30,0,30,0,1,2, + 0,4,5,0,7,40,0,1,2,14, + 45,46,47,48,49,50,51,52,53,0, + 55,0,0,59,65,54,62,63,40,65, + 8,65,61,69,70,40,54,118,0,65, + 45,46,47,48,49,50,51,52,53,30, + 55,54,88,89,90,91,92,93,94,93, + 94,97,98,99,100,101,102,103,104,105, + 106,107,108,109,110,111,112,113,0,1, + 2,3,4,5,6,7,64,9,10,11, + 12,88,89,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,0,41, + 42,43,44,0,0,0,88,89,3,0, + 5,6,14,0,9,57,11,12,0,1, + 2,3,0,5,0,7,4,0,0,1, + 2,26,27,30,29,30,8,10,40,0, + 1,2,54,45,46,47,48,49,50,51, + 52,53,30,55,0,1,2,0,4,0, + 6,0,0,9,59,0,0,62,63,8, + 65,0,0,69,69,70,0,1,2,70, + 4,54,6,11,12,9,73,30,61,30, + 0,73,64,88,89,90,91,92,93,94, + 0,30,97,98,99,100,101,102,103,104, + 105,106,107,108,109,110,111,112,113,0, + 1,2,3,4,5,6,7,65,9,10, + 11,12,71,0,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,59, + 31,32,33,34,35,36,37,38,39,59, + 41,42,43,44,0,1,2,3,4,5, + 6,7,0,9,10,11,12,0,59,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,0,31,32,33,34,35, + 26,27,28,29,61,31,32,33,34,35, 36,37,38,39,0,41,42,43,44,0, - 0,0,3,3,3,5,6,0,14,9, - 0,57,12,13,0,1,2,3,8,5, - 0,7,0,1,2,100,26,27,0,29, - 30,0,1,2,40,4,5,0,7,45, - 46,47,48,49,50,51,52,53,0,55, - 30,0,1,2,70,4,8,6,90,59, - 9,0,62,63,96,65,0,1,2,69, - 70,0,1,2,0,4,54,6,4,69, - 9,0,1,2,74,57,0,73,88,89, - 90,91,92,93,94,88,89,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,0,1,2,3,4,5, - 6,7,74,9,10,0,12,13,3,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,10,41,42,43,44,0, - 1,2,3,4,5,6,7,0,9,10, - 0,12,13,59,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,0, - 41,42,43,44,0,0,1,2,3,4, - 5,6,7,0,9,10,57,12,13,30, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,65,31,32,33,34, - 35,36,37,38,39,0,41,42,43,44, - 0,1,2,3,4,5,6,7,0,9, - 10,3,12,13,65,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, - 0,41,42,43,44,0,1,2,3,4, - 5,6,7,90,9,10,0,12,13,96, - 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,0,41,42,43,44, - 0,1,2,0,4,65,0,1,2,3, - 10,5,0,7,14,15,16,17,18,19, - 20,21,22,23,24,25,0,1,2,0, - 4,0,6,0,0,9,70,3,0,8, - 40,3,0,1,2,45,46,47,48,49, - 50,51,52,53,69,55,0,0,1,2, - 4,61,5,30,26,27,66,67,68,0, - 1,2,69,4,0,0,1,2,0,10, - 5,69,7,14,15,16,17,18,19,20, - 21,22,23,24,25,64,54,59,65,0, - 1,2,3,4,5,6,7,8,9,40, - 11,54,0,14,45,46,47,48,49,50, - 51,52,53,0,55,0,93,94,3,30, - 61,8,0,59,0,66,67,68,0,40, - 8,103,30,11,45,46,47,48,49,50, - 51,52,53,75,55,0,1,2,59,121, + 1,2,0,0,1,2,3,4,5,6, + 7,57,9,10,11,12,0,0,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,0,41,42,43,44,0,1, + 2,3,4,5,6,7,0,9,10,11, + 12,28,0,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,0,41, + 42,43,44,0,1,2,3,4,5,6, + 7,0,9,10,11,12,0,0,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,0,41,42,43,44,0,1, + 2,0,4,0,3,57,3,69,10,8, + 88,89,14,15,16,17,18,19,20,21, + 22,23,24,25,0,0,0,1,2,26, + 27,5,8,7,0,1,2,3,40,5, + 0,7,0,45,46,47,48,49,50,51, + 52,53,69,55,0,1,2,90,4,61, + 59,95,59,96,66,67,68,0,1,2, + 30,4,0,1,2,74,0,10,0,1, + 2,14,15,16,17,18,19,20,21,22, + 23,24,25,59,0,71,0,1,2,3, + 4,5,6,7,8,9,103,40,54,13, + 14,69,45,46,47,48,49,50,51,52, + 53,0,55,120,30,0,30,0,61,0, + 1,2,54,66,67,68,40,0,1,2, + 0,45,46,47,48,49,50,51,52,53, + 0,55,0,1,2,59,0,30,0,1, + 2,3,4,5,6,7,8,9,28,0, + 74,13,14,0,1,2,3,4,5,6, + 7,8,9,54,0,0,13,14,4,0, + 65,0,1,2,73,70,5,8,40,0, + 0,0,13,45,46,47,48,49,50,51, + 52,53,0,55,0,1,2,59,4,69, + 8,65,8,0,40,0,3,54,3,56, + 30,58,74,60,0,1,2,3,4,5, + 6,7,8,9,71,54,0,13,14,0, + 1,2,3,4,5,6,7,8,9,70, + 87,0,13,14,30,0,1,2,0,1, + 2,3,4,5,6,7,8,9,64,0, + 0,13,14,0,1,2,74,8,54,90, + 56,90,58,0,60,96,0,96,114,115, + 116,8,0,54,119,56,0,58,0,60, + 8,65,0,1,2,13,8,0,0,54, + 71,87,54,0,56,8,58,0,60,0, + 1,2,0,1,2,8,87,54,0,71, 0,1,2,3,4,5,6,7,8,9, - 0,11,0,74,14,0,1,2,3,4, - 5,6,7,8,9,0,11,0,0,14, - 0,1,2,59,4,0,6,74,0,9, - 40,69,30,71,0,45,46,47,48,49, - 50,51,52,53,0,55,0,30,95,59, - 4,0,1,2,0,4,5,0,7,54, - 0,56,28,58,74,60,0,1,2,3, - 4,5,6,7,8,9,71,11,0,0, - 14,119,65,0,30,0,40,69,3,0, - 1,2,87,8,0,0,30,0,0,1, - 2,3,4,5,6,7,8,9,0,11, - 93,94,14,0,1,2,88,89,0,65, - 54,3,56,0,58,30,60,30,0,1, - 2,3,4,5,6,7,8,9,0,11, - 0,0,14,54,59,88,89,93,94,0, - 12,13,54,87,56,0,58,8,60,74, - 114,115,116,8,70,0,11,54,90,71, - 0,1,2,90,96,0,1,2,0,96, - 0,73,54,0,56,87,58,0,60,0, - 1,2,3,4,5,6,7,8,9,71, - 11,0,0,14,0,0,1,2,3,4, - 5,6,7,8,9,87,11,30,0,14, - 71,0,1,2,3,4,5,6,7,8, - 9,0,11,0,30,14,0,1,2,8, - 0,8,11,54,11,56,28,58,8,60, - 0,1,2,73,0,0,1,2,0,54, - 71,56,0,58,0,60,8,0,14,0, - 8,4,0,11,0,54,87,56,0,58, - 8,60,0,1,2,3,4,5,6,7, - 8,9,87,11,40,0,14,30,0,45, - 46,47,48,49,50,51,52,53,87,55, - 0,71,0,0,0,0,0,4,3,3, - 8,120,120,0,14,30,3,0,30,0, - 3,0,74,69,3,0,54,0,56,70, - 58,0,60,30,70,0,74,0,3,0, - 40,73,3,0,0,45,46,47,48,49, - 50,51,52,53,0,55,0,0,0,87, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,30,0,74,73,0,0, - 0,0,28,0,0,0,0,0,0,0, - 0,0,73,0,0,70,0,0,0,0, - 0,70,0,0,0,0,0,0,0,0, - 0,0,0,70,0,0,0,0,0,0, - 0,0,95,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,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,0,0,0,0 + 71,0,0,13,14,87,0,1,2,3, + 4,5,6,7,8,9,54,74,0,13, + 14,3,0,1,2,3,4,5,6,7, + 8,9,74,0,0,13,14,70,95,0, + 0,74,8,4,54,0,56,13,58,0, + 60,74,0,8,0,3,0,8,4,3, + 54,71,56,30,58,0,60,0,3,30, + 3,0,0,0,3,3,54,87,56,0, + 58,0,60,0,1,2,3,4,5,6, + 7,8,9,87,0,0,13,14,3,0, + 0,0,3,30,3,0,0,0,3,87, + 70,30,0,0,0,3,3,3,0,74, + 119,3,0,74,0,3,0,3,0,0, + 0,0,0,0,0,0,0,54,0,56, + 0,58,0,60,0,0,0,0,0,70, + 0,0,0,0,0,0,0,0,30,0, + 0,0,0,0,0,0,0,73,0,0, + 87,0,0,73,0,0,69,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,69,0,0,0,0, + 0,95,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,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; @@ -1391,319 +1403,317 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TermAction { public final static char termAction[] = {0, - 5265,5242,5218,5218,5218,5218,5218,5218,5252,5218, - 1,5246,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, + 5326,5303,5279,5279,5279,5279,5279,5279,5313,5279, + 1,1,1,5307,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5265,1,1474,1,1937,137, - 2785,1,1,1,5276,5265,1,1,1,791, - 5265,5272,5448,3397,5265,1469,3149,3607,2152,3579, - 3049,2778,3144,572,3141,3165,3102,10,5255,5255, - 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, - 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, - 5255,5255,5255,5255,5255,5255,5255,5265,5255,5255, - 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, - 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, - 5255,5265,5255,5255,5255,5255,138,5255,5255,5255, - 5255,5255,139,5255,5255,5255,2362,2334,5255,5255, - 5265,2305,5255,5255,5255,5255,5255,5255,5255,5255, - 5255,5255,5255,5255,8,5258,5258,5258,5258,5258, - 5258,5258,5258,5258,5258,5258,5258,5258,5258,5258, - 5258,5258,5258,5258,5258,5258,5258,5258,5258,5258, - 5258,5258,5258,5258,5265,5258,5258,5258,5258,5258, - 5258,5258,5258,5258,5258,5258,5258,5258,5258,5258, - 5258,5258,5258,5258,5258,5258,5258,5258,5265,5258, - 5258,5258,5258,5265,5258,5258,5258,5258,5258,3139, - 5258,5258,5258,2362,2334,5258,5258,5265,5265,5258, - 5258,5258,5258,5258,5258,5258,5258,5258,5258,5258, - 5258,5265,5242,5218,5218,5218,5218,5218,5218,5249, - 5218,1,5246,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5265,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5265,1,1474,1,1937, - 1857,2785,1,1,1,5276,45,1,1,1, - 5309,5265,2529,5448,1345,5596,1469,3149,3607,2152, - 3579,3049,2778,3144,572,3141,3165,3102,5265,5242, - 5218,5218,5218,5218,5218,5218,5249,5218,1,5246, + 1,1,1,1,385,1,1775,1,1289,137, + 2349,1,1,1,5337,5326,1,1,1,1299, + 5326,5333,5509,3484,5326,1375,2706,4204,2206,4119, + 2611,2768,2689,1646,2688,2577,2648,10,5316,5316, + 5316,5316,5316,5316,5316,5316,5316,5316,5316,5316, + 5316,5316,5316,5316,5316,5316,5316,5316,5316,5316, + 5316,5316,5316,5316,5316,5316,5316,5326,5316,5316, + 5316,5316,5316,5316,5316,5316,5316,5316,5316,5316, + 5316,5316,5316,5316,5316,5316,5316,5316,5316,5316, + 5316,5326,5316,5316,5316,5316,138,5316,5316,5316, + 5316,5316,139,5316,5316,5316,2384,2356,5316,5316, + 5326,2327,5316,5316,5316,5316,5316,5316,5316,5316, + 5316,5316,5316,5316,8,5319,5319,5319,5319,5319, + 5319,5319,5319,5319,5319,5319,5319,5319,5319,5319, + 5319,5319,5319,5319,5319,5319,5319,5319,5319,5319, + 5319,5319,5319,5319,5326,5319,5319,5319,5319,5319, + 5319,5319,5319,5319,5319,5319,5319,5319,5319,5319, + 5319,5319,5319,5319,5319,5319,5319,5319,5326,5319, + 5319,5319,5319,5326,5319,5319,5319,5319,5319,3408, + 5319,5319,5319,2384,2356,5319,5319,5326,5326,5319, + 5319,5319,5319,5319,5319,5319,5319,5319,5319,5319, + 5319,5326,5303,5279,5279,5279,5279,5279,5279,5310, + 5279,1,1,1,5307,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,193,1, + 1,5326,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5326,1,1775,1,1289, + 1909,2349,1,1,1,5337,45,1,1,1, + 5370,5326,2951,5509,926,5657,1375,2706,4204,2206, + 4119,2611,2768,2689,1646,2688,2577,2648,5326,5303, + 5279,5279,5279,5279,5279,5279,5310,5279,1,1, + 1,5307,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5326,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5265,1,1474,1,1937,145,2785,1, - 1,1,5276,123,1,1,1,45,5265,3496, - 5448,5309,1259,1469,3149,3607,2152,3579,3049,2778, - 3144,572,3141,3165,3102,5265,5242,5218,5218,5218, - 5218,5218,5218,5249,5218,1,5246,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5265,1,1,1,1, + 1,1,5326,1,1775,1,1289,141,2349,1, + 1,1,5337,123,1,1,1,45,5326,3584, + 5509,5370,3101,1375,2706,4204,2206,4119,2611,2768, + 2689,1646,2688,2577,2648,5326,5303,5279,5279,5279, + 5279,5279,5279,5310,5279,1,1,1,5307,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5265, - 1,1474,1,1937,3718,2785,1,1,1,5276, - 5262,1,1,1,3455,3360,315,5448,2239,2527, - 1469,3149,3607,2152,3579,3049,2778,3144,572,3141, - 3165,3102,5265,5242,5218,5218,5218,5218,5218,5218, - 5249,5218,1,5246,1,1,1,1,1,1, + 1,1,1,1,1,5326,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5265,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5326, + 1,1775,1,1289,1516,2349,1,1,1,5337, + 140,1,1,1,3542,3447,592,5509,5326,2327, + 1375,2706,4204,2206,4119,2611,2768,2689,1646,2688, + 2577,2648,5326,5303,5279,5279,5279,5279,5279,5279, + 5310,5279,1,1,1,5307,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1035,1,1474,1, - 1937,5265,2785,1,1,1,5276,140,1,1, - 1,5265,4889,4886,5448,5309,2305,1469,3149,3607, - 2152,3579,3049,2778,3144,572,3141,3165,3102,5265, - 5242,5218,5218,5218,5218,5218,5218,5249,5218,1, - 5246,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5265, + 1,1,5326,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5326,1,1775,1, + 1289,145,2349,1,1,1,5337,5326,1,1, + 1,5326,4947,4944,5509,5370,5326,1375,2706,4204, + 2206,4119,2611,2768,2689,1646,2688,2577,2648,5326, + 5303,5279,5279,5279,5279,5279,5279,5310,5279,1, + 1,1,5307,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5326, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5265,1,1474,1,1937,146,2785, - 1,1,1,5276,125,1,1,1,5265,99, - 3496,5448,5066,5265,1469,3149,3607,2152,3579,3049, - 2778,3144,572,3141,3165,3102,5265,5242,5218,5218, - 5218,5218,5218,5218,5249,5218,1,5246,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5265,1,1,1, + 1,1,1,2964,1,1775,1,1289,146,2349, + 1,1,1,5337,125,1,1,1,5326,1, + 3584,5509,2293,389,1375,2706,4204,2206,4119,2611, + 2768,2689,1646,2688,2577,2648,5326,5303,5279,5279, + 5279,5279,5279,5279,5310,5279,1,1,1,5307, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,193,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5265,1,1474,1,1937,141,2785,1,1,1, - 5276,124,1,1,1,3455,3360,3496,5448,2239, - 5265,1469,3149,3607,2152,3579,3049,2778,3144,572, - 3141,3165,3102,5265,5242,5218,5218,5218,5218,5218, - 5218,5249,5218,1,5246,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5265,1,1,1,1,1,1, + 5326,1,1775,1,1289,5326,2349,1,1,1, + 5337,124,1,1,1,3542,3447,3584,5509,2293, + 5326,1375,2706,4204,2206,4119,2611,2768,2689,1646, + 2688,2577,2648,5326,5303,5279,5279,5279,5279,5279, + 5279,5310,5279,1,1,1,5307,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5265,1,1474, - 1,1937,5265,2785,1,1,1,5276,5265,1, - 1,1,3455,3360,590,5448,424,5265,1469,3149, - 3607,2152,3579,3049,2778,3144,572,3141,3165,3102, - 5265,5242,5218,5218,5218,5218,5218,5218,5249,5218, - 1,5246,1,1,1,1,1,1,1,1, + 1,1,1,5326,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5265,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5326,1,1775, + 1,1289,5326,2349,1,1,1,5337,5323,1, + 1,1,3542,3447,165,5509,426,5326,1375,2706, + 4204,2206,4119,2611,2768,2689,1646,2688,2577,2648, + 5326,5303,5279,5279,5279,5279,5279,5279,5310,5279, + 1,1,1,5307,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3253,1,1474,1,1937,4351, - 2785,1,1,1,5276,5265,1,1,1,5265, - 5284,5285,5448,5265,3718,1469,3149,3607,2152,3579, - 3049,2778,3144,572,3141,3165,3102,5265,5242,5218, - 5218,5218,5218,5218,5218,5249,5218,1,5246,1, + 5326,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,5265,1,1, + 1,1,1,1,1866,1,1775,1,1289,3420, + 2349,1,1,1,5337,5326,1,1,1,5326, + 5345,5346,5509,5326,1516,1375,2706,4204,2206,4119, + 2611,2768,2689,1646,2688,2577,2648,5326,5303,5279, + 5279,5279,5279,5279,5279,5310,5279,1,1,1, + 5307,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5326,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5265,1,1474,1,1937,5663,2785,1,1, - 1,5276,5265,1,1,1,5265,4889,4886,5448, - 5309,5265,1469,3149,3607,2152,3579,3049,2778,3144, - 572,3141,3165,3102,5265,3068,1,1,1,1, - 1,1,3085,1,1,5274,1,1,1,1, + 1,5326,1,1775,1,1289,5726,2349,1,1, + 1,5337,5326,1,1,1,5326,4947,4944,5509, + 5370,5326,1375,2706,4204,2206,4119,2611,2768,2689, + 1646,2688,2577,2648,5326,2618,1,1,1,1, + 1,1,2619,1,1,1,1,5335,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5265,1,1,1,1,1, + 1,1,1,1,5326,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5265,1, - 1474,1,1937,5265,2785,1,1,1,5276,5265, - 1,1,1,5265,5284,5285,5448,5269,165,1469, - 3149,3607,2152,3579,3049,2778,3144,572,3141,3165, - 3102,45,4889,4886,3396,727,2672,3751,3013,5716, - 3773,1214,147,3675,2703,5529,5536,5534,5543,5542, - 5538,5539,5537,5540,5541,5544,5535,3817,3795,5290, - 629,142,953,1022,5292,981,3259,996,5293,5291, - 944,5532,5286,5288,5289,5287,5603,5604,5526,5533, - 5505,5531,5530,5527,5528,306,5506,1815,1303,5265, - 4889,4886,5660,727,5072,5570,3013,775,5661,5662, - 5265,5130,5130,235,5126,235,235,235,5134,235, - 1,235,511,5265,1,1,1,1,1,1, - 1,1,1,1,1,1,126,5268,5265,4873, - 4869,4313,1,919,1,3013,5265,1,3212,2646, - 1,2990,321,576,2202,1,1,1,1,1, - 1,1,1,1,5123,1,813,5265,564,3398, - 590,1,44,4918,4915,5271,1,1,1,566, - 5265,413,5674,235,1,5146,5146,147,5143,5265, - 2529,874,364,5596,5265,5060,5057,5761,5265,5130, - 5130,235,5126,235,235,235,5173,235,1,235, - 5797,1266,1,1,1,1,1,1,1,1, - 1,1,1,1,5696,5697,5698,337,43,129, - 5265,5201,5196,4313,5143,919,5193,3013,1,5190, - 359,5270,4868,1,1,1,1,1,1,1, - 1,1,5123,1,813,128,564,1773,364,1, - 322,51,4927,4927,1,1,1,3212,2646,412, - 5674,235,5603,5604,244,39,231,5090,4904,364, - 450,4904,5307,4904,4904,5761,4904,4904,4904,2202, - 5529,1731,1689,1647,1605,1563,1521,1479,1437,1395, - 1353,4904,4904,1978,3398,4904,143,394,4889,4886, - 4877,5309,5696,5697,5698,4924,5532,2617,2756,1266, - 5265,5603,5604,5526,5533,5505,5531,5530,5527,5528, - 5265,5506,35,5069,4904,5623,5069,1,5069,5069, - 4904,5069,5069,5069,4904,4904,4904,5230,4904,4904, - 45,5265,4889,4886,5309,5309,5069,5069,454,5277, - 5069,45,2234,4904,4904,4904,4904,4904,4904,4904, - 4904,4904,4904,4904,4904,4904,4904,4904,4904,4904, - 4904,4904,4904,4904,4904,4904,4904,4904,4904,5069, - 2944,2832,4904,4904,4904,5069,4904,435,5233,5069, - 5069,5069,5265,5069,5069,420,2273,346,4911,4907, - 3248,5309,919,2529,3013,5276,5596,4898,5069,5069, - 5069,5069,5069,5069,5069,5069,5069,5069,5069,5069, - 5069,5069,5069,5069,5069,5069,5069,5069,5069,5069, - 5069,5069,5069,5069,5265,8813,8813,5069,5069,5069, - 5265,5069,1,4970,4966,3396,4974,2672,3751,3013, - 1,3773,4930,4198,3675,2703,1266,4957,4963,4936, - 4939,4951,4948,4954,4945,4942,4933,4960,3817,3795, - 5290,629,5265,953,1022,5292,981,3259,996,5293, - 5291,944,133,5286,5288,5289,5287,296,5307,368, - 4873,4869,3248,1,919,1,3013,5265,1,1303, - 3966,5696,5697,5698,45,45,5265,512,45,4889, - 4886,3396,727,2672,3751,3013,1769,3773,1110,55, - 3675,2703,5265,5536,5534,5543,5542,5538,5539,5537, - 5540,5541,5544,5535,3817,3795,5290,629,5265,953, - 1022,5292,981,3259,996,5293,5291,944,1266,5286, - 5288,5289,5287,1,4873,4869,4313,1941,919,1130, - 3013,1,4873,4869,3248,1303,919,5265,3013,5084, - 2617,2756,5276,2697,348,5275,2475,3405,5274,5272, - 45,4889,4886,3396,727,2672,3751,3013,1769,3773, - 1110,453,3675,2703,5265,5536,5534,5543,5542,5538, - 5539,5537,5540,5541,5544,5535,3817,3795,5290,629, - 1,953,1022,5292,981,3259,996,5293,5291,944, - 1266,5286,5288,5289,5287,5265,4911,4907,4313,5309, - 919,2529,3013,1266,5596,5087,3385,1303,1,4873, - 4869,5164,5265,5167,5276,5170,5275,5265,5265,5274, - 4901,5272,45,4889,4886,3396,727,2672,3751,3013, - 5277,3773,1110,5265,3675,2703,5265,5536,5534,5543, - 5542,5538,5539,5537,5540,5541,5544,5535,3817,3795, - 5290,629,5265,953,1022,5292,981,3259,996,5293, - 5291,944,5265,5286,5288,5289,5287,314,5201,5196, - 4313,5143,919,5193,3013,5625,5190,5702,349,1303, - 5265,5284,5285,5265,5060,5057,5276,149,4889,4886, - 3396,727,2672,3751,3013,371,3773,1110,5773,3675, - 2703,2174,5536,5534,5543,5542,5538,5539,5537,5540, - 5541,5544,5535,3817,3795,5290,629,436,953,1022, - 5292,981,3259,996,5293,5291,944,2184,5286,5288, - 5289,5287,346,45,45,2500,5309,1266,2529,5265, - 5265,5596,3839,1264,1303,3839,1264,4880,5273,45, - 45,1,4970,4966,3396,4974,2672,3751,3013,5265, - 3773,4930,4207,3675,2703,1172,4957,4963,4936,4939, - 4951,4948,4954,4945,4942,4933,4960,3817,3795,5290, - 629,5265,953,1022,5292,981,3259,996,5293,5291, - 944,1266,5286,5288,5289,5287,1,4873,4869,4313, - 3181,919,1,3013,314,2500,5265,314,1303,992, - 342,5272,5265,45,45,45,4889,4886,3396,727, - 2672,3751,3013,5269,3773,1110,5265,3675,2703,4467, - 5536,5534,5543,5542,5538,5539,5537,5540,5541,5544, - 5535,3817,3795,5290,629,35,953,1022,5292,981, - 3259,996,5293,5291,944,5265,5286,5288,5289,5287, - 1,1266,5265,580,1,5730,5724,342,387,5728, - 5277,342,5722,5723,1,4883,342,4081,5265,4889, - 4886,2783,727,5072,5230,3013,5753,5754,386,5731, - 5733,230,5265,5284,5285,5265,1,4873,4869,3248, - 5277,919,5265,3013,5265,5529,5536,5534,5543,5542, - 5538,5539,5537,5540,5541,5544,5535,393,4892,864, - 3242,386,792,811,2783,5734,5276,5265,2832,5755, - 5732,5532,2015,5268,2234,5233,5603,5604,5526,5533, - 5505,5531,5530,5527,5528,144,5506,2234,5744,5743, - 5756,5725,5726,5749,5750,1266,5276,5747,5748,5727, - 5729,5751,5752,5757,5737,5738,5739,5735,5736,5745, - 5746,5741,5740,5742,45,4889,4886,3396,727,2672, - 3751,3013,5265,3773,1110,4551,3675,2703,119,5536, - 5534,5543,5542,5538,5539,5537,5540,5541,5544,5535, - 3817,3795,5290,629,369,953,1022,5292,981,3259, - 996,5293,5291,944,232,5286,5288,5289,5287,5265, - 5265,5265,3303,580,3316,5730,5724,132,5529,5728, - 5265,1303,5722,5723,1,4873,4869,4313,5271,919, - 5265,3013,53,5120,5120,2273,5753,5754,528,5731, - 5733,5265,4889,4886,5532,727,919,5265,3013,5603, - 5604,5526,5533,5505,5531,5530,5527,5528,1,5506, - 2833,440,1,1,1222,1,169,4895,3861,864, - 4895,5265,792,811,3883,5734,56,5060,5057,5755, - 5732,441,45,45,5265,5309,5117,5078,1894,4727, - 5075,56,5108,5105,5270,3018,5265,1978,5744,5743, - 5756,5725,5726,5749,5750,2617,2756,5747,5748,5727, - 5729,5751,5752,5757,5737,5738,5739,5735,5736,5745, - 5746,5741,5740,5742,45,4889,4886,3396,727,2672, - 3751,3013,169,3773,1110,5265,3675,2703,3623,5536, - 5534,5543,5542,5538,5539,5537,5540,5541,5544,5535, - 3817,3795,5290,629,306,953,1022,5292,981,3259, - 996,5293,5291,944,5570,5286,5288,5289,5287,45, - 4889,4886,3396,727,2672,3751,3013,5265,3773,1110, - 5265,3675,2703,1434,5536,5534,5543,5542,5538,5539, - 5537,5540,5541,5544,5535,3817,3795,5290,629,5265, - 953,1022,5292,981,3259,996,5293,5291,944,5265, - 5286,5288,5289,5287,5265,45,4889,4886,4470,727, - 2672,3751,3013,122,3773,1110,1303,3675,2703,2923, - 5536,5534,5543,5542,5538,5539,5537,5540,5541,5544, - 5535,3817,3795,5290,629,2193,953,1022,5292,981, - 3259,996,5293,5291,944,5265,5286,5288,5289,5287, - 45,4889,4886,3396,727,2672,3751,3013,111,3773, - 1110,4664,3675,2703,2194,5536,5534,5543,5542,5538, - 5539,5537,5540,5541,5544,5535,3817,3795,5290,629, - 5265,953,1022,5292,981,3259,996,5293,5291,944, - 5265,5286,5288,5289,5287,45,4889,4886,3396,727, - 2672,3751,3013,3861,3773,1110,416,3675,2703,3883, - 5536,5534,5543,5542,5538,5539,5537,5540,5541,5544, - 5535,3817,3795,5290,629,294,953,1022,5292,981, - 3259,996,5293,5291,944,5265,5286,5288,5289,5287, - 5265,4889,4886,363,5309,3969,1,4873,4869,5164, - 1120,5167,422,5170,5529,5536,5534,5543,5542,5538, - 5539,5537,5540,5541,5544,5535,100,1,1,5265, - 1,1,5152,134,285,5152,2115,5224,83,5236, - 5532,3167,5265,5140,5137,5603,5604,5526,5533,5505, - 5531,5530,5527,5528,866,5506,5265,43,5155,5155, - 1936,5660,5155,2471,5335,5336,775,5661,5662,248, - 5050,5046,2790,5054,108,5265,5284,5285,1,1120, - 919,4234,3013,5001,5037,5043,5016,5019,5031,5028, - 5034,5025,5022,5013,5040,5276,5307,3289,4921,35, - 386,386,5099,386,386,5099,386,5102,5099,4992, - 5099,3723,5265,386,4986,4983,5010,4989,4980,4995, - 4998,5007,5004,1,4977,5265,2417,2390,2801,4883, - 5660,364,12,4746,107,775,5661,5662,5265,386, - 5081,656,3103,8,386,386,386,386,386,386, - 386,386,386,3622,386,295,5284,5285,5102,931, - 38,387,387,5093,387,387,5093,387,5096,5093, - 5265,5093,5265,5102,387,1,5218,5218,235,5218, - 235,235,235,5221,235,5265,235,136,445,8823, - 103,45,45,2028,5309,5265,5209,364,131,5206, - 387,8,3292,5081,5265,387,387,387,387,387, - 387,387,387,387,5265,387,45,2471,364,5096, - 5309,5265,4889,4886,135,727,919,130,3013,5215, - 5265,1167,3527,1937,5096,2785,1,5218,5218,235, - 5218,235,235,235,235,235,227,235,121,5265, - 8823,8,5111,120,2471,1,1298,2928,2500,43, - 5149,5149,5761,5084,41,47,2466,1,1,5218, - 5218,235,5218,235,235,235,5227,235,444,235, - 2417,2390,8823,5265,5180,5176,2617,2756,5265,5114, - 5215,4743,1167,5265,1937,5063,2785,2234,1,5218, - 5218,235,5218,235,235,235,5221,235,127,235, - 5265,5265,8823,3633,1266,2617,2756,2417,2390,5265, - 3212,2646,5215,5761,1167,402,1937,5273,2785,5087, - 5696,5697,5698,5158,3124,5265,5161,5307,3861,226, - 42,5187,5184,3861,3883,5265,5108,5105,5265,3883, - 5265,623,5215,5265,1167,5761,1937,5265,2785,1, - 5218,5218,235,5218,235,235,235,5221,235,227, - 235,5265,376,8823,5265,1,5218,5218,235,5218, - 235,235,235,235,235,5761,235,2466,5265,8823, - 5272,1,5218,5218,235,5218,235,235,235,235, - 235,5265,235,1,3563,8823,394,5284,5285,5275, - 1,5275,5274,5215,5274,1167,3968,1937,5239,2785, - 5265,8772,8726,2065,233,5265,8772,8726,1,5215, - 227,1167,1,1937,313,2785,5271,56,5529,504, - 199,5285,1,199,502,5215,5761,1167,5265,1937, - 524,2785,1,5218,5218,235,5218,235,235,235, - 235,235,5761,235,5532,81,8823,5285,5265,5603, - 5604,5526,5533,5505,5531,5530,5527,5528,5761,5506, - 234,5272,1,56,5265,5265,5265,5284,4677,4678, - 171,3164,3164,5265,5529,5212,4685,5265,4090,5265, - 4197,5265,5270,4186,4698,5265,5215,1,1167,4679, - 1937,5265,2785,5284,4726,5265,524,517,3526,5265, - 5532,2814,4753,506,2,5603,5604,5526,5533,5505, - 5531,5530,5527,5528,1,5506,5265,5265,5265,5761, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,43,5265,171,2868,5265,5265, - 5265,5265,2749,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,2904,5265,5265,3124,5265,5265,5265,5265, - 5265,1899,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,796,5265,5265,5265,5265,5265,5265, - 5265,5265,4254,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,3164 + 1,1,1,1,1,1,1,1,5326,1, + 1775,1,1289,5326,2349,1,1,1,5337,5326, + 1,1,1,5326,5345,5346,5509,5330,296,1375, + 2706,4204,2206,4119,2611,2768,2689,1646,2688,2577, + 2648,45,4947,4944,3483,922,3794,3904,4730,4234, + 3926,1172,3882,3860,3025,5590,5597,5595,5604,5603, + 5599,5600,5598,5601,5602,5605,5596,3970,3948,5351, + 631,142,961,1030,5353,987,3346,1004,5354,5352, + 931,5593,5347,5349,5350,5348,5664,5665,5587,5594, + 5566,5592,5591,5588,5589,306,5567,1995,1343,5326, + 4947,4944,5723,922,672,5631,4730,2635,5724,5725, + 5326,5185,5185,235,5181,235,235,235,5189,235, + 1,129,452,235,1,1,1,1,1,1, + 1,1,1,1,1,1,5326,5329,306,231, + 5326,4969,4965,3063,5370,672,2951,4730,5631,5657, + 1,2987,4929,5590,446,1,1,1,1,1, + 1,1,1,1,5178,1,2525,143,566,348, + 592,1,3630,44,4976,4973,1,1,1,5593, + 907,415,5737,235,5664,5665,5587,5594,5566,5592, + 5591,5588,5589,1,5567,437,321,5824,5326,5185, + 5185,235,5181,235,235,235,5228,235,1,2653, + 2746,235,1,1,1,1,1,1,1,1, + 1,1,1,1,5759,5760,5761,625,1306,126, + 368,4925,4921,3335,1,672,1,4730,1,1, + 3299,3274,5326,1,1,1,1,1,1,1, + 1,1,5178,1,2525,1306,566,4920,337,1, + 35,51,4985,4985,1,1,1,1180,3836,414, + 5737,235,5326,4947,4944,39,922,672,4962,4730, + 5326,4962,371,4962,4962,5824,4962,4962,4962,1306, + 2800,346,4969,4965,3335,5370,672,2951,4730,1134, + 5657,4962,4962,5664,5665,4962,5326,230,2540,5759, + 5760,5761,5759,5760,5761,4982,99,147,5326,5124, + 147,5590,5597,5595,5604,5603,5599,5600,5598,5601, + 5602,5605,5596,422,4962,144,1,4925,4921,3063, + 4962,672,322,4730,4962,4962,4962,5593,4962,4962, + 1306,1214,5664,5665,5587,5594,5566,5592,5591,5588, + 5589,43,5567,4962,4962,4962,4962,4962,4962,4962, + 4962,4962,4962,4962,4962,4962,4962,4962,4962,4962, + 4962,4962,4962,4962,4962,4962,4962,4962,4962,1823, + 456,5326,4962,4962,5127,4962,4962,5127,5326,5127, + 5127,1306,5127,5127,5127,5326,4925,4921,3063,1, + 672,1,4730,455,1,5368,395,5127,5127,2256, + 388,5127,2256,5326,1780,1737,1694,1651,1608,1565, + 1522,1479,1436,1393,3608,1180,438,3608,314,5259, + 5254,3063,5198,672,5251,4730,2800,5248,35,4956, + 5127,513,1,4925,4921,5219,5127,5222,359,5225, + 5127,5127,5127,128,5127,5127,4932,346,45,45, + 2605,5370,4959,2951,3299,3274,5657,5860,4935,5127, + 5127,5127,5127,5127,5127,5127,5127,5127,5127,5127, + 5127,5127,5127,5127,5127,5127,5127,5127,5127,5127, + 5127,5127,5127,5127,5127,5326,5118,5115,5127,5127, + 349,5127,5127,1,5028,5024,3483,5032,3794,3904, + 4730,877,3926,4988,3882,3860,1306,5326,5015,5021, + 4994,4997,5009,5006,5012,5003,5000,4991,5018,3970, + 3948,5351,631,5326,961,1030,5353,987,3346,1004, + 5354,5352,931,5684,5347,5349,5350,5348,5326,5259, + 5254,3063,5198,672,5251,4730,5326,5248,244,1306, + 1343,5145,5326,5345,5346,45,45,369,514,45, + 4947,4944,3483,922,3794,3904,4730,5231,3926,1081, + 3882,3860,5779,5326,5597,5595,5604,5603,5599,5600, + 5598,5601,5602,5605,5596,3970,3948,5351,631,5326, + 961,1030,5353,987,3346,1004,5354,5352,931,404, + 5347,5349,5350,5348,442,1,1,5213,1,5326, + 4953,2032,5216,4953,3992,1047,1343,1,4925,4921, + 3335,133,672,4941,4730,5139,1259,5326,5118,5115, + 5333,45,4947,4944,3483,922,3794,3904,4730,4938, + 3926,1081,3882,3860,5326,5326,5597,5595,5604,5603, + 5599,5600,5598,5601,5602,5605,5596,3970,3948,5351, + 631,119,961,1030,5353,987,3346,1004,5354,5352, + 931,5326,5347,5349,5350,5348,1306,5326,1,5201, + 5201,795,5198,5326,2951,5326,364,5657,1343,3992, + 1047,5142,2794,5334,5326,4941,149,4947,4944,3483, + 922,3794,3904,4730,294,3926,1081,3882,3860,2653, + 2746,5597,5595,5604,5603,5599,5600,5598,5601,5602, + 5605,5596,3970,3948,5351,631,5326,961,1030,5353, + 987,3346,1004,5354,5352,931,5765,5347,5349,5350, + 5348,1,4925,4921,5219,5326,5222,315,5225,5336, + 2903,4014,364,1343,5335,1000,5333,4036,45,45, + 45,4947,4944,3483,922,3794,3904,4730,4938,3926, + 1081,3882,3860,364,995,5597,5595,5604,5603,5599, + 5600,5598,5601,5602,5605,5596,3970,3948,5351,631, + 134,961,1030,5353,987,3346,1004,5354,5352,931, + 5326,5347,5349,5350,5348,1,4925,4921,3063,136, + 672,1,4730,314,2605,5326,1087,1343,314,342, + 2493,5326,5326,5338,4941,1,5028,5024,3483,5032, + 3794,3904,4730,5326,3926,4988,3882,3860,5326,2493, + 5015,5021,4994,4997,5009,5006,5012,5003,5000,4991, + 5018,3970,3948,5351,631,4979,961,1030,5353,987, + 3346,1004,5354,5352,931,55,5347,5349,5350,5348, + 1306,443,45,45,5166,5370,342,5136,363,5337, + 5133,342,1343,2439,2412,342,5836,45,45,45, + 4947,4944,3483,922,3794,3904,4730,5330,3926,1081, + 3882,3860,2439,2412,5597,5595,5604,5603,5599,5600, + 5598,5601,5602,5605,5596,3970,3948,5351,631,1130, + 961,1030,5353,987,3346,1004,5354,5352,931,5326, + 5347,5349,5350,5348,1,232,135,1296,5326,5793, + 5787,1,5326,5791,5326,5785,5786,5326,4129,5590, + 5336,5291,5326,4947,4944,5335,922,5130,45,4730, + 5816,5817,5370,5794,5796,233,2493,5326,4947,4944, + 5326,922,5130,132,4730,5593,56,5118,5115,5590, + 5664,5665,5587,5594,5566,5592,5591,5588,5589,388, + 5567,5326,1,789,1947,2515,778,851,2601,5797, + 5297,5169,5294,5795,5818,5593,579,5329,131,1948, + 5664,5665,5587,5594,5566,5592,5591,5588,5589,4950, + 5567,2069,5807,5806,5819,5788,5789,5812,5813,2439, + 2412,5810,5811,5790,5792,5814,5815,5820,5800,5801, + 5802,5798,5799,5808,5809,5804,5803,5805,45,4947, + 4944,3483,922,3794,3904,4730,5337,3926,1081,3882, + 3860,2653,2746,5597,5595,5604,5603,5599,5600,5598, + 5601,5602,5605,5596,3970,3948,5351,631,5326,961, + 1030,5353,987,3346,1004,5354,5352,931,234,5347, + 5349,5350,5348,5326,418,5326,2653,2746,1296,424, + 5793,5787,5590,5326,5791,1343,5785,5786,1,4925, + 4921,3063,56,672,5326,4730,5346,1,5326,5345, + 5346,5816,5817,2800,5794,5796,5338,5291,5593,56, + 5163,5160,2149,5664,5665,5587,5594,5566,5592,5591, + 5588,5589,5346,5567,100,1,1,5326,1,5326, + 5207,5326,5326,5207,789,5326,5326,778,851,5334, + 5797,5326,127,2169,5795,5818,103,45,45,4252, + 5370,2515,5270,3299,3274,5267,2119,2539,5294,2963, + 108,2032,5337,5807,5806,5819,5788,5789,5812,5813, + 107,3187,5810,5811,5790,5792,5814,5815,5820,5800, + 5801,5802,5798,5799,5808,5809,5804,5803,5805,45, + 4947,4944,3483,922,3794,3904,4730,1949,3926,1081, + 3882,3860,5333,5326,5597,5595,5604,5603,5599,5600, + 5598,5601,5602,5605,5596,3970,3948,5351,631,4750, + 961,1030,5353,987,3346,1004,5354,5352,931,2082, + 5347,5349,5350,5348,45,4947,4944,3483,922,3794, + 3904,4730,5326,3926,1081,3882,3860,5326,2278,5597, + 5595,5604,5603,5599,5600,5598,5601,5602,5605,5596, + 3970,3948,5351,631,4681,961,1030,5353,987,3346, + 1004,5354,5352,931,5326,5347,5349,5350,5348,295, + 5345,5346,5326,45,4947,4944,3609,922,3794,3904, + 4730,1343,3926,1081,3882,3860,5326,5326,5597,5595, + 5604,5603,5599,5600,5598,5601,5602,5605,5596,3970, + 3948,5351,631,5326,961,1030,5353,987,3346,1004, + 5354,5352,931,5326,5347,5349,5350,5348,45,4947, + 4944,3483,922,3794,3904,4730,5326,3926,1081,3882, + 3860,4371,130,5597,5595,5604,5603,5599,5600,5598, + 5601,5602,5605,5596,3970,3948,5351,631,41,961, + 1030,5353,987,3346,1004,5354,5352,931,530,5347, + 5349,5350,5348,45,4947,4944,3483,922,3794,3904, + 4730,5326,3926,1081,3882,3860,1,122,5597,5595, + 5604,5603,5599,5600,5598,5601,5602,5605,5596,3970, + 3948,5351,631,506,961,1030,5353,987,3346,1004, + 5354,5352,931,5326,5347,5349,5350,5348,5326,4947, + 4944,1,5370,83,2605,2575,2801,3041,859,5139, + 2653,2746,5590,5597,5595,5604,5603,5599,5600,5598, + 5601,5602,5605,5596,8,5326,5326,5345,5346,5396, + 5397,672,5264,4730,1,4925,4921,3335,5593,672, + 5326,4730,504,5664,5665,5587,5594,5566,5592,5591, + 5588,5589,4121,5567,396,4947,4944,4014,5370,5723, + 1306,5686,3485,4036,2635,5724,5725,248,5108,5104, + 3379,5112,42,5245,5242,5142,5326,859,5326,8890, + 8890,5059,5095,5101,5074,5077,5089,5086,5092,5083, + 5080,5071,5098,1306,47,5264,35,388,388,5154, + 388,388,5154,388,5157,5154,659,5050,45,5154, + 388,4739,5044,5041,5068,5047,5038,5053,5056,5065, + 5062,5326,5035,799,5121,5326,4935,1,5723,53, + 5175,5175,5368,2635,5724,5725,388,5326,5163,5160, + 1,388,388,388,388,388,388,388,388,388, + 5326,388,396,5345,5346,5157,5326,2800,38,389, + 389,5148,389,389,5148,389,5151,5148,2331,5326, + 5157,5148,389,1,5279,5279,235,5279,235,235, + 235,5282,235,5172,45,376,235,8552,5370,5326, + 2920,43,5210,5210,2822,3025,5210,5336,389,121, + 5326,120,5335,389,389,389,389,389,389,389, + 389,389,5326,389,5326,4947,4944,5151,5370,3041, + 5332,1974,5338,1,979,5326,3776,5276,3692,3741, + 2114,1289,5151,2349,1,5279,5279,235,5279,235, + 235,235,235,235,227,1559,5326,235,8552,1, + 5279,5279,235,5279,235,235,235,5288,235,2847, + 5824,5326,235,8552,2114,5326,5195,5192,1,5279, + 5279,235,5279,235,235,235,5282,235,5337,1, + 5326,235,8552,43,5204,5204,5331,5300,5276,4014, + 3741,4014,1289,1,2349,4036,5326,4036,5759,5760, + 5761,364,1,5276,2794,3741,5326,1289,1,2349, + 5336,4122,5326,5238,5234,5335,169,5326,5326,5368, + 226,5824,5276,5326,3741,5332,1289,1,2349,5326, + 8801,8084,5326,8801,8084,5332,5824,1473,5326,227, + 1,5279,5279,235,5279,235,235,235,5282,235, + 5333,519,5326,235,8552,5824,1,5279,5279,235, + 5279,235,235,235,235,235,5368,364,5326,235, + 8552,4116,1,5279,5279,235,5279,235,235,235, + 235,235,169,5326,1,235,8552,4747,364,56, + 447,5331,199,5345,5276,1,3741,199,1289,1, + 2349,5331,5326,526,5326,4239,5326,171,1430,4509, + 5276,227,3741,3829,1289,5326,2349,5326,3720,5345, + 4360,5326,111,81,3837,4605,5276,5824,3741,313, + 1289,5326,2349,1,5279,5279,235,5279,235,235, + 235,235,235,5824,5326,285,235,8552,5285,5326, + 5326,5326,2416,5273,4707,5326,1,5326,4694,5824, + 2791,4250,5326,5326,5326,4123,4702,4507,5326,526, + 2794,4714,5326,171,5326,3017,508,4756,2,5326, + 5326,5326,5326,5326,5326,5326,5326,5276,5326,3741, + 5326,1289,5326,2349,5326,5326,5326,5326,5326,4339, + 5326,5326,5326,5326,5326,5326,5326,5326,43,5326, + 5326,5326,5326,5326,5326,5326,5326,2876,5326,5326, + 5824,5326,5326,2930,5326,5326,1952,5326,5326,5326, + 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, + 5326,5326,5326,5326,5326,936,5326,5326,5326,5326, + 5326,4524 }; }; public final static char termAction[] = TermAction.termAction; @@ -1711,59 +1721,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asb { public final static char asb[] = {0, - 474,1,70,63,63,454,937,937,570,454, - 937,448,1064,414,289,124,913,1068,1003,3, - 3,934,31,165,121,937,937,472,937,3, - 121,448,454,930,121,414,288,368,472,472, - 472,472,1066,368,259,398,261,415,415,415, - 415,415,415,415,415,415,939,945,950,947, - 954,952,959,957,961,960,962,168,963,165, - 978,452,757,3,3,1064,992,1003,926,1003, - 711,1003,713,1003,987,1066,454,165,165,3, - 762,930,272,288,398,31,31,31,31,454, - 221,601,939,121,121,112,398,831,30,913, - 398,939,912,912,221,414,415,415,415,415, - 415,415,415,415,415,415,415,415,415,415, - 415,415,415,415,415,414,414,414,414,414, - 414,414,414,414,414,414,414,415,1068,454, - 640,639,640,934,521,454,925,566,642,279, - 926,647,454,454,454,566,640,930,929,414, - 458,285,121,121,640,640,640,640,566,121, - 415,1064,672,662,661,334,1010,1010,1066,261, - 165,30,414,452,121,451,453,451,121,165, - 947,947,945,945,945,952,952,952,952,950, - 950,957,954,954,960,959,961,829,962,757, - 398,521,925,280,925,566,925,647,647,454, - 566,454,930,288,368,368,368,368,454,454, - 112,121,674,676,454,913,415,31,943,77, - 121,454,453,913,414,459,454,521,829,714, - 472,568,327,819,521,925,925,1070,454,647, - 459,457,458,454,414,414,414,414,368,368, - 121,666,654,665,676,566,452,121,943,1064, - 1068,454,452,913,719,926,640,472,451,924, - 821,368,462,58,1071,454,459,415,454,121, - 121,121,121,221,221,764,414,663,663,670, - 1064,484,121,454,943,944,943,414,77,219, - 939,1068,452,719,719,775,537,452,925,925, - 448,983,466,415,829,72,676,1070,454,1066, - 1066,454,121,121,764,414,414,674,654,764, - 1045,943,221,415,165,219,984,459,872,874, - 210,368,714,811,719,719,537,452,925,926, - 1066,821,415,415,676,454,454,454,766,764, - 944,121,165,774,210,872,517,1066,459,639, - 472,266,266,984,926,378,462,454,368,121, - 454,454,766,766,775,719,984,983,121,1066, - 454,537,775,537,638,638,919,379,1066,454, - 221,921,368,766,719,448,984,454,454,537, - 31,31,919,378,829,415,829,984,377,368, - 368,368,379,368,454,176,984,984,454,926, - 121,921,677,459,454,984,639,370,368,370, - 379,829,379,398,398,396,652,398,984,984, - 75,919,923,120,984,709,484,379,121,448, - 121,396,210,368,121,919,923,31,266,121, - 121,1058,379,75,379,984,210,414,379,376, - 638,926,926,1060,414,377,221,984,121,451, - 379,121,984,379 + 888,1,10,3,3,355,530,530,1009,355, + 530,349,975,315,116,161,880,979,914,460, + 460,527,488,202,67,530,530,409,530,460, + 67,349,355,523,67,315,20,986,392,409, + 409,409,409,977,392,108,299,110,316,316, + 316,316,316,316,316,316,316,532,538,543, + 540,547,545,552,550,554,553,555,205,556, + 202,571,353,748,460,460,975,903,914,986, + 914,989,914,991,914,898,977,355,202,202, + 460,753,523,258,20,116,299,488,488,488, + 488,355,70,1040,532,67,67,58,299,765, + 487,880,299,532,879,879,70,315,316,316, + 316,316,316,316,316,316,316,316,316,316, + 316,316,316,316,316,316,316,315,315,315, + 315,315,315,315,315,315,315,315,315,316, + 979,355,1079,1078,1079,527,586,355,985,631, + 635,265,986,697,355,355,355,631,1079,523, + 522,315,116,67,67,1079,1079,1079,1079,631, + 67,316,975,658,648,647,358,921,921,977, + 110,202,487,315,353,67,352,354,352,67, + 202,540,540,538,538,538,545,545,545,545, + 543,543,550,547,547,553,552,554,1007,555, + 748,299,586,985,266,985,631,985,697,697, + 355,631,355,523,19,392,392,392,392,355, + 355,58,67,660,662,355,880,316,488,536, + 23,67,355,354,880,315,20,355,586,1007, + 992,409,633,154,997,586,985,985,702,355, + 697,20,394,19,355,17,115,315,315,315, + 315,392,392,67,652,640,651,662,631,353, + 67,536,975,979,355,353,880,710,986,1079, + 409,352,984,999,392,399,515,703,355,20, + 316,355,17,17,67,67,67,67,70,70, + 755,315,649,649,656,975,808,67,355,536, + 537,536,315,23,256,532,979,353,710,710, + 416,602,353,985,985,349,576,403,316,1007, + 12,662,702,355,977,977,355,67,67,755, + 315,315,660,640,755,956,536,70,316,202, + 256,577,20,806,841,247,392,992,452,710, + 710,602,353,985,986,977,999,316,316,662, + 355,355,355,757,755,537,67,202,415,247, + 806,411,977,20,1078,409,580,580,577,986, + 279,399,355,392,67,355,355,757,757,416, + 710,577,576,67,977,355,602,416,602,1077, + 1077,886,280,977,355,70,981,392,757,710, + 349,577,355,355,602,488,488,886,279,1007, + 316,1007,577,278,392,392,392,280,392,355, + 213,577,577,355,986,67,981,663,20,355, + 577,1078,271,392,271,280,1007,280,299,299, + 297,520,299,577,577,15,886,983,66,577, + 695,808,280,67,349,67,297,247,392,67, + 886,983,488,580,67,67,969,280,15,280, + 577,247,315,280,277,1077,986,986,971,315, + 278,70,577,67,352,280,67,577,280 }; }; public final static char asb[] = Asb.asb; @@ -1771,114 +1781,114 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asr { public final static byte asr[] = {0, - 119,0,31,62,32,33,63,7,34,35, - 36,37,57,38,39,41,42,43,28,26, - 27,9,6,12,13,5,29,65,44,3, - 10,66,61,67,68,16,25,15,21,19, - 20,22,23,18,17,24,47,52,53,14, - 51,50,48,45,46,49,55,1,2,4, - 40,0,75,65,73,95,74,64,59,119, - 3,8,69,11,70,0,96,90,12,13, - 91,92,88,89,30,93,94,97,98,99, - 100,101,102,117,73,95,70,104,105,106, - 107,108,109,110,111,112,113,118,71,11, - 119,65,1,2,9,6,4,3,59,69, - 74,8,0,62,63,3,10,32,36,34, - 31,39,16,25,15,21,19,20,22,23, - 18,17,24,41,44,42,43,28,38,33, - 37,5,7,4,26,27,9,6,12,13, - 29,35,1,2,118,8,0,65,73,95, - 69,118,74,71,119,15,16,31,62,17, - 32,33,18,19,20,63,34,21,22,35, - 36,37,57,38,39,10,23,24,25,41, - 42,43,28,26,27,12,13,29,44,8, - 9,6,4,11,1,2,7,3,5,0, - 8,74,15,16,31,17,32,33,18,19, - 20,34,21,22,35,36,37,57,38,39, - 10,23,24,25,41,42,43,28,3,26, - 27,9,6,12,13,29,4,44,5,7, - 1,2,63,62,0,65,70,69,1,2, - 0,8,73,118,74,11,69,0,4,8, - 73,64,30,0,69,11,119,71,62,63, - 57,26,27,9,6,12,13,29,35,3, - 41,44,42,43,28,38,33,37,16,25, - 15,21,19,20,22,23,18,17,24,32, - 36,34,31,39,64,8,7,1,2,5, - 4,10,0,47,15,16,45,17,48,14, - 18,49,50,19,20,51,7,52,21,22, - 53,55,23,40,24,46,25,1,2,8, - 59,9,6,5,4,74,11,3,0,87, - 114,115,116,54,73,120,122,71,72,75, - 58,56,60,77,79,85,83,76,81,82, - 84,86,64,78,80,11,8,47,61,45, - 66,48,14,49,50,51,52,53,67,55, - 68,40,46,57,62,63,10,32,36,34, - 31,39,16,25,15,21,19,20,22,23, - 18,17,24,41,44,42,43,28,38,33, - 37,26,27,12,13,29,35,9,6,3, - 4,7,5,1,2,0,70,69,71,8, - 0,8,64,69,0,73,8,59,70,69, - 11,30,0,9,6,4,3,5,7,72, - 1,2,0,47,15,16,61,45,17,66, - 48,14,18,49,50,19,20,51,52,21, - 22,53,67,55,10,68,23,40,24,46, - 25,1,2,4,95,0,8,64,70,0, - 87,56,7,114,115,116,58,8,3,9, - 6,5,73,71,11,72,47,15,16,61, - 45,17,66,48,14,18,49,50,19,20, + 121,0,75,65,73,95,74,64,59,121, + 3,8,70,13,69,0,13,121,70,8, + 71,0,96,90,11,12,91,92,88,89, + 30,93,94,97,98,99,100,101,102,117, + 73,95,69,104,105,106,107,108,109,110, + 111,112,113,118,71,13,121,65,1,2, + 9,6,4,3,59,70,74,8,0,8, + 74,15,16,31,17,32,33,18,19,20, + 34,21,22,35,36,37,57,38,39,10, + 23,24,25,41,42,43,28,3,26,27, + 9,6,11,12,29,4,44,5,7,1, + 2,63,62,0,71,62,63,57,26,27, + 9,6,11,12,29,35,3,41,44,42, + 43,28,38,33,37,16,25,15,21,19, + 20,22,23,18,17,24,32,36,34,31, + 39,64,8,7,1,2,5,4,10,0, + 62,63,3,10,32,36,34,31,39,16, + 25,15,21,19,20,22,23,18,17,24, + 41,44,42,43,28,38,33,37,5,7, + 4,26,27,9,6,11,12,29,35,1, + 2,118,8,0,65,73,95,70,118,74, + 71,121,15,16,31,62,17,32,33,18, + 19,20,63,34,21,22,35,36,37,57, + 38,39,10,23,24,25,41,42,43,28, + 26,27,11,12,29,44,8,9,6,4, + 13,1,2,7,3,5,0,8,73,118, + 74,13,70,0,4,8,73,64,30,0, + 87,114,115,116,54,73,119,122,71,72, + 75,58,56,60,77,79,85,83,76,81, + 82,84,86,64,78,80,13,8,47,61, + 45,66,48,14,49,50,51,52,53,67, + 55,68,40,46,57,62,63,10,32,36, + 34,31,39,16,25,15,21,19,20,22, + 23,18,17,24,41,44,42,43,28,38, + 33,37,26,27,11,12,29,35,9,6, + 3,4,7,5,1,2,0,47,15,16, + 45,17,48,14,18,49,50,19,20,51, + 7,52,21,22,53,55,23,40,24,46, + 25,1,2,8,59,9,6,5,4,74, + 13,3,0,8,70,71,69,0,8,64, + 70,0,73,8,59,69,70,13,30,0, + 8,64,69,0,64,61,45,17,66,48, + 18,49,50,19,20,51,52,21,22,53, + 67,55,68,23,40,24,46,25,16,15, + 47,8,3,9,6,13,58,60,87,14, + 54,7,1,2,5,4,10,56,0,31, + 62,32,33,63,7,34,35,36,37,57, + 38,39,41,42,43,28,26,27,9,6, + 11,12,5,29,65,44,3,10,66,61, + 67,68,16,25,15,21,19,20,22,23, + 18,17,24,47,52,53,14,51,50,48, + 45,46,49,55,1,2,4,40,0,76, + 0,57,45,7,46,5,1,2,4,75, + 64,120,103,26,27,59,3,96,90,6, + 91,92,11,12,89,88,30,93,94,97, + 98,9,99,100,101,65,95,74,121,69, + 104,105,106,107,108,109,110,111,112,113, + 73,118,71,102,117,70,13,8,0,65, + 69,70,1,2,0,87,56,7,114,115, + 116,58,8,3,9,6,5,73,71,13, + 72,47,15,16,61,45,17,66,48,14, + 18,49,50,19,20,51,52,21,22,53, + 67,55,10,68,23,40,24,46,25,4, + 1,2,54,0,4,8,73,64,0,9, + 6,4,5,7,1,2,3,59,65,69, + 70,8,74,95,0,7,5,3,59,6, + 9,95,47,15,16,45,17,66,48,14, + 18,49,50,19,20,51,52,21,22,53, + 67,55,10,68,23,40,24,46,25,1, + 2,4,74,8,61,0,1,2,8,71, + 0,40,1,2,4,114,115,116,0,60, + 47,15,16,61,45,17,66,48,87,14, + 18,49,50,19,20,51,56,52,21,22, + 53,67,55,10,68,23,58,40,24,46, + 25,8,3,9,4,71,13,7,5,1, + 2,54,6,0,45,46,57,8,65,95, + 69,70,74,0,62,63,26,27,9,6, + 11,12,5,29,35,3,4,7,41,44, + 42,43,38,33,37,16,25,15,21,19, + 20,22,23,18,17,24,10,32,36,34, + 31,39,59,1,2,28,0,47,15,16, + 61,45,17,66,48,14,18,49,50,19, + 20,51,52,21,22,53,67,55,10,68, + 23,40,24,46,25,1,2,4,95,0, + 61,45,17,66,48,18,49,50,19,20, 51,52,21,22,53,67,55,10,68,23, - 40,24,46,25,4,1,2,54,0,47, - 15,16,61,45,17,66,48,14,18,49, - 50,19,20,51,52,21,22,53,67,55, - 10,68,23,40,24,46,25,1,2,4, - 63,62,12,13,6,91,92,99,9,100, - 5,29,30,107,108,104,105,106,112,111, - 113,89,88,109,110,97,98,93,94,101, - 102,26,27,90,103,3,59,70,69,65, - 0,4,8,73,64,0,1,2,8,71, - 0,76,0,9,6,4,5,7,1,2, - 3,59,65,70,69,8,74,95,0,7, - 5,3,59,6,9,95,47,15,16,45, - 17,66,48,14,18,49,50,19,20,51, - 52,21,22,53,67,55,10,68,23,40, - 24,46,25,1,2,4,74,8,61,0, - 54,73,4,64,8,1,2,0,60,47, - 15,16,61,45,17,66,48,87,14,18, - 49,50,19,20,51,56,52,21,22,53, - 67,55,10,68,23,58,40,24,46,25, - 8,3,9,4,71,11,7,5,1,2, - 54,6,0,45,46,57,8,65,95,70, - 69,74,0,64,61,45,17,66,48,18, - 49,50,19,20,51,52,21,22,53,67, - 55,68,23,40,24,46,25,16,15,47, - 8,3,9,6,11,58,60,87,14,54, - 7,1,2,5,4,10,56,0,11,8, - 7,5,3,1,2,6,9,4,73,0, - 62,63,26,27,9,6,12,13,5,29, - 35,3,4,7,41,44,42,43,38,33, - 37,16,25,15,21,19,20,22,23,18, - 17,24,10,32,36,34,31,39,59,1, - 2,28,0,61,45,17,66,48,18,49, - 50,19,20,51,52,21,22,53,67,55, - 10,68,23,40,24,46,25,16,15,47, - 8,3,9,6,11,58,56,60,87,14, - 30,4,7,1,2,5,54,0,120,0, - 45,46,57,75,73,64,8,0,57,45, - 7,46,5,1,2,4,75,64,121,103, - 26,27,59,3,96,90,6,91,92,12, - 13,89,88,30,93,94,97,98,9,99, - 100,101,65,95,74,119,70,104,105,106, - 107,108,109,110,111,112,113,73,118,71, - 102,117,69,11,8,0,10,66,61,67, - 68,16,25,15,21,19,20,22,23,18, - 17,24,75,73,95,118,71,64,119,121, - 96,103,90,26,27,12,13,91,92,88, - 89,30,65,93,94,97,98,99,100,101, - 102,117,70,104,105,106,107,108,109,110, - 111,112,113,69,47,45,48,14,49,50, - 51,52,53,55,40,46,11,8,74,3, - 59,7,5,6,9,1,2,4,0,40, - 1,2,4,114,115,116,0 + 40,24,46,25,16,15,47,8,3,9, + 6,13,58,56,60,87,14,30,4,7, + 1,2,5,54,0,119,0,9,6,4, + 3,5,7,72,1,2,0,10,66,61, + 67,68,16,25,15,21,19,20,22,23, + 18,17,24,75,73,95,118,71,64,121, + 120,96,103,90,26,27,11,12,91,92, + 88,89,30,65,93,94,97,98,99,100, + 101,102,117,69,104,105,106,107,108,109, + 110,111,112,113,70,47,45,48,14,49, + 50,51,52,53,55,40,46,13,8,74, + 3,59,7,5,6,9,1,2,4,0, + 45,46,57,75,73,64,8,0,54,73, + 4,64,8,1,2,0,13,8,7,5, + 3,1,2,6,9,4,73,0,47,15, + 16,61,45,17,66,48,14,18,49,50, + 19,20,51,52,21,22,53,67,55,10, + 68,23,40,24,46,25,1,2,4,63, + 62,11,12,6,91,92,99,9,100,5, + 29,30,107,108,104,105,106,112,111,113, + 89,88,109,110,97,98,93,94,101,102, + 26,27,90,103,3,59,69,70,65,0 }; }; public final static byte asr[] = Asr.asr; @@ -1886,59 +1896,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasb { public final static char nasb[] = {0, - 157,12,48,77,77,185,12,12,146,132, - 12,157,182,118,66,84,32,12,12,162, - 162,27,5,89,265,12,12,12,12,162, - 265,206,185,162,265,67,162,12,12,12, - 12,12,183,12,44,172,185,67,67,128, - 67,67,67,67,67,67,12,12,12,12, - 12,12,12,12,12,12,12,67,12,89, - 12,210,54,34,34,182,233,234,126,234, - 164,234,50,234,227,10,185,89,89,34, - 12,111,12,65,172,39,39,39,39,185, - 93,148,12,265,265,114,1,67,82,32, - 172,12,21,21,93,108,67,67,67,67, - 67,67,67,67,67,67,67,67,67,67, - 67,67,67,67,67,67,67,67,67,67, - 67,67,67,67,67,67,108,67,12,11, - 12,12,12,140,162,166,162,248,162,12, - 126,162,248,185,11,12,12,162,111,67, - 170,12,265,265,12,12,12,12,143,265, - 67,182,113,77,77,12,12,12,10,185, - 89,39,118,210,265,209,185,209,265,89, + 160,12,17,15,15,48,12,12,270,199, + 12,160,184,147,64,81,46,12,12,165, + 165,41,5,86,268,12,12,12,12,165, + 268,204,48,165,268,66,165,120,12,12, + 12,12,12,185,12,54,174,48,66,66, + 195,66,66,66,66,66,66,12,12,12, + 12,12,12,12,12,12,12,12,66,12, + 86,12,208,77,33,33,184,231,232,120, + 232,244,232,133,232,225,10,48,86,86, + 33,12,137,12,140,165,174,38,38,38, + 38,48,58,272,12,268,268,127,1,66, + 72,46,174,12,25,25,58,104,66,66, + 66,66,66,66,66,66,66,66,66,66, + 66,66,66,66,66,66,66,66,66,66, + 66,66,66,66,66,66,66,66,104,66, + 12,11,12,12,12,144,165,246,165,167, + 165,12,120,165,167,48,11,12,12,165, + 137,66,64,268,268,12,12,12,12,74, + 268,66,184,126,15,15,12,12,12,10, + 48,86,38,147,208,268,207,48,207,268, + 86,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,54, - 34,241,162,162,75,31,75,162,133,11, - 31,166,111,65,12,12,12,12,166,11, - 138,265,222,162,185,32,67,39,162,79, - 265,185,219,32,67,170,185,152,12,58, - 12,12,13,196,241,75,75,255,166,133, - 170,12,12,166,108,108,108,108,12,12, - 265,12,155,12,238,30,166,265,42,140, - 12,132,166,32,162,126,12,12,183,162, - 176,12,12,183,91,248,170,67,133,265, - 265,265,265,93,93,162,67,12,12,154, - 182,238,265,166,162,73,12,108,140,220, - 12,12,210,188,162,214,162,248,162,19, - 206,152,12,67,12,101,162,251,248,183, - 183,11,265,265,111,67,67,222,204,162, - 12,42,93,67,89,220,152,170,12,214, - 197,12,51,13,214,188,238,210,19,135, - 15,157,67,67,238,11,248,248,162,111, - 73,265,89,125,176,12,12,183,170,12, - 12,96,96,152,135,169,12,248,12,265, - 11,11,61,162,214,162,152,12,265,183, - 248,238,214,162,12,12,162,105,15,11, - 93,162,12,61,188,157,152,248,59,238, - 39,39,63,121,12,67,12,152,12,12, - 12,12,122,12,133,150,152,152,133,98, - 265,111,263,170,59,152,12,103,12,12, - 122,12,122,267,267,236,12,267,152,152, - 12,162,162,265,152,12,39,122,265,157, - 265,259,162,12,265,63,61,39,96,265, - 265,162,122,12,122,152,157,108,122,103, - 12,98,98,155,67,12,193,152,265,209, - 122,265,152,122 + 77,33,234,165,165,107,45,107,165,200, + 11,45,246,137,140,12,12,12,12,246, + 11,142,268,150,165,48,46,66,38,165, + 51,268,48,192,46,66,140,48,124,12, + 112,12,12,13,249,234,107,107,170,246, + 200,140,12,12,246,23,63,104,104,104, + 104,12,12,268,12,158,12,259,44,246, + 268,31,144,12,199,246,46,165,120,12, + 12,185,165,178,12,12,185,61,167,140, + 66,200,23,12,268,268,268,268,58,58, + 165,66,12,12,157,184,259,268,246,165, + 99,12,104,144,193,12,12,208,187,165, + 212,165,167,165,91,204,124,12,66,12, + 97,165,221,167,185,185,11,268,268,137, + 66,66,150,202,165,12,31,58,66,86, + 193,124,140,12,212,250,12,134,13,212, + 187,259,208,91,109,19,160,66,66,259, + 11,167,167,165,137,99,268,86,119,178, + 12,12,185,140,12,12,155,155,124,109, + 139,12,167,12,268,11,11,95,165,212, + 165,124,12,268,185,167,259,212,165,12, + 12,165,101,19,11,58,165,12,95,187, + 160,124,167,113,259,38,38,131,115,12, + 66,12,124,12,12,12,12,116,12,200, + 122,124,124,200,88,268,137,266,140,113, + 124,12,93,12,12,116,12,116,217,217, + 257,12,217,124,124,12,165,165,268,124, + 12,38,116,268,160,268,262,165,12,268, + 131,95,38,155,268,268,165,116,12,116, + 124,160,104,116,93,12,88,88,158,66, + 12,241,124,268,207,116,268,124,116 }; }; public final static char nasb[] = Nasb.nasb; @@ -1946,33 +1956,34 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,147,145,121,144,143,5, - 2,0,150,0,165,5,164,0,154,0, - 5,2,10,7,134,0,4,187,0,54, - 2,66,0,5,7,10,2,13,4,44, - 0,138,0,2,7,3,0,177,0,5, - 1,42,0,66,133,132,0,42,103,0, - 123,0,156,0,65,42,5,7,10,2, - 13,0,136,0,110,0,75,0,4,171, - 0,169,0,13,2,10,7,5,82,0, - 185,0,4,96,0,109,0,42,56,0, - 183,0,113,0,48,42,173,4,39,0, - 60,0,32,93,94,4,0,4,30,0, - 65,39,48,67,4,42,0,5,7,10, - 13,3,1,0,42,155,0,94,93,5, - 59,0,54,66,0,4,44,166,0,4, - 39,38,0,32,94,93,2,10,7,54, - 62,4,0,5,45,2,3,0,4,65, - 0,4,44,39,0,2,62,54,7,10, - 4,89,5,0,2,45,0,115,4,48, - 81,0,4,172,0,38,54,7,10,2, - 4,152,0,94,93,54,62,59,5,7, - 10,2,0,4,48,81,83,0,2,114, - 0,22,4,5,89,0,2,5,121,117, - 118,119,13,86,0,39,175,22,4,0, - 4,48,81,101,46,5,0,2,63,0, - 5,101,161,0,5,101,184,0,44,4, - 174,0,44,4,32,0,4,44,102,0 + 3,13,7,10,148,146,121,145,144,5, + 2,0,151,0,75,0,179,0,167,5, + 166,0,158,0,5,2,10,7,135,0, + 139,0,5,7,10,2,13,4,44,0, + 4,189,0,54,2,66,0,2,45,0, + 4,173,0,2,7,3,0,4,96,0, + 187,0,65,126,40,5,7,10,2,13, + 0,171,0,54,66,0,66,134,133,0, + 13,2,10,7,5,82,0,40,56,0, + 155,0,113,0,123,0,185,0,137,0, + 48,40,175,4,39,0,110,0,40,156, + 0,40,103,0,65,39,48,67,4,40, + 0,4,39,38,0,32,93,94,4,0, + 157,0,5,1,40,0,60,0,4,65, + 0,94,93,5,59,0,4,30,0,22, + 4,5,89,0,109,0,32,94,93,2, + 10,7,54,62,4,0,2,63,0,5, + 101,186,0,4,44,39,0,2,62,54, + 7,10,4,89,5,0,115,4,48,81, + 0,2,114,0,5,7,10,13,3,1, + 0,94,93,54,62,59,5,7,10,2, + 0,4,48,81,83,0,4,44,102,0, + 5,101,163,0,2,5,121,117,118,119, + 13,86,0,4,48,81,101,46,5,0, + 4,174,0,5,45,2,3,0,38,54, + 7,10,2,4,153,0,39,177,22,4, + 0,44,4,176,0,44,4,32,0,4, + 44,168,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1981,18 +1992,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TerminalIndex { public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, - 120,11,12,66,48,52,60,68,74,75, + 11,12,120,66,48,52,60,68,74,75, 86,87,102,105,107,7,8,112,14,19, 55,61,67,84,88,90,94,97,99,104, 109,110,111,123,54,106,47,64,70,73, 76,83,89,93,98,77,95,103,1,46, - 53,58,78,121,20,63,91,101,44,33, + 53,58,78,121,20,63,91,101,33,44, 119,122,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 15,16,21,22,32,4,23,24,25,26, 27,28,5,34,35,36,37,38,39,40, - 41,42,43,80,81,82,29,117,124,51, - 3,62,116 + 41,42,43,80,81,82,29,117,51,3, + 124,62,116 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2003,8 +2014,8 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 132,137,139,0,0,138,236,136,0,230, 135,0,146,134,0,0,145,151,0,0, 152,182,161,162,163,164,165,166,167,154, - 168,127,169,170,171,0,144,129,133,172, - 0,130,141,155,140,180,0,0,0,0, + 168,127,169,170,171,0,144,129,133,130, + 172,0,141,155,140,180,0,0,0,0, 0,0,0,0,148,175,205,0,158,189, 202,206,0,0,128,0,174,0,0,0, 0,0,0,178,207,0,0,0,0,0, @@ -2012,14 +2023,14 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 160,209,210,211,0,0,0,0,149,208, 221,177,198,200,0,0,0,212,0,0, 0,241,242,150,181,0,191,192,193,194, - 195,197,0,215,218,220,0,239,0,240, - 0,142,143,147,0,0,157,159,0,173, - 0,183,184,185,186,187,190,0,196,0, - 199,204,0,0,216,217,0,222,225,227, - 229,0,233,234,235,237,238,125,0,153, - 156,0,176,0,179,0,201,214,219,0, - 223,224,226,228,0,231,232,243,244,0, - 0,0,0,0,0 + 195,197,0,215,218,0,220,0,239,0, + 240,0,142,143,147,0,0,157,159,0, + 173,0,183,184,185,186,187,190,0,196, + 0,199,204,0,0,216,217,0,0,222, + 225,227,229,0,233,234,235,237,238,125, + 0,153,156,0,176,0,179,0,201,214, + 219,0,223,224,226,228,0,231,232,243, + 244,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2027,18 +2038,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopePrefix { public final static char scopePrefix[] = { - 151,573,592,524,540,551,562,356,261,275, - 297,303,42,286,376,414,159,581,467,20, - 51,71,80,85,90,127,187,292,309,320, - 331,267,281,495,27,366,331,600,27,209, - 240,1,14,61,76,106,141,222,314,327, - 336,345,349,432,460,489,516,520,610,614, - 618,97,7,97,141,394,410,423,444,508, - 423,531,547,558,569,199,478,56,56,148, - 214,217,235,256,217,217,56,353,457,464, - 148,56,631,110,228,398,438,451,116,116, - 228,56,228,385,169,104,436,622,629,622, - 629,65,404,134,104,104,245 + 156,578,597,529,545,556,567,361,266,280, + 302,308,42,291,381,419,164,586,472,20, + 51,71,80,85,90,127,192,297,314,325, + 336,141,272,286,500,27,141,371,336,605, + 27,214,245,1,14,61,76,106,227,319, + 332,341,350,354,437,465,494,521,525,615, + 619,623,97,7,97,399,415,428,449,513, + 428,536,552,563,574,204,483,56,56,153, + 219,222,240,261,222,222,56,358,462,469, + 153,56,636,110,233,403,443,456,116,116, + 233,56,233,390,174,104,441,627,634,627, + 634,65,409,134,104,104,250 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2046,18 +2057,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,363,132,95, - 132,132,48,272,382,420,165,67,473,25, - 25,25,59,59,95,132,192,132,132,325, - 325,272,101,500,38,371,587,605,32,203, - 203,5,18,5,59,95,132,226,318,318, - 318,95,95,132,238,5,5,5,5,5, - 238,226,11,101,145,363,363,363,448,500, - 427,535,535,535,535,203,482,59,59,5, - 5,220,238,5,259,259,343,95,5,238, - 5,493,5,113,340,401,441,454,119,123, - 231,512,503,388,172,95,95,624,624,626, - 626,67,406,136,194,179,247 + 18,5,5,5,5,5,5,368,132,95, + 132,132,48,277,387,425,170,67,478,25, + 25,25,59,59,95,132,197,132,132,330, + 330,146,277,101,505,38,149,376,592,610, + 32,208,208,5,18,5,59,95,231,323, + 323,323,95,95,132,243,5,5,5,5, + 5,243,231,11,101,368,368,368,453,505, + 432,540,540,540,540,208,487,59,59,5, + 5,225,243,5,264,264,348,95,5,243, + 5,498,5,113,345,406,446,459,119,123, + 236,517,508,393,177,95,95,629,629,631, + 631,67,411,136,199,184,252 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2067,16 +2078,16 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final static char scopeLhs[] = { 46,17,17,17,17,17,17,70,85,47, 79,119,76,52,70,69,46,17,19,3, - 6,9,161,161,158,117,46,80,119,118, - 120,53,47,134,129,70,17,17,129,95, - 153,131,73,164,161,158,125,58,118,118, - 120,176,50,56,138,18,17,17,17,17, - 17,12,113,158,125,70,69,69,36,134, - 69,17,17,17,17,95,19,165,161,177, - 93,100,75,57,152,74,120,71,139,138, - 169,134,16,158,120,102,68,21,126,126, - 59,134,134,70,46,158,64,132,45,132, - 45,164,102,117,46,46,153 + 6,9,163,163,160,117,46,80,119,118, + 120,125,53,47,135,130,125,70,17,17, + 130,95,154,132,73,166,163,160,58,118, + 118,120,178,50,56,139,18,17,17,17, + 17,17,12,113,160,70,69,69,36,135, + 69,17,17,17,17,95,19,167,163,179, + 93,100,75,57,153,74,120,71,140,139, + 171,135,16,160,120,102,68,21,127,127, + 59,135,135,70,46,160,64,133,45,133, + 45,166,102,117,46,46,154 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2084,17 +2095,17 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLa { public final static byte scopeLa[] = { - 120,74,74,74,74,74,74,74,71,11, + 119,74,74,74,74,74,74,74,71,13, 71,71,65,1,74,122,64,3,74,65, - 65,65,1,1,11,71,64,71,71,1, - 1,1,1,4,65,11,1,1,65,74, - 74,74,120,74,1,11,71,1,1,1, - 1,11,11,71,118,74,74,74,74,74, - 118,1,74,1,69,74,74,74,73,4, + 65,65,1,1,13,71,64,71,71,1, + 1,71,1,1,4,65,70,13,1,1, + 65,74,74,74,119,74,1,13,1,1, + 1,1,13,13,71,118,74,74,74,74, + 74,118,1,74,1,74,74,74,73,4, 74,65,65,65,65,74,3,1,1,74, - 74,3,118,74,1,1,1,11,74,118, - 74,5,74,1,54,70,73,74,1,1, - 6,1,54,76,75,11,11,4,4,4, + 74,3,118,74,1,1,1,13,74,118, + 74,5,74,1,54,69,73,74,1,1, + 6,1,54,76,75,13,13,4,4,4, 4,3,1,64,1,1,3 }; }; @@ -2106,10 +2117,10 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 78,250,250,250,250,250,250,88,69,78, 67,108,67,80,88,88,78,250,250,182, 224,225,58,58,64,108,78,67,108,108, - 108,80,78,100,48,88,250,250,48,155, - 61,24,88,28,58,64,313,165,108,108, - 108,22,80,31,55,250,250,250,250,250, - 250,245,6,64,313,88,88,88,282,100, + 108,313,80,78,100,48,313,88,250,250, + 48,155,61,24,88,28,58,64,165,108, + 108,108,22,80,31,55,250,250,250,250, + 250,250,245,6,64,88,88,88,282,100, 88,250,250,250,250,155,250,28,58,163, 155,157,151,165,61,170,108,88,52,55, 103,100,250,64,108,1,88,251,108,108, @@ -2122,70 +2133,70 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeRhs { public final static char scopeRhs[] = {0, - 312,3,57,0,127,0,311,3,120,0, - 127,175,0,127,179,75,0,217,0,250, - 127,30,125,0,20,0,290,127,30,54, + 314,3,57,0,127,0,313,3,119,0, + 127,175,0,127,179,75,0,217,0,251, + 127,30,125,0,20,0,292,127,30,54, 0,20,53,0,33,134,0,20,53,0, - 0,290,127,30,54,204,0,20,131,0, - 250,127,30,130,0,186,128,0,144,0, - 219,3,288,0,288,0,2,0,127,0, - 250,127,30,133,0,186,128,224,0,186, - 128,40,224,0,186,128,308,40,0,131, + 0,292,127,30,54,204,0,20,131,0, + 251,127,30,130,0,186,128,0,144,0, + 219,3,290,0,290,0,2,0,127,0, + 251,127,30,133,0,186,128,224,0,186, + 128,40,224,0,186,128,310,40,0,131, 189,168,128,0,129,0,189,168,128,0, - 136,129,0,171,0,304,127,171,0,127, + 136,129,0,171,0,306,127,171,0,127, 171,0,223,129,0,168,244,0,139,0, - 0,0,137,0,0,0,303,127,165,249, - 0,128,0,249,0,130,0,0,128,0, - 302,127,165,0,44,128,0,153,3,0, - 127,278,277,127,75,275,171,0,277,127, - 75,275,171,0,216,0,217,0,275,171, - 0,96,0,0,216,0,217,0,204,96, - 0,0,216,0,217,0,277,127,275,171, - 0,216,0,204,0,0,216,0,229,127, - 3,0,127,0,0,0,0,0,229,127, - 3,216,0,223,3,0,212,127,0,209, - 0,189,168,177,0,136,0,168,128,0, - 10,0,0,0,214,59,0,126,0,229, - 127,3,180,0,180,0,2,0,0,127, - 0,0,0,0,0,197,3,0,202,0, - 239,127,165,28,14,0,186,128,56,58, - 0,198,129,0,131,186,128,273,58,0, - 186,128,273,58,0,186,128,70,124,56, - 0,239,127,165,56,0,239,127,165,226, - 56,0,271,127,165,124,66,0,271,127, - 165,66,0,186,128,66,0,137,0,189, - 186,128,244,0,139,0,186,128,244,0, - 189,168,128,10,0,168,128,10,0,93, - 139,0,149,0,264,127,145,0,264,127, - 171,0,162,85,0,295,161,297,298,3, - 82,0,127,174,0,297,298,3,82,0, - 129,0,127,174,0,162,3,76,190,81, - 0,127,129,0,190,81,0,108,2,133, - 127,129,0,225,3,76,0,197,167,0, - 33,172,0,167,0,178,33,172,0,225, - 3,86,0,190,155,225,3,84,0,62, - 174,0,225,3,84,0,127,174,62,174, - 0,296,127,165,0,162,0,214,78,0, - 30,174,0,162,117,158,0,30,172,0, - 178,3,0,127,152,0,219,3,0,214, - 59,261,0,162,59,0,178,3,292,63, - 128,0,127,0,0,0,0,292,63,128, - 0,2,148,127,0,0,0,0,178,3, - 35,0,150,0,126,54,168,128,0,31, - 150,0,93,139,31,150,0,222,186,128, - 0,149,31,150,0,178,3,39,0,162, - 3,39,0,162,3,65,178,30,31,0, - 178,30,31,0,20,2,133,127,0,162, - 3,65,178,30,34,0,178,30,34,0, - 162,3,65,178,30,36,0,178,30,36, - 0,162,3,65,178,30,32,0,178,30, - 32,0,219,3,126,189,168,128,10,0, - 126,189,168,128,10,0,139,2,0,127, - 0,219,3,125,177,168,128,10,0,177, - 168,128,10,0,137,2,0,127,0,219, - 3,136,0,219,3,140,0,162,59,140, - 0,256,0,31,0,31,142,0,166,0, - 162,3,0 + 0,0,137,0,0,0,305,127,163,250, + 0,128,0,250,0,130,0,0,128,0, + 304,127,163,249,0,128,0,0,44,128, + 0,0,153,3,0,127,279,278,127,75, + 276,171,0,278,127,75,276,171,0,216, + 0,217,0,276,171,0,96,0,0,216, + 0,217,0,204,96,0,0,216,0,217, + 0,278,127,276,171,0,216,0,204,0, + 0,216,0,229,127,3,0,127,0,0, + 0,0,0,229,127,3,216,0,223,3, + 0,212,127,0,209,0,189,168,177,0, + 136,0,168,128,0,10,0,0,0,214, + 59,0,126,0,229,127,3,180,0,180, + 0,2,0,0,127,0,0,0,0,0, + 197,3,0,202,0,239,127,163,28,14, + 0,186,128,56,58,0,198,129,0,131, + 186,128,274,58,0,186,128,274,58,0, + 186,128,69,124,56,0,239,127,163,56, + 0,239,127,163,226,56,0,272,127,163, + 124,66,0,272,127,163,66,0,186,128, + 66,0,137,0,189,186,128,244,0,139, + 0,186,128,244,0,189,168,128,10,0, + 168,128,10,0,93,139,0,149,0,265, + 127,145,0,265,127,171,0,162,85,0, + 297,161,299,300,3,82,0,127,174,0, + 299,300,3,82,0,129,0,127,174,0, + 162,3,76,190,81,0,127,129,0,190, + 81,0,108,2,133,127,129,0,225,3, + 76,0,197,167,0,33,172,0,167,0, + 178,33,172,0,225,3,86,0,190,155, + 225,3,84,0,62,174,0,225,3,84, + 0,127,174,62,174,0,298,127,163,0, + 162,0,214,78,0,30,174,0,162,117, + 158,0,30,172,0,178,3,0,127,152, + 0,219,3,0,214,59,262,0,162,59, + 0,178,3,294,63,128,0,127,0,0, + 0,0,294,63,128,0,2,148,127,0, + 0,0,0,178,3,35,0,150,0,126, + 54,168,128,0,31,150,0,93,139,31, + 150,0,222,186,128,0,149,31,150,0, + 178,3,39,0,162,3,39,0,162,3, + 65,178,30,31,0,178,30,31,0,20, + 2,133,127,0,162,3,65,178,30,34, + 0,178,30,34,0,162,3,65,178,30, + 36,0,178,30,36,0,162,3,65,178, + 30,32,0,178,30,32,0,219,3,126, + 189,168,128,10,0,126,189,168,128,10, + 0,139,2,0,127,0,219,3,125,177, + 168,128,10,0,177,168,128,10,0,137, + 2,0,127,0,219,3,136,0,219,3, + 140,0,162,59,140,0,257,0,31,0, + 31,142,0,166,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2193,38 +2204,38 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeState { public final static char scopeState[] = {0, - 4582,4698,4685,4678,0,1982,2182,1887,911,0, - 3138,3084,3048,2994,2958,2904,2868,2814,2778,2534, - 2498,4197,0,2889,1129,848,0,2928,623,0, - 3138,3084,1637,1553,3048,2994,2958,2904,2868,2814, - 1469,2778,2534,2498,2815,2746,0,2999,2783,2819, - 0,2786,987,0,3150,725,0,4234,4351,0, - 4426,3590,0,4302,4204,0,4302,4204,3621,4081, - 4071,3535,4061,3979,3969,3525,0,4302,4204,3621, - 4081,4071,3535,4061,3979,3969,3525,3138,3084,3048, - 2994,2958,2904,2868,2814,2778,2534,2498,0,931, - 656,0,1264,0,1259,791,0,534,4178,2608, - 0,3349,3949,4442,4404,4077,4200,3479,2854,3980, - 2979,3649,2530,2900,4331,2555,0,4595,4591,4572, - 4540,4526,4521,4517,4502,4673,4669,4660,4453,4448, - 4643,4357,4230,4622,4035,3281,4605,4309,3521,0, - 1560,1518,1476,1127,3949,2979,3655,3248,3237,2500, - 2799,0,770,0,4426,3949,4404,3590,4331,3655, - 4167,4415,4186,3349,3385,3248,3479,3237,4313,2735, - 0,4595,4326,4591,4255,3986,4572,4540,4526,3960, - 3491,4521,4517,3731,4502,3723,3718,3633,3559,3172, - 4673,3975,4669,4660,2730,2697,4453,4448,3629,4643, - 4357,4230,925,869,4622,4035,4178,3281,4605,4309, - 2608,919,3521,727,3655,4167,4415,4186,3349,3385, - 2516,4426,3949,4404,2505,3248,3479,3237,3590,2189, - 2102,4331,4313,2735,796,2015,576,931,656,3259, - 3927,3905,2202,2239,590,2273,2362,2334,2305,2756, - 2617,2471,2444,2417,2390,3496,3455,3360,3212,2646, - 3883,3861,3839,3817,3795,3773,3751,3675,2703,2672, - 629,1899,2152,2115,2065,2028,1222,1172,1978,1130, - 1941,1857,874,1815,1773,1731,1689,1647,1605,1563, - 1521,1479,1437,1395,1353,534,818,738,682,1303, - 1078,1266,992,949,1035,0 + 4606,4714,4702,4123,0,1732,2936,1689,2617,0, + 3200,3146,3092,3038,2984,2930,2876,2822,2768,2574, + 2520,4507,0,2896,1941,1904,0,2791,625,0, + 3200,3146,2803,2802,3092,3038,2984,2930,2876,2822, + 1375,2768,2574,2520,4084,2523,0,4226,3025,2989, + 0,3496,2151,0,1509,676,0,4252,3420,0, + 2528,4462,0,4407,4358,0,4407,4358,3708,4234, + 4224,3622,4214,4132,4122,3610,0,4407,4358,3708, + 4234,4224,3622,4214,4132,4122,3610,3200,3146,3092, + 3038,2984,2930,2876,2822,2768,2574,2520,0,799, + 659,0,1047,0,3101,1299,0,536,4331,2597, + 0,3436,4102,3645,4496,1119,3147,3566,935,2937, + 2879,2961,1032,2828,3472,725,0,4601,4596,4589, + 4584,4580,4532,4525,4478,4690,4686,4676,4190,4186, + 4672,3676,3368,4667,2649,4383,4660,4611,736,0, + 2248,2161,728,583,4102,2879,3764,3335,3324,2605, + 3166,0,614,0,2528,4102,4496,4462,3472,3764, + 2725,3171,4339,3436,2847,3335,3566,3324,3063,4320, + 0,4601,3849,4596,3745,2809,4589,4584,4580,2736, + 914,4532,4525,1602,4478,1559,1516,1473,1389,1302, + 4690,3615,4686,4676,1251,1130,4190,4186,2863,4672, + 3676,3368,817,3680,4667,2649,4331,4383,4660,4611, + 2597,672,736,922,3764,2725,3171,4339,3436,2847, + 2701,2528,4102,4496,2545,3335,3566,3324,4462,2243, + 2156,3472,3063,4320,936,2069,579,799,659,3346, + 4080,4058,2256,2293,592,1180,2384,2356,2327,2746, + 2653,2493,2466,2439,2412,3584,3542,3447,3299,3274, + 4036,4014,3992,3970,3948,3926,3904,3882,3860,3794, + 631,1952,2206,2169,2119,2082,1259,1214,2032,1134, + 1995,1909,877,1866,1823,1780,1737,1694,1651,1608, + 1565,1522,1479,1436,1393,536,821,741,685,1343, + 1043,1306,1000,957,1087,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2232,59 +2243,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface InSymb { public final static char inSymb[] = {0, - 0,291,197,180,185,177,130,133,7,5, - 125,3,127,3,70,59,168,166,125,30, + 0,293,197,180,185,177,130,133,7,5, + 125,3,127,3,69,59,168,166,125,30, 30,167,127,59,3,62,63,125,124,30, - 197,212,128,6,153,127,165,39,31,34, - 36,32,10,136,4,3,128,35,29,5, - 13,12,6,9,27,26,140,146,148,147, - 150,149,152,151,156,154,157,57,158,214, - 158,189,4,127,127,127,265,266,249,267, - 244,268,66,269,270,10,128,59,59,127, - 168,127,263,127,3,30,30,30,30,128, - 3,7,125,178,162,167,127,62,63,168, - 3,126,103,121,3,59,90,96,13,12, - 92,91,6,94,93,65,30,88,89,9, - 98,97,100,99,101,113,112,111,110,109, - 108,107,106,105,104,70,117,102,256,189, - 250,253,250,212,165,168,232,128,126,125, - 124,165,128,128,186,168,250,6,183,69, - 302,8,178,162,178,178,178,178,168,219, - 155,127,3,217,216,136,126,125,10,128, - 59,292,3,189,178,54,128,54,219,162, - 147,147,146,146,146,149,149,149,149,148, - 148,151,150,150,154,152,156,162,157,4, - 69,127,126,125,127,186,127,165,127,186, - 168,54,127,69,65,65,65,65,189,177, - 212,223,127,3,128,168,205,3,293,167, - 153,128,186,168,73,303,128,169,224,56, - 54,204,58,171,305,127,127,73,189,127, - 271,124,272,189,3,3,3,3,126,125, - 229,230,145,231,127,168,54,178,127,127, - 222,5,54,168,165,226,30,54,273,275, - 127,180,307,224,40,128,271,70,69,162, - 162,162,162,3,3,155,70,223,197,3, - 127,69,229,189,155,258,261,59,182,4, - 124,126,189,127,165,65,30,128,75,127, - 212,304,125,73,283,197,3,69,128,40, - 308,186,219,219,127,70,70,127,212,155, - 126,127,3,59,162,4,131,239,14,54, - 171,60,56,58,238,127,127,186,127,277, - 73,69,73,70,127,186,128,128,220,127, - 258,219,214,28,127,3,124,56,239,290, - 54,10,61,131,277,165,287,128,288,229, - 186,186,127,220,127,165,264,274,28,70, - 128,69,65,30,232,232,278,127,69,186, - 3,155,57,127,127,69,155,128,186,127, - 70,70,127,296,80,78,1,162,8,86, - 84,82,81,76,83,85,79,77,56,75, - 219,127,3,239,186,226,290,279,120,8, - 73,214,73,3,3,3,190,3,124,162, - 124,179,220,312,226,65,3,73,225,167, - 225,298,145,76,225,127,127,69,61,95, - 311,167,155,197,155,297,127,3,155,279, - 232,155,155,127,70,190,161,264,162,70, - 122,295,155,155 + 197,212,128,6,153,127,163,249,39,31, + 34,36,32,10,136,4,3,128,35,29, + 5,12,11,6,9,27,26,140,146,148, + 147,150,149,152,151,156,154,157,57,158, + 214,158,189,4,127,127,127,266,267,250, + 268,244,269,66,270,271,10,128,59,59, + 127,168,127,264,127,163,3,30,30,30, + 30,128,3,7,125,178,162,167,127,62, + 63,168,3,126,103,120,3,59,90,96, + 12,11,92,91,6,94,93,65,30,88, + 89,9,98,97,100,99,101,113,112,111, + 110,109,108,107,106,105,104,69,117,102, + 257,189,251,254,251,212,163,168,232,128, + 126,125,124,163,128,128,186,168,251,6, + 183,70,127,178,162,178,178,178,178,168, + 219,155,127,3,217,216,136,126,125,10, + 128,59,294,3,189,178,54,128,54,219, + 162,147,147,146,146,146,149,149,149,149, + 148,148,151,150,150,154,152,156,162,157, + 4,70,127,126,125,127,186,127,163,127, + 186,168,54,127,304,65,65,65,65,189, + 177,212,223,127,3,128,168,205,3,295, + 167,153,128,186,168,73,305,128,169,224, + 56,54,204,58,171,307,127,127,73,189, + 127,272,124,273,189,188,70,3,3,3, + 3,126,125,229,230,145,231,127,168,54, + 178,127,127,222,5,54,168,163,226,30, + 54,274,276,127,180,309,224,40,128,272, + 69,70,188,8,162,162,162,162,3,3, + 155,69,223,197,3,127,70,229,189,155, + 259,262,59,182,4,124,126,189,127,163, + 65,30,128,75,127,212,306,125,73,285, + 197,3,70,128,40,310,186,219,219,127, + 69,69,127,212,155,126,127,3,59,162, + 4,131,239,14,54,171,60,56,58,238, + 127,127,186,127,278,73,70,73,69,127, + 186,128,128,220,127,259,219,214,28,127, + 3,124,56,239,292,54,10,61,131,278, + 163,289,128,290,229,186,186,127,220,127, + 163,265,275,28,69,128,70,65,30,232, + 232,279,127,70,186,3,155,57,127,127, + 70,155,128,186,127,69,69,127,298,80, + 78,1,162,8,86,84,82,81,76,83, + 85,79,77,56,75,219,127,3,239,186, + 226,292,280,119,8,73,214,73,3,3, + 3,190,3,124,162,124,179,220,314,226, + 65,3,73,225,167,225,300,145,76,225, + 127,127,70,61,95,313,167,155,197,155, + 299,127,3,155,280,232,155,155,127,69, + 190,161,265,162,69,122,297,155,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2560,20 +2571,20 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 524, + NUM_STATES = 529, NT_OFFSET = 123, - LA_STATE_OFFSET = 5798, + LA_STATE_OFFSET = 5861, MAX_LA = 2147483647, - NUM_RULES = 533, - NUM_NONTERMINALS = 195, - NUM_SYMBOLS = 318, + NUM_RULES = 535, + NUM_NONTERMINALS = 197, + NUM_SYMBOLS = 320, SEGMENT_SIZE = 8192, - START_STATE = 2735, + START_STATE = 4320, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 119, - EOLT_SYMBOL = 119, - ACCEPT_ACTION = 4868, - ERROR_ACTION = 5265; + EOFT_SYMBOL = 121, + EOLT_SYMBOL = 121, + ACCEPT_ACTION = 4920, + ERROR_ACTION = 5326; 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 174fd9bc6b1..67a7c9e9f76 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 @@ -20,7 +20,7 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_bool = 15, TK_break = 77, TK_case = 78, - TK_catch = 120, + TK_catch = 119, TK_char = 16, TK_class = 61, TK_const = 45, @@ -88,7 +88,7 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_Invalid = 123, TK_LeftBracket = 59, TK_LeftParen = 3, - TK_Dot = 121, + TK_Dot = 120, TK_DotStar = 96, TK_Arrow = 103, TK_ArrowStar = 90, @@ -96,8 +96,8 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_MinusMinus = 27, TK_And = 9, TK_Star = 6, - TK_Plus = 12, - TK_Minus = 13, + TK_Plus = 11, + TK_Minus = 12, TK_Tilde = 5, TK_Bang = 29, TK_Slash = 91, @@ -118,7 +118,7 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 70, + TK_Assign = 69, TK_StarAssign = 104, TK_SlashAssign = 105, TK_PercentAssign = 106, @@ -129,15 +129,15 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_AndAssign = 111, TK_CaretAssign = 112, TK_OrAssign = 113, - TK_Comma = 69, + TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, TK_RightBrace = 71, - TK_SemiColon = 11, + TK_SemiColon = 13, TK_LeftBrace = 64, TK_ERROR_TOKEN = 72, TK_0 = 44, - TK_EOF_TOKEN = 119; + TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { "", @@ -151,9 +151,9 @@ public interface CPPNoFunctionDeclaratorParsersym { "EndOfCompletion", "And", "typename", - "SemiColon", "Plus", "Minus", + "SemiColon", "extern", "bool", "char", @@ -209,8 +209,8 @@ public interface CPPNoFunctionDeclaratorParsersym { "enum", "struct", "union", - "Comma", "Assign", + "Comma", "RightBrace", "ERROR_TOKEN", "Colon", @@ -259,9 +259,9 @@ public interface CPPNoFunctionDeclaratorParsersym { "public", "Question", "RightBracket", - "EOF_TOKEN", "catch", "Dot", + "EOF_TOKEN", "else", "Invalid" }; 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 dba36e86d68..14271e6d16f 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 @@ -171,13 +171,15 @@ private CPPParserAction action; public CPPParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { // binding resolution actions need access to IASTName nodes, temporary action = new CPPParserAction (); //action.resolver = new C99TypedefTrackerParserAction (this); action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); + action.builder.setParserOptions(options); + // comment this line to use with backtracking parser //setParserAction(action); } @@ -189,10 +191,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // _1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1863,14 +1865,14 @@ public CPPParser(String[] mapFrom) { // constructor } // - // Rule 383: initializer_clause ::= { <openscope-ast> initializer_list , } + // Rule 383: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // case 383: { action.builder. consumeInitializerList(); break; } // - // Rule 384: initializer_clause ::= { <openscope-ast> initializer_list } + // Rule 384: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // case 384: { action.builder. consumeInitializerList(); break; @@ -1884,373 +1886,387 @@ public CPPParser(String[] mapFrom) { // constructor } // - // Rule 390: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 386: start_initializer_list ::= $Empty // - case 390: { action.builder. - consumeClassSpecifier(); break; + case 386: { action.builder. + initializerListStart(); break; } // - // Rule 391: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt + // Rule 387: end_initializer_list ::= $Empty // - case 391: { action.builder. - consumeClassHead(false); break; + case 387: { action.builder. + initializerListEnd(); break; } // - // Rule 392: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt + // Rule 392: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // case 392: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // Rule 393: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // case 393: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt + // Rule 394: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // case 394: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // + case 395: { action.builder. consumeClassHead(true); break; } // - // Rule 396: identifier_name_opt ::= $Empty + // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // case 396: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 398: identifier_name_opt ::= $Empty + // + case 398: { action.builder. consumeEmpty(); break; } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 402: visibility_label ::= access_specifier_keyword : // - case 400: { action.builder. + case 402: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 403: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 401: { action.builder. + case 403: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 404: member_declaration ::= declaration_specifiers_opt ; // - case 402: { action.builder. + case 404: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 405: { action.builder. + case 407: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 413: member_declaration ::= ERROR_TOKEN // - case 411: { action.builder. + case 413: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 419: member_declarator ::= declarator constant_initializer + // Rule 421: member_declarator ::= declarator constant_initializer // - case 419: { action.builder. + case 421: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= bit_field_declarator : constant_expression + // Rule 422: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action.builder. + case 422: { action.builder. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= : constant_expression + // Rule 423: member_declarator ::= : constant_expression // - case 421: { action.builder. + case 423: { action.builder. consumeBitField(false); break; } // - // Rule 422: bit_field_declarator ::= identifier_name + // Rule 424: bit_field_declarator ::= identifier_name // - case 422: { action.builder. + case 424: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: constant_initializer ::= = constant_expression + // Rule 425: constant_initializer ::= = constant_expression // - case 423: { action.builder. + case 425: { action.builder. consumeInitializer(); break; } // - // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 431: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 431: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt 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 430: { action.builder. + case 432: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword virtual 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 431: { action.builder. + case 433: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 434: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 432: { action.builder. + case 434: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 433: access_specifier_keyword ::= private + // Rule 435: access_specifier_keyword ::= private // - case 433: { action.builder. + case 435: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= protected + // Rule 436: access_specifier_keyword ::= protected // - case 434: { action.builder. + case 436: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 435: access_specifier_keyword ::= public + // Rule 437: access_specifier_keyword ::= public // - case 435: { action.builder. + case 437: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 437: access_specifier_keyword_opt ::= $Empty + // Rule 439: access_specifier_keyword_opt ::= $Empty // - case 437: { action.builder. + case 439: { action.builder. consumeEmpty(); break; } // - // Rule 439: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > + // Rule 441: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 439: { action.builder. + case 441: { action.builder. consumeTemplateId(); break; } // - // Rule 440: conversion_function_id ::= operator conversion_type_id + // Rule 442: conversion_function_id ::= operator conversion_type_id // - case 440: { action.builder. + case 442: { action.builder. consumeConversionName(); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 443: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 441: { action.builder. + case 443: { action.builder. consumeTypeId(true); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq + // Rule 444: conversion_type_id ::= type_specifier_seq // - case 442: { action.builder. + case 444: { action.builder. consumeTypeId(false); break; } // - // Rule 443: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 445: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 443: { action.builder. + case 445: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 451: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 449: { action.builder. + case 451: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 452: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 450: { action.builder. + case 452: { action.builder. consumeQualifiedId(false); break; } // - // Rule 453: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 455: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 453: { action.builder. + case 455: { action.builder. consumeTemplateId(); break; } // - // Rule 454: operator_id_name ::= operator overloadable_operator + // Rule 456: operator_id_name ::= operator overloadable_operator // - case 454: { action.builder. + case 456: { action.builder. consumeOperatorName(); break; } // - // Rule 497: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 499: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 497: { action.builder. + case 499: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 498: export_opt ::= export + // Rule 500: export_opt ::= export // - case 498: { action.builder. + case 500: { action.builder. consumePlaceHolder(); break; } // - // Rule 499: export_opt ::= $Empty + // Rule 501: export_opt ::= $Empty // - case 499: { action.builder. + case 501: { action.builder. consumeEmpty(); break; } // - // Rule 503: template_parameter ::= parameter_declaration + // Rule 505: template_parameter ::= parameter_declaration // - case 503: { action.builder. + case 505: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt + // Rule 506: type_parameter ::= class identifier_name_opt // - case 504: { action.builder. + case 506: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= class identifier_name_opt = type_id + // Rule 507: type_parameter ::= class identifier_name_opt = type_id // - case 505: { action.builder. + case 507: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= typename identifier_name_opt + // Rule 508: type_parameter ::= typename identifier_name_opt // - case 506: { action.builder. + case 508: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= typename identifier_name_opt = type_id + // Rule 509: type_parameter ::= typename identifier_name_opt = type_id // - case 507: { action.builder. + case 509: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 508: 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 // - case 508: { action.builder. + case 510: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 511: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 509: { action.builder. + case 511: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 510: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > + // Rule 512: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 510: { action.builder. + case 512: { action.builder. consumeTemplateId(); break; } // - // Rule 516: template_argument ::= type_id + // Rule 518: template_argument ::= type_id // - case 516: { action.builder. + case 518: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 519: explicit_instantiation ::= template declaration // - case 517: { action.builder. + case 519: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 520: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 520: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 521: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 519: { action.builder. + case 521: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 524: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 524: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 525: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 525: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 524: { action.builder. + case 526: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // Rule 527: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 525: { action.builder. + case 527: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq + // Rule 528: exception_declaration ::= type_specifier_seq // - case 526: { action.builder. + case 528: { action.builder. consumeDeclarationSimple(false); 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 9faee4750e1..1438afb20bd 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 @@ -75,457 +75,469 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 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,5,4,3,1,3,1,1,5, - 4,4,5,5,1,0,1,1,1,2, - 4,2,2,1,5,1,1,1,1,1, - 1,1,2,1,0,1,3,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, + 3,1,7,6,3,0,0,1,3,1, + 1,5,4,4,5,5,1,0,1,1, + 1,2,4,2,2,1,5,1,1,1, + 1,1,1,1,2,1,0,1,3,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,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,-237,0,0,0,-62,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,-238,0,0,0,-76,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-96,0,0,0,0,0, - 0,0,-115,0,-64,0,0,0,0,0, - -12,-81,0,0,0,0,-385,0,0,0, - -3,0,0,0,0,0,0,-371,0,-264, + 0,0,0,0,0,0,-2,0,0,0, + 0,0,0,0,-3,0,-64,0,0,0, + 0,0,-90,0,0,0,0,-510,0,0, + 0,0,-4,0,0,0,0,0,-97,0, + 0,-265,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-96,0,0,0,0,0,0, + 0,0,0,0,0,-12,-35,0,0,0, + 0,0,-7,-13,0,0,0,0,0,-9, + 0,0,-159,0,0,0,-234,0,0,0, + 0,0,0,0,0,-104,0,0,0,-98, + 0,0,0,0,-30,0,0,0,-81,0, + 0,0,0,0,0,-17,0,0,0,0, + 0,0,0,0,0,-103,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-233,0,0,0,0,0,0,0,0, - 0,0,-61,0,-2,-35,0,0,0,-106, - 0,-65,0,0,0,0,0,-92,-66,0, - 0,-25,0,0,0,0,0,-98,0,0, - 0,0,0,-30,0,0,0,0,-4,0, - 0,0,0,0,0,-443,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-103,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-15,-89,0,0,0,0, + 0,-16,0,-476,-21,0,-14,0,-24,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,-137,0,0,0,0,0, - 0,-27,0,0,-7,0,0,-159,0,0, - 0,-75,0,0,0,0,-322,0,0,-116, 0,0,0,0,0,0,0,0,0,0, + 0,0,-118,0,0,0,0,0,0,-284, + 0,0,0,0,0,0,0,-27,-108,0, + 0,0,0,0,0,0,0,0,-244,0, + 0,0,-31,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-17, - 0,-13,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-108,0,0,-9, - 0,0,0,0,0,-243,0,0,0,-125, - 0,0,0,0,0,0,0,0,-40,0, - 0,0,0,0,-10,0,0,0,-120,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,-14,0, - 0,0,0,0,0,-89,0,-46,0,0, - 0,0,0,-21,0,-39,0,0,0,0, - 0,0,-415,0,-212,-279,0,0,0,0, + 0,-66,0,0,0,0,0,0,0,-25, + 0,0,0,0,0,0,-47,0,0,0, + -41,0,0,-40,0,0,0,0,-280,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-32,0, + 0,0,0,0,0,-313,0,0,0,0, + 0,-34,0,-65,-394,0,0,0,-105,0, + 0,0,0,0,-36,0,-217,-527,0,0, + 0,-62,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-381,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-328,0,0,0,0,0,0,0, - 0,-283,0,0,0,-47,0,0,0,0, - 0,0,-216,-244,0,0,0,-24,0,0, - 0,0,0,0,0,0,0,0,-157,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,-45,0,0,0, + 0,0,0,0,0,0,0,-37,0,0, + 0,0,0,0,-102,0,0,0,0,0, + -463,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-102,0,0,0,0,0,-375,0,-145, - 0,0,0,-129,-430,0,0,0,0,0, + 0,0,-45,0,0,0,0,0,0,0, + -137,0,0,0,0,0,0,-213,0,-38, + 0,0,0,-145,0,0,0,-404,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,0,0,0, + 0,0,-92,0,0,-42,0,-464,-112,0, + 0,0,-50,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-41,0,0,0,-260,0,0, - 0,-31,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,0, - 0,0,0,0,0,0,0,-403,0,0, - 0,-112,0,0,0,0,0,0,0,0, + 0,-434,0,0,0,-480,-194,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-32,0,0,0,0,0,0, - 0,-53,0,-199,0,0,0,0,0,0, - -48,0,0,0,0,-131,-57,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,0,0,0,-125,0,0,0, + 0,0,0,-143,0,0,0,0,0,-279, 0,0,0,0,0,0,0,0,0,0, - 0,-76,0,0,0,0,0,0,-224,0, - 0,0,0,-71,0,-289,0,0,0,-34, 0,0,0,0,0,0,0,0,0,0, + 0,-52,0,0,0,0,0,0,0,-59, + 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, - 0,0,-135,0,0,0,0,-382,0,0, - 0,-36,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-37, + 0,0,0,0,0,0,-462,0,0,0, + 0,0,0,-185,0,0,0,0,0,-129, + -67,-63,-245,0,0,0,0,0,0,0, + 0,0,0,0,0,-383,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-51,-38,0,0,0, - -522,0,0,0,-118,0,0,0,0,0, - 0,0,0,0,0,-90,0,0,-383,0, - 0,0,-477,0,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, - -119,0,0,0,0,-147,0,-209,0,0, - -110,0,0,0,-225,0,0,0,0,0, + 0,0,0,0,0,-72,0,-520,0,0, + 0,0,-435,0,0,0,0,0,0,-384, + 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,-191,0,0,0,0,-182,0,0, - 0,-330,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-403,0,0,0, + 0,0,-110,0,0,0,-225,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,-79,0,-119,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,0,-142,0,0,0,0,0, - -111,-221,0,0,0,0,0,-130,-266,0, + 0,0,0,-99,0,0,0,0,0,0, + 0,-114,0,-117,0,0,0,0,0,-308, + -223,-134,0,0,0,0,0,0,0,0, + -267,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-191,0,0,0,0,0,0,0, + 0,0,-332,0,0,0,0,-130,-222,0, + 0,0,0,-268,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-341,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -461,0,0,0,0,0,-50,0,0,0, - -267,0,0,0,-52,0,0,0,0,0, + 0,-507,0,0,0,0,-269,0,0,0, + -416,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, - -59,0,-376,0,0,0,0,-339,-67,-72, - 0,0,-268,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-136,0,0,0, + 0,0,0,-445,0,0,0,0,0,-270, + 0,0,0,-493,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,0,0,0,0,0,0,-501, - -78,-79,0,0,-269,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-506,0,0,0,0,-450,0,0,0, + 0,0,-271,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-503,0,0,0, - 0,-114,0,0,0,0,-270,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-134,0, - 0,0,0,0,0,0,-136,0,0,0, - 0,0,0,-517,-144,0,0,0,-271,0, + 0,0,0,0,-522,0,0,0,0,-451, + 0,0,0,0,0,-272,0,0,0,-144, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-148,0,0, 0,0,0,0,0,0,0,0,0,0, - -148,0,0,0,0,0,0,0,-149,0, - -504,0,0,0,0,-150,-152,0,0,0, - -272,0,0,0,-153,0,0,0,0,0, + 0,0,-474,0,0,0,0,0,-273,0, + 0,0,-149,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-154,0,0,0,0,0,0,0, - -155,0,0,0,0,0,0,-156,-158,0, - 0,0,-273,0,0,0,0,0,0,0, + -150,0,0,0,0,0,0,0,-152,0, + 0,0,0,0,0,-133,-240,-153,-196,0, + 0,-274,0,0,0,-154,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-171,0,0,0,0,0, - 0,0,-172,0,-513,0,0,0,0,-173, - -174,-175,0,0,-274,0,0,0,-176,0, + 0,0,0,-155,0,0,0,0,0,0, + 0,-156,0,0,0,0,0,0,0,-373, + 0,-158,0,0,-275,0,0,0,-171,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-177,0,0,0, - 0,0,0,0,-178,0,-523,0,0,0, - 0,-179,-180,-181,0,0,-275,0,0,0, - -183,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,-188,0,-77,0, - 0,0,0,-190,-192,-198,0,0,-276,0, - 0,0,-200,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-172,0,0,0, + 0,0,0,0,-173,0,-157,0,0,0, + 0,0,-377,0,-174,0,0,-276,0,0, + 0,-175,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-176, + 0,0,0,0,0,0,0,-177,0,-216, + 0,0,0,0,0,-178,-179,-180,0,0, + -277,0,0,0,-181,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-183,0,0,0,0,0,0,0, + -184,0,-188,0,0,0,0,-226,-190,0, + -192,0,0,-380,0,0,0,-199,0,0, 0,0,0,0,0,0,0,0,0,0, - -193,0,0,0,0,-202,0,-204,0,0, - -378,0,0,0,-205,0,0,0,0,0, + 0,0,0,0,0,-201,0,0,0,0, + 0,0,0,-203,0,-205,0,0,0,0, + -518,-206,-207,-215,0,0,-415,0,0,0, + -235,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-243,0, + 0,0,0,0,0,0,-286,0,0,0, + 0,0,0,-208,0,0,-528,0,0,-511, + 0,0,0,-494,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-292,0,0,0,0,0,0,0,-293, + 0,-311,0,0,0,0,0,-131,-300,-147, + 0,0,-221,0,0,0,-301,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-201,0,0,0,0,-206,0,-214, - 0,0,-414,0,0,0,-490,0,0,0, + 0,0,0,0,-305,0,0,0,0,0, + 0,0,-307,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,-502,0,-215,0,0,0,0,0, - -234,-242,0,0,-506,0,0,0,-285,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-290,0,0,0, - 0,0,0,0,-291,0,-235,0,0,0, - 0,-210,-298,-219,0,0,-220,0,0,0, - -239,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-337,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-299,0,0,0, - 0,0,0,-304,0,0,0,-303,0,0, + -364,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-320,0,0,0,0,0,0,0, + -321,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,-322, + 0,0,0,0,0,0,0,-323,0,-327, + 0,0,0,0,-339,0,0,0,-71,0, + 0,0,0,0,0,0,0,-328,-393,0, 0,0,0,0,0,0,0,0,0,0, - -335,0,0,0,-236,0,0,0,0,0, - 0,0,0,-305,-362,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-329,0, + -342,0,0,0,0,-505,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-318,0,-319,0,0,0, - 0,-391,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-343,0,0, + 0,0,0,0,0,-344,0,-345,0,0, + 0,0,-91,0,0,0,-77,-346,0,0, + 0,0,0,-302,-347,-348,-266,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-320,0,0,0,0,0,0, - 0,-321,0,-325,0,0,0,0,-337,0, - 0,0,-313,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,0,-39,0,-410,0, + 0,0,0,-261,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-326,0,-327,0,0,0,0,-500, + 0,0,0,0,0,-349,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,-350,0,0,0,0,0, + -263,0,0,0,-351,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-340,0,0,0,0,0,0,0,-341, - 0,-342,0,0,0,0,-91,0,0,0, - -316,-343,0,0,0,0,0,-211,0,0, - -278,0,0,0,0,0,0,0,0,0, + 0,0,-352,0,0,0,0,0,-255,0, + 0,0,-210,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -140,0,0,0,0,-256,0,0,0,-211, 0,0,0,0,0,0,0,0,0,0, - -309,0,-54,0,0,0,0,-265,0,0, + 0,0,0,0,0,0,0,-220,0,0, + 0,0,-257,0,0,0,-353,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-344, - 0,0,0,0,0,0,0,-345,0,-133, - 0,-263,0,0,0,-346,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-258, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-347,0,0,0,0,0,0, - 0,0,0,-261,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,-262,0,0,0,-240,0,0,0,0, + 0,0,0,0,0,0,-282,-354,-355,-447, + 0,-209,0,0,-29,0,0,0,0,0, + 0,0,0,0,0,-444,0,0,0,0, + 0,-121,0,0,0,-18,0,0,0,0, + 0,0,-356,-193,0,0,0,-212,0,0, + -46,0,0,0,0,0,0,0,0,0, + -48,-304,0,-51,0,-362,-61,0,0,0, + -361,0,0,0,0,0,-287,0,0,0, + 0,0,0,0,0,0,0,0,-5,0, + 0,0,-357,0,-358,0,0,0,0,0, + -366,0,-359,0,0,0,-10,0,0,-452, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-348,0,0,0,0,0,-254, + -431,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,0, - 0,-99,0,0,0,0,-255,0,0,0, - -349,0,0,0,0,0,0,0,0,0, + 0,0,-503,0,-58,0,0,0,-202,-360, + -28,0,0,0,0,0,0,0,0,0, + 0,-135,0,0,-375,0,0,0,-413,0, + 0,0,0,0,-19,0,0,0,0,0, + 0,0,0,-204,0,0,0,0,-363,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,0,-111,-75,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -160,-227,-513,0,0,0,0,0,-365,-367, + 0,0,0,0,0,0,0,0,-335,0, + 0,0,0,0,0,0,0,0,0,-54, + 0,0,0,0,0,0,0,-368,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-312,-283,0, + 0,0,0,0,0,-369,0,-497,0,0, + -259,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-370,0,0,0,-260,0,0,0, + -372,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-399,0, + 0,0,-294,0,0,0,0,-400,0,0, + 0,0,0,-115,-401,0,-402,-490,0,0, + 0,0,-417,0,0,0,0,0,-418,-420, + -250,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-461,0,0,0,0,0,0,-425, + 0,0,0,-374,-106,0,0,0,-20,-371, + -378,0,-429,0,0,0,0,0,-56,-295, + 0,0,0,0,0,0,-433,-57,0,0, + 0,0,-442,0,-443,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-60,0,0,0,0,0,0, + 0,0,0,-187,0,0,0,0,-419,0, + 0,-449,0,-236,0,0,0,-296,-33,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-26,0,0,0,0,0,0,0,0, + 0,0,-101,0,0,0,0,0,0,0, + -459,0,-70,0,0,0,0,0,0,0, + 0,0,0,-198,0,-247,-22,-421,0,0, + -289,0,-424,0,0,0,0,-74,-465,0, + -477,0,0,0,0,0,0,0,0,0, + 0,-146,0,0,0,0,-237,0,-481,-246, + 0,-482,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-487,0,0,0,0, + 0,-80,-495,0,0,0,-453,0,0,0, + 0,0,0,-314,-330,0,0,0,0,0, + -219,0,0,0,0,0,0,0,0,-43, + 0,0,0,0,0,0,0,-496,-502,-382, + -241,0,0,0,0,0,0,-324,0,0, + -82,0,0,0,0,0,0,0,0,0, + -278,-512,0,-142,0,-486,0,0,0,0, + 0,0,0,0,0,-333,0,0,-406,0, + 0,0,0,0,0,0,0,0,0,-376, + 0,0,0,0,0,0,-107,0,-83,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-256,0,0,0,-350,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-218,0,0,0,0, - -257,0,0,0,-351,0,0,0,0,0, + 0,0,0,0,-488,-517,-186,0,0,-285, + 0,0,0,0,-390,-315,0,0,0,0, + 0,0,0,0,0,0,0,-44,0,0, + 0,0,0,-200,0,0,0,-466,0,0, + 0,0,0,0,0,0,0,0,-508,0, + 0,0,0,0,0,0,0,0,-427,-428, + 0,-438,0,-492,0,0,-448,0,-86,0, + 0,0,0,-88,0,0,0,0,0,0, + 0,0,0,0,0,0,-318,-309,0,0, + 0,0,0,0,0,-439,0,0,0,0, + 0,0,0,0,0,-141,0,0,0,0, + 0,0,0,0,0,0,0,-94,0,0, + -440,0,-523,0,0,0,0,-489,0,0, + 0,0,-319,0,0,0,0,0,0,0, + 0,0,0,0,0,-49,0,0,0,-499, + 0,-479,0,-441,-334,0,0,0,0,0, + 0,0,0,0,0,0,-95,0,0,0, + 0,0,0,0,0,0,-100,0,0,0, + 0,-529,0,0,0,0,-472,0,0,0, + 0,-195,0,0,0,0,0,0,0,0, + 0,0,0,0,-325,-478,0,0,0,0, + 0,0,0,-491,0,0,0,0,-1,0, + 0,0,0,-414,0,-197,0,0,0,0, + 0,0,0,0,0,0,0,0,-281,0, + 0,-288,0,0,0,0,0,0,0,-290, + -299,0,0,0,0,0,0,0,0,0, + 0,0,-317,0,0,0,0,0,0,0, + 0,0,-214,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-359,0,0,0,0,-281,-282,0, - 0,0,-302,0,-140,-29,0,0,0,0, - -352,0,0,0,0,0,-97,0,0,0, - 0,0,-121,0,0,0,-317,0,0,0, - 0,0,0,-446,-353,0,0,-56,0,0, - 0,0,0,0,0,-354,0,0,0,0, - 0,-323,-355,0,-15,-107,-360,-508,0,0, - 0,0,0,0,0,0,-187,0,0,0, - 0,0,0,0,0,0,0,0,0,-5, - 0,0,0,0,0,-310,0,0,0,0, - 0,-473,0,-356,0,0,0,0,0,0, + -409,0,0,0,0,-430,0,-509,0,0, + 0,-336,0,0,-251,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -357,0,0,0,0,0,0,-68,0,0, - 0,0,0,0,0,0,0,0,0,-141, - 0,0,0,0,0,0,0,-334,0,-358, - 0,0,0,0,-361,-412,0,0,0,0, - -28,0,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,0,-363,0, - 0,0,0,-203,0,0,0,0,-365,0, - 0,0,0,0,-366,0,0,0,0,0, - -367,-104,0,0,0,-368,0,0,0,0, - 0,0,-338,0,0,-105,0,0,0,-69, - 0,0,0,0,0,0,0,0,0,0, - -423,0,0,0,0,-370,-380,0,0,0, - 0,0,0,0,0,0,0,0,-19,0, - 0,0,0,0,-364,-409,0,-70,0,0, - 0,0,0,-515,0,-377,0,0,0,0, - -398,-74,0,0,0,0,0,0,0,0, - -301,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-460,0,0,0,-399,-258, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-400,0,0,0,-259,0,0,0,-401, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-416,0,0, - 0,-292,0,0,0,0,0,0,0,0, - 0,0,-405,0,-207,0,0,-487,0,0, - 0,0,-417,0,0,0,0,0,-419,-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,0,0,0,0,0,0, - 0,0,-80,-424,0,0,0,-16,-369,-332, - -82,0,0,0,0,0,0,0,0,-83, - 0,0,0,0,0,0,-132,0,0,0, - 0,-208,0,0,0,0,0,0,0,0, - 0,0,0,-373,-314,-428,0,0,0,0, - 0,-413,-86,0,0,0,0,0,0,0, - 0,0,0,0,0,-63,0,-418,0,0, - 0,0,-396,0,0,-143,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -26,0,0,0,0,0,0,0,-372,-432, - 0,0,0,-384,0,0,0,0,0,0, - 0,-88,0,0,0,0,0,0,0,0, - 0,-441,0,0,0,0,-420,0,0,-410, - 0,-374,0,0,0,0,0,0,0,0, - -442,0,0,0,0,0,0,0,0,0, - 0,0,0,-246,-448,0,0,0,-123,-94, - 0,0,0,0,0,0,-122,-18,0,0, - 0,0,0,0,-458,0,0,0,0,0, - 0,-379,0,0,-186,-452,-95,-462,0,0, - 0,0,0,0,0,-474,-311,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-333,0,0,0,0,-478,0,0,0, - 0,0,-479,0,0,-397,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-100, - 0,0,-195,0,-483,-197,0,0,0,0, - 0,-484,-491,0,0,0,0,0,-497,0, - 0,0,0,0,0,0,0,-43,0,0, - 0,0,0,0,0,-507,-386,-196,-512,-312, - 0,0,0,0,0,-436,0,0,0,0, + 0,0,0,0,-87,0,0,0,0,-6, 0,0,0,0,0,0,0,0,0,0, - 0,-280,-445,-485,0,0,0,0,-117,0, - 0,-101,0,0,-453,0,0,0,0,0, + -340,0,0,0,0,0,0,0,-162,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-295,0,-146,0,0, - 0,0,0,0,0,0,0,-33,0,0, - 0,0,0,0,0,0,0,0,-287,0, - 0,0,-489,0,-389,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-44,0,0,0,0, - 0,0,0,-393,0,0,0,-455,0,-288, + 0,0,0,0,0,0,0,0,-379,0, + 0,-297,-124,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-432,0,-224,-514, + 0,-228,0,0,0,0,0,0,0,0, + 0,-68,0,0,0,0,0,0,0,0, + 0,0,-397,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-127,0,0,0, + 0,-411,-436,0,-437,0,0,0,0,0, + 0,0,0,0,0,-458,0,-467,0,0, + -525,0,0,-446,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-454,-456,0, 0,0,0,0,0,0,0,0,0,0, - -426,0,0,0,0,0,0,0,0,0, - -20,-518,0,0,-22,0,0,0,0,0, - 0,-297,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-315,-408,0,0,0, - 0,0,-58,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-429,-427, - -524,0,0,-459,0,0,0,0,0,0, - 0,-49,0,0,0,0,0,0,0,0, - 0,0,0,-161,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,0, + 0,0,0,0,-460,-468,0,-469,0,0, + 0,0,-252,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-185,0,0,0,0,0,-402,0,0, + 0,0,0,0,-473,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,-498,0,0,0,0,0, - -213,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-444,0, - 0,0,0,0,-433,0,0,0,0,0, - 0,0,-250,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-254,0,0,0, + -470,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-471,0, + -386,0,0,0,-483,0,0,0,0,0, + 0,-484,0,-55,0,0,0,-475,-485,-498, + -11,0,0,0,0,-519,0,0,0,0, + 0,0,0,0,0,0,0,-128,0,0, + 0,0,0,0,-500,-501,-515,-521,0,0, + 0,-524,-526,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-109,0,0,0,0, - 0,0,0,0,0,0,-431,-435,-277,0, - 0,0,0,0,0,-505,0,0,0,0, - 0,0,0,0,0,0,0,0,-231,0, - 0,0,-457,0,-465,-87,0,-222,0,0, - -223,0,0,0,0,0,0,0,0,0, - 0,-466,0,0,0,0,-464,0,0,0, - 0,0,-486,-307,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,-124,0,0,0,0,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,-472,0,0,0,0,0, - 0,0,-454,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-164,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-127,0,0, - 0,0,-468,0,-434,0,0,0,0,0, - 0,0,0,0,0,0,-227,-228,-229,0, - 0,0,0,0,0,0,0,0,0,-482, - 0,0,0,0,0,0,0,-480,0,0, - 0,0,0,0,0,-481,0,0,0,0, - 0,-293,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -493,0,0,0,0,0,-514,0,-495,0, - 0,0,0,-251,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,0,0,-232,0,0,0,0, - 0,0,0,-252,0,0,0,0,0,0, + 0,0,-166,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-253,0,0, + 0,0,0,0,-167,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-11, - 0,0,0,0,-449,0,0,0,-496,0, - -55,0,0,0,0,0,0,-163,0,0, + 0,0,0,0,0,0,-168,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-294, - 0,-509,0,0,0,0,0,0,0,0, - 0,0,0,0,-450,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-169,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-471,0,0,0,0,0,0, - 0,0,0,0,0,-164,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-165,0,0, + -170,0,0,0,0,0,0,0,0,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,0,0,0, - 0,0,0,-166,0,0,0,0,0,0, + 0,0,0,0,-248,0,0,0,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,0,-249,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-168,0,0, + 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,-169, 0,0,0,0,0,0,0,0,0,0, + -407,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,-8,0,0,0,0,0,-122,-151, + 0,-84,0,0,0,0,0,0,-316,0, + 0,-398,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,0,0,0,0,0,0,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,-248,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-324, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-85,0,0,-504,0, + 0,0,0,0,-126,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, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-8,-510,-245,-516,0,-519,0, - -151,0,-84,-284,0,-381,0,0,-492,0, - 0,0,-230,-451,0,0,0,0,-521,0, - -520,-463,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-85,0,0,-437, - 0,0,0,0,0,-126,0,0,0,0, + 0,0,0,0,0,0,0,0,-298,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -438,-439,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-113,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-391,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, 0,0,0,0,0,0,0,0,0,0, - 0,0,-404,0,0,0,0,0,0,0, - 0,-162,0,0,0,0,0,0,0,0, + 0,0,0,-229,0,0,-93,0,0,0, + 0,0,0,-69,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-109, 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,-447,0,0, + -230,-242,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-113,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-390,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-23,0,0,0,-440, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-128,0,0,0, - 0,-93,-476,0,-469,0,0,0,0,0, - 0,0,0,-494,0,0,0,0,0,0, - 0,0,-470,0,0,0,0,-475,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-457,0,0,0,0,0,0,0, + -455,0,0,0,0,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, + -385,0,0,0,0,0,0,0,0,-139, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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, + -189,0,0,0,0,0,0,-218,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-310,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-331,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-387,0,0,-231,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,0,0,-395,0,0, + 0,-396,0,0,0,-132,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-488,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-161,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-138,0,0,0, + 0,0,0,0,0,0,0,-388,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-189,0,0,0, - -139,0,0,0,0,0,-411,0,0,0, + 0,0,0,0,-232,0,0,0,0,0, + 0,0,0,0,-405,0,0,0,-412,0, + 0,0,0,0,-422,0,-423,0,0,0, + 0,0,0,0,0,0,-389,0,0,0, + 0,0,0,0,0,-426,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -499,0,0,0,0,0,0,0,0,0, + -516,0,0,0,0,0,0,0,0,0, + 0,0,0,-408,0,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,0,0,0,0,0,0,0,0, - 0,-217,0,0,0,0,0,0,0,0, - 0,0,0,-308,0,0,0,-329,0,0, - 0,0,0,0,0,0,-6,0,0,0, - 0,0,0,0,0,0,0,-331,0,0, - 0,0,0,0,0,-336,0,0,0,0, - 0,-511,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-394,0,0,0, - 0,0,-456,0,-160,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-395, - 0,0,0,0,0,0,0,-226,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-241,0,0, - -421,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,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-425,0,0,0,0,0,-387, - 0,0,0,0,-388,0,0,-407,0,0, - 0,0,-525,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -533,7 +545,11 @@ 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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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; @@ -543,543 +559,560 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseAction { public final static char baseAction[] = { - 169,4,54,86,86,32,32,72,72,38, - 38,42,42,169,169,170,170,133,133,1, + 171,4,54,86,86,32,32,72,72,38, + 38,40,40,171,171,172,172,134,134,1, 1,15,15,15,15,15,15,15,15,16, 16,16,14,11,11,8,8,8,8,8, 8,2,73,73,5,5,12,12,12,12, - 48,48,134,134,135,62,62,43,17,17, + 48,48,135,135,136,62,62,43,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,136,136, - 136,113,113,18,18,18,18,18,18,18, - 18,18,18,18,18,18,19,19,171,171, - 172,172,173,139,139,140,140,137,137,141, - 138,138,20,20,21,21,23,23,23,24, + 17,17,17,17,17,17,17,17,137,137, + 137,113,113,18,18,18,18,18,18,18, + 18,18,18,18,18,18,19,19,173,173, + 174,174,175,140,140,141,141,138,138,142, + 139,139,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,34,34,35,35,36,36,41, - 41,40,40,40,40,40,40,40,40,40, - 40,40,40,40,39,30,142,142,97,97, - 174,174,92,193,193,74,74,74,74,74, + 31,33,33,34,34,35,35,36,36,42, + 42,41,41,41,41,41,41,41,41,41, + 41,41,41,41,39,30,143,143,97,97, + 176,176,92,195,195,74,74,74,74,74, 74,74,74,74,75,75,75,65,65,56, - 56,175,175,76,76,76,103,103,176,176, - 77,77,77,177,177,78,78,78,78,78, + 56,177,177,76,76,76,103,103,178,178, + 77,77,77,179,179,78,78,78,78,78, 79,79,82,82,82,82,82,82,82,49, - 49,49,49,49,114,114,115,115,50,178, + 49,49,49,49,114,114,115,115,50,180, 22,22,22,22,22,47,47,87,87,87, - 87,87,149,149,144,144,144,144,144,145, - 145,145,146,146,146,147,147,147,148,148, - 148,88,88,88,88,88,89,89,89,13, + 87,87,150,150,145,145,145,145,145,146, + 146,146,147,147,147,148,148,148,149,149, + 149,88,88,88,88,88,89,89,89,13, 13,13,13,13,13,13,13,13,13,13, 100,119,119,119,119,119,119,117,117,117, - 118,118,151,151,150,150,121,121,104,68, - 68,69,70,52,46,152,152,53,51,85, - 85,153,153,143,143,122,123,123,83,83, - 154,154,63,63,63,59,59,58,64,64, + 118,118,152,152,151,151,121,121,104,68, + 68,69,70,52,46,153,153,53,51,85, + 85,154,154,144,144,122,123,123,83,83, + 155,155,63,63,63,59,59,58,64,64, 81,81,57,57,57,90,90,99,98,98, 61,61,60,60,55,55,44,101,101,101, 93,93,93,94,94,95,95,95,96,96, - 105,105,105,107,107,106,106,194,194,91, - 91,180,180,180,180,180,125,45,45,156, - 179,179,126,126,126,126,181,181,37,37, - 116,127,127,127,127,108,108,120,120,120, - 158,159,159,159,159,159,159,159,159,159, - 159,159,184,184,182,182,183,183,160,160, - 160,160,161,185,110,109,109,186,186,162, - 162,162,162,102,102,102,187,187,9,9, - 10,188,188,189,163,155,155,164,164,165, - 166,166,6,6,7,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,66,71,71, - 168,168,129,129,130,130,130,130,130,130, - 3,131,131,128,128,111,111,84,67,80, - 157,157,112,112,190,190,190,132,132,124, - 124,191,191,1132,41,2205,2203,1234,4718,36, - 1180,33,37,1104,32,34,2154,31,29,58, - 1725,114,84,85,116,149,1733,1741,1740,1749, - 1742,1775,1767,1333,1783,248,1782,1784,1791,151, - 280,1226,855,166,152,228,3208,1609,41,1052, - 38,1227,2750,36,1180,342,37,1104,243,3351, - 2634,41,1052,38,239,3444,36,1180,33,37, - 1104,32,34,1699,31,29,58,1725,114,84, - 85,116,2341,1733,1741,1740,1749,1742,1775,2583, - 242,237,238,62,3186,1019,243,41,938,389, - 62,626,1416,281,336,323,632,325,1234,1247, - 319,565,331,41,286,2553,328,1127,2105,249, - 252,255,258,2779,243,1515,1490,40,355,507, - 770,332,338,57,391,425,2618,41,284,1447, - 349,1325,1169,352,572,1959,308,2585,2948,3108, - 3361,3365,4516,1702,41,1052,38,2610,3444,36, - 1180,33,37,1104,32,34,1699,31,29,58, - 1725,114,84,85,116,346,1733,1741,1740,1749, - 1742,1775,1767,329,1783,1417,1782,1784,1791,151, - 1078,1000,161,515,152,594,623,4251,1267,41, - 1951,49,2413,772,48,1180,3249,2153,516,3964, - 1702,41,1052,38,2610,3444,36,1180,33,37, - 1104,32,34,1699,31,29,58,1725,114,84, - 85,116,346,1733,1741,1740,1749,1742,1775,1767, - 1420,1783,1226,1782,1784,1791,151,3326,2586,454, - 515,152,50,1615,4251,3125,445,331,41,451, - 1115,1078,4637,445,511,516,2374,41,1052,38, - 1885,4746,36,1180,33,37,1104,65,34,32, - 3488,1656,858,3616,1809,1251,1309,298,317,1702, - 41,1052,38,2610,3444,36,1180,33,37,1104, - 32,34,1699,31,29,58,1725,114,84,85, - 116,346,1733,1741,1740,1749,1742,1775,1767,1371, - 1783,511,1782,1784,1791,151,1226,809,32,515, - 152,4537,4542,4251,1347,1112,1882,772,1826,3901, - 4327,1809,302,2370,516,855,2048,41,1052,38, - 2610,3444,36,1180,33,37,1104,32,34,1699, - 31,29,58,1725,114,84,85,116,346,1733, - 1741,1740,1749,1742,1775,1767,2293,1783,2993,1782, - 1784,1791,151,418,41,286,515,152,4413,1044, - 4251,441,243,41,938,389,243,41,3127,3100, - 511,516,69,1563,2797,41,1052,38,1163,4746, - 36,1180,33,37,1104,64,34,1833,2811,1226, - 1809,444,1817,1824,3609,1771,41,1052,38,450, - 3444,36,1180,33,37,1104,32,34,1699,31, - 29,58,1725,114,84,85,116,1744,1733,1741, - 1740,1749,1742,1775,1767,521,1783,512,1782,1784, - 1791,151,243,41,289,382,152,3183,243,2986, - 243,41,938,389,1234,1843,41,1052,38,638, - 3444,36,1180,33,37,1104,32,34,1699,31, - 29,58,1725,114,84,85,116,385,1733,1741, - 1740,1749,1742,1775,1767,436,1783,57,1782,1784, - 1791,151,307,54,1420,382,152,3183,2634,41, - 1052,38,1323,3444,36,1180,33,37,1104,32, - 34,1699,31,29,58,1725,114,84,85,116, - 68,1733,1741,1740,1749,1742,2505,383,243,41, - 3081,386,1915,41,1052,38,3052,3444,36,1180, - 33,37,1104,32,34,1699,31,29,58,1725, - 114,84,85,116,1342,1733,1741,1740,1749,1742, - 1775,1767,1420,1783,2937,1782,1784,1791,151,2750, - 2616,32,382,152,3183,555,1885,243,41,938, - 389,387,2285,41,1052,38,3122,3444,36,1180, - 33,37,1104,32,34,1699,31,29,58,1725, - 114,84,85,116,3180,1733,1741,1740,1749,1742, - 1775,1767,1106,1783,57,1782,1784,1791,151,770, - 1447,336,166,152,1744,2732,2285,41,1052,38, - 1621,3444,36,1180,33,37,1104,32,34,1699, - 31,29,58,1725,114,84,85,116,390,1733, - 1741,1740,1749,1742,1775,1767,326,1783,380,1782, - 1784,1791,151,1251,41,298,376,152,2285,41, - 1052,38,681,3444,36,1180,33,37,1104,32, - 34,1699,31,29,58,1725,114,84,85,116, - 1769,1733,1741,1740,1749,1742,1775,1767,496,1783, - 356,1782,1784,1791,151,809,2040,1357,376,152, - 2442,3035,41,1052,38,1106,4647,36,1180,33, - 37,1104,32,34,1959,509,243,41,298,2285, - 41,1052,38,1562,3444,36,1180,33,37,1104, - 32,34,1699,31,29,58,1725,114,84,85, - 116,375,1733,1741,1740,1749,1742,1775,1767,1412, - 1783,1106,1782,1784,1791,151,1885,1044,1885,376, - 152,2113,41,1052,38,2175,3444,36,1180,33, - 37,1104,32,34,1699,31,29,58,1725,114, - 84,85,116,374,1733,1741,1740,1749,1742,1775, - 1767,458,1783,1106,1782,1784,1825,172,1983,41, - 1052,38,1106,3444,36,1180,33,37,1104,32, - 34,1699,31,29,58,1725,114,84,85,116, - 1004,1733,1741,1740,1749,1742,1775,1767,290,1783, - 309,1782,1784,1791,151,1225,78,457,150,152, - 4702,32,243,1641,372,1132,357,331,1234,2285, - 41,1052,38,1353,3444,36,1180,33,37,1104, - 32,34,1699,31,29,58,1725,114,84,85, - 116,1861,1733,1741,1740,1749,1742,1775,1767,330, - 1783,858,1782,1784,1791,151,304,1620,4222,163, - 152,2285,41,1052,38,1331,3444,36,1180,33, - 37,1104,32,34,1699,31,29,58,1725,114, - 84,85,116,2487,1733,1741,1740,1749,1742,1775, - 1767,768,1783,1420,1782,1784,1791,151,1106,1179, - 1994,162,152,2285,41,1052,38,1945,3444,36, - 1180,33,37,1104,32,34,1699,31,29,58, - 1725,114,84,85,116,1361,1733,1741,1740,1749, - 1742,1775,1767,293,1783,2597,1782,1784,1791,151, - 1106,509,596,161,152,2285,41,1052,38,3419, - 3444,36,1180,33,37,1104,32,34,1699,31, - 29,58,1725,114,84,85,116,427,1733,1741, - 1740,1749,1742,1775,1767,327,1783,1420,1782,1784, - 1791,151,330,529,59,160,152,2285,41,1052, - 38,1910,3444,36,1180,33,37,1104,32,34, - 1699,31,29,58,1725,114,84,85,116,323, - 1733,1741,1740,1749,1742,1775,1767,2217,1783,2597, - 1782,1784,1791,151,1106,2056,105,159,152,2285, - 41,1052,38,523,3444,36,1180,33,37,1104, - 32,34,1699,31,29,58,1725,114,84,85, - 116,1661,1733,1741,1740,1749,1742,1775,1767,1680, - 1783,1420,1782,1784,1791,151,1690,1026,419,158, - 152,2285,41,1052,38,2227,3444,36,1180,33, - 37,1104,32,34,1699,31,29,58,1725,114, - 84,85,116,2266,1733,1741,1740,1749,1742,1775, - 1767,2364,1783,2597,1782,1784,1791,151,2377,1113, - 106,157,152,2285,41,1052,38,522,3444,36, - 1180,33,37,1104,32,34,1699,31,29,58, - 1725,114,84,85,116,1561,1733,1741,1740,1749, - 1742,1775,1767,1529,1783,858,1782,1784,1791,151, - 1560,2033,1948,156,152,2285,41,1052,38,939, - 3444,36,1180,33,37,1104,32,34,1699,31, - 29,58,1725,114,84,85,116,2219,1733,1741, - 1740,1749,1742,1775,1767,1433,1783,858,1782,1784, - 1791,151,497,584,744,155,152,2285,41,1052, - 38,2077,3444,36,1180,33,37,1104,32,34, - 1699,31,29,58,1725,114,84,85,116,1839, - 1733,1741,1740,1749,1742,1775,1767,1955,1783,1744, - 1782,1784,1791,151,2095,1782,2170,154,152,2285, - 41,1052,38,2199,3444,36,1180,33,37,1104, - 32,34,1699,31,29,58,1725,114,84,85, - 116,495,1733,1741,1740,1749,1742,1775,1767,359, - 1783,1744,1782,1784,1791,151,1273,529,2160,153, - 152,2285,41,1052,38,1243,3444,36,1180,33, - 37,1104,32,34,1699,31,29,58,1725,114, - 84,85,116,381,1733,1741,1740,1749,1742,1775, - 1767,358,1783,1744,1782,1784,1791,151,2466,529, - 2317,167,152,2285,41,1052,38,2674,3444,36, - 1180,33,37,1104,32,34,1699,31,29,58, - 1725,114,84,85,116,3340,1733,1741,1740,1749, - 1742,1775,1767,1562,1783,1808,1782,1784,1791,151, - 4714,2528,1415,148,152,2517,41,1052,38,2427, - 3444,36,1180,33,37,1104,32,34,1699,31, - 29,58,1725,114,84,85,116,1947,1733,1741, - 1740,1749,1742,1775,1767,1960,1783,1744,1782,1784, - 1791,151,1885,2416,1885,197,152,2634,41,1052, - 38,2404,3444,36,1180,33,37,1104,32,34, - 1699,31,29,58,1725,114,84,85,116,4200, - 1733,1741,1740,1749,1742,1775,1767,2484,1783,521, - 1782,1784,1825,172,2634,41,1052,38,1669,3444, - 36,1180,33,37,1104,32,34,1699,31,29, - 58,1725,114,84,85,116,79,1733,1741,1740, - 1749,1742,1775,1767,301,1783,291,1782,1784,1825, - 172,1393,41,1052,38,1744,4647,36,1180,33, - 37,1104,67,34,410,2634,41,1052,38,297, - 3444,36,1180,33,37,1104,32,34,1699,31, - 29,58,1725,114,84,85,116,30,1733,1741, - 1740,1749,1742,1775,1767,2246,1783,2399,1782,1784, - 1825,172,2634,41,1052,38,421,3444,36,1180, - 33,37,1104,32,34,1699,31,29,58,1725, - 114,84,85,116,2488,1733,1741,1740,1749,1742, - 1775,1767,2505,1783,2546,1782,1784,1825,172,1393, - 41,1052,38,1744,4647,36,1180,33,37,1104, - 66,34,4738,2634,41,1052,38,2909,3444,36, - 1180,33,37,1104,32,34,1699,31,29,58, - 1725,114,84,85,116,353,1733,1741,1740,1749, - 1742,1775,1767,2873,1783,2351,1782,1784,1825,172, - 2690,41,1052,38,420,3444,36,1180,33,37, - 1104,32,34,1699,31,29,58,1725,114,84, - 85,116,2163,1733,1741,1740,1749,1742,1775,1767, - 2251,1783,1566,1782,1784,1825,172,1734,41,1052, - 38,1744,1714,36,1180,1408,37,1104,243,41, - 298,2634,41,1052,38,423,3444,36,1180,33, - 37,1104,32,34,1699,31,29,58,1725,114, - 84,85,116,77,1733,1741,1740,1749,1742,1775, - 1767,1226,1783,32,1782,2670,4767,3252,2634,41, - 1052,38,1614,3444,36,1180,33,37,1104,32, - 34,1699,31,29,58,1725,114,84,85,116, - 2226,1733,1741,1740,1749,1742,1775,1767,1991,1783, - 1571,2624,2634,41,1052,38,2104,3444,36,1180, - 33,37,1104,32,34,1699,31,29,58,1725, - 114,84,85,116,2237,1733,1741,1740,1749,1742, - 1775,1767,2386,2576,2634,41,1052,38,403,3444, - 36,1180,33,37,1104,32,34,1699,31,29, - 58,1725,114,84,85,116,1234,1733,1741,1740, - 1749,2541,2634,41,1052,38,855,3444,36,1180, - 33,37,1104,32,34,1699,31,29,58,1725, - 114,84,85,116,2348,1733,1741,1740,1749,2565, - 2634,41,1052,38,303,3444,36,1180,33,37, - 1104,32,34,1699,31,29,58,1725,114,84, - 85,116,149,1733,1741,1740,2328,2634,41,1052, - 38,1572,3444,36,1180,33,37,1104,32,34, - 1699,31,29,58,1725,114,84,85,116,3152, - 1733,1741,1740,2336,2634,41,1052,38,1902,3444, - 36,1180,33,37,1104,32,34,1699,31,29, - 58,1725,114,84,85,116,2144,1733,1741,1740, - 2354,2634,41,1052,38,1743,3444,36,1180,33, - 37,1104,32,34,1699,31,29,58,1725,114, - 84,85,116,1356,1733,1741,1740,2414,262,331, - 41,451,533,2012,4637,149,1971,41,1052,38, - 3006,2225,36,1180,342,37,1104,1686,41,287, - 236,392,425,1734,41,1052,38,1744,164,36, - 1180,343,37,1104,1031,2330,188,2785,32,1000, - 2597,401,683,211,222,4727,758,210,219,220, - 221,223,1744,2567,177,2936,1420,1,2418,76, - 626,533,1132,176,323,632,325,2014,246,318, - 565,2528,191,175,178,179,180,181,182,236, - 2746,41,938,389,61,3031,1226,164,164,1174, - 3016,4790,2749,244,671,188,2785,170,2597,2597, - 52,1615,211,222,4727,520,210,219,220,221, - 223,932,379,177,394,425,239,280,1490,41, - 1052,38,176,2750,36,1180,342,37,1104,189, - 149,192,175,178,179,180,181,182,1744,190, - 2394,239,247,237,238,1501,69,41,938,389, - 873,1404,41,1052,38,3006,2750,36,1180,342, - 37,1104,32,448,1817,1824,630,242,237,238, - 95,2622,626,2587,3136,336,323,632,325,1710, - 281,321,565,280,1275,41,1052,38,3782,88, - 36,1180,342,37,1104,2607,249,252,255,258, - 2779,2609,1686,41,284,626,2625,770,335,323, - 632,325,377,1744,318,565,243,41,1490,283, - 243,41,938,389,2585,2948,3108,3361,3365,4516, - 96,2082,4249,110,639,533,2642,1805,626,393, - 425,2648,323,632,325,60,3095,318,565,1603, - 41,1455,1256,3613,3432,1234,3059,57,32,80, - 4458,164,563,1447,2749,355,1744,1985,1572,188, - 2785,2663,32,311,315,3482,740,347,1325,1169, - 352,1734,41,1052,38,1977,57,36,1180,3305, - 37,1104,1447,187,537,1356,203,926,449,2668, - 2634,41,1052,38,1489,3444,36,1180,33,37, - 1104,32,34,1699,31,29,58,1725,114,84, - 85,116,2673,1733,1741,2451,2634,41,1052,38, - 2681,3444,36,1180,33,37,1104,32,34,1699, - 31,29,58,1725,114,84,85,116,2698,1733, - 1741,2478,1827,41,1052,38,3044,1121,36,1180, - 342,37,1104,2511,369,1443,41,395,2242,41, - 1052,38,3006,175,36,1180,342,37,1104,2150, - 2634,41,1052,38,354,3444,36,1180,33,37, - 1104,32,34,1699,31,29,58,1725,114,84, - 85,116,97,1733,2232,110,626,520,4773,204, - 323,632,325,32,2158,318,565,819,2854,349, - 32,32,626,533,1132,3107,323,632,325,101, - 32,318,565,355,3099,1174,3152,243,41,938, - 389,236,1443,41,395,347,1325,1169,352,164, - 3070,639,1917,2163,1234,1759,2667,188,2785,2610, - 2750,2597,1188,32,211,222,4727,3674,210,219, - 220,221,223,1993,57,177,1257,2714,436,239, - 1447,2750,533,1744,176,875,243,41,1490,288, - 311,315,206,2944,175,178,179,180,181,182, - 236,156,41,938,389,251,237,238,164,2082, - 1912,3932,335,1132,1759,3588,188,2785,2610,2750, - 2597,1489,32,211,222,4727,3728,210,219,220, - 221,223,2719,335,177,3152,2714,523,57,164, - 1744,533,1234,176,1447,3220,363,208,3420,1481, - 2027,2721,186,175,178,179,180,181,182,236, - 3013,1866,1868,3393,32,2611,3576,164,1132,2515, - 32,335,98,2610,2535,188,2785,1598,3228,2597, - 205,2610,211,222,4727,2729,210,219,220,221, - 223,2714,1875,177,164,1420,610,2111,1821,2714, - 533,2660,176,1488,577,363,2514,243,41,938, - 389,184,175,178,179,180,181,182,236,3013, - 1866,1868,1734,41,1052,38,164,2723,36,1180, - 46,37,1104,2675,188,2785,1598,2597,2597,239, - 2610,211,222,4727,429,210,219,220,221,223, - 32,379,177,32,3278,697,1333,955,2714,533, - 503,176,2702,2770,384,254,237,238,363,2771, - 185,175,178,179,180,181,182,236,504,41, - 938,389,1903,1866,1868,164,2727,2730,32,2782, - 2858,2610,3299,188,2785,2750,1744,2597,500,502, - 211,222,4727,5369,210,219,220,221,223,2714, - 5369,177,32,1744,784,57,2523,3186,533,1257, - 176,1447,765,1641,2750,1744,55,363,3637,195, - 175,178,179,180,181,182,236,1875,5369,5369, - 1276,3226,1866,1868,164,3695,2515,336,765,1641, - 2610,3242,188,2785,337,338,2597,3185,2171,211, - 222,4727,2610,210,219,220,221,223,2714,1333, - 177,355,5369,871,5369,1234,335,533,503,176, - 346,5369,5369,349,1325,1169,352,5369,3216,175, - 178,179,180,181,182,236,591,41,938,389, - 5369,5369,732,164,243,41,938,389,1744,1114, - 32,188,2785,405,4256,2597,500,502,211,222, - 4727,1234,210,219,220,221,223,5369,5369,177, - 3186,3247,958,57,5369,3271,533,503,176,1447, - 3244,432,32,292,55,5369,3217,200,175,178, - 179,180,181,182,236,3040,32,32,2247,209, - 3166,2564,164,243,41,938,389,334,338,292, - 188,2785,1316,1649,2597,501,502,211,222,4727, - 5369,210,219,220,221,223,5369,5369,177,32, - 1234,1045,239,2825,1744,533,239,176,1994,1649, - 280,5369,678,41,938,389,194,175,178,179, - 180,181,182,236,1436,41,938,389,257,237, - 238,164,260,237,238,454,3303,1536,207,188, - 2785,2610,5369,2597,5369,5369,211,222,4727,57, - 210,219,220,221,223,1447,440,177,5369,236, - 55,57,243,41,1490,285,176,1447,243,41, - 1490,3062,2396,282,2547,202,175,178,179,180, - 181,182,213,222,4727,1031,212,219,220,221, - 223,1375,41,2038,38,3006,2750,36,1180,342, - 37,1104,5369,214,216,218,299,300,725,2087, - 41,1490,283,5369,5369,243,41,938,389,17, - 5369,215,217,2634,41,1052,38,5369,3444,36, - 1180,33,37,1104,32,34,1699,31,29,58, - 1725,114,84,85,116,626,1733,2240,335,323, - 632,325,431,5369,318,565,2203,41,1052,38, - 5369,2750,36,1180,342,37,1104,32,32,32, - 15,1441,4272,1132,1473,5369,2924,41,1052,38, - 3782,2648,36,1180,342,37,1104,5369,5369,243, - 41,938,389,32,5369,1744,3000,2898,1257,164, - 2610,1954,5369,2750,5369,2985,625,3890,2641,5369, - 626,5369,1744,336,323,632,325,32,236,319, - 565,4554,2794,1234,1225,3136,57,75,1744,4702, - 626,5369,1447,354,323,632,325,737,5369,318, - 565,213,222,4727,74,212,219,220,221,223, - 5369,416,2084,5369,3019,335,5369,355,2610,524, - 73,2588,214,216,218,299,300,725,5369,347, - 1325,1169,352,5369,2533,32,236,525,224,3505, - 215,217,355,1971,41,1052,38,3006,3220,36, - 1180,342,37,1104,347,1325,1169,352,5369,213, - 222,4727,2163,212,219,220,221,223,3108,5369, - 4336,800,2610,1744,5369,243,41,938,389,5369, - 214,216,218,299,300,725,1945,32,32,32, - 236,2610,2610,2610,5369,5369,224,626,215,217, - 2389,323,632,325,3596,72,318,565,1744,346, - 346,346,430,213,222,4727,1744,212,219,220, - 221,223,1257,5369,5369,5369,3192,2750,4336,1318, - 5369,4251,4251,4251,214,216,218,299,300,725, - 1567,32,2115,2117,2144,1735,428,32,1651,1744, - 224,1777,215,217,2634,41,1052,38,5369,3444, - 36,1180,33,37,1104,32,34,1699,31,29, - 58,1725,114,84,85,116,2222,2242,5369,335, - 1132,63,4336,1992,2634,41,1052,38,5369,3444, - 36,1180,33,37,1104,32,34,1699,31,29, - 58,1725,114,84,85,116,168,2252,2634,41, - 1052,38,577,3444,36,1180,33,37,1104,32, - 34,1699,31,29,58,1725,114,84,85,116, - 1626,2320,5369,5369,2610,243,3157,1490,82,1744, - 5369,156,41,938,389,5369,5369,5369,2634,41, - 1052,38,236,3444,36,1180,33,37,1104,32, - 34,1699,31,29,58,1725,114,84,85,93, - 1580,62,1234,2582,2610,213,222,4727,57,212, - 219,220,221,223,1447,2087,41,1490,3163,55, - 5369,5369,2714,5369,5369,5369,214,216,218,299, - 300,725,5369,992,243,41,1490,3199,5369,5369, - 229,5369,17,5369,215,217,2634,1515,1052,1952, - 5369,3444,36,1180,33,37,1104,32,34,1699, - 31,29,58,1725,114,84,85,92,2634,41, - 1052,38,5369,3444,36,1180,33,37,1104,32, - 34,1699,31,29,58,1725,114,84,85,91, - 5369,364,5369,16,2634,41,1052,38,5369,3444, - 36,1180,33,37,1104,32,34,1699,31,29, - 58,1725,114,84,85,90,2634,41,1052,38, - 5369,3444,36,1180,33,37,1104,32,34,1699, - 31,29,58,1725,114,84,85,89,2634,41, - 1052,38,5369,3444,36,1180,33,37,1104,32, - 34,1699,31,29,58,1725,114,84,85,88, - 2634,41,1052,38,5369,3444,36,1180,33,37, - 1104,32,34,1699,31,29,58,1725,114,84, - 85,87,2634,41,1052,38,5369,3444,36,1180, - 33,37,1104,32,34,1699,31,29,58,1725, - 114,84,85,86,2455,41,1052,38,5369,3444, - 36,1180,33,37,1104,32,34,1699,31,29, - 58,1725,114,84,85,112,2634,41,1052,38, - 5369,3444,36,1180,33,37,1104,32,34,1699, - 31,29,58,1725,114,84,85,118,2634,41, - 1052,38,5369,3444,36,1180,33,37,1104,32, - 34,1699,31,29,58,1725,114,84,85,117, - 2634,41,1052,38,5369,3444,36,1180,33,37, - 1104,32,34,1699,31,29,58,1725,114,84, - 85,115,2634,41,1052,38,5369,3444,36,1180, - 33,37,1104,32,34,1699,31,29,58,1725, - 114,84,85,113,2987,1744,2222,1744,2610,1744, - 1132,1322,5369,3124,2222,3618,1333,2610,1132,1443, - 41,395,5369,32,1900,5369,236,2610,2610,1803, - 5369,1234,1333,5369,5369,236,168,4271,5369,109, - 5369,3421,5369,5369,168,346,346,5369,5369,213, - 222,4727,5369,212,219,220,221,223,213,222, - 4727,527,212,219,220,221,223,4251,3760,201, - 214,216,218,299,300,725,5369,3186,2152,214, - 216,218,299,300,725,5369,517,3185,215,217, - 32,2610,355,3186,1132,518,3091,215,217,5369, - 2610,5369,5369,2743,347,1325,1169,352,5369,236, - 5369,2796,345,5369,3587,338,5369,5369,236,5369, - 164,32,32,5369,5369,1132,1132,3219,5369,3615, - 3801,338,213,222,4727,5369,212,219,220,221, - 223,213,222,4727,5369,212,219,220,221,223, - 5369,164,164,214,216,218,299,300,725,5369, - 3632,3648,214,216,218,299,300,725,5369,310, - 5369,215,217,243,41,938,389,5369,225,5369, - 215,217,2578,41,1052,38,5369,3444,36,1180, - 33,37,1104,32,34,1699,31,29,58,1725, - 94,84,85,3198,5369,5369,5369,2610,5369,5369, - 57,5369,5369,5369,3776,5369,1447,5369,1257,5369, - 5369,666,5369,2750,5369,236,5369,5369,5369,5369, - 5369,5369,1971,41,1052,38,3006,5369,36,1180, - 342,37,1104,5369,5369,5369,5369,5369,213,222, - 4727,5369,212,219,220,221,223,5369,1904,41, - 2038,38,3006,5369,36,1180,342,37,1104,214, - 216,218,299,300,725,4543,2806,41,938,389, - 32,3031,5369,5369,1132,497,626,215,217,245, - 323,632,325,5369,5369,318,565,852,41,938, - 389,5369,1199,3079,5369,2222,2610,2967,2750,1132, - 164,5369,626,280,1333,639,323,632,325,3733, - 5369,318,565,2222,236,5369,5369,1132,32,5369, - 5369,5369,1132,5369,57,168,5369,239,5369,5369, - 1447,1473,5369,5369,5369,55,5369,2330,406,4617, - 5369,5369,32,168,312,315,1132,102,164,2258, - 4543,5369,5369,243,237,238,5369,1530,407,408, - 409,299,300,725,5369,3186,281,2213,41,1052, - 38,3511,164,36,1180,342,37,1104,5369,5369, - 5369,4245,250,253,256,259,2779,940,41,938, - 389,1287,3809,770,1599,2610,2967,243,41,938, - 389,5369,3807,338,5369,402,5369,5369,417,2084, - 3899,2222,5369,236,5369,1132,5369,5369,5369,5369, - 5369,626,5369,5369,57,320,1222,325,5369,5369, - 1447,5369,104,5369,57,55,2330,406,4617,5369, - 1447,168,5369,5369,5369,2396,5369,5369,5369,922, - 410,412,940,41,938,389,5369,407,408,409, - 299,300,725,5369,940,41,938,389,1589,41, - 938,389,5369,5369,1126,5369,4641,1694,41,1052, - 38,2681,5369,36,1180,342,37,1104,2548,57, - 5369,5369,2610,1599,5369,1447,591,41,938,389, - 55,57,2420,5369,5369,57,2610,1447,4247,5369, - 346,1447,55,5369,3137,5369,2893,940,41,938, - 389,722,5369,2324,346,32,3334,533,5369,533, - 3393,626,2786,57,528,320,1222,325,5369,1447, - 940,41,938,389,2992,346,4251,346,32,410, - 413,5369,533,164,57,164,5369,531,2676,5369, - 1447,5369,196,5369,2075,55,5369,3703,32,4251, - 346,32,533,5369,5369,533,5369,57,164,3535, - 1987,5369,5369,1447,5369,5369,5369,2557,55,5369, - 346,32,4251,346,5369,533,5369,5369,164,5369, - 5369,164,3735,2251,5369,5369,5369,2075,5369,5369, - 196,5369,4251,346,32,3703,5369,5369,533,5369, - 32,164,5369,2668,2610,32,198,5369,32,2610, - 196,722,2610,32,5369,3703,346,2610,5369,5369, - 5369,5369,346,5369,164,5369,5369,346,5369,5369, - 346,5369,5369,196,5369,346,5369,5369,3703,5369, - 3387,5369,5369,5369,4251,5369,5369,5369,5369,4251, - 5369,5369,4251,5369,3255,507,5369,4251,5369,5369, - 505,5369,5369,3243,5369,5369,5369,5369,532,5369, - 5369,5369,5369,4269,3338,5369,5369,5369,5369,3643, - 5369,5369,5369,5369,5369,5369,5369,5369,5369,5369, - 5369,5369,5369,5369,5369,5369,5369,3424,5369,0, - 499,4244,0,235,1,0,45,5389,0,45, - 5388,0,1,2536,0,1,654,0,1,3288, - 0,1,5389,2,0,1,5388,2,0,5610, - 248,0,5609,248,0,5710,248,0,5709,248, - 0,5637,248,0,5636,248,0,5635,248,0, - 5634,248,0,5633,248,0,5632,248,0,5631, - 248,0,5630,248,0,5648,248,0,5647,248, - 0,5646,248,0,5645,248,0,5644,248,0, - 5643,248,0,5642,248,0,5641,248,0,5640, - 248,0,5639,248,0,5638,248,0,45,248, - 5389,0,45,248,5388,0,5413,248,0,2568, - 388,0,56,5389,0,56,5388,0,45,1, - 5389,2,0,45,1,5388,2,0,5413,1, - 0,1,5702,0,1,2788,0,2568,35,0, - 438,2802,0,452,2943,0,5381,1,0,5389, - 56,0,5388,56,0,2951,322,0,45,5389, - 2,0,45,5388,2,0,41,39,0,1, - 442,0,456,1265,0,455,1311,0,235,227, - 0,499,1607,0,5413,235,1,0,45,235, - 1,0,235,415,0,43,5389,0,43,5388, - 0,51,5411,0,51,43,0,1,949,0, - 1,5648,0,1,5647,0,1,5646,0,1, - 5645,0,1,5644,0,1,5643,0,1,5642, - 0,1,5641,0,1,5640,0,1,5639,0, - 1,5638,0,45,1,5389,0,45,1,5388, - 0,728,1,0,1,2895,0,1,2972,0, - 235,226,0,5379,404,0,5378,404,0,235, - 414,0,44,5389,0,44,5388,0,2474,134, - 0,5377,1,0,5702,443,0,2788,443,0, - 5411,53,0,53,43,0,5375,1,0,5374, - 1,0,2568,47,0,2950,99,0,38,40, - 0,45,654,0,235,1,2709,0,5378,235, - 0,2719,235,0,45,1,0,244,3836,0, - 389,38,0,38,389,0,388,35,0,35, - 388,0,2474,136,0,2474,135,0,2903,235, - 0,10,12,0,8,12,0,55,43,0, + 105,105,105,107,107,106,106,196,196,91, + 91,182,182,182,182,182,125,45,45,157, + 181,181,126,126,126,126,127,159,183,183, + 37,37,116,128,128,128,128,108,108,120, + 120,120,160,161,161,161,161,161,161,161, + 161,161,161,161,186,186,184,184,185,185, + 162,162,162,162,163,187,110,109,109,188, + 188,164,164,164,164,102,102,102,189,189, + 9,9,10,190,190,191,165,156,156,166, + 166,167,168,168,6,6,7,169,169,169, + 169,169,169,169,169,169,169,169,169,169, + 169,169,169,169,169,169,169,169,169,169, + 169,169,169,169,169,169,169,169,169,169, + 169,169,169,169,169,169,169,169,169,66, + 71,71,170,170,130,130,131,131,131,131, + 131,131,3,132,132,129,129,111,111,84, + 67,80,158,158,112,112,192,192,192,133, + 133,124,124,193,193,1132,41,2259,2228,1106, + 4759,36,922,33,37,909,32,34,2210,31, + 29,58,1799,114,84,85,116,1019,1817,1835, + 1825,1860,1842,1876,1868,1312,1878,248,1877,1885, + 1903,151,280,243,41,298,166,152,2789,41, + 803,38,2980,419,36,922,342,37,909,1603, + 41,287,2631,41,803,38,239,4836,36,922, + 33,37,909,32,34,1792,31,29,58,1799, + 114,84,85,116,149,1817,1835,1825,1860,1842, + 1876,2633,242,237,238,498,1113,243,41,739, + 391,3170,627,1342,1113,281,323,924,325,3288, + 1115,318,567,1589,41,1971,49,2338,328,48, + 922,249,252,255,258,2725,1603,41,284,355, + 1905,526,1174,676,57,243,1324,1306,40,1975, + 1093,347,1918,1367,352,669,1323,1260,1997,527, + 725,732,2576,2969,3087,4502,1702,41,803,38, + 2629,4836,36,922,33,37,909,32,34,1792, + 31,29,58,1799,114,84,85,116,346,1817, + 1835,1825,1860,1842,1876,1868,2591,1878,634,1877, + 1885,1903,151,393,427,2933,1113,517,152,1254, + 4270,3908,2851,1044,2718,2099,1119,1399,246,1163, + 3884,518,2572,1702,41,803,38,2629,4836,36, + 922,33,37,909,32,34,1792,31,29,58, + 1799,114,84,85,116,346,1817,1835,1825,1860, + 1842,1876,1868,1106,1878,2810,1877,1885,1903,151, + 243,41,739,391,517,152,239,4270,161,330, + 41,453,2607,239,4721,50,1670,513,518,1694, + 41,803,38,1242,4792,36,922,33,37,909, + 65,34,247,237,238,1731,456,452,1911,251, + 237,238,1702,41,803,38,2629,4836,36,922, + 33,37,909,32,34,1792,31,29,58,1799, + 114,84,85,116,346,1817,1835,1825,1860,1842, + 1876,1868,1282,1878,513,1877,1885,1903,151,460, + 330,41,286,517,152,2988,4270,243,41,3427, + 3378,1323,1928,96,32,1911,110,518,3595,1977, + 41,803,38,2629,4836,36,922,33,37,909, + 32,34,1792,31,29,58,1799,114,84,85, + 116,346,1817,1835,1825,1860,1842,1876,1868,1414, + 1878,3334,1877,1885,1903,151,243,41,739,391, + 517,152,1416,4270,1223,243,41,739,391,243, + 41,1306,283,513,518,680,69,1620,3032,41, + 803,38,410,4889,36,922,33,37,909,32, + 34,1946,511,431,1911,446,1913,1919,2042,41, + 803,38,434,4836,36,922,33,37,909,32, + 34,1792,31,29,58,1799,114,84,85,116, + 228,1817,1835,1825,1860,1842,1876,1868,1500,1878, + 514,1877,1885,1903,151,243,41,289,3452,382, + 152,1771,41,803,38,329,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,116,1237,1817,1835,1825,1860,1842,1876, + 1868,1438,1878,317,1877,1885,1903,151,1975,438, + 1675,3452,382,152,243,41,739,391,243,41, + 2995,2631,41,803,38,1083,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,116,2014,1817,1835,1825,1860,1842,1876, + 1868,57,2583,410,388,1749,1179,54,1816,1844, + 41,803,38,1230,4836,36,922,33,37,909, + 32,34,1792,31,29,58,1799,114,84,85, + 116,2667,1817,1835,1825,1860,1842,1876,1868,1323, + 1878,308,1877,1885,1903,151,2838,389,1749,3452, + 382,152,243,41,739,391,2724,2282,41,803, + 38,2661,4836,36,922,33,37,909,32,34, + 1792,31,29,58,1799,114,84,85,116,3437, + 1817,1835,1825,1860,1842,1876,1868,1598,1878,433, + 1877,1885,1903,151,243,41,1306,288,166,152, + 2631,41,803,38,634,4836,36,922,33,37, + 909,32,34,1792,31,29,58,1799,114,84, + 85,116,1498,1817,1835,1825,1860,1842,1876,1868, + 1842,1878,327,1877,2700,380,1749,2282,41,803, + 38,531,4836,36,922,33,37,909,32,34, + 1792,31,29,58,1799,114,84,85,116,302, + 1817,1835,1825,1860,1842,1876,1868,48,1878,78, + 1877,1885,1903,151,243,41,1306,285,376,152, + 410,1833,1257,2371,41,803,38,4534,4792,36, + 922,33,37,909,64,34,2282,41,803,38, + 1997,4836,36,922,33,37,909,32,34,1792, + 31,29,58,1799,114,84,85,116,307,1817, + 1835,1825,1860,1842,1876,1868,1752,1878,2718,1877, + 1885,1903,151,243,41,739,391,376,152,335, + 2282,41,803,38,1361,4836,36,922,33,37, + 909,32,34,1792,31,29,58,1799,114,84, + 85,116,375,1817,1835,1825,1860,1842,1876,1868, + 432,1878,4550,1877,1885,1903,151,243,41,1306, + 2993,376,152,2110,41,803,38,1031,4836,36, + 922,33,37,909,32,34,1792,31,29,58, + 1799,114,84,85,116,335,1817,1835,1825,1860, + 1842,1876,1868,596,1878,1106,1877,1885,1921,172, + 68,374,1912,41,803,38,384,4836,36,922, + 33,37,909,32,34,1792,31,29,58,1799, + 114,84,85,116,149,1817,1835,1825,1860,1842, + 1876,1868,1878,1878,1257,1877,1885,1903,151,4534, + 2424,1257,497,150,152,372,4534,97,356,331, + 110,2282,41,803,38,1473,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,116,1106,1817,1835,1825,1860,1842,1876, + 1868,459,1878,1106,1877,1885,1903,151,410,243, + 1688,335,163,152,2282,41,803,38,335,4836, + 36,922,33,37,909,32,34,1792,31,29, + 58,1799,114,84,85,116,1106,1817,1835,1825, + 1860,1842,1876,1868,3294,1878,304,1877,1885,1903, + 151,3154,2724,394,427,162,152,2282,41,803, + 38,2546,4836,36,922,33,37,909,32,34, + 1792,31,29,58,1799,114,84,85,116,330, + 1817,1835,1825,1860,1842,1876,1868,2121,1878,4241, + 1877,1885,1903,151,2225,41,1306,283,161,152, + 2282,41,803,38,2678,4836,36,922,33,37, + 909,32,34,1792,31,29,58,1799,114,84, + 85,116,59,1817,1835,1825,1860,1842,1876,1868, + 293,1878,1106,1877,1885,1903,151,243,3119,1306, + 82,160,152,2282,41,803,38,421,4836,36, + 922,33,37,909,32,34,1792,31,29,58, + 1799,114,84,85,116,79,1817,1835,1825,1860, + 1842,1876,1868,523,1878,1106,1877,1885,1903,151, + 2225,41,1306,3122,159,152,2282,41,803,38, + 2071,4836,36,922,33,37,909,32,34,1792, + 31,29,58,1799,114,84,85,116,1749,1817, + 1835,1825,1860,1842,1876,1868,523,1878,105,1877, + 1885,1903,151,243,41,1306,3179,158,152,2282, + 41,803,38,1949,4836,36,922,33,37,909, + 32,34,1792,31,29,58,1799,114,84,85, + 116,1856,1817,1835,1825,1860,1842,1876,1868,1674, + 1878,106,1877,1885,1903,151,671,2167,2141,1323, + 157,152,2282,41,803,38,2144,4836,36,922, + 33,37,909,32,34,1792,31,29,58,1799, + 114,84,85,116,2214,1817,1835,1825,1860,1842, + 1876,1868,2220,1878,405,1877,1885,1903,151,3502, + 243,3319,1959,156,152,2282,41,803,38,1561, + 4836,36,922,33,37,909,32,34,1792,31, + 29,58,1799,114,84,85,116,1566,1817,1835, + 1825,1860,1842,1876,1868,1243,1878,1113,1877,1885, + 1903,151,4875,243,2973,417,155,152,2282,41, + 803,38,1585,4836,36,922,33,37,909,32, + 34,1792,31,29,58,1799,114,84,85,116, + 1030,1817,1835,1825,1860,1842,1876,1868,758,1878, + 1710,1877,1885,1903,151,4743,1482,932,1562,154, + 152,2282,41,803,38,483,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,116,2074,1817,1835,1825,1860,1842,1876, + 1868,2087,1878,2223,1877,1885,1903,151,1425,2024, + 3216,1480,153,152,2282,41,803,38,2054,4836, + 36,922,33,37,909,32,34,1792,31,29, + 58,1799,114,84,85,116,2079,1817,1835,1825, + 1860,1842,1876,1868,1250,1878,2243,1877,1885,1903, + 151,1816,1584,2233,2252,167,152,2282,41,803, + 38,2314,4836,36,922,33,37,909,32,34, + 1792,31,29,58,1799,114,84,85,116,1415, + 1817,1835,1825,1860,1842,1876,1868,2254,1878,357, + 1877,1885,1903,151,1839,41,397,1816,148,152, + 2514,41,803,38,48,4836,36,922,33,37, + 909,32,34,1792,31,29,58,1799,114,84, + 85,116,2323,1817,1835,1825,1860,1842,1876,1868, + 2327,1878,1113,1877,1885,1903,151,4808,1598,2332, + 1598,197,152,2631,41,803,38,2395,4836,36, + 922,33,37,909,32,34,1792,31,29,58, + 1799,114,84,85,116,1196,1817,1835,1825,1860, + 1842,1876,1868,845,1878,359,1877,1885,1921,172, + 2631,41,803,38,531,4836,36,922,33,37, + 909,32,34,1792,31,29,58,1799,114,84, + 85,116,2049,1817,1835,1825,1860,1842,1876,1868, + 392,1878,290,1877,1885,1921,172,2934,41,803, + 38,358,4889,36,922,33,37,909,67,34, + 531,2631,41,803,38,297,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,116,2092,1817,1835,1825,1860,1842,1876, + 1868,2366,1878,383,1877,1885,1921,172,2631,41, + 803,38,423,4836,36,922,33,37,909,32, + 34,1792,31,29,58,1799,114,84,85,116, + 2413,1817,1835,1825,1860,1842,1876,1868,2483,1878, + 2231,1877,1885,1921,172,2934,41,803,38,1237, + 4889,36,922,33,37,909,66,34,2870,2631, + 41,803,38,2930,4836,36,922,33,37,909, + 32,34,1792,31,29,58,1799,114,84,85, + 116,326,1817,1835,1825,1860,1842,1876,1868,2348, + 1878,678,1877,1885,1921,172,2687,41,803,38, + 422,4836,36,922,33,37,909,32,34,1792, + 31,29,58,1799,114,84,85,116,765,1817, + 1835,1825,1860,1842,1876,1868,1731,1878,1920,1877, + 1885,1921,172,1803,41,803,38,1237,2008,36, + 922,1488,37,909,410,1247,1260,2631,41,803, + 38,425,4836,36,922,33,37,909,32,34, + 1792,31,29,58,1799,114,84,85,116,497, + 1817,1835,1825,1860,1842,1876,1868,1330,1878,3076, + 2635,4346,303,3327,2631,41,803,38,1655,4836, + 36,922,33,37,909,32,34,1792,31,29, + 58,1799,114,84,85,116,1530,1817,1835,1825, + 1860,1842,2497,2631,41,803,38,3329,4836,36, + 922,33,37,909,32,34,1792,31,29,58, + 1799,114,84,85,116,1900,1817,1835,1825,1860, + 2548,2631,41,803,38,1600,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,116,2224,1817,1835,1825,1860,2549,2631, + 41,803,38,1598,4836,36,922,33,37,909, + 32,34,1792,31,29,58,1799,114,84,85, + 116,149,1817,1835,1825,2315,2631,41,803,38, + 1598,4836,36,922,33,37,909,32,34,1792, + 31,29,58,1799,114,84,85,116,1598,1817, + 1835,1825,2316,2631,41,803,38,1985,4836,36, + 922,33,37,909,32,34,1792,31,29,58, + 1799,114,84,85,116,309,1817,1835,1825,2376, + 2631,41,803,38,101,4836,36,922,33,37, + 909,32,34,1792,31,29,58,1799,114,84, + 85,116,301,1817,1835,1825,2405,262,1877,2222, + 1560,535,1839,41,397,1758,41,803,38,1262, + 291,36,922,342,37,909,2570,41,284,236, + 396,427,1803,41,803,38,3226,164,36,922, + 343,37,909,2403,1237,188,2641,3024,243,41, + 298,32,211,222,3600,4527,210,219,220,221, + 223,32,2006,177,1881,614,1,62,1424,627, + 535,2367,176,323,924,325,381,1598,318,567, + 1048,191,175,178,179,180,181,182,236,2743, + 41,739,391,2374,3052,1700,164,239,2219,1703, + 403,410,244,1782,188,2641,3024,1251,1086,298, + 2397,211,222,3600,2629,210,219,220,221,223, + 2057,1672,177,254,237,238,280,1803,41,803, + 38,176,346,36,922,3275,37,909,189,187, + 192,175,178,179,180,181,182,874,734,385, + 239,3101,2314,1560,3889,243,41,739,391,1237, + 2319,1404,41,803,38,1262,4534,36,922,342, + 37,909,1251,41,298,410,242,237,238,69, + 41,739,391,522,2606,1686,41,1202,2604,281, + 3406,3510,280,1247,1375,41,803,38,2980,2543, + 36,922,342,37,909,249,252,255,258,2725, + 1363,871,874,206,1137,627,280,676,335,323, + 924,325,57,3237,318,567,32,2410,1093,1541, + 1137,1434,447,867,725,732,2576,2969,3087,4502, + 168,32,32,2386,852,535,535,1137,627,2547, + 88,3682,323,924,325,282,2584,318,567,1803, + 41,803,38,346,346,36,922,46,37,909, + 32,164,164,164,3063,355,871,2040,2545,3032, + 3117,3393,170,311,315,4270,4270,347,1918,1367, + 352,1308,80,2601,3101,2032,3034,3347,1113,330, + 41,453,3882,4812,4721,942,2556,3465,1839,41, + 397,2631,41,803,38,1261,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,116,2561,1817,1835,2415,2631,41,803, + 38,2604,4836,36,922,33,37,909,32,34, + 1792,31,29,58,1799,114,84,85,116,2606, + 1817,1835,2433,3059,41,803,38,4661,2612,36, + 922,342,37,909,1333,2622,369,2639,2239,41, + 803,38,1262,2660,36,922,342,37,909,175, + 2608,2631,41,803,38,354,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,116,2367,1817,2261,3266,627,443,3922, + 2586,323,924,325,1563,62,318,567,1137,3245, + 349,1323,627,2668,535,3084,323,924,325,32, + 1257,318,567,686,355,4534,2219,1941,243,41, + 739,391,236,2670,164,2695,347,1918,1367,352, + 164,852,208,3320,3276,450,1913,1919,188,2641, + 3024,3024,332,338,32,211,222,3600,2965,210, + 219,220,221,223,1901,57,177,3556,2547,436, + 239,1093,2672,535,1237,176,656,335,1477,2168, + 311,315,2629,2629,2960,175,178,179,180,181, + 182,236,156,41,739,391,257,237,238,164, + 2734,346,3670,943,1688,522,4219,188,2641,3024, + 3871,2716,1261,32,211,222,3600,2914,210,219, + 220,221,223,2767,1333,177,32,3269,523,57, + 1137,1333,535,1563,176,1093,190,535,32,1475, + 1210,2512,743,186,175,178,179,180,181,182, + 236,1584,943,1688,2695,3726,164,1237,164,2720, + 1363,3267,2728,164,1137,1516,188,2641,3024,364, + 447,188,2641,211,222,3600,2699,210,219,220, + 221,223,32,1946,177,3084,822,610,239,30, + 168,535,3084,176,2855,591,41,286,203,4534, + 4885,2149,184,175,178,179,180,181,182,236, + 504,41,739,391,260,237,238,164,2746,2767, + 1333,1975,337,338,292,188,2641,3024,2188,334, + 338,32,211,222,3600,4269,210,219,220,221, + 223,32,2664,177,1225,1137,697,57,456,4728, + 535,336,176,1093,2050,1713,2494,3611,55,2508, + 2629,185,175,178,179,180,181,182,236,442, + 410,164,573,292,1044,355,164,1323,346,32, + 2643,3084,1048,4697,188,2641,3024,349,1918,1367, + 352,211,222,3600,2799,210,219,220,221,223, + 2349,1357,177,2488,1713,784,2726,1323,205,535, + 1363,176,4623,204,1137,410,1237,3024,3667,338, + 195,175,178,179,180,181,182,236,852,41, + 739,391,2799,379,2917,164,52,1670,1333,4534, + 168,5535,5535,188,2641,3024,1870,3024,353,1323, + 211,222,3600,407,210,219,220,221,223,410, + 410,177,32,379,871,57,1137,1257,535,32, + 176,1093,4534,3653,32,5535,55,5535,3707,3202, + 175,178,179,180,181,182,236,1237,1225,3024, + 2303,336,164,4728,164,5535,32,209,207,3084, + 1137,3786,188,2641,3024,525,149,3649,429,211, + 222,3600,5535,210,219,220,221,223,32,77, + 177,32,2461,958,3412,1137,164,535,410,176, + 3551,5535,1964,1237,377,3788,3890,338,200,175, + 178,179,180,181,182,236,939,41,739,391, + 1333,164,3148,164,32,32,5535,4534,1137,1137, + 3851,188,2641,3024,3499,76,2783,2108,211,222, + 3600,3366,210,219,220,221,223,32,5535,177, + 5535,3112,1045,57,164,3712,535,1363,176,1093, + 1870,1137,32,3869,55,5535,2617,194,175,178, + 179,180,181,182,236,1237,32,102,589,3412, + 1137,3084,164,5535,32,395,427,168,1137,1536, + 188,2641,3024,2629,1188,5535,32,211,222,3600, + 3091,210,219,220,221,223,164,61,177,32, + 5535,236,32,2611,164,1612,958,176,3896,338, + 32,32,430,3917,3180,4775,202,175,178,179, + 180,181,182,32,213,222,3600,4282,212,219, + 220,221,223,1274,41,2075,38,1262,4534,36, + 922,342,37,909,3915,214,216,218,299,300, + 633,32,104,5535,5535,2550,32,2799,1323,5535, + 2953,17,1237,215,217,2631,41,803,38,5535, + 4836,36,922,33,37,909,32,34,1792,31, + 29,58,1799,114,84,85,116,627,1817,2288, + 335,323,924,325,95,2997,318,567,3024,2629, + 1393,41,803,38,2701,5535,36,922,342,37, + 909,1237,5535,15,524,5535,1440,236,5535,2575, + 41,803,38,3682,4836,36,922,33,37,909, + 32,34,1792,31,29,58,1799,94,84,85, + 213,222,3600,60,212,219,220,221,223,1237, + 557,3891,1373,3016,627,5535,2629,2629,320,935, + 325,214,216,218,299,300,633,32,5535,2081, + 410,1088,32,4279,2734,236,2629,224,5535,215, + 217,451,1490,41,803,38,5535,4534,36,922, + 342,37,909,1237,346,418,2083,5535,213,222, + 3600,354,212,219,220,221,223,3106,229,4355, + 1167,2629,1237,32,5535,1237,4270,3298,2602,214, + 216,218,299,300,633,3713,32,2163,32,236, + 2918,410,3410,5535,1237,224,627,215,217,336, + 323,924,325,505,98,321,567,3728,1237,1237, + 355,5535,213,222,3600,788,212,219,220,221, + 223,5535,347,1918,1367,352,3888,4355,2443,201, + 3276,5535,5535,214,216,218,299,300,633,5535, + 3206,3265,503,504,5535,1237,1237,5535,1237,224, + 5535,215,217,2631,41,803,38,5535,4836,36, + 922,33,37,909,32,34,1792,31,29,58, + 1799,114,84,85,116,1363,2296,3324,75,1137, + 74,4355,2470,2631,41,803,38,5535,4836,36, + 922,33,37,909,32,34,1792,31,29,58, + 1799,114,84,85,116,168,2298,2631,41,803, + 38,1237,4836,36,922,33,37,909,32,34, + 1792,31,29,58,1799,114,84,85,116,1237, + 2308,1608,41,803,38,1237,4534,36,922,342, + 37,909,1237,73,156,41,739,391,32,2255, + 32,1626,2693,578,1961,2629,32,5535,5535,5535, + 2007,72,5535,5535,5535,5535,5535,3309,1026,41, + 739,391,3916,236,3558,1237,1237,1237,1237,5535, + 5535,57,1237,2415,5535,627,5535,1093,336,323, + 924,325,55,5535,319,567,213,222,3600,5535, + 212,219,220,221,223,57,995,63,62,3731, + 109,1093,355,5535,3442,529,55,214,216,218, + 299,300,633,5535,349,1918,1367,352,5535,5535, + 2588,5535,5535,17,5535,215,217,2631,41,803, + 38,5535,4836,36,922,33,37,909,32,34, + 1792,31,29,58,1799,114,84,85,93,2631, + 1324,803,1989,5535,4836,36,922,33,37,909, + 32,34,1792,31,29,58,1799,114,84,85, + 92,2631,41,803,38,16,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,91,2631,41,803,38,5535,4836,36, + 922,33,37,909,32,34,1792,31,29,58, + 1799,114,84,85,90,2631,41,803,38,5535, + 4836,36,922,33,37,909,32,34,1792,31, + 29,58,1799,114,84,85,89,2631,41,803, + 38,5535,4836,36,922,33,37,909,32,34, + 1792,31,29,58,1799,114,84,85,88,2631, + 41,803,38,5535,4836,36,922,33,37,909, + 32,34,1792,31,29,58,1799,114,84,85, + 87,2631,41,803,38,5535,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,86,2452,41,803,38,5535,4836,36, + 922,33,37,909,32,34,1792,31,29,58, + 1799,114,84,85,112,2631,41,803,38,5535, + 4836,36,922,33,37,909,32,34,1792,31, + 29,58,1799,114,84,85,118,2631,41,803, + 38,5535,4836,36,922,33,37,909,32,34, + 1792,31,29,58,1799,114,84,85,117,2631, + 41,803,38,5535,4836,36,922,33,37,909, + 32,34,1792,31,29,58,1799,114,84,85, + 115,2631,41,803,38,5535,4836,36,922,33, + 37,909,32,34,1792,31,29,58,1799,114, + 84,85,113,2984,5535,5535,5535,2629,5535,1317, + 1883,5535,3123,2629,1441,5535,2629,5535,5535,1828, + 5535,5535,1317,2629,4534,236,2629,5535,5535,5535, + 5535,2734,5535,5535,236,5535,5535,5535,5535,5535, + 5535,2734,5535,5535,2734,5535,5535,5535,213,222, + 3600,5535,212,219,220,221,223,213,222,3600, + 5535,212,219,220,221,223,5535,5535,5535,214, + 216,218,299,300,633,5535,335,5535,214,216, + 218,299,300,633,5535,519,3183,215,217,1363, + 2629,355,5535,1137,520,3089,215,217,5535,2629, + 363,5535,5535,347,1918,1367,352,5535,236,3154, + 363,345,5535,363,2699,1954,1956,236,5535,168, + 5535,5535,5535,5535,3693,1954,1956,3715,1954,1956, + 5535,213,222,3600,5535,212,219,220,221,223, + 213,222,3600,5535,212,219,220,221,223,5535, + 5535,5535,214,216,218,299,300,633,5535,5535, + 5535,214,216,218,299,300,633,5535,310,3196, + 215,217,5535,2629,5535,5535,5535,225,5535,215, + 217,5535,5535,5535,5535,5535,3918,5535,5535,5535, + 5535,236,5535,5535,5535,5535,5535,5535,1758,41, + 803,38,1262,5535,36,922,342,37,909,5535, + 5535,5535,5535,5535,213,222,3600,5535,212,219, + 220,221,223,5535,2033,41,2075,38,1262,5535, + 36,922,342,37,909,214,216,218,299,300, + 633,5535,2803,41,739,391,5535,3052,5535,5535, + 5535,499,627,215,217,245,323,924,325,5535, + 5535,318,567,5535,32,5535,5535,1199,2629,5535, + 5535,2629,4816,5535,243,41,739,391,627,280, + 5535,852,323,924,325,5535,346,318,567,236, + 2200,41,803,38,5535,4534,36,922,342,37, + 909,32,32,239,5535,2629,535,1440,4270,5535, + 5535,57,1746,408,4648,5535,5535,1093,5535,2171, + 312,315,1432,346,346,5535,5535,5535,5535,243, + 237,238,164,409,410,411,299,300,633,5535, + 5535,3117,281,5535,627,4270,4270,336,323,924, + 325,5535,5535,319,567,5535,2200,3562,250,253, + 256,259,2725,2208,5535,5535,5535,535,5535,1442, + 676,1758,41,803,38,1262,5535,36,922,342, + 37,909,5535,5535,5535,346,419,2083,2210,41, + 803,38,3533,164,36,922,342,37,909,5535, + 5535,1828,196,5535,5535,2629,4534,4631,5535,5535, + 1287,5535,5535,5535,2629,4816,5535,5535,5535,5535, + 5535,5535,5535,2734,5535,627,404,412,414,323, + 924,325,236,5535,318,567,5535,1373,5535,5535, + 5535,2629,627,5535,5535,5535,320,935,325,5535, + 5535,2048,5535,4670,3136,1746,408,4648,335,2734, + 5535,1767,41,739,391,5535,198,5535,1767,41, + 739,391,5535,5535,5535,5535,409,410,411,299, + 300,633,5535,1767,41,739,391,5535,5535,5535, + 5535,3871,363,5535,5535,5535,5535,5535,57,1811, + 41,739,391,5535,1093,57,3693,1954,1956,55, + 5535,1093,1442,5535,5535,2311,55,5535,32,2629, + 57,5535,2629,780,5535,5535,1093,5535,505,5535, + 916,55,852,41,739,391,57,2734,5535,5535, + 346,3388,1093,788,5535,925,5535,3219,1767,41, + 739,391,1767,41,739,391,243,41,739,391, + 5535,2695,4270,5535,5535,5535,5535,502,504,57, + 412,415,5535,2208,5535,1093,1355,41,739,391, + 3484,5535,5535,5535,5535,57,5535,5535,5535,57, + 5535,1093,5535,57,2719,1093,55,5535,32,1093, + 55,5535,2629,5535,1038,5535,505,1962,5535,5535, + 1132,5535,5535,57,1313,243,41,739,391,1093, + 346,5535,5535,5535,3181,243,41,739,391,243, + 41,739,391,5535,5535,32,5535,32,5535,535, + 5535,535,4270,5535,5535,502,504,32,5535,5535, + 5535,2629,57,509,5535,5535,32,346,1093,346, + 535,5535,57,3188,5535,164,57,164,1093,346, + 5535,2417,1093,2566,196,2629,196,3181,346,4631, + 5535,4631,5535,5535,32,2987,164,5535,2629,5535, + 32,4270,5535,346,2629,196,5535,5535,5535,5535, + 4631,5535,507,530,5535,5535,346,5535,5535,5535, + 5535,5535,346,5535,5535,4270,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,533,5535,4270,5535, + 5535,5535,5535,5535,4270,5535,5535,5535,3748,3734, + 3749,5535,5535,5535,5535,534,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,3785, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,3923,5535,0,501,4263,0, + 235,1,0,45,5555,0,45,5554,0,1, + 2555,0,1,665,0,1,3039,0,1,5555, + 2,0,1,5554,2,0,5776,248,0,5775, + 248,0,5876,248,0,5875,248,0,5803,248, + 0,5802,248,0,5801,248,0,5800,248,0, + 5799,248,0,5798,248,0,5797,248,0,5796, + 248,0,5814,248,0,5813,248,0,5812,248, + 0,5811,248,0,5810,248,0,5809,248,0, + 5808,248,0,5807,248,0,5806,248,0,5805, + 248,0,5804,248,0,45,248,5555,0,45, + 248,5554,0,5579,248,0,2979,390,0,56, + 5555,0,56,5554,0,45,1,5555,2,0, + 45,1,5554,2,0,5579,1,0,1,5868, + 0,1,3073,0,2979,35,0,440,3098,0, + 454,3142,0,5547,1,0,5555,56,0,5554, + 56,0,3191,322,0,45,5555,2,0,45, + 5554,2,0,41,39,0,1,444,0,458, + 773,0,457,1395,0,235,227,0,501,1567, + 0,5579,235,1,0,45,235,1,0,235, + 417,0,43,5555,0,43,5554,0,51,5577, + 0,51,43,0,1,1827,0,1,5814,0, + 1,5813,0,1,5812,0,1,5811,0,1, + 5810,0,1,5809,0,1,5808,0,1,5807, + 0,1,5806,0,1,5805,0,1,5804,0, + 45,1,5555,0,45,1,5554,0,643,1, + 0,5547,386,0,5546,386,0,1,2004,0, + 1,2552,0,235,226,0,5545,406,0,5544, + 406,0,235,416,0,44,5555,0,44,5554, + 0,2493,134,0,5543,1,0,5868,445,0, + 3073,445,0,5577,53,0,53,43,0,5541, + 1,0,5540,1,0,2979,47,0,3415,99, + 0,38,40,0,45,665,0,235,1,2789, + 0,5544,235,0,2790,235,0,45,1,0, + 244,2750,0,391,38,0,38,391,0,390, + 35,0,35,390,0,2493,136,0,2493,135, + 0,2929,235,0,10,12,0,55,43,0, 1,100,0,43,55,0,8,10,12,0, - 43,5389,2,0,43,5388,2,0,5389,42, - 0,5388,42,0,5702,103,0,2788,103,0, - 41,81,0,285,4545,0,193,3362,0 + 43,5555,2,0,43,5554,2,0,5555,42, + 0,5554,42,0,3143,386,0,5868,103,0, + 3073,103,0,41,81,0,8,12,0,285, + 3447,0,193,3383,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1122,42 +1155,42 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 39,40,41,42,43,44,45,46,61,48, 49,50,51,52,53,54,55,56,57,58, 59,60,0,62,63,64,65,66,67,0, - 0,1,2,72,4,6,75,76,77,78, + 1,2,71,4,0,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,0, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,73,48,49,50,51, + 42,43,44,45,46,61,48,49,50,51, 52,53,54,55,56,57,58,59,60,0, - 62,63,64,65,66,67,0,0,1,2, - 72,4,0,75,76,77,78,79,80,81, + 62,63,64,65,66,67,0,8,0,71, + 11,3,6,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,0,32,33,34, 35,36,37,38,39,40,41,42,43,44, - 45,46,73,48,49,50,51,52,53,54, + 45,46,0,48,49,50,51,52,53,54, 55,56,57,58,59,60,0,62,63,64, - 65,66,67,0,1,2,0,72,0,3, + 65,66,67,0,1,2,71,91,92,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,0,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,61, + 38,39,40,41,42,43,44,45,46,73, 48,49,50,51,52,53,54,55,56,57, - 58,59,60,0,62,63,64,65,66,67, - 0,1,2,0,72,0,100,75,76,77, + 58,59,60,101,62,63,64,65,66,67, + 0,1,2,71,4,0,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, - 47,32,33,34,35,36,37,38,39,40, + 0,32,33,34,35,36,37,38,39,40, 41,42,43,44,45,46,61,48,49,50, 51,52,53,54,55,56,57,58,59,60, - 0,62,63,64,65,66,67,0,1,2, - 0,72,99,3,75,76,77,78,79,80, + 0,62,63,64,65,66,67,0,8,0, + 71,11,3,6,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, @@ -1165,34 +1198,34 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 34,35,36,37,38,39,40,41,42,43, 44,45,46,0,48,49,50,51,52,53, 54,55,56,57,58,59,60,0,62,63, - 64,65,66,67,0,1,2,0,72,0, - 100,75,76,77,78,79,80,81,82,83, + 64,65,66,67,0,0,9,71,91,92, + 6,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,47,32,33,34,35,36, + 27,28,29,30,0,32,33,34,35,36, 37,38,39,40,41,42,43,44,45,46, - 61,48,49,50,51,52,53,54,55,56, - 57,58,59,60,101,62,63,64,65,66, - 67,0,1,2,0,72,99,0,75,76, + 0,48,49,50,51,52,53,54,55,56, + 57,58,59,60,0,62,63,64,65,66, + 67,0,1,2,71,91,92,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,47,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,60,48,49, + 30,0,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,73,48,49, 50,51,52,53,54,55,56,57,58,59, - 60,0,62,63,64,65,66,67,0,0, - 1,2,72,0,0,75,76,77,78,79, + 60,0,62,63,64,65,66,67,0,1, + 2,71,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,0,32, 33,34,35,36,37,38,39,40,41,42, - 43,44,45,46,73,48,49,50,51,52, + 43,44,45,46,0,48,49,50,51,52, 53,54,55,56,57,58,59,60,0,62, - 63,64,65,66,67,0,88,89,3,72, - 0,0,75,76,77,78,79,80,81,82, + 63,64,65,66,67,0,1,2,71,0, + 0,100,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, @@ -1200,7 +1233,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 36,37,38,39,40,41,42,43,44,45, 46,61,48,49,50,51,52,53,54,55, 56,57,58,59,60,0,62,63,64,65, - 66,67,0,8,0,3,72,0,0,75, + 66,67,0,8,0,71,4,88,89,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,121, 9,10,28,12,13,14,15,16,17,18, @@ -1211,224 +1244,224 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 59,60,5,31,63,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, - 22,23,0,118,0,0,0,29,4,4, - 32,33,34,0,47,37,10,39,40,41, - 42,8,0,45,11,47,0,69,50,3, + 22,23,0,118,0,3,31,29,4,0, + 32,33,34,4,47,37,0,39,40,41, + 42,0,0,45,8,47,0,69,50,0, 0,1,2,29,56,57,0,59,8,0, - 4,63,6,65,66,9,0,1,2,71, - 72,73,0,7,0,1,2,3,4,5, - 6,7,56,9,0,87,0,1,2,3, + 4,63,6,65,66,9,24,25,73,71, + 72,73,31,0,1,2,3,4,5,6, + 7,0,9,61,3,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, - 68,69,114,115,116,29,70,67,32,33, - 34,0,0,37,3,39,40,41,42,8, - 0,45,0,47,4,61,50,0,114,115, - 116,0,56,57,70,59,0,1,2,63, - 4,65,66,31,8,0,0,71,72,73, - 0,31,0,3,32,33,6,95,8,9, - 0,11,31,87,0,1,2,3,4,5, - 6,7,61,9,24,25,26,27,0,68, - 69,31,0,1,2,74,4,5,28,7, + 74,0,114,115,116,29,0,67,32,33, + 34,10,0,37,8,39,40,41,42,0, + 8,45,0,47,88,89,50,8,114,115, + 116,0,56,57,95,59,73,88,89,63, + 69,65,66,0,0,1,2,71,72,73, + 0,0,0,3,32,33,6,56,8,9, + 8,11,0,87,0,1,2,3,4,5, + 6,7,10,9,24,25,26,27,47,67, + 74,31,0,1,2,3,67,5,0,7, 114,115,116,0,1,2,3,4,5,6, - 7,0,9,67,0,0,0,3,3,0, - 6,61,8,9,68,11,10,8,68,69, - 70,71,0,73,74,0,1,2,24,25, - 26,27,0,1,2,31,0,73,88,89, + 7,95,9,0,0,0,62,3,64,47, + 6,61,8,9,0,11,28,3,68,69, + 70,59,72,73,74,61,74,0,24,25, + 26,27,0,69,31,31,31,10,88,89, 90,91,92,93,94,95,96,97,98,99, 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,119,61,61,117,118,0, - 120,70,68,69,70,71,67,73,74,0, - 1,2,3,4,5,6,7,62,9,64, - 0,0,88,89,90,91,92,93,94,95, + 110,111,112,113,0,61,0,117,118,0, + 120,0,68,69,70,61,72,73,74,0, + 1,2,3,4,5,6,7,0,9,0, + 0,4,88,89,90,91,92,93,94,95, 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,0,97, - 98,117,118,0,120,0,1,2,3,4, + 106,107,108,109,110,111,112,113,31,0, + 31,117,118,59,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,0, - 0,0,0,3,29,0,5,32,33,34, - 0,0,37,73,39,40,41,42,8,0, - 45,11,47,24,25,50,26,27,0,1, - 2,56,57,58,59,24,25,0,63,0, - 65,66,0,1,2,8,4,72,0,1, - 2,3,4,5,6,7,0,9,90,0, - 0,61,87,4,96,0,1,2,3,4, + 0,0,0,3,29,0,0,32,33,34, + 8,95,37,11,39,40,41,42,97,98, + 45,102,47,0,0,50,26,27,0,1, + 2,56,57,58,59,7,117,0,63,0, + 65,66,0,1,2,8,71,0,1,2, + 3,4,5,6,7,31,9,88,89,0, + 61,61,87,24,25,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,47, - 62,31,64,0,29,90,121,32,33,34, - 0,96,37,103,39,40,41,42,0,61, - 45,74,47,0,95,50,114,115,116,0, - 120,56,57,58,59,0,1,2,63,0, - 65,66,95,0,1,2,3,72,5,31, + 0,68,68,70,29,90,121,32,33,34, + 99,96,37,103,39,40,41,42,61,72, + 45,0,47,0,0,50,3,93,94,8, + 120,56,57,58,59,0,1,2,63,4, + 65,66,0,0,1,2,71,4,5,0, 7,0,1,2,3,4,5,6,7,0, - 9,10,87,0,13,14,15,16,17,18, + 9,10,87,4,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 70,30,47,0,1,2,35,36,5,38, - 7,73,0,0,43,44,121,46,69,48, - 49,8,51,52,53,54,55,68,0,1, - 2,60,4,62,6,64,8,9,0,68, - 0,1,2,3,4,5,6,7,8,9, - 10,0,73,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,31, - 30,0,0,90,0,35,36,0,38,96, - 8,4,8,43,44,11,46,74,48,49, - 0,51,52,53,54,55,0,1,2,3, - 60,5,74,7,8,0,29,67,0,97, - 98,71,0,1,2,3,4,5,6,7, - 8,9,10,95,0,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,69,30,69,0,71,74,35,36,59, - 38,0,8,102,0,43,44,61,46,8, - 48,49,8,51,52,53,54,55,117,0, - 74,0,60,0,1,2,3,69,5,67, - 7,0,0,71,0,1,2,3,4,5, - 6,7,8,9,10,24,25,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,69,30,71,0,0,67,35, - 36,0,38,0,0,71,3,43,44,0, - 46,8,48,49,0,51,52,53,54,55, - 0,1,2,3,60,5,73,7,31,68, - 69,67,0,1,2,3,4,5,6,7, - 0,9,10,0,95,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,0,30,0,61,68,70,35,36,8, - 38,8,11,69,31,43,44,74,46,70, - 48,49,0,51,52,53,54,55,6,0, - 93,94,60,4,62,0,64,0,1,2, - 3,4,5,6,7,0,9,10,0,4, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,0,30,88,89, - 69,0,35,36,71,38,0,1,2,8, - 43,44,11,46,0,48,49,3,51,52, - 53,54,55,0,0,1,2,60,0,62, - 0,64,0,1,2,3,4,5,6,7, - 8,9,10,91,92,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,31,30,0,1,2,70,35,36,0, - 38,47,0,1,2,43,44,0,46,0, - 48,49,0,51,52,53,54,55,6,0, - 0,0,0,3,0,5,6,3,102,9, - 104,105,106,107,108,109,110,111,112,113, - 47,88,89,117,24,25,26,27,0,47, - 30,31,0,1,2,3,4,5,6,7, - 0,9,0,1,2,3,0,5,0,7, - 8,0,73,11,0,0,0,9,69,8, - 118,61,62,76,64,61,0,68,68,69, - 70,0,1,2,3,0,5,31,7,8, - 0,0,11,91,92,31,6,31,88,89, - 90,91,92,93,94,0,68,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,0,1,2,3,4,5, - 6,7,68,9,10,74,31,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,68,30,90,0,93,94,35, - 36,96,38,0,88,89,0,43,44,0, - 46,8,48,49,11,51,52,53,54,55, - 0,91,92,3,60,5,6,0,0,9, + 0,30,47,114,115,116,35,36,29,38, + 47,70,68,72,43,44,121,46,0,48, + 49,0,51,52,53,54,55,0,1,2, + 3,60,5,62,7,64,0,1,2,68, 0,1,2,3,4,5,6,7,8,9, - 31,11,12,0,24,25,26,27,0,0, - 30,31,4,0,1,2,0,4,5,29, - 7,31,32,33,34,69,0,37,0,39, - 40,41,42,0,31,45,8,68,0,31, - 50,61,62,0,64,0,3,31,68,69, - 70,61,0,1,2,0,4,0,6,0, - 47,9,93,94,74,8,0,8,88,89, - 90,91,92,93,94,88,89,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,0,1,2,3,4,5, - 6,7,74,9,10,0,68,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,0,30,70,0,0,119,35, - 36,74,38,74,101,69,31,43,44,0, - 46,0,48,49,0,51,52,53,54,55, - 0,1,2,0,0,61,0,1,2,3, - 4,5,6,7,10,9,10,0,0,13, + 10,0,31,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,100, + 30,0,0,1,2,35,36,5,38,7, + 0,1,2,43,44,0,46,69,48,49, + 90,51,52,53,54,55,96,0,1,2, + 60,4,0,6,0,8,9,67,0,1, + 2,0,72,0,1,2,3,4,5,6, + 7,8,9,10,73,0,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,62,30,64,60,0,0,35,36, + 0,38,0,6,4,3,43,44,47,46, + 8,48,49,0,51,52,53,54,55,0, + 0,74,70,60,0,1,2,31,8,0, + 67,0,1,2,3,4,5,6,7,0, + 9,10,95,68,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 0,30,0,61,68,0,35,36,0,38, + 68,47,70,8,43,44,74,46,0,48, + 49,3,51,52,53,54,55,0,0,93, + 94,60,72,62,0,64,0,1,2,3, + 4,5,6,7,0,9,10,88,89,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,0,30,0,3,0, - 3,35,36,70,38,68,70,47,31,43, - 44,47,46,0,48,49,0,51,52,53, - 54,55,68,59,61,9,60,0,1,2, - 3,4,5,6,7,0,9,10,0,4, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,0,30,0,3, - 0,3,35,36,4,38,31,0,1,2, - 43,44,0,46,0,48,49,3,51,52, - 53,54,55,0,1,2,3,4,5,6, - 7,0,9,10,3,0,13,14,15,16, + 24,25,26,27,28,0,30,0,68,90, + 70,35,36,8,38,96,11,72,70,43, + 44,47,46,0,48,49,3,51,52,53, + 54,55,0,1,2,3,60,5,62,7, + 64,0,1,2,3,4,5,6,7,8, + 9,10,0,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 0,30,0,0,4,70,35,36,0,38, + 0,97,98,3,43,44,0,46,8,48, + 49,0,51,52,53,54,55,90,0,1, + 2,60,4,96,0,73,8,0,67,0, + 1,2,3,4,5,6,7,8,9,10, + 0,68,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,31,30, + 0,61,69,0,35,36,68,38,0,1, + 2,31,43,44,74,46,70,48,49,68, + 51,52,53,54,55,67,0,0,0,3, + 3,31,5,6,31,102,9,104,105,106, + 107,108,109,110,111,112,113,0,1,2, + 117,24,25,26,27,47,28,30,31,0, + 1,2,3,4,5,6,7,0,9,0, + 1,2,3,0,5,8,7,8,11,0, + 11,0,0,0,0,1,2,118,61,62, + 0,64,0,3,47,68,69,70,0,1, + 2,3,0,5,31,7,8,24,25,11, + 31,0,31,0,0,88,89,90,91,92, + 93,94,8,31,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,1,2,3,4,5,6,7,68, + 9,10,70,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 0,30,70,0,93,94,35,36,0,38, + 10,70,0,70,43,44,0,46,74,48, + 49,0,51,52,53,54,55,0,0,0, + 3,60,5,6,31,0,9,0,1,2, + 3,4,5,6,7,8,9,47,11,12, + 0,24,25,26,27,0,0,30,31,59, + 0,1,2,0,4,5,29,7,31,32, + 33,34,9,0,37,0,39,40,41,42, + 0,69,45,8,0,69,0,50,61,62, + 69,64,0,0,0,68,69,70,61,0, + 1,2,0,4,0,6,0,47,9,101, + 0,74,8,0,8,88,89,90,91,92, + 93,94,0,68,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,1,2,3,4,5,6,7,74, + 9,10,0,69,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 68,30,0,0,70,119,35,36,74,38, + 74,95,69,0,43,44,3,46,0,48, + 49,99,51,52,53,54,55,0,1,2, + 0,0,61,0,1,2,3,4,5,6, + 7,0,9,10,0,4,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,28,0,30,47,3,0,0,35,36, - 3,38,0,0,0,3,43,44,4,46, + 27,28,0,30,0,0,0,3,35,36, + 68,38,31,0,47,0,43,44,3,46, 0,48,49,3,51,52,53,54,55,0, - 1,2,3,4,5,6,7,0,9,10, - 3,0,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,0,30, - 0,3,0,3,35,36,0,38,0,0, - 0,3,43,44,0,46,70,48,49,10, - 51,52,53,54,55,0,1,2,0,4, - 0,3,0,31,0,10,0,12,13,14, - 15,16,17,18,19,20,21,22,23,0, - 0,70,3,3,29,0,47,32,33,34, - 28,0,37,0,39,40,41,42,59,0, - 45,0,119,0,0,50,0,1,2,0, - 4,5,0,7,59,0,1,2,63,4, - 65,66,0,0,31,10,0,12,13,14, - 15,16,17,18,19,20,21,22,23,0, - 0,0,0,0,29,0,0,32,33,34, - 0,0,37,47,39,40,41,42,122,0, - 45,70,0,0,0,50,0,0,1,2, - 3,4,0,6,59,12,9,0,63,0, - 65,66,0,1,2,3,4,5,6,7, - 8,9,29,11,12,32,33,34,0,0, - 37,0,39,40,41,42,0,0,45,0, - 0,29,0,50,32,33,34,0,0,37, - 0,39,40,41,42,0,0,45,61,0, - 0,0,50,0,1,2,3,0,5,0, - 7,0,0,61,0,0,0,1,2,0, - 4,0,6,0,0,9,74,12,13,14, - 15,16,17,18,19,20,21,22,23,0, - 0,0,0,0,29,0,0,32,33,34, - 0,0,37,0,39,40,41,42,0,0, - 45,0,0,0,61,50,0,1,2,3, + 1,2,61,60,0,1,2,3,4,5, + 6,7,0,9,10,0,4,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,0,30,0,3,0,3,35, + 36,0,38,31,3,73,47,43,44,73, + 46,0,48,49,3,51,52,53,54,55, + 0,1,2,3,4,5,6,7,0,9, + 10,3,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,0, + 30,76,3,0,119,35,36,0,38,0, + 0,0,3,43,44,4,46,0,48,49, + 73,51,52,53,54,55,0,1,2,3, + 4,5,6,7,0,9,10,3,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,0,30,0,3,0, + 3,35,36,0,38,0,0,0,5,43, + 44,4,46,0,48,49,69,51,52,53, + 54,55,0,1,2,0,4,0,3,0, + 31,0,10,0,12,13,14,15,16,17, + 18,19,20,21,22,23,0,69,0,3, + 0,29,0,0,32,33,34,0,31,37, + 0,39,40,41,42,122,0,45,0,1, + 2,3,50,5,69,7,119,0,0,0, + 0,59,0,1,2,63,4,65,66,0, + 0,0,10,0,12,13,14,15,16,17, + 18,19,20,21,22,23,0,0,0,0, + 0,29,0,0,32,33,34,0,0,37, + 0,39,40,41,42,0,0,45,0,61, + 0,0,50,0,0,1,2,3,4,0, + 6,59,12,9,0,63,0,65,66,0, + 1,2,3,4,5,6,7,8,9,29, + 11,12,32,33,34,0,0,37,0,39, + 40,41,42,0,0,45,0,0,29,0, + 50,32,33,34,0,0,37,0,39,40, + 41,42,0,0,45,61,0,1,2,50, + 4,0,6,0,0,9,0,0,0,0, + 61,0,0,0,1,2,0,4,5,0, + 7,0,0,74,12,13,14,15,16,17, + 18,19,20,21,22,23,0,0,0,0, + 0,29,0,0,32,33,34,0,0,37, + 0,39,40,41,42,0,0,45,0,0, + 0,0,50,0,1,2,3,4,5,6, + 7,8,9,0,11,12,0,1,2,3, 4,5,6,7,8,9,0,11,12,0, - 1,2,3,4,5,6,7,8,9,0, - 11,12,0,0,0,0,0,31,0,1, + 0,0,0,0,31,0,1,2,3,4, + 5,6,7,8,9,0,11,12,0,0, + 47,0,1,2,0,4,5,0,7,56, + 57,58,0,47,0,0,0,0,0,0, + 0,0,56,57,58,0,0,0,0,1, + 2,3,47,5,0,7,8,0,72,0, + 87,56,57,58,0,0,1,2,0,4, + 0,6,0,87,9,0,0,72,0,1, 2,3,4,5,6,7,8,9,0,11, - 12,0,0,47,0,1,2,0,4,5, - 0,7,56,57,58,0,47,0,0,0, - 0,0,0,0,0,56,57,58,0,1, - 2,0,4,0,6,47,0,9,0,0, - 71,0,0,87,56,57,58,0,0,1, - 2,0,4,0,6,0,87,9,0,71, - 0,1,2,3,4,5,6,7,8,9, - 0,11,12,0,0,87,0,0,1,2, - 3,4,5,6,7,8,9,0,11,12, - 0,0,0,0,1,2,3,4,5,6, - 7,8,9,0,11,12,0,47,0,0, - 0,0,0,0,0,0,56,57,58,0, - 0,0,0,0,47,0,0,0,0,0, - 0,71,0,56,57,58,0,0,0,0, - 47,0,0,0,0,0,0,87,71,56, - 57,58,0,0,0,1,2,3,4,5, - 6,7,8,9,87,11,12,0,1,2, - 3,4,5,6,7,8,9,0,11,12, - 87,0,0,0,0,0,0,0,0,0, + 12,0,87,0,0,0,1,2,3,4, + 5,6,7,8,9,0,11,12,0,61, + 0,0,0,1,2,3,4,5,6,7, + 8,9,74,11,12,47,0,0,0,0, + 0,0,0,0,56,57,58,0,1,2, + 0,4,47,6,0,0,9,0,0,0, + 72,56,57,58,0,0,0,0,0,47, + 0,0,0,0,0,87,0,72,56,57, + 58,0,0,1,2,3,4,5,6,7, + 8,9,87,11,12,0,1,2,3,4, + 5,6,7,8,9,0,11,12,0,87, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,47, + 0,0,0,0,0,0,0,12,56,57, + 58,0,47,0,0,0,0,0,0,0, + 0,56,57,58,29,0,12,32,33,34, + 0,0,37,0,39,40,41,42,0,87, + 45,0,0,29,0,50,32,33,34,0, + 12,37,87,39,40,41,42,0,0,45, + 0,0,0,0,50,0,0,29,0,0, + 32,33,34,0,0,37,0,39,40,41, + 42,0,0,45,0,0,0,0,50,0, 0,0,0,0,0,0,0,0,0,0, - 0,47,0,0,0,0,0,0,0,12, - 56,57,58,0,47,0,0,0,0,0, - 0,0,0,56,57,58,29,0,12,32, - 33,34,0,0,37,0,39,40,41,42, - 0,87,45,0,0,29,0,50,32,33, - 34,0,12,37,87,39,40,41,42,0, - 0,45,0,0,0,0,50,0,0,29, - 0,0,32,33,34,0,0,37,0,39, - 40,41,42,0,0,45,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,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,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; @@ -1436,339 +1469,338 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5369,5284,4973,4973,4973,4973,4973,4973,5318,4973, - 1,5288,1,1,1,1,1,1,1,1, + 5535,5447,5130,5130,5130,5130,5130,5130,5481,5130, + 1,5451,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,5369,1,1, - 1,1,1,1,1,1,998,581,659,1, - 1,446,1,1,1,1,1,5380,5369,5388, - 5389,5376,5552,3895,5369,1483,2766,3072,2085,2984, - 2675,2949,2736,588,2731,3039,2725,10,5321,5321, - 5321,5321,5321,5321,5321,5321,5321,5321,5321,5321, - 5321,5321,5321,5321,5321,5321,5321,5321,5321,5321, - 5321,5321,5321,5321,5321,5321,5321,5321,5369,5321, - 5321,5321,5321,5321,5321,5321,5321,5321,5321,5321, - 5321,5321,5321,5321,787,5321,5321,5321,5321,5321, - 5321,5321,5321,5321,5321,5321,5321,5321,426,5321, - 5321,5321,5321,5321,5321,5369,5085,5082,5321,5321, - 1,5369,5321,5321,5321,5321,5321,5321,5321,5321, - 5321,5321,5321,5321,8,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5369,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,1395,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,2692,5336,5336,5336,5336, - 5336,5336,5369,5388,5389,5336,5336,324,5369,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5369,5284,4973,4973,4973,4973,4973,4973,5291, - 4973,1,5288,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,387,1,1, + 1,1,1,1,1,1,1833,565,583,1, + 1,448,1,1,1,1,1,5546,5535,5554, + 5555,5718,5542,1617,5535,2971,2881,3230,2141,2715, + 2739,2970,2873,1790,2846,2964,2818,10,5484,5484, + 5484,5484,5484,5484,5484,5484,5484,5484,5484,5484, + 5484,5484,5484,5484,5484,5484,5484,5484,5484,5484, + 5484,5484,5484,5484,5484,5484,5484,5484,5535,5484, + 5484,5484,5484,5484,5484,5484,5484,5484,5484,5484, + 5484,5484,5484,5484,789,5484,5484,5484,5484,5484, + 5484,5484,5484,5484,5484,5484,5484,5484,428,5484, + 5484,5484,5484,5484,5484,5535,5242,5239,5484,5484, + 1,5535,5484,5484,5484,5484,5484,5484,5484,5484, + 5484,5484,5484,5484,8,5496,5496,5496,5496,5496, + 5496,5496,5496,5496,5496,5496,5496,5496,5496,5496, + 5496,5496,5496,5496,5496,5496,5496,5496,5496,5496, + 5496,5496,5496,5496,5496,5535,5496,5496,5496,5496, + 5496,5496,5496,5496,5496,5496,5496,5496,5496,5496, + 5496,3204,5496,5496,5496,5496,5496,5496,5496,5496, + 5496,5496,5496,5496,5496,3014,5496,5496,5496,5496, + 5496,5496,5535,5554,5555,5496,5496,324,5535,5496, + 5496,5496,5496,5496,5496,5496,5496,5496,5496,5496, + 5496,5535,5447,5130,5130,5130,5130,5130,5130,5454, + 5130,1,5451,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,1,1,1,1,1,1321,1, - 1,1,1,1,1,1,1,998,581,659, - 1,1,5369,1,1,1,1,1,5380,5369, - 5369,4979,4976,5552,5413,3218,1483,2766,3072,2085, - 2984,2675,2949,2736,588,2731,3039,2725,5369,5284, - 4973,4973,4973,4973,4973,4973,5291,4973,1,5288, + 1,1,5535,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1363,1, + 1,1,1,1,1,1,1,1833,565,583, + 1,1,5535,1,1,1,1,1,5546,5535, + 5136,5133,5718,5579,458,5535,2971,2881,3230,2141, + 2715,2739,2970,2873,1790,2846,2964,2818,5535,5447, + 5130,5130,5130,5130,5130,5130,5454,5130,1,5451, 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,5535, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5769,1,1,1,1, - 1,1,1,1,998,581,659,1,1,5369, - 1,1,1,1,1,5380,5369,5369,4979,4976, - 5552,5413,5369,1483,2766,3072,2085,2984,2675,2949, - 2736,588,2731,3039,2725,5369,5284,4973,4973,4973, - 4973,4973,4973,5291,4973,1,5288,1,1,1, + 1,1,1,1,1,5299,1,1,1,1, + 1,1,1,1,1833,565,583,1,1,5535, + 1,1,1,1,1,5546,123,5545,5535,5718, + 5544,737,3847,2971,2881,3230,2141,2715,2739,2970, + 2873,1790,2846,2964,2818,5535,5447,5130,5130,5130, + 5130,5130,5130,5454,5130,1,5451,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,5535,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2122,1,1,1,1,1,1,1, - 1,998,581,659,1,1,143,1,1,1, - 1,1,5380,5369,8487,8270,5369,5552,456,849, - 1483,2766,3072,2085,2984,2675,2949,2736,588,2731, - 3039,2725,5369,5284,4973,4973,4973,4973,4973,4973, - 5291,4973,1,5288,1,1,1,1,1,1, + 1,1,145,1,1,1,1,1,1,1, + 1,1833,565,583,1,1,5535,1,1,1, + 1,1,5546,5535,8652,8591,5718,3823,3793,5535, + 2971,2881,3230,2141,2715,2739,2970,2873,1790,2846, + 2964,2818,5535,5447,5130,5130,5130,5130,5130,5130, + 5454,5130,1,5451,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,1,1,1,1,1,5142, - 1,1,1,1,1,1,1,1,998,581, - 659,1,1,141,1,1,1,1,1,5380, - 56,5122,5119,5369,5552,455,2332,1483,2766,3072, - 2085,2984,2675,2949,2736,588,2731,3039,2725,5369, - 5284,4973,4973,4973,4973,4973,4973,5291,4973,1, - 5288,1,1,1,1,1,1,1,1,1, + 1,1,1,5535,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5937, + 1,1,1,1,1,1,1,1,1833,565, + 583,1,1,2317,1,1,1,1,1,5546, + 5535,5136,5133,5718,5579,457,5535,2971,2881,3230, + 2141,2715,2739,2970,2873,1790,2846,2964,2818,5535, + 5447,5130,5130,5130,5130,5130,5130,5454,5130,1, + 5451,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1240,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5145,1,1,1, - 1,1,1,1,1,998,581,659,1,1, - 144,1,1,1,1,1,5380,56,5085,5082, - 5369,5552,590,2951,1483,2766,3072,2085,2984,2675, - 2949,2736,588,2731,3039,2725,5369,5284,4973,4973, - 4973,4973,4973,4973,5291,4973,1,5288,1,1, + 5535,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5302,1,1,1, + 1,1,1,1,1,1833,565,583,1,1, + 406,1,1,1,1,1,5546,125,5396,5535, + 5718,5399,3191,3847,2971,2881,3230,2141,2715,2739, + 2970,2873,1790,2846,2964,2818,5535,5447,5130,5130, + 5130,5130,5130,5130,5454,5130,1,5451,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,5535,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,145,1,1,1,1,1,1, - 1,1,998,581,659,1,1,142,1,1, - 1,1,1,5380,295,5388,5389,55,5552,351, - 2332,1483,2766,3072,2085,2984,2675,2949,2736,588, - 2731,3039,2725,5369,5284,4973,4973,4973,4973,4973, - 4973,5291,4973,1,5288,1,1,1,1,1, + 1,1,1,5535,1,1,1,1,1,1, + 1,1,1833,565,583,1,1,139,1,1, + 1,1,1,5546,124,5535,2354,5718,3823,3793, + 3847,2971,2881,3230,2141,2715,2739,2970,2873,1790, + 2846,2964,2818,5535,5447,5130,5130,5130,5130,5130, + 5130,5454,5130,1,5451,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2746,1,1,1,1,1, + 1,1,1,1,5535,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1321,1,1,1,1,1,1,1,1,998, - 581,659,1,1,2298,1,1,1,1,1, - 5380,5369,8487,8270,43,5552,590,530,1483,2766, - 3072,2085,2984,2675,2949,2736,588,2731,3039,2725, - 5369,5284,4973,4973,4973,4973,4973,4973,5291,4973, - 1,5288,1,1,1,1,1,1,1,1, + 5535,1,1,1,1,1,1,1,1,1833, + 565,583,1,1,5535,1,1,1,1,1, + 5546,56,5279,5276,5718,3823,3793,5535,2971,2881, + 3230,2141,2715,2739,2970,2873,1790,2846,2964,2818, + 5535,5447,5130,5130,5130,5130,5130,5130,5454,5130, + 1,5451,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5411,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3193,1,1, - 1,1,1,1,1,1,998,581,659,1, - 1,5369,1,1,1,1,1,5380,129,5369, - 5122,5119,5552,5369,5369,1483,2766,3072,2085,2984, - 2675,2949,2736,588,2731,3039,2725,5369,5284,4973, - 4973,4973,4973,4973,4973,5291,4973,1,5288,1, + 1,5535,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2178,1,1, + 1,1,1,1,1,1,1833,565,583,1, + 1,143,1,1,1,1,1,5546,56,5242, + 5239,5718,295,5554,5555,2971,2881,3230,2141,2715, + 2739,2970,2873,1790,2846,2964,2818,5535,5447,5130, + 5130,5130,5130,5130,5130,5454,5130,1,5451,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,5535,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1913,1,1,1,1,1, - 1,1,1,998,581,659,1,1,5369,1, - 1,1,1,1,5380,5369,2830,2856,4798,5552, - 108,5369,1483,2766,3072,2085,2984,2675,2949,2736, - 588,2731,3039,2725,5369,5284,4973,4973,4973,4973, - 4973,4973,5291,4973,1,5288,1,1,1,1, + 1,1,1,1,5535,1,1,1,1,1, + 1,1,1,1833,565,583,1,1,5535,1, + 1,1,1,1,5546,5535,8652,8591,5718,129, + 351,1051,2971,2881,3230,2141,2715,2739,2970,2873, + 1790,2846,2964,2818,5535,5447,5130,5130,5130,5130, + 5130,5130,5454,5130,1,5451,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,5535,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,4568,1,1,1,1,1,1,1,1, - 998,581,659,1,1,5369,1,1,1,1, - 1,5380,5369,5373,5369,3836,5552,5369,5369,1483, - 2766,3072,2085,2984,2675,2949,2736,588,2731,3039, - 2725,45,4979,4976,4775,728,3976,4046,3288,4969, - 4068,913,866,5633,5640,5638,5647,5646,5642,5643, - 5641,5644,5645,5648,5639,4024,3998,4112,4090,5394, - 5636,3908,388,5709,5710,5630,1665,1698,5637,5396, - 5609,5635,5634,5631,1683,4422,5632,1691,313,5397, - 5395,5610,1657,5390,5392,5393,5391,43,5333,5333, - 5766,1358,5333,5079,864,5369,5767,5768,5369,5158, - 5158,235,5154,235,235,235,5162,235,1,235, + 1,1363,1,1,1,1,1,1,1,1, + 1833,565,583,1,1,5535,1,1,1,1, + 1,5546,45,5539,5535,5718,5579,2851,2877,2971, + 2881,3230,2141,2715,2739,2970,2873,1790,2846,2964, + 2818,45,5136,5133,2781,643,3999,4065,3039,5126, + 4087,3155,2347,5799,5806,5804,5813,5812,5808,5809, + 5807,5810,5811,5814,5805,4043,4021,4131,4109,5560, + 5802,3977,390,5875,5876,5796,1748,1782,5803,5562, + 5775,5801,5800,5797,1756,3619,5798,1774,41,5563, + 5561,5776,1739,5556,5558,5559,5557,43,5493,5493, + 5934,1402,5493,5236,735,35,5935,5936,5535,5315, + 5315,235,5311,235,235,235,5319,235,1,235, 1,1,1,1,1,1,1,1,1,1, - 1,1,5369,5372,45,45,306,1,5413,5413, - 1,1,1,5369,3945,1,5674,1,1,1, - 1,5379,5369,1,5378,5151,316,4472,1,1401, - 5369,5388,5389,933,1213,715,45,1,5381,5369, - 5413,1,2788,1,1,5702,44,5245,5242,415, - 5780,235,361,612,370,4995,4991,2882,1,654, - 1,3288,571,1,5369,5867,5369,5158,5158,235, - 5154,235,235,235,5239,235,1,235,1,1, + 1,1,322,5538,45,5282,2979,1,5579,5535, + 1,1,1,660,1660,1,5535,1,1,1, + 1,35,126,1,5541,5308,133,726,1,361, + 5535,5554,5555,937,2712,1031,45,1,5547,132, + 5579,1,3073,1,1,5868,3565,2931,424,5948, + 417,235,5264,5535,5250,5245,2555,5255,665,5261, + 3039,316,5258,1363,2766,6035,5535,5315,5315,235, + 5311,235,235,235,5402,235,1,235,1,1, 1,1,1,1,1,1,1,1,1,1, - 4443,3276,5802,5803,5804,1,1082,5380,1,1, - 1,1,35,1,3621,1,1,1,1,344, - 395,1,339,5151,388,1321,1,5369,5802,5803, - 5804,438,1213,715,1176,1,5369,4979,4976,1, - 5413,1,1,5107,5381,5369,5369,414,5780,235, - 39,2568,5369,5136,5709,5710,5136,5729,5136,5136, - 5369,5136,5110,5867,5369,5093,5088,2536,5098,654, - 5104,3288,1321,5101,5136,5136,5136,5136,5369,344, - 344,5136,5369,4979,4976,344,728,654,977,3288, - 5802,5803,5804,314,5093,5088,2536,5098,654,5104, - 3288,41,5101,5380,5369,322,306,5278,5125,5369, - 5278,5136,5278,5278,4253,5278,5674,5381,5136,5136, - 5136,5136,137,5136,5136,5369,5388,5389,5278,5278, - 5278,5278,396,5388,5389,5278,5369,2034,5136,5136, - 5136,5136,5136,5136,5136,5136,5136,5136,5136,5136, - 5136,5136,5136,5136,5136,5136,5136,5136,5136,5136, - 5136,5136,5136,5136,2878,5278,1321,5136,5136,5369, - 5136,856,5278,5278,5278,5278,5380,5278,5278,5369, - 5132,5128,2536,5413,654,2788,3288,4134,5702,2001, - 5369,5369,5278,5278,5278,5278,5278,5278,5278,5278, - 5278,5278,5278,5278,5278,5278,5278,5278,5278,5278, - 5278,5278,5278,5278,5278,5278,5278,5278,119,2392, - 2364,5278,5278,5369,5278,5369,4973,4973,235,4973, - 235,235,235,235,235,1,235,8654,1,1, - 1,1,1,1,1,1,1,1,1,126, - 83,5369,437,4246,1,122,3895,1,1,1, - 404,128,1,3008,1,1,1,1,5233,1, - 1,5236,4970,3543,2910,1,5439,5440,5369,5085, - 5082,815,581,659,1,3543,2910,1,1,5369, - 1,1,396,4979,4976,366,5413,5387,348,5132, - 5128,2882,5413,654,2788,3288,5369,5702,4156,5369, - 452,3094,5867,648,4178,5369,4973,4973,235,4973, - 235,235,235,235,235,1,235,8654,1,1, - 1,1,1,1,1,1,1,1,1,45, - 4134,5113,2001,5369,1,4156,14,1,1,1, - 296,4178,1,796,1,1,1,1,35,1321, - 1,366,4970,5369,5731,1,5802,5803,5804,294, - 934,815,581,659,1,5369,5168,5165,1,5369, - 1,1,366,1,4995,4991,4982,5387,4985,2568, - 4988,1,5217,5213,4775,5221,3976,4046,3288,5369, - 4068,5177,5867,121,5204,5210,5183,5186,5198,5195, - 5201,5192,5189,5180,5207,4024,3998,4112,4090,5394, - 1997,3908,5411,5369,5388,5389,1665,1698,654,5396, - 3288,422,138,5369,1683,4422,13,1691,1402,5397, - 5395,5375,1657,5390,5392,5393,5391,5879,1,5294, - 5294,1358,5098,45,2788,45,366,5702,5369,514, - 45,4979,4976,4775,728,3976,4046,3288,2767,4068, - 949,147,3067,5640,5638,5647,5646,5642,5643,5641, - 5644,5645,5648,5639,4024,3998,4112,4090,5394,2960, - 3908,5369,5369,4156,12,1665,1698,45,5396,4178, - 5375,5413,5324,1683,4422,8,1691,5374,5397,5395, - 5369,1657,5390,5392,5393,5391,1,4995,4991,2882, - 1358,654,366,3288,5266,5369,2291,5380,513,2392, - 2364,5376,45,4979,4976,4775,728,3976,4046,3288, - 2767,4068,949,366,5369,5640,5638,5647,5646,5642, - 5643,5641,5644,5645,5648,5639,4024,3998,4112,4090, - 5394,4883,3908,8,5369,5324,5374,1665,1698,4259, - 5396,1,5377,2261,5369,1683,4422,1321,1691,5116, - 5397,5395,5377,1657,5390,5392,5393,5391,3589,1, - 5269,127,1358,1,4995,4991,2536,876,654,5380, - 3288,5369,5369,5376,45,4979,4976,4775,728,3976, - 4046,3288,5381,4068,949,3543,2910,5640,5638,5647, - 5646,5642,5643,5641,5644,5645,5648,5639,4024,3998, - 4112,4090,5394,1005,3908,5376,373,134,5380,1665, - 1698,5369,5396,1,447,5376,3621,1683,4422,371, - 1691,5266,5397,5395,5369,1657,5390,5392,5393,5391, - 1,4995,4991,2536,1358,654,2034,3288,2501,3128, - 3276,5380,149,4979,4976,4775,728,3976,4046,3288, - 133,4068,949,5369,3768,5640,5638,5647,5646,5642, - 5643,5641,5644,5645,5648,5639,4024,3998,4112,4090, - 5394,5369,3908,1,1321,5248,1218,1665,1698,5379, - 5396,5251,5378,2529,2568,1683,4422,5269,1691,1279, - 5397,5395,123,1657,5390,5392,5393,5391,3868,1, - 2447,2420,1358,389,45,5369,45,1,5217,5213, - 4775,5221,3976,4046,3288,5369,4068,5177,5369,2496, - 5204,5210,5183,5186,5198,5195,5201,5192,5189,5180, - 5207,4024,3998,4112,4090,5394,147,3908,2830,2856, - 4498,1,1665,1698,5376,5396,42,5351,5348,5379, - 1683,4422,5378,1691,5369,5397,5395,4254,1657,5390, - 5392,5393,5391,132,51,5174,5174,1358,5369,45, - 1,45,45,4979,4976,4775,728,3976,4046,3288, - 5373,4068,949,3844,3814,5640,5638,5647,5646,5642, - 5643,5641,5644,5645,5648,5639,4024,3998,4112,4090, - 5394,2568,3908,53,5263,5263,1829,1665,1698,5369, - 5396,5171,5369,8685,8685,1683,4422,5369,1691,365, - 5397,5395,125,1657,5390,5392,5393,5391,3868,5369, - 1,5369,5369,1819,350,5836,5830,3386,2261,5834, - 1787,1745,1703,1661,1619,1577,1535,1493,1451,1409, - 5260,2830,2856,3589,5828,5829,5859,5860,5369,5411, - 5837,5839,5369,5132,5128,2536,5413,654,2788,3288, - 5369,5702,1,4995,4991,4982,5369,4985,139,4988, - 5379,1,3126,5378,136,120,5369,1048,3930,169, - 5372,1162,1531,3115,1532,1321,131,5808,5840,5861, - 5838,1,4995,4991,2536,5369,654,1257,3288,314, - 124,5369,314,3844,3814,2501,3868,3747,5850,5849, - 5862,5831,5832,5855,5856,5369,5822,5853,5854,5833, - 5835,5857,5858,5863,5843,5844,5845,5841,5842,5851, - 5852,5847,5846,5848,45,4979,4976,4775,728,3976, - 4046,3288,5312,4068,949,169,3748,5640,5638,5647, - 5646,5642,5643,5641,5644,5645,5648,5639,4024,3998, - 4112,4090,5394,2801,3908,4156,424,2447,2420,1665, - 1698,4178,5396,1,2830,2856,5369,1683,4422,135, - 1691,199,5397,5395,199,1657,5390,5392,5393,5391, - 5369,3844,3814,1819,1358,5836,5830,130,5369,5834, - 35,388,388,5306,388,388,5306,388,5309,5306, - 2501,5306,388,5369,5828,5829,5859,5860,56,378, - 5837,5839,5389,5369,4979,4976,5369,728,5281,388, - 3288,5107,388,388,388,3644,5369,388,1,388, - 388,388,388,146,3749,388,526,5315,5369,5389, - 388,1162,1531,99,1532,5369,5275,4263,5840,5861, - 5838,5309,442,1,1,506,1,1,5139,1, - 2071,5139,2447,2420,5309,171,165,5375,5850,5849, - 5862,5831,5832,5855,5856,2830,2856,5853,5854,5833, - 5835,5857,5858,5863,5843,5844,5845,5841,5842,5851, - 5852,5847,5846,5848,45,4979,4976,4775,728,3976, - 4046,3288,526,4068,949,5369,2829,5640,5638,5647, - 5646,5642,5643,5641,5644,5645,5648,5639,4024,3998, - 4112,4090,5394,504,3908,4870,418,5369,2878,1665, - 1698,171,5396,5374,2298,1871,3372,1683,4422,5369, - 1691,5369,5397,5395,5369,1657,5390,5392,5393,5391, - 43,5327,5327,107,1,1362,45,4979,4976,4775, - 728,3976,4046,3288,5224,4068,949,47,5369,5640, - 5638,5647,5646,5642,5643,5641,5644,5645,5648,5639, - 4024,3998,4112,4090,5394,244,3908,1,5297,5369, - 4878,1665,1698,4875,5396,2852,2173,3529,5272,1683, - 4422,1908,1691,5369,5397,5395,140,1657,5390,5392, - 5393,5391,2860,5227,2210,1048,1358,45,4979,4976, - 4818,728,3976,4046,3288,56,4068,949,5369,5388, - 5640,5638,5647,5646,5642,5643,5641,5644,5645,5648, - 5639,4024,3998,4112,4090,5394,5369,3908,5369,4821, - 5369,4841,1665,1698,1283,5396,5388,5369,5344,5340, - 1683,4422,5369,1691,5369,5397,5395,2761,1657,5390, - 5392,5393,5391,45,4979,4976,4775,728,3976,4046, - 3288,5369,4068,949,4864,5369,5640,5638,5647,5646, - 5642,5643,5641,5644,5645,5648,5639,4024,3998,4112, - 4090,5394,5369,3908,5411,4330,5369,5369,1665,1698, - 4361,5396,5369,519,5369,4362,1683,4422,1943,1691, - 5369,5397,5395,4520,1657,5390,5392,5393,5391,45, - 4979,4976,4775,728,3976,4046,3288,5369,4068,949, - 4264,5369,5640,5638,5647,5646,5642,5643,5641,5644, - 5645,5648,5639,4024,3998,4112,4090,5394,5369,3908, - 5369,4545,81,4563,1665,1698,193,5396,5369,1, - 5369,4592,1683,4422,5369,1691,856,5397,5395,5224, - 1657,5390,5392,5393,5391,5369,4979,4976,111,5413, - 5369,4661,1,5360,5369,642,5369,5633,5640,5638, - 5647,5646,5642,5643,5641,5644,5645,5648,5639,5369, - 285,1955,4752,5363,5636,5369,1908,5709,5710,5630, - 790,508,5637,2,5609,5635,5634,5631,5227,5369, - 5632,5369,2878,5369,5369,5610,5369,4979,4976,5369, - 728,5281,5369,3288,5766,248,5072,5068,864,5076, - 5767,5768,5369,5369,43,642,5369,5023,5059,5065, - 5038,5041,5053,5050,5056,5047,5044,5035,5062,5369, - 5369,5369,5369,5369,5014,5369,5369,5008,5005,5032, - 5369,5369,5011,2159,5002,5017,5020,5029,5366,5369, - 5026,1261,5369,231,5369,4999,5369,348,45,45, - 3621,5413,5369,2788,5766,5633,5702,5369,864,5369, - 5767,5768,38,389,389,5300,389,389,5300,389, - 5303,5300,5636,5300,389,5709,5710,5630,5369,5369, - 5637,5369,5609,5635,5634,5631,5369,5369,5632,5369, - 5369,389,5369,5610,389,389,389,5369,5369,389, - 5369,389,389,389,389,5369,5369,389,1321,5369, - 5369,5369,389,1,4995,4991,2882,5369,654,5369, - 3288,5369,5369,5303,5369,230,443,45,45,5369, - 5413,5369,5257,5369,5369,5254,5303,5633,5640,5638, - 5647,5646,5642,5643,5641,5644,5645,5648,5639,5369, - 5369,5369,5369,5369,5636,5369,5369,5709,5710,5630, - 5369,5369,5637,5369,5609,5635,5634,5631,5369,5369, - 5632,5369,5369,5369,1321,5610,1,4973,4973,235, - 4973,235,235,235,235,235,5369,235,8654,1, - 4973,4973,235,4973,235,235,235,5148,235,5369, - 235,8654,5369,5369,5369,5369,5369,1257,1,4973, - 4973,235,4973,235,235,235,5148,235,5369,235, - 8654,5369,5369,4970,5369,4979,4976,5369,728,654, - 5369,3288,815,581,659,5369,4970,5369,5369,5369, - 5369,5369,5369,5369,5369,815,581,659,100,1, - 1,5369,1,5369,5330,4970,5369,5330,5369,5369, - 227,5369,5369,5867,815,581,659,5369,103,45, - 45,5369,5413,5369,5357,5369,5867,5354,5369,227, - 1,4973,4973,235,4973,235,235,235,5230,235, - 5369,235,8654,5369,5369,5867,5369,1,4973,4973, - 235,4973,235,235,235,5148,235,5369,235,8654, - 5369,5369,5369,1,4973,4973,235,4973,235,235, - 235,235,235,5369,235,8654,5369,4970,5369,5369, - 5369,5369,5369,5369,5369,5369,815,581,659,5369, - 5369,5369,5369,5369,4970,5369,5369,5369,5369,5369, - 5369,226,5369,815,581,659,5369,5369,5369,5369, - 4970,5369,5369,5369,5369,5369,5369,5867,227,815, - 581,659,5369,5369,1,4973,4973,235,4973,235, - 235,235,235,235,5867,235,8654,1,4973,4973, - 235,4973,235,235,235,235,235,5369,235,8654, - 5867,5369,5369,5369,5369,5369,5369,5369,5369,5369, - 5369,5369,5369,5369,5369,5369,5369,232,5369,5369, - 5369,4970,5369,5369,5369,5369,5369,5369,5369,5633, - 815,581,659,5369,4970,5369,233,5369,5369,5369, - 5369,5369,5369,815,581,659,5636,5369,5633,5709, - 5710,5630,5369,5369,5637,5369,5609,5635,5634,5631, - 234,5867,5632,5369,5369,5636,5369,5610,5709,5710, - 5630,5369,5633,5637,5867,5609,5635,5634,5631,5369, - 5369,5632,5369,5369,5369,5369,5610,5369,5369,5636, - 5369,5369,5709,5710,5630,5369,5369,5637,5369,5609, - 5635,5634,5631,5369,5369,5632,5369,5369,5369,5369, - 5610 + 5540,306,5970,5971,5972,1,1,5546,1,1, + 1,5840,5535,1,366,1,1,1,1,1, + 5547,1,339,5308,2851,2877,1,5273,5970,5971, + 5972,5535,2712,1031,5895,1,2090,2851,2877,1, + 1089,1,1,5535,5535,5554,5555,5948,416,235, + 39,5535,1,5293,5875,5876,5293,626,5293,5293, + 169,5293,1,6035,370,5152,5148,2903,1,665, + 1,3039,5387,1,5293,5293,5293,5293,988,5546, + 366,5293,1,5152,5148,5139,5546,5142,5535,5145, + 5970,5971,5972,314,5250,5245,2555,5255,665,5261, + 3039,366,5258,440,5535,454,4153,5441,1747,1963, + 5441,5293,5441,5441,350,5441,1023,3523,5293,5293, + 5293,5390,5293,5293,5293,1363,169,306,5441,5441, + 5441,5441,5535,1217,5267,5441,5270,5840,5293,5293, + 5293,5293,5293,5293,5293,5293,5293,5293,5293,5293, + 5293,5293,5293,5293,5293,5293,5293,5293,5293,5293, + 5293,5293,5293,5293,5535,5441,1,5293,5293,147, + 5293,137,5441,5441,5441,1363,5441,5441,5441,5535, + 5289,5285,2555,5579,665,3073,3039,397,5868,5535, + 5535,390,5441,5441,5441,5441,5441,5441,5441,5441, + 5441,5441,5441,5441,5441,5441,5441,5441,5441,5441, + 5441,5441,5441,5441,5441,5441,5441,5441,2979,131, + 3239,5441,5441,2848,5441,5535,5130,5130,235,5130, + 235,235,235,235,235,1,235,8238,1,1, + 1,1,1,1,1,1,1,1,1,108, + 83,141,1,3120,1,119,5535,1,1,1, + 5545,5897,1,5544,1,1,1,1,2411,2383, + 1,1180,5127,5535,134,1,5605,5606,44,5408, + 5405,2647,565,583,1,647,3201,5535,1,128, + 1,1,5535,5325,5322,5543,5553,348,5289,5285, + 2903,5579,665,3073,3039,2520,5868,2851,2877,439, + 3466,3086,6035,3565,2931,5535,5130,5130,235,5130, + 235,235,235,235,235,1,235,8238,1,1, + 1,1,1,1,1,1,1,1,1,5577, + 5535,4429,5411,3652,1,4175,14,1,1,1, + 592,4197,1,799,1,1,1,1,1363,5542, + 1,5535,5127,5535,5535,1,2782,2466,2439,5543, + 1263,2647,565,583,1,398,5136,5133,1,5579, + 1,1,5535,5535,5136,5133,5553,643,5444,144, + 3039,1,5374,5370,2781,5378,3999,4065,3039,45, + 4087,5334,6035,5579,5361,5367,5340,5343,5355,5352, + 5358,5349,5346,5337,5364,4043,4021,4131,4109,5560, + 122,3977,45,5970,5971,5972,1748,1782,2042,5562, + 2127,1001,4272,5542,1756,3619,13,1774,296,5563, + 5561,5535,1739,5556,5558,5559,5557,1,5152,5148, + 2555,1402,665,45,3039,45,5535,5279,5276,516, + 45,5136,5133,2781,643,3999,4065,3039,5514,4087, + 1827,5535,2979,5806,5804,5813,5812,5808,5809,5807, + 5810,5811,5814,5805,4043,4021,4131,4109,5560,1051, + 3977,5535,5535,5554,5555,1748,1782,665,5562,3039, + 5535,5242,5239,1756,3619,532,1774,2053,5563,5561, + 4175,1739,5556,5558,5559,5557,4197,1,5457,5457, + 1402,5255,313,3073,5535,366,5868,5384,398,5554, + 5555,55,5542,45,5136,5133,2781,643,3999,4065, + 3039,5381,4087,1827,1967,5535,5806,5804,5813,5812, + 5808,5809,5807,5810,5811,5814,5805,4043,4021,4131, + 4109,5560,4153,3977,1747,3178,136,5535,1748,1782, + 1,5562,1,3486,391,3669,1756,3619,929,1774, + 344,5563,5561,5535,1739,5556,5558,5559,5557,130, + 1,366,4458,1402,51,5331,5331,2520,5414,5535, + 5384,149,5136,5133,2781,643,3999,4065,3039,121, + 4087,1827,366,6047,5806,5804,5813,5812,5808,5809, + 5807,5810,5811,5814,5805,4043,4021,4131,4109,5560, + 5535,3977,5535,1363,5475,8,1748,1782,294,5562, + 344,5328,344,5526,1756,3619,344,1774,5535,5563, + 5561,2750,1739,5556,5558,5559,5557,5535,5535,2466, + 2439,1402,5542,45,43,45,1,5374,5370,2781, + 5378,3999,4065,3039,138,4087,5334,2851,2877,5361, + 5367,5340,5343,5355,5352,5358,5349,5346,5337,5364, + 4043,4021,4131,4109,5560,5535,3977,120,3099,4175, + 3652,1748,1782,5545,5562,4197,5544,5526,1489,1756, + 3619,5577,1774,5535,5563,5561,3270,1739,5556,5558, + 5559,5557,1,5152,5148,2555,1402,665,45,3039, + 45,45,5136,5133,2781,643,3999,4065,3039,5381, + 4087,1827,5535,5535,5806,5804,5813,5812,5808,5809, + 5807,5810,5811,5814,5805,4043,4021,4131,4109,5560, + 5535,3977,5535,147,3161,4484,1748,1782,5535,5562, + 1,2411,2383,3669,1756,3619,515,1774,5429,5563, + 5561,5535,1739,5556,5558,5559,5557,4175,5535,5136, + 5133,1402,5579,4197,5535,2090,5547,1,5384,45, + 5136,5133,2781,643,3999,4065,3039,5539,4087,1827, + 5535,5976,5806,5804,5813,5812,5808,5809,5807,5810, + 5811,5814,5805,4043,4021,4131,4109,5560,2979,3977, + 5535,1363,1881,5535,1748,1782,5990,5562,53,5426, + 5426,1040,1756,3619,5432,1774,879,5563,5561,2899, + 1739,5556,5558,5559,5557,5546,99,1,1,5438, + 2307,3672,6004,5998,4524,1180,6002,1838,1795,1752, + 1709,1666,1623,1580,1537,1494,1451,5535,8817,8817, + 3201,5996,5997,6027,6028,5423,640,6005,6007,5535, + 5289,5285,2555,5579,665,3073,3039,1,5868,1, + 5152,5148,5139,5535,5142,199,5145,5545,199,5535, + 5544,135,449,127,42,5511,5508,5538,539,1385, + 244,1393,5535,5460,5577,6008,6006,6029,1,5152, + 5148,2555,365,665,4561,3039,314,3565,2931,314, + 4778,426,2520,165,1,6018,6017,6030,5999,6000, + 6023,6024,528,3511,6021,6022,6001,6003,6025,6026, + 6031,6011,6012,6013,6009,6010,6019,6020,6015,6014, + 6016,45,5136,5133,2781,643,3999,4065,3039,5478, + 4087,1827,2839,5535,5806,5804,5813,5812,5808,5809, + 5807,5810,5811,5814,5805,4043,4021,4131,4109,5560, + 1,3977,3038,47,2466,2439,1748,1782,146,5562, + 5387,3348,373,1924,1756,3619,371,1774,528,5563, + 5561,508,1739,5556,5558,5559,5557,5535,5535,5535, + 2307,1402,6004,5998,5435,5535,6002,35,390,390, + 5469,390,390,5469,390,5472,5469,1963,5469,390, + 5535,5996,5997,6027,6028,5535,5535,6005,6007,5390, + 5535,5136,5133,140,643,5444,390,3039,5264,390, + 390,390,2354,5535,390,1,390,390,390,390, + 5535,1276,390,171,506,1320,1,390,539,1385, + 4858,1393,142,5535,5535,6008,6006,6029,5472,444, + 1,1,5535,1,5535,5296,1,2215,5296,2317, + 5535,5472,5541,420,5541,6018,6017,6030,5999,6000, + 6023,6024,5535,2908,6021,6022,6001,6003,6025,6026, + 6031,6011,6012,6013,6009,6010,6019,6020,6015,6014, + 6016,45,5136,5133,2781,643,3999,4065,3039,171, + 4087,1827,5535,4907,5806,5804,5813,5812,5808,5809, + 5807,5810,5811,5814,5805,4043,4021,4131,4109,5560, + 2915,3977,5535,5535,4950,2923,1748,1782,5540,5562, + 5540,3875,2229,1,1756,3619,4944,1774,5535,5563, + 5561,592,1739,5556,5558,5559,5557,43,5487,5487, + 5535,107,1483,45,5136,5133,2781,643,3999,4065, + 3039,56,4087,1827,5535,5555,5806,5804,5813,5812, + 5808,5809,5807,5810,5811,5814,5805,4043,4021,4131, + 4109,5560,5535,3977,5535,378,5535,4895,1748,1782, + 2917,5562,5555,5535,1574,5535,1756,3619,4897,1774, + 5535,5563,5561,3093,1739,5556,5558,5559,5557,5535, + 5504,5500,2266,1402,45,5136,5133,4562,643,3999, + 4065,3039,56,4087,1827,5535,5554,5806,5804,5813, + 5812,5808,5809,5807,5810,5811,5814,5805,4043,4021, + 4131,4109,5560,5535,3977,5535,4916,5535,3322,1748, + 1782,5535,5562,5554,3356,3029,5577,1756,3619,3088, + 1774,5535,5563,5561,3381,1739,5556,5558,5559,5557, + 45,5136,5133,2781,643,3999,4065,3039,5535,4087, + 1827,3414,5535,5806,5804,5813,5812,5808,5809,5807, + 5810,5811,5814,5805,4043,4021,4131,4109,5560,5535, + 3977,3071,2650,193,2923,1748,1782,5535,5562,5535, + 5535,5535,3447,1756,3619,1136,1774,521,5563,5561, + 3147,1739,5556,5558,5559,5557,45,5136,5133,2781, + 643,3999,4065,3039,5535,4087,1827,3815,5535,5806, + 5804,5813,5812,5808,5809,5807,5810,5811,5814,5805, + 4043,4021,4131,4109,5560,5535,3977,111,3474,81, + 4349,1748,1782,5535,5562,510,5535,5535,1617,1756, + 3619,1532,1774,5535,5563,5561,726,1739,5556,5558, + 5559,5557,5535,5136,5133,5535,5579,2,4931,5535, + 5523,5535,860,5535,5799,5806,5804,5813,5812,5808, + 5809,5807,5810,5811,5814,5805,285,2010,5535,5529, + 5535,5802,5535,5535,5875,5876,5796,5535,43,5803, + 5535,5775,5801,5800,5797,5532,5535,5798,1,5152, + 5148,2903,5776,665,938,3039,2923,5535,5535,5535, + 5535,5934,248,5229,5225,735,5233,5935,5936,5535, + 5535,5535,860,5535,5180,5216,5222,5195,5198,5210, + 5207,5213,5204,5201,5192,5219,5535,5535,5535,5535, + 5535,5171,5535,5535,5165,5162,5189,5535,5535,5168, + 5535,5159,5174,5177,5186,5535,5535,5183,5535,1363, + 231,5535,5156,5535,348,45,45,3669,5579,5535, + 3073,5934,5799,5868,5535,735,5535,5935,5936,38, + 391,391,5463,391,391,5463,391,5466,5463,5802, + 5463,391,5875,5876,5796,5535,5535,5803,5535,5775, + 5801,5800,5797,5535,5535,5798,5535,5535,391,5535, + 5776,391,391,391,5535,5535,391,5535,391,391, + 391,391,5535,5535,391,1363,445,45,45,391, + 5579,5535,5420,5535,5535,5417,5535,5535,5535,5535, + 5466,5535,230,5535,5136,5133,5535,643,665,5535, + 3039,5535,5535,5466,5799,5806,5804,5813,5812,5808, + 5809,5807,5810,5811,5814,5805,5535,5535,5535,5535, + 5535,5802,5535,5535,5875,5876,5796,5535,5535,5803, + 5535,5775,5801,5800,5797,5535,5535,5798,5535,5535, + 5535,5535,5776,1,5130,5130,235,5130,235,235, + 235,235,235,5535,235,8238,1,5130,5130,235, + 5130,235,235,235,5305,235,5535,235,8238,5535, + 5535,5535,5535,5535,1040,1,5130,5130,235,5130, + 235,235,235,5305,235,5535,235,8238,5535,5535, + 5127,5535,5136,5133,5535,643,665,5535,3039,2647, + 565,583,5535,5127,5535,5535,5535,5535,5535,5535, + 5535,5535,2647,565,583,5535,5535,5535,1,5152, + 5148,2903,5127,665,5535,3039,5429,5535,227,5535, + 6035,2647,565,583,5535,100,1,1,5535,1, + 5535,5490,5535,6035,5490,5535,5535,227,1,5130, + 5130,235,5130,235,235,235,5393,235,5535,235, + 8238,5535,6035,5535,5535,1,5130,5130,235,5130, + 235,235,235,5305,235,5535,235,8238,5535,1363, + 5535,5535,1,5130,5130,235,5130,235,235,235, + 235,235,5432,235,8238,5127,5535,5535,5535,5535, + 5535,5535,5535,5535,2647,565,583,103,45,45, + 5535,5579,5127,5520,5535,5535,5517,5535,5535,5535, + 226,2647,565,583,5535,5535,5535,5535,5535,5127, + 5535,5535,5535,5535,5535,6035,5535,227,2647,565, + 583,5535,1,5130,5130,235,5130,235,235,235, + 235,235,6035,235,8238,1,5130,5130,235,5130, + 235,235,235,235,235,5535,235,8238,5535,6035, + 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, + 5535,5535,5535,5535,5535,232,5535,5535,5535,5127, + 5535,5535,5535,5535,5535,5535,5535,5799,2647,565, + 583,5535,5127,5535,233,5535,5535,5535,5535,5535, + 5535,2647,565,583,5802,5535,5799,5875,5876,5796, + 5535,5535,5803,5535,5775,5801,5800,5797,234,6035, + 5798,5535,5535,5802,5535,5776,5875,5876,5796,5535, + 5799,5803,6035,5775,5801,5800,5797,5535,5535,5798, + 5535,5535,5535,5535,5776,5535,5535,5802,5535,5535, + 5875,5876,5796,5535,5535,5803,5535,5775,5801,5800, + 5797,5535,5535,5798,5535,5535,5535,5535,5776 }; }; public final static char termAction[] = TermAction.termAction; @@ -1776,59 +1808,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 806,14,844,426,461,342,113,983,981,560, - 806,244,1104,981,1033,1044,562,1044,557,1044, - 559,1044,1028,1044,244,245,16,342,239,245, - 668,668,719,668,245,426,390,789,115,21, - 562,253,245,1105,608,66,245,363,111,491, - 248,361,562,428,245,433,245,245,111,363, - 363,350,242,1,1,8,10,239,245,661, - 608,390,668,433,665,298,608,668,668,433, - 60,617,82,808,808,21,21,21,244,245, - 1105,350,66,363,362,363,111,153,363,428, - 428,245,433,111,245,363,562,244,239,257, - 205,512,239,905,661,433,242,298,298,433, - 1105,617,82,21,714,21,21,245,350,350, - 714,245,66,1120,560,390,845,1110,66,363, - 363,353,245,491,245,428,714,367,713,789, - 599,426,390,390,390,390,244,426,550,189, - 552,206,206,206,206,206,206,206,206,206, - 670,676,681,678,685,683,690,688,692,691, - 693,301,694,788,245,562,169,372,245,426, - 298,708,608,205,511,661,660,789,665,789, - 608,505,493,504,788,390,652,652,714,714, - 245,60,1112,372,488,354,245,153,714,206, - 245,242,613,501,500,189,461,461,461,461, - 245,862,750,670,608,608,189,940,460,60, - 189,670,59,59,862,205,206,206,206,206, - 206,206,206,206,206,206,206,206,206,206, - 206,206,206,206,206,205,205,205,205,205, - 205,205,205,205,205,205,205,206,189,717, - 170,244,245,862,376,511,661,791,205,502, - 502,611,242,907,82,808,82,787,787,350, - 1105,10,383,206,1120,9,353,245,244,244, - 245,599,608,615,617,608,608,789,789,789, - 789,111,608,206,392,1050,1050,244,552,298, - 460,205,1105,608,1104,1106,1104,608,298,678, - 678,676,676,676,683,683,683,683,681,681, - 688,685,685,691,690,692,1120,693,717,169, - 1120,206,1120,350,168,426,426,426,170,426, - 245,308,350,350,245,562,608,205,713,509, - 791,205,205,615,493,82,461,461,350,1112, - 206,206,245,245,245,608,617,426,426,426, - 426,245,245,245,60,206,461,674,565,608, - 245,1106,60,205,160,426,160,170,1120,170, - 189,189,187,658,189,350,350,804,717,511, - 793,788,245,245,852,608,205,205,205,205, - 426,426,111,1105,608,674,242,491,245,1105, - 907,170,608,239,608,187,342,426,608,717, - 793,1026,852,852,608,608,608,608,862,862, - 245,674,675,674,205,565,1108,670,491,608, - 608,1098,170,804,170,350,342,205,170,167, - 426,652,798,852,608,608,1085,674,862,206, - 298,1108,562,562,1100,205,168,862,350,608, - 618,787,798,798,675,608,298,170,608,350, - 607,1104,798,170,461 + 865,1,903,371,663,207,511,981,979,521, + 865,302,1102,979,1031,1042,523,1042,518,1042, + 520,1042,1026,1042,302,303,16,207,297,303, + 808,808,728,808,303,371,335,798,373,21, + 523,112,303,1103,461,464,303,118,509,693, + 513,116,523,587,303,635,303,303,509,118, + 118,215,300,3,3,10,12,297,303,801, + 461,335,808,635,805,163,461,808,808,635, + 60,598,480,867,867,21,21,21,302,303, + 1103,215,464,118,117,118,509,411,118,587, + 587,303,635,509,303,118,523,302,297,122, + 263,67,297,585,801,635,300,163,163,635, + 1103,598,480,21,854,21,21,303,215,215, + 854,303,464,1118,521,335,904,1108,464,118, + 118,857,303,693,303,587,854,306,853,798, + 452,371,335,335,335,335,302,371,105,247, + 107,264,264,264,264,264,264,264,264,264, + 810,816,821,818,825,823,830,828,832,831, + 833,166,834,797,303,523,227,311,303,371, + 163,848,461,263,854,523,801,800,798,805, + 798,461,538,526,537,797,335,322,322,854, + 854,303,60,1110,311,690,858,303,411,854, + 264,303,300,594,534,533,247,663,663,663, + 663,303,542,759,810,461,461,247,938,662, + 60,247,810,59,59,542,263,264,264,264, + 264,264,264,264,264,264,264,264,264,264, + 264,264,264,264,264,264,263,263,263,263, + 263,263,263,263,263,263,263,263,264,247, + 911,228,302,303,542,315,854,67,801,913, + 263,535,535,592,300,695,480,867,480,796, + 796,215,1103,12,328,264,1118,11,857,303, + 302,302,303,452,461,596,598,461,461,798, + 798,798,798,509,461,264,337,1048,1048,302, + 107,163,662,263,1103,461,1102,1104,1102,461, + 163,818,818,816,816,816,823,823,823,823, + 821,821,828,825,825,831,830,832,1118,833, + 911,227,1118,264,1118,215,226,371,371,371, + 228,371,303,173,215,215,303,523,461,263, + 67,913,263,263,596,526,480,663,663,215, + 1110,264,264,303,303,303,461,598,371,371, + 371,371,303,303,303,60,264,663,814,418, + 461,303,1104,60,263,218,371,218,228,1118, + 228,247,247,245,633,247,215,215,926,911, + 853,915,797,303,303,928,461,263,263,263, + 263,371,371,509,1103,461,814,300,693,303, + 1103,695,228,461,297,461,245,207,371,461, + 911,852,66,915,1024,928,928,461,461,461, + 461,542,542,303,814,815,814,263,418,1106, + 810,693,461,461,1096,228,926,228,215,207, + 263,228,225,852,852,371,322,920,928,461, + 461,1083,814,542,264,163,1106,523,523,1098, + 263,226,542,215,461,599,796,920,920,815, + 461,163,228,461,215,460,1102,920,228,663 }; }; public final static char asb[] = Asb.asb; @@ -1836,119 +1868,118 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 75,68,73,95,74,67,61,3,70,8, - 11,69,0,121,0,8,73,67,75,0, + 121,0,75,68,73,95,74,67,61,3, + 69,8,11,70,0,8,73,67,75,0, 58,34,13,14,59,32,15,63,37,87, 12,16,39,40,17,18,41,56,42,19, 20,45,65,50,10,66,21,57,29,22, - 33,23,8,3,9,6,71,11,4,7, - 1,2,5,47,0,87,56,7,114,115, - 116,57,8,3,9,6,5,73,71,11, - 72,34,13,14,59,32,15,63,37,12, - 16,39,40,17,18,41,42,19,20,45, - 65,50,10,66,21,29,22,33,23,4, - 1,2,47,0,58,34,13,14,59,32, - 15,63,37,87,12,16,39,40,17,18, - 41,56,42,19,20,45,65,50,10,66, - 21,57,29,22,33,23,3,9,4,11, - 67,8,7,6,5,1,2,47,0,87, - 114,115,116,47,73,121,119,122,71,72, - 75,57,56,58,77,79,85,83,76,81, - 82,84,86,67,78,80,11,8,34,59, - 32,63,37,12,39,40,41,42,45,65, - 50,66,29,33,60,62,64,10,36,46, - 43,35,51,14,23,13,19,17,18,20, - 21,16,15,22,52,55,53,54,28,49, - 38,48,26,27,24,25,30,44,7,5, - 3,6,9,4,1,2,0,4,8,73, - 67,0,8,67,70,0,62,64,3,10, - 36,46,43,35,51,14,23,13,19,17, - 18,20,21,16,15,22,52,55,53,54, - 28,49,38,48,5,7,4,26,27,9, - 6,24,25,30,44,1,2,118,8,0, - 68,73,95,69,118,74,71,13,14,35, - 62,15,36,38,16,17,18,64,43,19, - 20,44,46,48,60,49,51,10,21,22, - 23,52,53,54,28,26,27,24,25,30, - 55,9,6,4,1,2,7,5,3,11, - 8,0,29,1,2,4,114,115,116,0, - 4,31,8,73,67,0,8,69,71,70, - 0,8,67,69,0,8,73,118,74,11, - 69,0,73,8,61,3,70,69,11,31, - 0,34,13,14,32,15,37,12,16,39, - 40,17,18,41,7,42,19,20,45,50, - 21,29,22,33,23,1,2,8,61,9, - 6,5,4,74,11,3,0,1,2,8, - 71,0,35,62,36,38,64,7,43,44, - 46,48,60,49,51,52,53,54,28,26, - 27,9,6,24,25,5,30,68,55,3, - 10,63,59,65,66,14,23,13,19,17, - 18,20,21,16,15,22,34,42,45,12, - 41,40,37,32,33,39,50,1,2,29, - 4,0,9,6,4,5,7,1,2,3, - 61,68,70,69,8,74,95,0,69,11, - 71,60,26,27,9,6,24,25,30,44, - 3,4,52,55,53,54,28,49,38,48, + 33,23,8,3,9,6,72,11,4,7, + 1,2,5,47,0,72,60,26,27,9, + 6,24,25,30,44,3,4,52,55,53, + 54,28,49,38,48,14,23,13,19,17, + 18,20,21,16,15,22,10,36,46,43, + 35,51,67,8,5,7,1,2,64,62, + 0,8,67,69,0,4,31,8,73,67, + 0,62,64,3,10,36,46,43,35,51, 14,23,13,19,17,18,20,21,16,15, - 22,10,36,46,43,35,51,67,8,5, - 7,1,2,64,62,0,47,73,4,1, - 2,67,8,0,96,90,24,25,91,92, - 88,89,31,93,94,97,98,99,100,101, - 102,117,73,95,70,104,105,106,107,108, - 109,110,111,112,113,118,71,11,68,1, - 2,9,6,4,3,61,69,74,8,0, - 7,5,3,61,6,9,95,34,13,14, + 22,52,55,53,54,28,49,38,48,5, + 7,4,26,27,9,6,24,25,30,44, + 1,2,118,8,0,68,73,95,70,118, + 74,72,13,14,35,62,15,36,38,16, + 17,18,64,43,19,20,44,46,48,60, + 49,51,10,21,22,23,52,53,54,28, + 26,27,24,25,30,55,9,6,4,1, + 2,7,5,3,11,8,0,87,114,115, + 116,47,73,121,119,122,72,71,75,57, + 56,58,77,79,85,83,76,81,82,84, + 86,67,78,80,11,8,34,59,32,63, + 37,12,39,40,41,42,45,65,50,66, + 29,33,60,62,64,10,36,46,43,35, + 51,14,23,13,19,17,18,20,21,16, + 15,22,52,55,53,54,28,49,38,48, + 26,27,24,25,30,44,7,5,3,6, + 9,4,1,2,0,8,70,72,69,0, + 8,67,70,0,8,73,118,74,11,70, + 0,68,69,70,1,2,0,73,8,61, + 3,69,70,11,31,0,34,13,14,32, + 15,37,12,16,39,40,17,18,41,7, + 42,19,20,45,50,21,29,22,33,23, + 1,2,8,61,9,6,5,4,74,11, + 3,0,58,34,13,14,59,32,15,63, + 37,87,12,16,39,40,17,18,41,56, + 42,19,20,45,65,50,10,66,21,57, + 29,22,33,23,3,9,4,11,67,8, + 7,6,5,1,2,47,0,96,90,24, + 25,91,92,88,89,31,93,94,97,98, + 99,100,101,102,117,73,95,69,104,105, + 106,107,108,109,110,111,112,113,118,72, + 11,68,1,2,9,6,4,3,61,70, + 74,8,0,87,56,7,114,115,116,57, + 8,3,9,6,5,73,72,11,71,34, + 13,14,59,32,15,63,37,12,16,39, + 40,17,18,41,42,19,20,45,65,50, + 10,66,21,29,22,33,23,4,1,2, + 47,0,4,8,73,67,0,47,73,4, + 1,2,67,8,0,9,6,4,5,7, + 1,2,3,61,68,69,70,8,74,95, + 0,8,74,13,14,35,62,15,36,38, + 16,17,18,64,7,43,19,20,44,46, + 48,60,49,51,10,21,22,23,52,53, + 54,28,1,2,3,26,27,9,24,25, + 5,30,4,55,6,0,1,2,8,72, + 0,7,5,3,61,6,9,95,34,13, + 14,59,32,15,63,37,12,16,39,40, + 17,18,41,42,19,20,45,65,50,10, + 66,21,29,22,33,23,1,2,4,74, + 8,0,76,0,35,62,36,38,64,7, + 43,44,46,48,60,49,51,52,53,54, + 28,26,27,9,6,24,25,5,30,68, + 55,3,10,63,59,65,66,14,23,13, + 19,17,18,20,21,16,15,22,34,42, + 45,12,41,40,37,32,33,39,50,1, + 2,29,4,0,34,13,14,59,32,15, + 63,37,12,16,39,40,17,18,41,42, + 19,20,45,65,50,10,66,21,29,22, + 33,23,1,2,4,95,0,34,13,14, 59,32,15,63,37,12,16,39,40,17, 18,41,42,19,20,45,65,50,10,66, - 21,29,22,33,23,1,2,4,74,8, - 0,68,70,69,1,2,0,76,0,60, + 21,29,22,33,23,1,2,4,64,62, + 24,25,6,91,92,99,9,100,5,30, + 31,107,108,104,105,106,112,111,113,89, + 88,109,110,97,98,93,94,101,102,26, + 27,90,103,3,61,69,70,68,0,60, 32,7,33,5,1,2,4,75,67,120, 103,26,27,61,3,96,90,6,91,92, 24,25,89,88,31,93,94,97,98,9, - 99,100,101,68,95,74,70,104,105,106, - 107,108,109,110,111,112,113,73,118,11, - 102,117,69,71,8,0,119,0,34,13, - 14,59,32,15,63,37,12,16,39,40, - 17,18,41,42,19,20,45,65,50,10, - 66,21,29,22,33,23,1,2,4,64, - 62,24,25,6,91,92,99,9,100,5, - 30,31,107,108,104,105,106,112,111,113, - 89,88,109,110,97,98,93,94,101,102, - 26,27,90,103,3,61,70,69,68,0, - 32,33,75,3,73,11,67,60,8,68, - 95,69,74,70,0,121,72,59,32,15, - 63,37,16,39,40,17,18,41,42,19, - 20,45,65,50,66,21,29,22,33,23, - 14,13,34,8,3,9,6,11,57,58, - 87,12,47,56,7,1,2,5,4,10, - 0,32,60,33,8,68,95,70,69,74, - 0,8,74,13,14,35,62,15,36,38, - 16,17,18,64,7,43,19,20,44,46, - 48,60,49,51,10,21,22,23,52,53, - 54,28,1,2,3,26,27,9,24,25, - 5,30,4,55,6,0,34,13,14,59, - 32,15,63,37,12,16,39,40,17,18, - 41,42,19,20,45,65,50,10,66,21, - 29,22,33,23,1,2,4,95,0,62, - 64,26,27,9,6,24,25,5,30,44, - 3,4,7,52,55,53,54,49,38,48, + 99,100,101,68,95,74,69,104,105,106, + 107,108,109,110,111,112,113,73,118,102, + 117,11,70,72,8,0,29,1,2,4, + 114,115,116,0,121,71,59,32,15,63, + 37,16,39,40,17,18,41,42,19,20, + 45,65,50,66,21,29,22,33,23,14, + 13,34,8,3,9,6,11,57,58,87, + 12,47,56,7,1,2,5,4,10,0, + 119,0,32,33,75,3,73,11,67,60, + 8,68,95,70,74,69,0,32,60,33, + 8,68,95,69,70,74,0,62,64,26, + 27,9,6,24,25,5,30,44,3,4, + 7,52,55,53,54,49,38,48,14,23, + 13,19,17,18,20,21,16,15,22,10, + 36,46,43,35,51,61,1,2,28,0, + 32,15,63,37,16,39,40,17,18,41, + 42,19,20,45,65,50,10,66,21,29, + 22,33,23,14,13,34,7,8,3,9, + 6,5,11,57,56,58,87,12,31,1, + 2,4,47,59,0,10,63,59,65,66, 14,23,13,19,17,18,20,21,16,15, - 22,10,36,46,43,35,51,61,1,2, - 28,0,32,15,63,37,16,39,40,17, - 18,41,42,19,20,45,65,50,10,66, - 21,29,22,33,23,14,13,34,7,8, - 3,9,6,5,11,57,56,58,87,12, - 31,1,2,4,47,59,0,10,63,59, - 65,66,14,23,13,19,17,18,20,21, - 16,15,22,75,73,95,118,71,67,120, - 96,103,90,26,27,24,25,91,92,88, - 89,31,68,93,94,97,98,99,100,101, - 102,117,70,104,105,106,107,108,109,110, - 111,112,113,69,34,32,37,12,39,40, - 41,42,45,50,29,33,11,8,74,9, - 6,3,61,4,7,1,2,5,0,11, - 8,7,5,3,1,2,6,9,4,73, - 0 + 22,75,73,95,118,72,67,120,96,103, + 90,26,27,24,25,91,92,88,89,31, + 68,93,94,97,98,99,100,101,102,117, + 69,104,105,106,107,108,109,110,111,112, + 113,70,34,32,37,12,39,40,41,42, + 45,50,29,33,11,8,74,9,6,3, + 61,4,7,1,2,5,0,11,8,7, + 5,3,1,2,6,9,4,73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1956,59 +1987,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasb { public final static char nasb[] = {0, - 202,12,29,12,5,258,12,236,12,69, - 224,151,151,12,247,248,116,248,158,248, - 68,248,241,12,10,183,174,144,169,233, - 12,12,198,12,183,12,12,12,115,174, - 116,12,190,190,267,174,160,174,190,12, - 174,12,116,174,190,174,183,11,12,174, - 31,188,150,17,17,33,12,21,183,174, - 267,12,12,174,55,92,267,12,12,174, - 41,174,174,236,236,174,207,174,151,85, - 25,188,250,174,174,13,118,35,13,174, - 234,11,43,118,160,31,123,58,21,87, - 98,77,169,12,15,43,150,92,92,43, - 25,155,155,207,137,236,207,190,188,188, - 137,183,188,12,84,12,29,257,250,13, - 13,94,160,12,11,234,137,12,12,12, - 213,12,12,12,12,12,151,12,51,273, - 183,78,78,229,78,78,78,78,78,78, + 201,12,13,12,5,269,12,238,12,41, + 226,65,65,12,254,255,93,255,127,255, + 40,255,248,12,10,174,156,112,151,235, + 12,12,170,12,174,12,12,12,92,156, + 93,12,187,187,282,156,129,156,187,12, + 156,12,93,156,187,156,174,11,12,156, + 108,162,118,15,15,54,12,218,174,156, + 282,12,12,156,138,76,282,12,12,156, + 99,156,156,238,238,156,206,156,65,122, + 222,162,257,156,156,20,17,26,20,156, + 236,11,30,17,129,108,194,44,218,71, + 135,59,151,12,158,30,118,76,76,30, + 222,179,179,206,168,238,206,187,162,162, + 168,174,162,12,121,12,13,268,257,20, + 20,190,129,12,11,236,168,12,12,12, + 212,12,12,12,12,12,65,12,22,141, + 174,61,61,231,61,61,61,61,61,61, 12,12,12,12,12,12,12,12,12,12, - 12,78,12,12,160,123,136,12,190,12, - 92,12,267,78,174,174,15,12,195,12, - 267,12,167,12,12,12,176,176,137,137, - 85,41,144,12,151,74,190,35,137,78, - 234,150,212,17,17,273,48,48,48,48, - 183,221,200,12,267,267,1,78,108,41, - 273,12,62,62,221,130,78,78,78,78, - 78,78,78,78,78,78,78,78,78,78, - 78,78,78,78,78,78,78,78,78,78, - 78,78,78,78,78,78,130,78,43,174, - 112,58,11,221,12,76,15,174,78,12, - 12,166,150,155,155,236,174,12,12,188, - 25,188,12,78,12,103,217,190,151,151, - 11,193,267,178,174,267,267,12,12,12, - 12,40,267,78,12,12,12,10,183,92, - 48,98,25,267,24,183,24,267,92,12, + 12,61,12,12,129,194,167,12,187,12, + 76,12,282,61,156,93,156,158,12,184, + 12,282,12,149,12,12,12,84,84,168, + 168,122,99,112,12,65,56,187,26,168, + 61,236,118,211,15,15,141,35,35,35, + 35,174,132,172,12,282,282,1,61,82, + 99,141,12,48,48,132,105,61,61,61, + 61,61,61,61,61,61,61,61,61,61, + 61,61,61,61,61,61,61,61,61,61, + 61,61,61,61,61,61,61,105,61,30, + 156,89,44,11,132,12,168,156,158,156, + 61,12,12,148,118,179,179,238,156,12, + 12,162,222,162,12,61,12,78,197,187, + 65,65,11,182,282,243,156,282,282,12, + 12,12,12,98,282,61,12,12,12,10, + 174,76,35,135,222,282,221,174,221,282, + 76,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,110,126, - 12,78,12,188,12,12,12,12,127,12, - 234,186,188,188,234,105,267,78,137,12, - 15,78,78,178,19,155,48,48,188,169, - 78,78,11,190,190,267,155,12,12,12, - 12,160,11,183,41,78,48,174,163,267, - 183,141,41,78,72,12,12,127,12,127, - 277,277,153,12,277,188,188,12,174,76, - 174,12,11,11,174,267,130,130,130,130, - 12,12,39,160,267,121,195,12,233,160, - 48,127,267,169,267,269,174,12,267,110, - 101,12,15,174,267,267,267,267,221,221, - 160,174,139,12,130,195,142,12,12,267, - 267,174,127,12,127,188,169,130,127,72, - 12,176,174,15,267,267,12,121,221,78, - 92,142,105,105,167,78,12,133,188,267, - 265,12,101,174,139,267,92,127,267,188, - 267,24,101,127,48 + 110,101,12,61,12,162,12,12,12,12, + 102,12,236,160,162,162,236,164,282,61, + 59,158,61,61,243,216,179,35,35,162, + 151,61,61,11,187,187,282,179,12,12, + 12,12,129,11,174,99,61,35,156,86, + 282,174,124,99,61,80,12,12,102,12, + 102,276,276,177,12,276,162,162,12,156, + 168,156,12,11,11,156,282,105,105,105, + 105,12,12,97,129,282,95,184,12,235, + 129,35,102,282,151,282,264,156,12,282, + 110,69,58,67,12,158,156,282,282,282, + 282,132,132,129,156,38,12,105,184,125, + 12,12,282,282,156,102,12,102,162,151, + 105,102,80,69,12,12,84,156,158,282, + 282,12,95,132,61,76,125,164,164,149, + 61,12,145,162,282,280,12,67,156,38, + 282,76,102,282,162,282,221,67,102,35 }; }; public final static char nasb[] = Nasb.nasb; @@ -2016,34 +2047,35 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,149,147,120,146,145,5, - 2,0,109,0,61,0,81,0,95,94, - 54,64,57,5,7,10,2,0,152,0, - 155,0,179,0,73,135,134,0,2,54, - 73,0,5,7,10,2,13,4,44,0, - 2,7,3,0,4,189,0,166,5,165, - 0,5,2,10,7,136,0,5,1,42, - 0,112,0,187,0,72,42,13,2,10, - 7,5,0,42,104,0,13,2,10,7, - 5,86,0,5,102,186,0,4,30,0, - 124,0,185,0,42,56,0,171,0,157, - 0,47,39,175,4,42,0,2,73,0, - 140,0,42,156,0,72,42,47,74,4, - 39,0,4,174,0,4,72,0,138,0, - 2,113,0,64,54,7,10,2,4,90, - 5,0,39,177,22,4,0,5,48,2, - 3,0,4,173,0,32,95,94,64,54, - 7,10,2,4,0,108,0,22,4,5, - 90,0,2,48,0,4,39,38,0,2, - 62,0,95,94,5,57,0,4,44,167, - 0,170,71,47,4,0,114,4,47,71, - 0,32,94,95,4,0,5,102,162,0, - 4,97,0,71,47,4,133,0,5,7, - 10,13,3,1,0,4,47,71,82,0, - 2,5,120,116,117,118,13,87,0,4, - 47,71,102,45,5,0,38,54,7,10, - 2,4,154,0,44,4,32,0,44,4, - 176,0,4,44,39,0,4,44,103,0 + 3,13,7,10,150,148,120,147,146,5, + 2,0,153,0,81,0,2,73,0,109, + 0,2,7,3,0,73,136,135,0,5, + 7,10,2,13,4,44,0,139,0,5, + 1,40,0,168,5,167,0,5,2,10, + 7,137,0,181,0,189,0,72,127,40, + 13,2,10,7,5,0,124,0,159,0, + 13,2,10,7,5,86,0,187,0,112, + 0,173,0,108,0,4,175,0,47,39, + 177,4,40,0,141,0,2,54,73,0, + 72,40,47,74,4,39,0,156,0,158, + 0,64,54,7,10,2,4,5,90,0, + 40,104,0,2,113,0,5,48,2,3, + 0,4,97,0,4,30,0,4,191,0, + 4,44,39,0,4,176,0,32,95,94, + 64,54,7,10,2,4,0,61,0,4, + 39,38,0,40,56,0,4,72,0,4, + 44,169,0,2,48,0,39,179,22,4, + 0,95,94,5,57,0,2,62,0,5, + 102,188,0,40,157,0,5,102,164,0, + 172,71,47,4,0,114,4,47,71,0, + 32,94,95,4,0,95,94,54,64,57, + 5,7,10,2,0,71,47,4,134,0, + 5,7,10,13,3,1,0,4,47,71, + 82,0,22,4,5,90,0,2,5,120, + 116,117,118,13,87,0,4,47,71,102, + 45,5,0,44,4,178,0,38,54,7, + 10,2,4,155,0,4,44,103,0,44, + 4,32,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2057,8 +2089,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 19,54,106,47,55,61,64,67,70,73, 76,83,84,88,89,90,93,94,97,98, 99,109,110,111,123,77,103,46,53,95, - 1,58,63,78,91,101,121,20,44,33, - 119,122,30,118,96,108,49,50,56,57, + 1,58,63,78,91,101,121,20,33,44, + 122,119,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 15,16,21,22,32,4,23,24,25,26, 27,28,5,34,35,36,37,38,39,40, @@ -2074,8 +2106,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 133,138,140,0,0,139,237,137,0,231, 136,0,147,135,0,0,146,152,0,0, 153,183,162,163,164,165,166,167,168,155, - 169,126,170,171,172,0,145,128,134,173, - 0,129,142,156,181,0,0,141,0,0, + 169,126,170,171,172,0,145,128,134,129, + 173,0,142,156,181,0,0,141,0,0, 0,0,0,0,149,176,159,0,206,0, 190,0,203,207,0,0,0,0,0,0, 0,127,0,175,0,0,0,0,0,0, @@ -2083,14 +2115,14 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 214,161,210,211,212,0,0,0,0,150, 209,222,178,199,0,0,213,0,0,0, 242,243,151,182,0,192,193,194,195,196, - 198,201,0,0,216,219,221,0,240,0, - 241,0,131,143,144,148,0,0,158,160, - 0,174,0,184,185,186,187,188,191,0, - 197,0,200,205,0,217,218,0,223,226, - 228,230,0,234,235,236,238,239,0,130, - 0,154,157,0,177,0,180,0,202,215, - 220,0,224,225,227,229,0,232,233,244, - 245,0,0,0 + 198,201,0,0,216,219,0,221,0,240, + 0,241,0,131,143,144,148,0,0,158, + 160,0,174,0,184,185,186,187,188,191, + 0,197,0,200,205,0,217,218,0,0, + 223,226,228,230,0,234,235,236,238,239, + 0,130,0,154,157,0,177,0,180,0, + 202,215,220,0,224,225,227,229,0,232, + 233,244,245,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2098,18 +2130,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 151,573,592,524,540,551,562,356,261,275, - 297,303,42,286,376,414,159,581,467,20, - 51,71,80,85,90,127,187,292,309,320, - 331,267,281,495,27,366,331,600,27,209, - 240,1,14,61,76,106,141,222,314,327, - 336,345,349,432,460,489,516,520,610,614, - 618,97,7,97,141,394,410,423,444,508, - 423,531,547,558,569,199,478,56,56,148, - 214,217,235,256,217,217,56,353,457,464, - 148,56,631,110,228,398,438,451,116,116, - 228,56,228,385,169,104,436,622,629,622, - 629,65,404,134,104,104,245 + 156,578,597,529,545,556,567,361,266,280, + 302,308,42,291,381,419,164,586,472,20, + 51,71,80,85,90,127,192,297,314,325, + 336,141,272,286,500,27,141,371,336,605, + 27,214,245,1,14,61,76,106,227,319, + 332,341,350,354,437,465,494,521,525,615, + 619,623,97,7,97,399,415,428,449,513, + 428,536,552,563,574,204,483,56,56,153, + 219,222,240,261,222,222,56,358,462,469, + 153,56,636,110,233,403,443,456,116,116, + 233,56,233,390,174,104,441,627,634,627, + 634,65,409,134,104,104,250 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2117,18 +2149,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,363,132,95, - 132,132,48,272,382,420,165,67,473,25, - 25,25,59,59,95,132,192,132,132,325, - 325,272,101,500,38,371,587,605,32,203, - 203,5,18,5,59,95,132,226,318,318, - 318,95,95,132,238,5,5,5,5,5, - 238,226,11,101,145,363,363,363,448,500, - 427,535,535,535,535,203,482,59,59,5, - 5,220,238,5,259,259,343,95,5,238, - 5,493,5,113,340,401,441,454,119,123, - 231,512,503,388,172,95,95,624,624,626, - 626,67,406,136,194,179,247 + 18,5,5,5,5,5,5,368,132,95, + 132,132,48,277,387,425,170,67,478,25, + 25,25,59,59,95,132,197,132,132,330, + 330,146,277,101,505,38,149,376,592,610, + 32,208,208,5,18,5,59,95,231,323, + 323,323,95,95,132,243,5,5,5,5, + 5,243,231,11,101,368,368,368,453,505, + 432,540,540,540,540,208,487,59,59,5, + 5,225,243,5,264,264,348,95,5,243, + 5,498,5,113,345,406,446,459,119,123, + 236,517,508,393,177,95,95,629,629,631, + 631,67,411,136,199,184,252 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2138,16 +2170,16 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final static char scopeLhs[] = { 45,17,17,17,17,17,17,77,85,46, 69,118,66,52,77,76,45,17,19,3, - 6,9,162,162,159,116,45,70,118,117, - 119,53,46,136,130,77,17,17,130,96, - 58,132,80,165,162,159,126,60,117,117, - 119,178,50,56,140,18,17,17,17,17, - 17,12,112,159,126,77,76,76,36,136, - 76,17,17,17,17,96,19,166,162,179, - 94,101,81,59,154,83,119,78,141,140, - 171,136,16,159,119,103,75,21,127,127, - 57,136,136,77,45,159,65,134,48,134, - 48,165,103,116,45,45,58 + 6,9,164,164,161,116,45,70,118,117, + 119,126,53,46,137,131,126,77,17,17, + 131,96,58,133,80,167,164,161,60,117, + 117,119,180,50,56,141,18,17,17,17, + 17,17,12,112,161,77,76,76,36,137, + 76,17,17,17,17,96,19,168,164,181, + 94,101,81,59,155,83,119,78,142,141, + 173,137,16,161,119,103,75,21,128,128, + 57,137,137,77,45,161,65,135,48,135, + 48,167,103,116,45,45,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2155,16 +2187,16 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,74,74,74,74,74,71,11, - 71,71,68,1,74,122,67,3,74,68, - 68,68,1,1,11,71,67,71,71,1, - 1,1,1,4,68,11,1,1,68,74, - 74,74,119,74,1,11,71,1,1,1, - 1,11,11,71,118,74,74,74,74,74, - 118,1,74,1,69,74,74,74,73,4, + 119,74,74,74,74,74,74,74,72,11, + 72,72,68,1,74,122,67,3,74,68, + 68,68,1,1,11,72,67,72,72,1, + 1,72,1,1,4,68,70,11,1,1, + 68,74,74,74,119,74,1,11,1,1, + 1,1,11,11,72,118,74,74,74,74, + 74,118,1,74,1,74,74,74,73,4, 74,68,68,68,68,74,3,1,1,74, 74,3,118,74,1,1,1,11,74,118, - 74,5,74,1,47,70,73,74,1,1, + 74,5,74,1,47,69,73,74,1,1, 6,1,47,76,75,11,11,4,4,4, 4,3,1,67,1,1,3 }; @@ -2177,10 +2209,10 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 282,211,211,211,211,211,211,294,308,282, 306,278,306,284,294,294,282,211,211,144, 186,187,39,39,69,278,282,306,278,278, - 278,284,282,34,42,294,211,211,42,78, - 125,4,294,46,39,69,274,125,278,278, - 278,32,284,49,8,211,211,211,211,211, - 211,206,16,69,274,294,294,294,243,34, + 278,274,284,282,34,42,274,294,211,211, + 42,78,125,4,294,46,39,69,125,278, + 278,278,32,284,49,8,211,211,211,211, + 211,211,206,16,69,294,294,294,243,34, 294,211,211,211,211,78,211,46,39,72, 78,80,74,125,141,130,278,294,1,8, 37,34,211,69,278,11,294,212,278,278, @@ -2193,70 +2225,70 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,3,60,0,126,0,313,3,119,0, - 126,176,0,127,179,75,0,218,0,251, - 127,31,125,0,20,0,291,127,31,47, + 316,3,60,0,126,0,315,3,119,0, + 126,176,0,127,179,75,0,218,0,252, + 127,31,125,0,20,0,293,127,31,47, 0,20,53,0,33,135,0,20,53,0, - 0,291,127,31,47,194,0,20,132,0, - 251,127,31,130,0,185,128,0,145,0, - 220,3,289,0,289,0,2,0,126,0, - 251,127,31,133,0,185,128,225,0,185, - 128,29,225,0,185,128,310,29,0,131, + 0,293,127,31,47,194,0,20,132,0, + 252,127,31,130,0,185,128,0,145,0, + 220,3,291,0,291,0,2,0,126,0, + 252,127,31,133,0,185,128,225,0,185, + 128,29,225,0,185,128,312,29,0,131, 196,171,128,0,128,0,196,171,128,0, - 137,128,0,170,0,306,127,170,0,127, + 137,128,0,170,0,308,127,170,0,127, 170,0,224,128,0,171,243,0,140,0, - 0,0,138,0,0,0,305,127,165,250, - 0,127,0,250,0,129,0,0,127,0, - 304,127,165,0,44,127,0,153,3,0, - 127,279,278,127,75,277,170,0,278,127, - 75,277,170,0,217,0,218,0,277,170, - 0,96,0,0,217,0,218,0,205,96, - 0,0,217,0,218,0,278,127,277,170, - 0,217,0,205,0,0,217,0,228,127, - 3,0,126,0,0,0,0,0,228,127, - 3,217,0,224,3,0,213,127,0,210, - 0,196,171,177,0,137,0,171,128,0, - 10,0,0,0,215,61,0,125,0,228, - 127,3,182,0,182,0,2,0,0,126, - 0,0,0,0,0,206,3,0,203,0, - 238,127,165,28,12,0,185,128,56,57, - 0,199,128,0,131,185,128,275,57,0, - 185,128,275,57,0,185,128,70,124,56, - 0,238,127,165,56,0,238,127,165,227, - 56,0,273,127,165,124,63,0,273,127, - 165,63,0,185,128,63,0,138,0,196, - 185,128,243,0,140,0,185,128,243,0, - 196,171,128,10,0,171,128,10,0,93, - 140,0,150,0,266,127,145,0,266,127, - 170,0,162,85,0,297,161,299,300,3, - 82,0,126,175,0,299,300,3,82,0, - 128,0,126,175,0,162,3,76,197,81, - 0,126,128,0,197,81,0,108,2,134, - 126,128,0,226,3,76,0,206,167,0, - 33,173,0,167,0,179,33,173,0,226, - 3,86,0,197,155,226,3,84,0,62, - 175,0,226,3,84,0,126,175,62,175, - 0,298,127,165,0,162,0,215,78,0, - 30,175,0,162,117,158,0,30,173,0, - 178,3,0,126,153,0,220,3,0,215, - 61,263,0,162,61,0,178,3,294,64, - 128,0,126,0,0,0,0,294,64,128, - 0,2,149,126,0,0,0,0,178,3, - 44,0,151,0,126,47,171,128,0,31, - 151,0,93,140,31,151,0,223,185,128, - 0,150,31,151,0,178,3,51,0,162, - 3,51,0,162,3,68,178,31,35,0, - 178,31,35,0,20,2,134,126,0,162, - 3,68,178,31,43,0,178,31,43,0, - 162,3,68,178,31,46,0,178,31,46, - 0,162,3,68,178,31,36,0,178,31, - 36,0,220,3,126,196,171,128,10,0, - 126,196,171,128,10,0,140,2,0,126, - 0,220,3,125,177,171,128,10,0,177, - 171,128,10,0,138,2,0,126,0,220, - 3,136,0,220,3,140,0,162,61,140, - 0,258,0,31,0,31,143,0,166,0, - 162,3,0 + 0,0,138,0,0,0,307,127,163,251, + 0,127,0,251,0,129,0,0,127,0, + 306,127,163,250,0,127,0,0,44,127, + 0,0,153,3,0,127,280,279,127,75, + 278,170,0,279,127,75,278,170,0,217, + 0,218,0,278,170,0,96,0,0,217, + 0,218,0,205,96,0,0,217,0,218, + 0,279,127,278,170,0,217,0,205,0, + 0,217,0,228,127,3,0,126,0,0, + 0,0,0,228,127,3,217,0,224,3, + 0,213,127,0,210,0,196,171,177,0, + 137,0,171,128,0,10,0,0,0,215, + 61,0,125,0,228,127,3,182,0,182, + 0,2,0,0,126,0,0,0,0,0, + 206,3,0,203,0,238,127,163,28,12, + 0,185,128,56,57,0,199,128,0,131, + 185,128,276,57,0,185,128,276,57,0, + 185,128,69,124,56,0,238,127,163,56, + 0,238,127,163,227,56,0,274,127,163, + 124,63,0,274,127,163,63,0,185,128, + 63,0,138,0,196,185,128,243,0,140, + 0,185,128,243,0,196,171,128,10,0, + 171,128,10,0,93,140,0,150,0,267, + 127,145,0,267,127,170,0,162,85,0, + 299,161,301,302,3,82,0,126,175,0, + 301,302,3,82,0,128,0,126,175,0, + 162,3,76,197,81,0,126,128,0,197, + 81,0,108,2,134,126,128,0,226,3, + 76,0,206,167,0,33,173,0,167,0, + 179,33,173,0,226,3,86,0,197,155, + 226,3,84,0,62,175,0,226,3,84, + 0,126,175,62,175,0,300,127,163,0, + 162,0,215,78,0,30,175,0,162,117, + 158,0,30,173,0,178,3,0,126,153, + 0,220,3,0,215,61,264,0,162,61, + 0,178,3,296,64,128,0,126,0,0, + 0,0,296,64,128,0,2,149,126,0, + 0,0,0,178,3,44,0,151,0,126, + 47,171,128,0,31,151,0,93,140,31, + 151,0,223,185,128,0,150,31,151,0, + 178,3,51,0,162,3,51,0,162,3, + 68,178,31,35,0,178,31,35,0,20, + 2,134,126,0,162,3,68,178,31,43, + 0,178,31,43,0,162,3,68,178,31, + 46,0,178,31,46,0,162,3,68,178, + 31,36,0,178,31,36,0,220,3,126, + 196,171,128,10,0,126,196,171,128,10, + 0,140,2,0,126,0,220,3,125,177, + 171,128,10,0,177,171,128,10,0,138, + 2,0,126,0,220,3,136,0,220,3, + 140,0,162,61,140,0,259,0,31,0, + 31,143,0,166,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2264,38 +2296,38 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 2794,2622,0,1777,1735,1441,0,3505,2564,0, - 4773,4864,4841,4821,0,1917,2825,873,2523,0, - 3421,3362,3303,3244,3185,3126,3067,3008,2949,2587, - 2528,2761,0,934,796,0,2001,0,3644,1395, - 0,3217,3276,3099,0,2529,787,0,3421,3362, - 1651,1567,3303,3244,3185,3126,3067,3008,1483,2949, - 2587,2528,3125,2586,0,2496,648,0,4641,4542, - 0,639,0,1325,1169,632,565,577,3220,3596, - 2882,3621,2714,4251,0,4543,4458,577,3044,2985, - 3220,3782,3618,3511,1114,3249,3576,2648,3006,2681, - 0,4647,4413,4790,4767,4746,4718,4714,3609,4702, - 4637,3444,2967,4537,2750,1127,3901,3432,3326,3208, - 626,3031,2779,0,577,4617,3576,2648,4727,3596, - 2898,3703,4498,2882,3511,2714,4472,2536,2681,0, - 4617,4727,0,3964,3945,3895,3529,3735,3535,2676, - 4647,4413,3488,4790,4767,3334,4746,4718,3137,4714, - 922,3609,4702,4637,3482,3444,1000,3016,2967,4537, - 2746,2750,3393,1127,3901,3432,926,3326,3208,626, - 654,3031,4516,2779,2610,728,3596,2898,3703,4498, - 577,3152,2811,2882,3511,2714,4617,2553,4472,3576, - 2247,2648,2536,2681,4727,1261,2159,2071,934,796, - 4422,4222,4200,2261,2298,590,2332,2392,2364,1048, - 2856,2830,2501,2474,2447,2420,3868,3844,3814,3543, - 2910,4178,4156,4134,4112,4090,4068,4046,4024,3998, - 3976,3908,1955,2210,1913,2173,2122,1279,1218,1871, - 2085,2034,1176,876,1829,1787,1745,1703,1661,1619, - 1577,1535,1493,1451,1409,533,1997,1132,1358,819, - 740,1321,683,1005,955,1082,0,533,4516,2610, - 0,4641,4542,4443,3728,4336,3674,3616,4327,4253, - 3890,4244,3457,3421,3362,3303,3244,3185,3126,3067, - 3008,2949,2587,2528,0,4641,4542,4443,3728,4336, - 3674,3616,4327,4253,3890,4244,3457,0 + 1308,734,0,2007,1961,1088,0,2693,2550,0, + 4623,4916,4897,4895,0,1584,2953,1541,2611,0, + 3442,3383,3324,3265,3206,3147,3088,3029,2970,2606, + 2547,3093,0,1263,799,0,1747,0,3348,3204, + 0,4775,3652,4697,0,2839,789,0,3442,3383, + 3558,3309,3324,3265,3206,3147,3088,3029,2971,2970, + 2606,2547,3267,3237,0,3161,660,0,4670,4527, + 0,852,0,1918,1367,924,567,3871,3154,578, + 2903,3669,2734,4270,0,3412,3327,3871,4661,4279, + 3154,2980,1441,3533,3294,1434,4550,3682,1262,2701, + 0,4889,4885,4812,4808,4792,4759,4743,4875,4728, + 4721,4836,4816,3908,4534,2988,3884,3406,3288,3170, + 627,3052,2725,0,3871,4648,4550,3682,3600,578, + 2918,4631,4484,2903,3533,2734,4458,2555,2701,0, + 4648,3600,0,1703,1660,1617,1574,1313,1132,2719, + 4889,4885,1357,4812,4808,925,4792,4759,916,4743, + 780,4875,4728,4721,1254,4836,1044,1174,4816,3908, + 929,4534,2695,2988,3884,3406,867,3288,3170,627, + 665,3052,4502,2725,2629,643,578,2918,4631,4484, + 3871,2799,2667,2903,3533,2734,4648,2572,4458,4550, + 2303,3682,2555,2701,3600,938,2215,2127,1263,799, + 3619,4241,4219,1180,2317,592,1051,2411,2383,2354, + 2877,2851,2520,2493,2466,2439,3847,3823,3793,3565, + 2931,4197,4175,4153,4131,4109,4087,4065,4043,4021, + 3999,3977,2010,2266,1967,2229,2178,1320,1276,1924, + 2141,2090,1217,879,1881,1838,1795,1752,1709,1666, + 1623,1580,1537,1494,1451,535,2053,1137,1402,822, + 743,1363,686,1001,958,1089,0,535,4502,2629, + 0,4670,4527,4429,3707,4355,3653,3595,4346,4272, + 3891,4263,3479,3442,3383,3324,3265,3206,3147,3088, + 3029,2970,2606,2547,0,4670,4527,4429,3707,4355, + 3653,3595,4346,4272,3891,4263,3479,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2303,59 +2335,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,292,57,58,127,170,194,47,12,56, - 293,56,275,3,267,268,250,269,243,270, - 63,271,272,125,10,128,277,127,3,5, - 125,133,7,130,177,182,47,31,28,165, - 227,124,128,128,28,165,171,231,128,166, - 126,125,124,165,128,31,128,185,171,75, - 127,266,127,187,182,206,276,213,128,6, + 0,294,57,58,127,170,194,47,12,56, + 295,56,276,3,268,269,251,270,243,271, + 63,272,273,125,10,128,278,127,3,5, + 125,133,7,130,177,182,47,31,28,163, + 227,124,128,128,28,163,171,231,128,166, + 126,125,124,163,128,31,128,185,171,75, + 127,267,127,187,182,206,277,213,128,6, 206,125,124,31,167,61,3,62,64,31, - 171,3,31,68,127,165,127,165,70,185, - 185,155,127,126,125,127,185,4,127,165, - 127,185,127,171,47,127,278,73,213,61, - 3,70,69,171,127,127,127,61,61,127, + 171,3,31,68,127,163,127,163,69,185, + 185,155,127,126,125,127,185,4,127,163, + 127,185,127,171,47,127,279,73,213,61, + 3,69,70,171,127,127,127,61,61,127, 196,127,127,127,238,237,127,128,227,131, - 305,128,168,225,56,47,57,170,307,127, - 127,73,196,258,196,127,273,124,274,251, + 307,128,168,225,56,47,57,170,309,127, + 127,73,196,259,196,127,274,124,275,252, 167,51,35,43,46,36,10,136,4,3, 128,44,30,5,25,24,6,9,27,26, 140,146,148,147,150,149,152,151,156,154, - 157,60,158,254,196,278,165,288,128,289, - 215,158,153,127,165,6,184,251,213,251, - 228,229,145,230,291,47,10,59,238,238, - 185,171,127,309,225,29,128,4,273,70, - 69,127,3,218,217,3,31,31,31,31, - 128,3,7,125,178,162,127,62,64,171, - 3,126,103,120,3,61,90,96,25,24, - 92,91,6,94,93,68,31,88,89,9, - 98,97,100,99,101,113,112,111,110,109, - 108,107,106,105,104,70,117,102,69,279, - 127,69,185,3,265,127,127,155,70,224, - 206,3,127,69,69,68,31,231,231,227, - 196,306,125,73,284,206,69,128,29,310, - 185,213,224,127,3,178,162,178,178,178, - 178,171,220,155,136,126,125,10,128,61, - 294,3,196,178,47,128,47,220,162,147, - 147,146,146,146,149,149,149,149,148,148, - 151,150,150,154,152,156,162,157,127,298, - 80,78,1,162,8,86,84,82,81,76, - 83,85,79,77,56,75,220,69,304,8, - 127,70,70,127,213,127,70,70,131,69, - 73,70,185,128,128,228,127,68,68,68, - 68,196,177,128,171,209,3,295,167,153, - 128,185,171,73,280,119,8,73,215,73, - 3,3,3,197,3,124,162,124,179,69, - 221,291,185,185,155,228,3,3,3,3, - 126,125,171,47,178,127,127,223,5,47, - 3,73,226,167,226,300,145,76,226,127, - 127,68,127,155,162,162,162,162,3,3, - 196,155,260,263,61,180,4,124,126,95, - 313,167,155,206,155,299,127,3,155,280, - 60,59,221,127,220,220,126,127,3,61, - 162,4,155,155,127,70,197,161,266,162, - 3,231,127,221,260,220,215,122,297,155, - 314,70,127,155,69 + 157,60,158,255,196,279,163,290,128,291, + 215,158,153,127,163,250,6,184,252,213, + 252,228,229,145,230,293,47,10,59,238, + 238,185,171,127,311,225,29,128,4,274, + 69,70,127,3,218,217,3,31,31,31, + 31,128,3,7,125,178,162,127,62,64, + 171,3,126,103,120,3,61,90,96,25, + 24,92,91,6,94,93,68,31,88,89, + 9,98,97,100,99,101,113,112,111,110, + 109,108,107,106,105,104,69,117,102,70, + 280,127,70,185,3,266,127,163,127,155, + 69,224,206,3,127,70,70,68,31,231, + 231,227,196,308,125,73,286,206,70,128, + 29,312,185,213,224,127,3,178,162,178, + 178,178,178,171,220,155,136,126,125,10, + 128,61,296,3,196,178,47,128,47,220, + 162,147,147,146,146,146,149,149,149,149, + 148,148,151,150,150,154,152,156,162,157, + 127,300,80,78,1,162,8,86,84,82, + 81,76,83,85,79,77,56,75,220,70, + 127,127,69,69,127,213,127,69,69,131, + 70,73,69,185,128,128,228,127,68,68, + 68,68,196,177,128,171,209,3,297,167, + 153,128,185,171,73,281,119,8,73,215, + 73,3,3,3,197,3,124,162,124,179, + 306,221,293,185,185,155,228,3,3,3, + 3,126,125,171,47,178,127,127,223,5, + 47,3,73,226,167,226,302,145,76,226, + 127,195,70,127,68,127,155,162,162,162, + 162,3,3,196,155,261,264,61,180,4, + 124,126,95,315,167,155,206,155,301,127, + 3,155,281,195,8,60,59,221,127,220, + 220,126,127,3,61,162,4,155,155,127, + 69,197,161,267,162,3,231,127,221,261, + 220,215,122,299,155,316,69,127,155,70 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2621,7 +2653,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 72, + ERROR_SYMBOL = 71, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2632,20 +2664,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 525, + NUM_STATES = 530, NT_OFFSET = 123, - LA_STATE_OFFSET = 5901, + LA_STATE_OFFSET = 6069, MAX_LA = 2147483647, - NUM_RULES = 532, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 317, + NUM_RULES = 534, + NUM_NONTERMINALS = 196, + NUM_SYMBOLS = 319, SEGMENT_SIZE = 8192, - START_STATE = 3457, + START_STATE = 3479, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4969, - ERROR_ACTION = 5369; + ACCEPT_ACTION = 5126, + ERROR_ACTION = 5535; 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 88dfad87c0b..81f3acc747a 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 @@ -118,7 +118,7 @@ public interface CPPParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 70, + TK_Assign = 69, TK_StarAssign = 104, TK_SlashAssign = 105, TK_PercentAssign = 106, @@ -129,13 +129,13 @@ public interface CPPParsersym { TK_AndAssign = 111, TK_CaretAssign = 112, TK_OrAssign = 113, - TK_Comma = 69, + TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, - TK_RightBrace = 71, + TK_RightBrace = 72, TK_SemiColon = 11, TK_LeftBrace = 67, - TK_ERROR_TOKEN = 72, + TK_ERROR_TOKEN = 71, TK_0 = 55, TK_EOF_TOKEN = 121; @@ -209,10 +209,10 @@ public interface CPPParsersym { "union", "LeftBrace", "GT", - "Comma", "Assign", - "RightBrace", + "Comma", "ERROR_TOKEN", + "RightBrace", "Colon", "RightParen", "try", 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 f0377abd38f..08b19ee7e05 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 @@ -171,13 +171,15 @@ private CPPParserAction action; public CPPSizeofExpressionParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { // binding resolution actions need access to IASTName nodes, temporary action = new CPPParserAction (); //action.resolver = new C99TypedefTrackerParserAction (this); action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); + action.builder.setParserOptions(options); + // comment this line to use with backtracking parser //setParserAction(action); } @@ -189,10 +191,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // _1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1849,14 +1851,14 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 381: initializer_clause ::= { <openscope-ast> initializer_list , } + // Rule 381: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // case 381: { action.builder. consumeInitializerList(); break; } // - // Rule 382: initializer_clause ::= { <openscope-ast> initializer_list } + // Rule 382: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // case 382: { action.builder. consumeInitializerList(); break; @@ -1870,380 +1872,394 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 388: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 384: start_initializer_list ::= $Empty // - case 388: { action.builder. - consumeClassSpecifier(); break; + case 384: { action.builder. + initializerListStart(); break; } // - // Rule 389: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt + // Rule 385: end_initializer_list ::= $Empty // - case 389: { action.builder. - consumeClassHead(false); break; + case 385: { action.builder. + initializerListEnd(); break; } // - // Rule 390: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt + // Rule 390: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // case 390: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // Rule 391: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // case 391: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt + // Rule 392: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // case 392: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // + case 393: { action.builder. consumeClassHead(true); break; } // - // Rule 394: identifier_name_opt ::= $Empty + // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // case 394: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 396: identifier_name_opt ::= $Empty + // + case 396: { action.builder. consumeEmpty(); break; } // - // Rule 398: visibility_label ::= access_specifier_keyword : + // Rule 400: visibility_label ::= access_specifier_keyword : // - case 398: { action.builder. + case 400: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 399: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 399: { action.builder. + case 401: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 400: member_declaration ::= declaration_specifiers_opt ; + // Rule 402: member_declaration ::= declaration_specifiers_opt ; // - case 400: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 403: { action.builder. + case 405: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 409: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 409: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 417: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 417: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 418: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 418: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 419: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 419: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 420: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 420: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 421: constant_initializer ::= = constant_expression + // Rule 423: constant_initializer ::= = constant_expression // - case 421: { action.builder. + case 423: { action.builder. consumeInitializer(); break; } // - // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 428: base_specifier ::= virtual access_specifier_keyword_opt 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 428: { action.builder. + case 430: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 429: base_specifier ::= access_specifier_keyword virtual 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 429: { action.builder. + case 431: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 432: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 431: access_specifier_keyword ::= private + // Rule 433: access_specifier_keyword ::= private // - case 431: { action.builder. + case 433: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 432: access_specifier_keyword ::= protected + // Rule 434: access_specifier_keyword ::= protected // - case 432: { action.builder. + case 434: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 433: access_specifier_keyword ::= public + // Rule 435: access_specifier_keyword ::= public // - case 433: { action.builder. + case 435: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 435: access_specifier_keyword_opt ::= $Empty + // Rule 437: access_specifier_keyword_opt ::= $Empty // - case 435: { action.builder. + case 437: { action.builder. consumeEmpty(); break; } // - // Rule 437: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > + // Rule 439: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 437: { action.builder. + case 439: { action.builder. consumeTemplateId(); break; } // - // Rule 438: conversion_function_id ::= operator conversion_type_id + // Rule 440: conversion_function_id ::= operator conversion_type_id // - case 438: { action.builder. + case 440: { action.builder. consumeConversionName(); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 439: { action.builder. + case 441: { action.builder. consumeTypeId(true); break; } // - // Rule 440: conversion_type_id ::= type_specifier_seq + // Rule 442: conversion_type_id ::= type_specifier_seq // - case 440: { action.builder. + case 442: { action.builder. consumeTypeId(false); break; } // - // Rule 441: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 443: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 441: { action.builder. + case 443: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 447: { action.builder. + case 449: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 448: { action.builder. + case 450: { action.builder. consumeQualifiedId(false); break; } // - // Rule 451: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 453: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 451: { action.builder. + case 453: { action.builder. consumeTemplateId(); break; } // - // Rule 452: operator_id_name ::= operator overloadable_operator + // Rule 454: operator_id_name ::= operator overloadable_operator // - case 452: { action.builder. + case 454: { action.builder. consumeOperatorName(); break; } // - // Rule 495: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 497: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 495: { action.builder. + case 497: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 496: export_opt ::= export + // Rule 498: export_opt ::= export // - case 496: { action.builder. + case 498: { action.builder. consumePlaceHolder(); break; } // - // Rule 497: export_opt ::= $Empty + // Rule 499: export_opt ::= $Empty // - case 497: { action.builder. + case 499: { action.builder. consumeEmpty(); break; } // - // Rule 501: template_parameter ::= parameter_declaration + // Rule 503: template_parameter ::= parameter_declaration // - case 501: { action.builder. + case 503: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 502: type_parameter ::= class identifier_name_opt + // Rule 504: type_parameter ::= class identifier_name_opt // - case 502: { action.builder. + case 504: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 503: type_parameter ::= class identifier_name_opt = type_id + // Rule 505: type_parameter ::= class identifier_name_opt = type_id // - case 503: { action.builder. + case 505: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 504: type_parameter ::= typename identifier_name_opt + // Rule 506: type_parameter ::= typename identifier_name_opt // - case 504: { action.builder. + case 506: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= typename identifier_name_opt = type_id + // Rule 507: type_parameter ::= typename identifier_name_opt = type_id // - case 505: { action.builder. + case 507: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt + // Rule 508: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 506: { action.builder. + case 508: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 507: { action.builder. + case 509: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 508: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > + // Rule 510: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 508: { action.builder. + case 510: { action.builder. consumeTemplateId(); break; } // - // Rule 514: template_argument ::= type_id + // Rule 516: template_argument ::= type_id // - case 514: { action.builder. + case 516: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 515: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 515: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 516: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 516: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 517: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 519: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 517: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 520: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 521: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 521: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 522: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 522: { action.builder. + case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 523: { action.builder. + case 525: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq + // Rule 526: exception_declaration ::= type_specifier_seq // - case 524: { action.builder. + case 526: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 532: no_sizeof_type_name_start ::= ERROR_TOKEN + // Rule 534: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 532: { action.builder. + case 534: { action.builder. 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 c6d061279a7..4a18814da57 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 @@ -75,450 +75,450 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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, - 5,4,3,1,3,1,1,5,4,4, - 5,5,1,0,1,1,1,2,4,2, - 2,1,5,1,1,1,1,1,1,1, - 2,1,0,1,3,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, + 7,6,3,0,0,1,3,1,1,5, + 4,4,5,5,1,0,1,1,1,2, + 4,2,2,1,5,1,1,1,1,1, + 1,1,2,1,0,1,3,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,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,-63,0,0,0,-348,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,-63,0,0,0,-120,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-2,0,0,0,0, - 0,-10,0,0,0,0,0,0,0,0, - -124,0,0,0,-58,0,-4,-376,0,0, - 0,0,-119,0,0,0,0,0,-120,-89, + 0,0,0,0,0,0,0,-136,0,0, + 0,0,0,-10,0,0,0,0,0,0, + 0,0,-375,0,0,0,0,0,0,-376, + 0,0,0,0,-119,0,0,0,0,0, + -66,-89,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, + -2,0,0,0,-341,-51,-422,0,0,0, + -348,0,0,0,0,-53,0,0,0,-127, + 0,0,0,0,0,0,-149,0,0,0, + 0,0,0,0,0,0,-4,0,-72,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-49,0, - 0,0,0,-144,-242,-145,-341,0,0,0, - 0,0,0,-5,0,0,0,-127,0,0, - 0,0,0,0,-53,-6,0,0,0,0, - 0,0,0,0,0,-72,0,0,0,0, + 0,0,0,0,-5,-205,0,-6,0,0, + 0,0,0,0,-115,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-246,0,-7,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,-226,0,0,0,0,0,0, + 0,-16,0,0,0,0,0,0,0,0, + -243,0,0,-177,0,0,0,0,0,0, + 0,0,0,-383,0,-116,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -8,0,0,0,0,0,0,0,-9,0, - -117,0,0,-133,-147,0,0,0,0,0, - 0,0,-16,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,0,0,0,0,0, - 0,-11,0,0,0,0,0,0,0,0, - 0,-12,0,0,-141,0,0,0,0,0, - 0,0,0,0,-243,0,0,-146,0,0, - 0,-454,0,0,0,0,0,0,0,0, - 0,0,0,0,-131,0,0,0,0,0, + 0,0,0,-54,0,-49,0,0,0,0, + 0,0,0,0,0,0,-7,0,-234,0, + -146,0,0,0,-8,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-131,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-292,0,0, + 0,0,-182,0,0,-118,0,0,-50,0, + 0,-296,0,0,-141,0,0,0,0,0, + -186,0,0,0,0,-9,0,0,0,-224, 0,0,0,0,0,0,0,0,0,0, - 0,-121,-13,0,0,0,0,0,0,0, - -129,0,-191,-130,-375,0,0,-386,-398,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,0,0, + 0,0,0,-209,0,0,0,0,-57,0, + 0,0,0,-11,0,-148,0,0,0,0, + 0,0,0,0,0,0,0,0,-12,0, + -124,0,0,0,0,0,-13,0,0,0, + 0,-496,0,0,0,-60,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-15,-66,0,0,-231,0,0, - 0,-148,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-28,-50,0,0, - 0,0,0,0,-136,0,0,-481,0,0, - 0,-54,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -113,0,0,0,0,0,-65,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -508,0,0,0,-29,0,0,0,0,0, + 0,0,0,0,-520,0,0,0,-129,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-230,0,0, + 0,0,0,-247,0,0,0,0,0,0, + 0,-178,0,0,0,0,0,-107,0,0, + 0,-61,0,0,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,-264,0,0,-130,0,-145,0,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,-107,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-15,0,0,-137, + 0,0,0,0,0,-283,0,0,-3,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-307,0,0,0,0,0,-143,-429, 0,0,0,0,0,0,0,0,0,0, + 0,-113,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-237,0,0,0,0, + 0,-280,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-30,0,0,0,0,0,-205,0, - 0,0,0,-216,0,0,-178,0,0,0, - 0,0,-149,0,0,0,0,-177,0,0, - 0,-31,-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,0,0,0,0,0,-287,0,0,-153, - -51,0,0,0,0,0,-280,0,0,0, + -28,-191,0,0,-320,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-32, 0,0,0,0,0,0,0,0,0,0, - -33,0,0,-264,0,0,0,0,-320,0, + 0,0,0,-29,0,0,0,0,-48,0, + 0,0,0,-30,-314,0,0,-73,0,0, + 0,-31,0,0,0,0,0,0,0,0, + 0,-449,0,-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,0,0, - 0,-199,0,0,0,0,0,-34,0,0, - 0,0,0,0,0,0,0,-35,0,0, - -518,0,0,0,-36,0,0,0,0,0, - 0,0,0,0,0,-235,0,0,-321,0, - 0,0,-60,0,0,0,0,0,0,0, + 0,0,-246,0,0,0,0,-117,0,0, + -318,0,0,-143,0,0,-39,0,0,0, + -108,0,0,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,0,0, - 0,0,0,0,0,-61,0,0,0,0, - -39,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -133,0,0,-153,0,0,0,0,0,-41, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-344,0,0,0,-209,0, - 0,0,0,0,-41,0,0,0,-37,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-292,0,0, - 0,0,0,-38,0,0,0,0,-57,0, - 0,-108,0,0,0,0,-95,0,0,0, + 0,0,-216,0,0,0,0,0,-32,0, + 0,0,0,0,0,0,0,0,0,-284, + 0,0,-95,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,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-96,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-358, + 0,0,0,0,0,0,0,0,-323,0, + 0,0,0,0,0,0,0,0,0,-262, + 0,0,-244,0,0,0,0,0,-97,0, 0,0,0,0,0,0,0,0,0,0, - -304,0,0,-114,0,0,0,0,-96,0, - 0,0,-267,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-40,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-152,-137,-55,0,0, - -97,0,0,0,-201,0,0,0,0,0, + 0,-33,0,0,0,0,0,0,0,0, + 0,0,-34,0,0,-250,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,-35,0,0,0,0,0, + -329,0,0,0,0,-406,0,0,-251,0, + 0,0,0,0,-99,0,0,0,-36,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-37,0,0, + 0,0,0,-307,0,0,0,0,0,0, + 0,-273,0,0,0,0,0,-100,0,0, + 0,-38,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -40,0,0,0,0,0,-313,0,0,0, + 0,0,0,0,-278,0,0,0,0,0, + -101,0,0,0,-55,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,-287,0,0,0,0,0, + 0,0,0,-102,0,0,0,-59,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-98,0,0,0,-210,0,0,0, + 0,0,0,0,0,0,-67,0,0,0, + 0,0,-68,0,0,0,0,-343,0,0, + -290,0,0,0,0,0,-103,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,0,0,0,0,-70, 0,0,0,0,0,0,0,0,0,0, - 0,-67,0,0,-99,0,0,0,-68,0, + -344,0,0,-199,0,0,-304,0,0,-104, + 0,0,0,-114,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-70,0,0, - 0,0,0,0,0,0,0,0,-184,0, - 0,-238,0,-71,0,0,-100,0,0,0, - -109,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-110, + 0,0,-71,0,0,0,0,0,-109,0, + 0,0,0,-295,0,0,0,0,0,-110, + 0,0,-105,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -185,0,0,-245,0,-111,0,0,-101,0, - 0,0,-112,0,0,0,0,0,0,0, + 0,0,0,0,0,-111,0,0,0,0, + 0,-410,0,0,0,0,0,0,0,-260, + 0,-453,0,0,0,-134,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-138,0,0,0,0,0,0,0,0, - 0,0,-187,0,0,-252,0,-139,0,0, - -102,0,0,0,-140,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-112,0, + 0,0,0,0,-351,0,0,0,0,0, + 0,0,-217,0,0,0,-138,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-154,0,0,0,0,0,0, - 0,0,0,0,-189,0,0,-253,0,-155, - 0,0,-103,0,0,0,-156,0,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,0,-192,0,0,-254, - 0,-158,0,0,-104,0,0,0,-302,0, + 0,-267,0,0,0,0,-332,0,0,-212, + 0,0,0,0,0,-235,0,0,0,-139, + -437,-140,0,-514,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-159,0,0, - 0,0,0,0,0,0,0,0,-313,0, - 0,-318,0,0,0,0,-105,0,0,0, - -160,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,0,0, - -203,0,0,-255,0,-162,0,0,-134,0, - 0,0,-296,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-352,0,0, + -275,-152,0,-154,0,0,-317,0,0,0, + -333,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, - 0,0,-164,0,0,-217,0,0,0,-289, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-260,0, - 0,0,0,0,-295,0,0,0,0,0, - 0,0,0,0,-165,0,0,-186,0,0, - 0,0,-237,0,0,0,-513,0,0,0, + 0,0,0,-331,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,-166, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-299,0,-167,0,0,-317,0, - 0,0,-168,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-360,0,0, + -151,0,0,0,-525,0,0,0,0,0, + 0,0,0,0,-346,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-169,0,0,0,0,0,0,0,0, - 0,0,-332,0,0,-331,0,0,0,-262, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-170,0, - 0,0,0,0,-182,0,0,0,0,0, - 0,0,0,-73,0,0,0,0,0,0, - 0,0,0,0,0,0,-346,0,0,0, + 0,0,0,0,0,0,0,0,-155,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,-171, + 0,0,0,0,-156,0,0,0,0,0, + 0,0,0,0,0,-358,0,0,-334,0, + 0,0,-157,-361,0,0,0,0,0,-158, + -159,-465,-379,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-378,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-333,0,0,0, - 0,0,-351,0,0,0,0,0,0,0, - -151,0,0,0,-172,0,0,0,0,0, - 0,0,0,-323,-379,0,0,0,0,0, + 0,0,0,0,0,0,-368,0,0,-440, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-173,0,0, - 0,0,0,-368,0,0,0,0,0,0, - 0,-440,0,0,0,0,0,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,0,-175,0,0,-334,0, - 0,0,-176,-343,0,0,0,0,0,0, - -283,-179,-94,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,-244,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,-180,0,0,0,0,0,-275,0, - 0,-93,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-90,0,0,0,-360,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-181,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,-190,0,0,0,0,-83,0, - 0,0,-230,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-196,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,0,-197,0, - 0,0,-85,0,0,0,-200,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-211,0,0,0,-86, - 0,0,0,-329,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-421,0,0,0,0,-356,0,0, - 0,0,0,0,0,0,0,0,-316,-352, - -372,0,0,0,0,0,0,0,0,0, - 0,0,-353,0,0,0,-236,0,0,-438, - 0,0,-390,0,0,-214,-373,0,0,0, - 0,0,0,0,0,0,-222,0,-18,0, - 0,0,0,-212,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-208, - -248,0,-223,0,0,0,0,0,0,0, - 0,0,0,-225,0,0,-250,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-239,-52,0,0,0,0, - 0,-241,0,-249,-87,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -449,0,0,-240,0,0,0,0,-226,0, - 0,0,0,0,-365,0,0,0,0,-410, - 0,0,0,0,0,0,0,-78,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,-228,-265,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -229,0,0,0,0,-422,0,0,0,0, - 0,0,0,0,0,0,-251,0,0,0, - -62,-259,0,-266,0,-276,0,0,0,0, - -195,0,0,0,0,-383,0,0,0,0, - 0,0,0,0,-88,0,0,0,-277,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-390,0, + 0,0,0,0,0,0,-356,0,0,0, + -160,-396,0,0,0,0,0,-409,-161,-481, + -94,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -286,0,0,0,0,-281,0,0,0,0, - 0,-282,0,-293,-387,0,0,0,0,0, - 0,0,0,0,0,0,-362,0,-380,0, - 0,0,-428,-300,0,-297,0,-122,0,0, - 0,0,0,0,0,0,0,-198,-391,0, - 0,0,0,-232,0,-298,0,0,0,0, - 0,0,-14,0,0,0,0,0,0,-314, - 0,0,0,0,0,0,0,0,0,-447, - 0,0,-48,0,-515,0,0,-355,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-453,0,0,0,-123, - 0,0,-233,0,0,-43,0,0,0,0, - -324,0,0,0,-270,0,0,0,0,0, - 0,0,0,-305,0,-467,0,0,0,0, - 0,0,0,0,0,0,-359,0,0,0, - 0,0,0,0,0,-258,0,-135,0,0, - 0,0,0,0,0,-384,0,-433,0,0, - 0,0,-469,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-306, + 0,0,0,0,-162,0,0,-92,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-412,0,0,0,0,0,0,0, - 0,0,-371,-279,0,-510,0,0,0,0, - 0,0,0,0,0,0,-485,0,0,-311, - 0,-361,0,0,0,0,0,0,-511,-312, - 0,0,0,0,0,0,0,-328,0,0, - 0,0,0,0,0,0,0,0,0,-345, - -347,-125,-291,-500,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-128,0,0,0,0,-402,0,0, + -163,0,0,0,0,0,-431,0,0,-93, + 0,0,0,-164,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-434,0,-363,-396,0,0, - 0,0,0,0,0,0,0,-502,0,0, - -271,0,0,-366,0,0,0,0,0,-388, - -437,0,0,0,0,0,0,0,-389,-44, - 0,0,0,0,0,0,0,-303,0,0, - 0,0,-392,-393,-506,0,0,-288,0,0, - -464,0,0,0,0,0,0,0,0,0, - 0,-301,0,-142,0,0,0,0,-458,0, - 0,-399,0,0,0,0,0,0,0,0, - 0,0,0,0,-308,0,0,-401,0,0, - 0,0,0,0,0,0,0,0,-519,0, - 0,-322,0,-409,-450,0,0,0,0,0, - -404,-411,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-418,0,-403,0, - 0,0,0,0,0,-522,0,0,0,0, + 0,0,-165,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, - 0,0,-419,0,-47,0,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,-327,0,0,-439,0, - -455,0,0,0,0,0,0,0,0,-441, - 0,0,-273,0,0,0,-406,0,0,-456, - 0,-443,-444,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,0,0,-309,0,0,0,0, - 0,0,0,0,0,0,-512,0,0,0, - 0,-445,0,0,0,0,0,-80,0,0, - 0,-459,0,0,0,0,0,0,0,0, + 0,-166,0,0,0,0,-83,0,0,0, + -167,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-168, + 0,0,0,-84,0,0,0,-169,0,0, 0,0,0,0,0,0,0,0,0,0, - -183,0,0,0,-484,-413,-234,0,0,0, - 0,0,0,0,0,0,-507,-336,0,0, - 0,0,-338,0,0,0,0,0,-446,0, - 0,0,-278,0,0,0,-448,0,-463,-465, - 0,0,0,0,0,0,-340,-349,0,0, - 0,-466,0,-423,0,0,0,-274,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,-82,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-468, - -194,0,0,0,0,0,-326,0,0,0, - -473,0,0,0,0,0,0,0,0,-480, - -486,-215,0,0,0,-354,0,-335,-42,0, - -477,0,0,-290,0,0,0,0,-370,0, - -483,-491,0,0,0,0,0,-394,0,0, - 0,-385,-405,-495,0,0,0,0,0,-494, - 0,0,0,0,0,0,-501,0,0,0, - 0,-509,-514,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-170,0,0,0, + -85,0,0,0,-171,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-150,0,0,0,0,0,0,0, - 0,0,0,-488,0,0,0,0,0,0, - -427,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-367,0,0,0, - 0,0,-118,0,0,0,0,0,0,0, - -408,0,0,0,0,0,0,0,-461,0, + 0,0,0,-172,0,0,0,-86,0,0, + 0,-454,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, + -421,0,0,0,0,-521,0,0,0,-173, + 0,0,0,0,0,0,0,0,-184,0, + -201,0,0,0,-372,0,0,0,-174,0, + 0,0,0,0,0,-175,0,-438,0,0, + 0,0,-353,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-128,0,0,0, + 0,-380,0,0,0,0,0,-176,0,0, + 0,0,0,0,0,0,0,0,-179,0, + -231,0,0,0,0,0,0,0,0,0, + 0,-495,0,0,-394,0,0,-180,0,0, + 0,-232,0,0,-508,0,0,0,0,0, + 0,0,-52,0,0,0,-185,0,0,-181, + 0,-87,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, + -240,0,0,0,0,-190,0,0,0,0, + 0,-365,0,0,0,0,-121,0,0,0, + 0,0,-210,0,-196,0,-80,0,0,0, + -373,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-197,0,0,0,0, + 0,0,0,0,0,0,0,-200,0,0, + 0,-395,0,0,-211,0,0,0,0,0, + 0,0,0,-236,0,0,-214,-428,-62,-270, + 0,0,0,0,0,0,0,-413,0,-274, + 0,0,0,0,0,0,0,0,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,-222,0,0,-286,0, + 0,0,0,-271,0,0,0,0,0,-223, + 0,-225,-387,0,0,0,0,0,0,0, + 0,0,0,0,-1,0,-198,-239,0,-147, + -189,0,0,-238,0,-142,0,0,0,0, + 0,0,0,0,0,0,-386,-192,-241,0, + 0,0,0,0,0,0,0,0,0,0, + -144,0,0,0,0,-316,0,0,0,0, + 0,0,0,0,0,0,0,-447,0,0, + 0,0,0,0,-249,-202,0,-263,0,0, + 0,0,0,0,0,-265,0,0,-266,0, + 0,0,0,-203,-245,0,0,0,0,0, + 0,-276,0,0,-450,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-468,0,0,-371,0,0,-277, + 0,0,0,0,-252,0,0,0,0,0, + 0,0,0,0,-288,0,0,-208,0,0, + -281,0,0,0,0,0,-253,-282,-293,-123, + -470,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-297,0,-298, + 0,0,0,0,0,-497,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-18,0,0,0,-248,0,0,0,0, + 0,0,0,0,-487,0,-254,0,0,-415, + 0,-442,0,0,-255,0,-305,-306,0,0, + 0,0,0,0,0,0,-135,0,0,-311, + 0,-362,0,0,0,0,0,0,0,-312, + 0,-501,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-328,0, + 0,-228,0,-43,0,0,-345,0,-347,0, + 0,-391,0,0,0,0,0,0,0,0, + 0,0,-289,0,-363,0,0,0,0,0, + 0,0,0,0,0,-503,0,0,-229,0, + 0,0,0,-433,0,0,0,-366,0,0, + 0,0,0,0,0,0,0,-388,0,0, + 0,0,0,0,0,-389,-392,0,-299,0, + 0,-125,-507,0,0,0,0,0,-393,0, + 0,0,0,0,0,0,0,0,0,-461, + 0,-150,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,-21,0,0, + 0,0,0,-47,0,0,0,-300,0,0, + 0,0,0,0,0,0,-522,0,0,0, + 0,-451,0,0,0,0,-324,0,-458,-482, + 0,0,0,0,0,0,0,0,-44,0, + 0,0,0,0,-509,0,0,0,0,0, + 0,-399,-401,-527,0,0,0,0,-452,0, 0,0,0,0,0,0,0,0,0,0, + -404,0,-183,0,0,0,0,-403,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,0,0,-411,0,0, + 0,0,0,0,0,0,0,-233,0,0, + 0,0,-418,-258,0,0,0,0,0,-463, + -419,0,0,0,0,0,0,0,-78,0, + 0,0,-439,0,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,-441,0,-79,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-443,0,-309,0, + 0,0,0,0,0,0,0,0,0,-513, + 0,0,0,0,-444,0,0,0,0,0, + -81,0,0,0,-511,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,-122,0,0,0,-434,0,-279, + -445,0,0,0,0,0,0,0,-446,-359, + -272,0,0,0,0,0,0,0,0,-448, + 0,-74,0,0,0,0,-464,-466,-291,0, + 0,-259,0,-467,0,0,0,0,0,-326, 0,0,0,0,0,0,0,0,0,0, - 0,0,-25,0,0,0,0,0,0,0, + 0,-512,0,0,0,0,-82,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,-469, + -474,-384,-188,0,0,0,-476,-478,0,-485, + -335,0,0,0,0,0,0,0,0,-493, + -370,0,0,0,0,-502,0,-303,-510,0, + 0,0,0,0,0,0,-308,-322,0,0, + 0,0,-515,0,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,-526,0,0,0,0, + 0,0,0,0,-194,0,0,0,-327,-336, + -427,-42,0,0,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,-338,-340, + 0,0,0,0,0,-354,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-19,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,0,0,0,0,0, - 0,0,-77,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,-132,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-385, + 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,-206,0,0,0, + 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,-504,0, - 0,0,0,0,0,0,0,0,0,-19, - 0,0,0,-431,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -337,-417,-420,-442,0,0,0,-74,-492,-457, - -45,0,-415,0,0,-364,0,0,0,0, - -460,0,0,0,0,0,0,0,0,0, - -1,0,0,0,0,0,0,0,0,-478, + -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,-319,0,-357,0, + 0,0,-24,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-272,-204,0,0,0,0,0,0,0, - 0,0,0,-369,0,0,0,0,-451,0, - 0,0,0,0,0,0,0,0,-407,0, - 0,0,0,0,0,-497,0,-490,-499,0, - 0,0,0,0,-17,0,0,0,0,0, - 0,0,0,-256,-498,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-517,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,-26,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-416,0,0,0, + 0,0,0,0,0,0,0,0,-27,0, 0,0,0,0,0,0,0,0,0,0, - 0,-493,0,0,0,0,0,-227,-520,0, - 0,0,0,0,-213,0,0,0,0,-430, - 0,0,0,0,-452,0,0,0,0,0, - 0,-462,0,0,0,0,0,0,0,0, - 0,-426,0,-126,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-395, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-475,0,0,0,0,0, - 0,-476,0,0,0,0,0,0,0,0, - -310,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-69,-75,0,0, - 0,0,0,0,-482,-342,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-106, - 0,0,0,0,0,0,0,-503,-516,0, + -64,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -521,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,0,0,0, + 0,0,0,0,-77,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, - -377,0,0,0,0,0,0,0,0,0, - 0,-487,0,0,0,0,0,0,0,0, - 0,0,-268,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-269,-496, - 0,0,0,0,-202,0,0,0,0,0, - -374,-397,0,0,0,0,0,0,0,0, - 0,0,-218,0,0,0,0,0,0,0, - 0,0,0,-325,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,0,0,0,0,0,-219,0, - 0,0,0,-472,-220,0,0,0,0,-193, + 0,0,0,0,0,0,0,0,-206,0, + 0,0,-477,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-315,0,0,0,0,0,0,0, + -505,0,0,0,0,0,0,0,0,0, + 0,-405,-473,0,-408,0,0,-69,0,-337, + 0,0,-484,0,-423,0,0,0,-412,-398, + -14,0,-364,0,0,0,0,-215,0,0, + 0,0,0,-462,0,0,0,-301,-417,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-46,0,0,0,0,0, - 0,0,0,0,-339,0,0,0,-425,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,0,-350,0,0,0,0, - -257,0,0,0,0,0,0,0,0,-381, - 0,0,0,0,0,0,0,-382,0,0, - 0,-400,0,0,0,0,0,-489,0,0, - 0,0,0,-414,0,0,0,0,0,0, - 0,-432,0,0,0,0,0,0,0,0, - 0,-435,0,0,0,0,0,0,0,-436, + 0,0,0,-455,0,0,0,0,0,0, + 0,0,0,0,0,0,-456,-193,0,0, + 0,-195,0,0,0,0,0,0,0,0, + 0,0,-420,0,0,0,0,0,0,0, + 0,0,0,0,0,-369,0,0,0,0, + 0,-459,0,0,0,-407,-488,0,0,0, + 0,0,-457,0,0,-416,0,0,0,0, + -367,0,0,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,-319, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -261,0,0,0,0,0,0,0,-285,0, - 0,0,0,0,0,0,-479,0,-470,-471, - 0,0,0,0,0,0,-474,-221,0,0, + 0,0,0,0,0,0,0,0,-490,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-294,0,0,0, + 0,0,-430,0,0,0,0,-494,0,0, + 0,0,0,-126,0,0,0,-479,0,0, + 0,0,0,-17,0,-491,0,0,0,0, + 0,0,-315,0,0,0,-204,0,0,0, + -227,0,0,-75,0,0,0,0,0,-483, + 0,-492,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-500,0,0, + 0,0,0,0,0,0,0,-106,0,0, + 0,0,0,0,0,-504,0,0,0,-310, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-498,-499,-357,0,-213,0,0, + 0,-517,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,-523, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-342,0,0,0,-524,0, + 0,0,0,0,0,0,0,0,0,-377, + 0,0,0,0,0,0,0,0,0,0, + -489,0,0,0,0,0,0,0,0,0, + 0,0,-261,0,0,0,0,-426,0,0, + 0,0,-516,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-330,-424, - -505,0,0,0,0,0,0,0,0,0, 0,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,0,0,0, + 0,0,0,0,0,0,0,-325,0,-269, 0,0,0,0,0,0,0,0,0,0, + 0,-339,0,0,0,-425,0,0,0,0, + 0,0,0,0,-350,0,0,0,-381,0, + 0,0,0,-256,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-382,0,0,0, + 0,0,0,0,0,0,-242,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-400,0,0,0,0,0,0,0, + 0,0,0,0,-414,0,0,0,0,0, + 0,0,0,0,0,-432,0,0,0,-285, + 0,0,0,-355,0,0,0,0,0,0, + -374,-397,0,0,-45,0,0,0,0,-349, 0,0,0,0,0,0,0,0,0,0, + 0,-471,0,0,0,0,0,0,0,0, + 0,-486,0,0,0,0,0,0,0,0, + 0,0,-472,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-46,0,-207, + 0,0,0,0,0,0,0,0,-475,-435, + -436,0,0,0,0,0,0,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,0,0,-480,0,0,0,0, + 0,0,-219,0,0,0,0,0,0,0, + 0,0,0,-220,0,0,0,0,0,0, + 0,-221,-257,0,-294,0,0,0,0,-330, + -424,0,0,0,0,0,0,0,0,-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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,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; @@ -528,528 +528,529 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 168,4,54,83,83,34,34,66,66,38, - 38,42,42,191,191,192,192,193,193,1, + 170,4,54,83,83,34,34,66,66,38, + 38,40,40,193,193,194,194,195,195,1, 1,15,15,15,15,15,15,15,15,16, 16,16,14,11,11,8,8,8,8,8, 8,2,67,67,5,5,12,12,12,12, - 44,44,133,133,134,62,62,43,17,17, + 44,44,134,134,135,62,62,43,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,135,135,135, + 17,17,17,17,17,17,17,136,136,136, 113,113,18,18,18,18,18,18,18,18, - 18,18,18,18,19,19,169,169,170,170, - 171,138,138,139,139,136,136,140,137,137, + 18,18,18,18,19,19,171,171,172,172, + 173,139,139,140,140,137,137,141,138,138, 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,33,33,35,35,36,36,41,41,40, - 40,40,40,40,40,40,40,40,40,40, - 40,40,39,29,141,141,97,97,172,172, - 92,194,194,68,68,68,68,68,68,68, - 68,68,69,69,69,65,65,55,55,173, - 173,70,70,70,103,103,174,174,71,71, - 71,175,175,72,72,72,72,72,73,73, + 32,33,33,35,35,36,36,42,42,41, + 41,41,41,41,41,41,41,41,41,41, + 41,41,39,29,142,142,97,97,174,174, + 92,196,196,68,68,68,68,68,68,68, + 68,68,69,69,69,65,65,55,55,175, + 175,70,70,70,103,103,176,176,71,71, + 71,177,177,72,72,72,72,72,73,73, 84,84,84,84,84,84,84,49,49,49, - 49,49,114,114,115,115,50,176,23,23, + 49,49,114,114,115,115,50,178,23,23, 23,23,23,48,48,87,87,87,87,87, - 148,148,143,143,143,143,143,144,144,144, - 145,145,145,146,146,146,147,147,147,88, + 149,149,144,144,144,144,144,145,145,145, + 146,146,146,147,147,147,148,148,148,88, 88,88,88,88,89,89,89,13,13,13, 13,13,13,13,13,13,13,13,100,119, 119,119,119,119,119,117,117,117,118,118, - 150,150,149,149,121,121,104,79,79,80, - 81,52,47,151,151,53,51,86,86,152, - 152,142,142,122,123,123,76,76,153,153, + 151,151,150,150,121,121,104,79,79,80, + 81,52,47,152,152,53,51,86,86,153, + 153,143,143,122,123,123,76,76,154,154, 63,63,63,58,58,57,64,64,75,75, 56,56,56,90,90,99,98,98,61,61, 59,59,60,60,45,101,101,101,93,93, 93,94,94,95,95,95,96,96,105,105, - 105,107,107,106,106,195,195,91,91,178, - 178,178,178,178,125,46,46,155,177,177, - 126,126,126,126,179,179,37,37,116,127, - 127,127,127,108,108,120,120,120,157,158, - 158,158,158,158,158,158,158,158,158,158, - 182,182,180,180,181,181,159,159,159,159, - 160,183,110,109,109,184,184,161,161,161, - 161,102,102,102,185,185,9,9,10,186, - 186,187,162,154,154,163,163,164,165,165, - 6,6,7,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,77,82,82,167,167, - 129,129,130,130,130,130,130,130,3,131, - 131,128,128,111,111,85,78,74,156,156, - 112,112,188,188,188,132,132,124,124,189, - 189,168,168,1132,41,1695,1688,3005,3174,36, - 914,33,37,853,32,34,1672,31,29,58, - 937,112,83,84,114,995,1075,1122,1093,1201, - 1190,1248,66,1238,1359,1255,1384,3265,1462,149, - 278,1350,863,164,150,2206,4480,1119,1840,41, - 3060,38,1345,1258,36,914,340,37,853,1333, - 2454,41,782,38,237,2569,36,914,33,37, - 853,32,34,772,31,29,58,937,112,83, - 84,114,995,1767,1122,1093,1201,1190,1935,31, - 240,235,236,682,1553,1911,31,1937,2626,2626, - 1123,1641,4659,279,71,321,2276,323,592,41, - 284,316,2251,3501,237,1263,1236,344,2664,247, - 250,253,256,2838,537,1527,1190,41,782,38, - 589,3593,36,914,33,37,853,65,34,1349, - 249,235,236,1862,577,1355,3633,583,852,2910, - 3062,4224,1655,41,782,38,2626,2569,36,914, - 33,37,853,32,34,772,31,29,58,937, - 112,83,84,114,995,344,1122,1093,1201,1190, - 1248,1438,1238,1359,1255,1384,361,1462,149,1621, - 417,501,513,150,501,2568,3391,2751,494,3391, - 1900,2625,2632,1338,41,1546,49,415,3061,48, - 914,452,514,1655,41,782,38,2626,2569,36, - 914,33,37,853,32,34,772,31,29,58, - 937,112,83,84,114,995,344,1122,1093,1201, - 1190,1248,332,1238,1359,1255,1384,333,1462,149, - 333,4421,1738,513,150,592,41,284,2751,443, - 4073,69,2574,509,2590,2853,41,282,2784,41, - 782,38,1333,514,36,914,46,37,853,1378, - 2252,2055,2814,2313,2848,1655,41,782,38,2626, - 2569,36,914,33,37,853,32,34,772,31, - 29,58,937,112,83,84,114,995,344,1122, - 1093,1201,1190,1248,869,1238,1359,1255,1384,1107, - 1462,149,1467,1776,509,513,150,4040,50,2486, - 2751,1263,3534,1333,1263,592,41,449,2944,2945, - 4582,2376,4099,2513,2313,514,1929,41,782,38, - 2626,2569,36,914,33,37,853,32,34,772, - 31,29,58,937,112,83,84,114,995,344, - 1122,1093,1201,1190,1248,2913,1238,1359,1255,1384, - 3641,1462,149,237,1882,1264,513,150,2843,41, - 285,2751,1854,41,782,38,509,4195,36,914, - 33,37,853,67,34,188,514,2754,31,252, - 235,236,743,2459,456,1711,2313,455,1721,41, - 782,38,2915,2569,36,914,33,37,853,32, - 34,772,31,29,58,937,112,83,84,114, - 995,1386,1122,1093,1201,1190,1248,506,1238,1359, - 1255,1384,798,1462,149,3303,493,510,380,150, - 4021,1793,41,782,38,2132,2569,36,914,33, - 37,853,32,34,772,31,29,58,937,112, - 83,84,114,995,383,1122,1093,1201,1190,1248, - 354,1238,1359,1255,1384,1107,1462,149,442,3182, - 3198,380,150,4021,2454,41,782,38,1118,2569, - 36,914,33,37,853,32,34,772,31,29, - 58,937,112,83,84,114,995,381,1122,1093, - 1201,1190,1248,66,1238,1359,1255,2155,4525,1263, - 1993,41,782,38,384,2569,36,914,33,37, - 853,32,34,772,31,29,58,937,112,83, - 84,114,995,1104,1122,1093,1201,1190,1248,2840, - 1238,1359,1255,1384,2806,1462,149,1238,41,2593, - 380,150,4021,1238,1588,2556,40,385,1238,41, - 2556,2567,327,2102,41,782,38,3560,2569,36, - 914,33,37,853,32,34,772,31,29,58, - 937,112,83,84,114,995,624,1122,1093,1201, - 1190,1248,3947,1238,1359,1255,1384,501,1462,149, - 1263,1974,3391,164,150,721,798,2102,41,782, - 38,798,2569,36,914,33,37,853,32,34, - 772,31,29,58,937,112,83,84,114,995, - 2173,1122,1093,1201,1190,1248,378,1238,1359,1255, - 1384,2119,1462,149,2182,41,296,374,150,2102, - 41,782,38,333,2569,36,914,33,37,853, - 32,34,772,31,29,58,937,112,83,84, - 114,995,1263,1122,1093,1201,1190,1248,153,1238, - 1359,1255,1384,59,1462,149,3148,3507,60,374, - 150,2148,41,782,38,1212,4195,36,914,33, - 37,853,32,34,577,507,1238,41,287,2102, - 41,782,38,2915,2569,36,914,33,37,853, - 32,34,772,31,29,58,937,112,83,84, - 114,995,373,1122,1093,1201,1190,1248,501,1238, - 1359,1255,1384,3391,1462,149,2915,3925,1431,374, - 150,1865,41,782,38,328,2569,36,914,33, - 37,853,32,34,772,31,29,58,937,112, - 83,84,114,995,372,1122,1093,1201,1190,1248, - 30,1238,1359,1255,1384,501,1462,149,439,2225, - 3391,148,150,1298,1925,2102,41,782,38,756, - 2569,36,914,33,37,853,32,34,772,31, - 29,58,937,112,83,84,114,995,3017,1122, - 1093,1201,1190,1248,321,1238,1359,1255,1384,31, - 1462,149,2915,815,370,165,150,2102,41,782, - 38,333,2569,36,914,33,37,853,32,34, - 772,31,29,58,937,112,83,84,114,995, - 3017,1122,1093,1201,1190,1248,76,1238,1359,1255, - 1384,1333,1462,149,2915,4371,100,161,150,2102, - 41,782,38,2237,2569,36,914,33,37,853, - 32,34,772,31,29,58,937,112,83,84, - 114,995,1265,1122,1093,1201,1190,1248,61,1238, - 1359,1255,1384,3408,1462,149,2915,1357,1260,160, - 150,2102,41,782,38,2915,2569,36,914,33, - 37,853,32,34,772,31,29,58,937,112, - 83,84,114,995,1584,1122,1093,1201,1190,1248, - 60,1238,1359,1255,1384,94,1462,149,108,351, - 99,159,150,2102,41,782,38,2915,2569,36, - 914,33,37,853,32,34,772,31,29,58, - 937,112,83,84,114,995,2158,1122,1093,1201, - 1190,1248,355,1238,1359,1255,1384,95,1462,149, - 108,96,679,158,150,2102,41,782,38,2272, - 2569,36,914,33,37,853,32,34,772,31, - 29,58,937,112,83,84,114,995,1353,1122, - 1093,1201,1190,1248,1063,1238,1359,1255,1384,31, - 1462,149,2915,2669,1469,157,150,2102,41,782, - 38,1162,2569,36,914,33,37,853,32,34, - 772,31,29,58,937,112,83,84,114,995, - 1844,1122,1093,1201,1190,1248,3014,1238,1359,1255, - 1384,31,1462,149,2915,4188,2023,156,150,2102, - 41,782,38,2205,2569,36,914,33,37,853, - 32,34,772,31,29,58,937,112,83,84, - 114,995,1410,1122,1093,1201,1190,1248,3063,1238, - 1359,1255,1384,31,1462,149,2915,2413,2697,155, - 150,2102,41,782,38,2637,2569,36,914,33, - 37,853,32,34,772,31,29,58,937,112, - 83,84,114,995,675,1122,1093,1201,1190,1248, - 75,1238,1359,1255,1384,680,1462,149,2915,2854, - 762,154,150,2102,41,782,38,2858,2569,36, - 914,33,37,853,32,34,772,31,29,58, - 937,112,83,84,114,995,2898,1122,1093,1201, - 1190,1248,74,1238,1359,1255,1384,31,1462,149, - 2915,3397,2902,153,150,2102,41,782,38,1264, - 2569,36,914,33,37,853,32,34,772,31, - 29,58,937,112,83,84,114,995,2201,1122, - 1093,1201,1190,1248,73,1238,1359,1255,1384,2175, - 1462,149,1238,2756,4556,152,150,2102,41,782, - 38,2204,2569,36,914,33,37,853,32,34, - 772,31,29,58,937,112,83,84,114,995, - 2605,1122,1093,1201,1190,1248,2239,1238,1359,1255, - 1384,31,1462,149,2915,625,2624,151,150,2058, - 41,782,38,331,2569,36,914,33,37,853, - 32,34,772,31,29,58,937,112,83,84, - 114,995,1837,1122,1093,1201,1190,1248,72,1238, - 1359,1255,1384,2273,2467,170,2102,41,782,38, - 2915,2569,36,914,33,37,853,32,34,772, - 31,29,58,937,112,83,84,114,995,1533, - 1122,1093,1201,1190,1248,2277,1238,1359,1255,1384, - 3391,1462,149,291,3286,147,146,150,1238,41, - 2731,2716,329,1238,41,2556,281,2366,41,782, - 38,1232,2569,36,914,33,37,853,32,34, - 772,31,29,58,937,112,83,84,114,995, - 2554,1122,1093,1201,1190,1248,77,1238,1359,1255, - 1384,1925,1462,149,2915,388,2665,195,150,2454, - 41,782,38,1878,2569,36,914,33,37,853, - 32,34,772,31,29,58,937,112,83,84, - 114,995,240,1122,1093,1201,1190,1248,63,1238, - 1359,1255,1384,1263,2467,170,2454,41,782,38, - 2274,2569,36,914,33,37,853,32,34,772, - 31,29,58,937,112,83,84,114,995,1508, - 1122,1093,1201,1190,1248,2045,1238,1359,1255,1384, - 3391,2467,170,102,1645,41,782,38,401,3593, - 36,914,33,37,853,64,34,2454,41,782, - 38,295,2569,36,914,33,37,853,32,34, - 772,31,29,58,937,112,83,84,114,995, - 161,1122,1093,1201,1190,1248,103,1238,1359,1255, - 1384,334,2467,170,2454,41,782,38,2357,2569, - 36,914,33,37,853,32,34,772,31,29, - 58,937,112,83,84,114,995,331,1122,1093, - 1201,1190,1248,66,1238,1359,1255,1384,4570,2467, - 170,1854,41,782,38,669,4195,36,914,33, - 37,853,66,34,1264,2454,41,782,38,419, - 2569,36,914,33,37,853,32,34,772,31, - 29,58,937,112,83,84,114,995,1585,1122, - 1093,1201,1190,1248,2940,1238,1359,1255,1384,68, - 2467,170,2498,41,782,38,418,2569,36,914, - 33,37,853,32,34,772,31,29,58,937, - 112,83,84,114,995,1713,1122,1093,1201,1190, - 1248,2518,1238,1359,1255,1384,2288,2467,170,2784, - 41,782,38,2582,2161,36,914,3032,37,853, - 78,2337,2506,2454,41,782,38,421,2569,36, - 914,33,37,853,32,34,772,31,29,58, - 937,112,83,84,114,995,1476,1122,1093,1201, - 1190,1248,399,1238,1359,2049,2707,41,2556,281, - 2454,41,782,38,3500,2569,36,914,33,37, - 853,32,34,772,31,29,58,937,112,83, - 84,114,995,1530,1122,1093,1201,1190,1248,1533, - 1238,1993,2454,41,782,38,326,2569,36,914, - 33,37,853,32,34,772,31,29,58,937, - 112,83,84,114,995,1063,1122,1093,1201,1190, - 1248,327,2012,2454,41,782,38,1263,2569,36, - 914,33,37,853,32,34,772,31,29,58, - 937,112,83,84,114,995,2834,1122,1093,1201, - 1970,2454,41,782,38,288,2569,36,914,33, - 37,853,32,34,772,31,29,58,937,112, - 83,84,114,995,1110,1122,1093,1201,1986,2454, - 41,782,38,857,2569,36,914,33,37,853, - 32,34,772,31,29,58,937,112,83,84, - 114,995,1314,1122,1093,1798,2454,41,782,38, - 104,2569,36,914,33,37,853,32,34,772, - 31,29,58,937,112,83,84,114,995,2904, - 1122,1093,1821,2454,41,782,38,1583,2569,36, - 914,33,37,853,32,34,772,31,29,58, - 937,112,83,84,114,995,1668,1122,1093,1840, - 2454,41,782,38,1862,2569,36,914,33,37, - 853,32,34,772,31,29,58,937,112,83, - 84,114,995,262,1122,1093,1856,533,2784,41, - 782,38,389,423,36,914,341,37,853,1533, - 66,2784,41,782,38,4578,234,36,914,3108, - 37,853,162,1238,41,1569,387,2843,41,282, - 1,186,4004,66,533,869,2821,1937,4594,209, - 220,2675,208,217,218,219,221,2779,175,1789, - 41,1569,387,234,1238,41,1569,387,174,162, - 427,189,173,176,177,178,179,180,186,4004, - 31,2911,869,3004,673,289,209,220,2675,208, - 217,218,219,221,408,175,57,1238,2836,2556, - 81,57,1562,915,3423,174,187,54,190,173, - 176,177,178,179,180,849,2542,41,1569,387, - 1420,3083,1873,2814,2052,2454,41,782,38,242, - 2569,36,914,33,37,853,32,34,772,31, - 29,58,937,112,83,84,114,995,2574,1122, - 1882,1238,4255,278,1485,41,782,38,1157,2607, - 36,914,340,37,853,2599,41,782,38,2815, - 420,36,914,340,37,853,2550,237,2454,41, - 782,38,1425,2569,36,914,33,37,853,32, - 34,772,31,29,58,937,112,83,84,114, - 995,4422,1714,240,235,236,31,2973,4659,443, - 2925,321,2276,323,52,2486,279,316,2251,4659, - 2752,2919,318,3030,323,3121,1027,41,449,353, - 2812,4582,247,250,253,256,2838,2707,41,2556, - 2856,1979,2607,589,1734,724,2280,345,1477,945, - 350,1238,41,1569,387,2806,1213,330,336,3633, - 583,852,2910,3062,4224,2454,41,782,38,2671, - 2569,36,914,33,37,853,32,34,772,31, - 29,58,937,112,83,84,114,995,278,1122, - 1893,1779,41,782,38,4444,2901,36,914,340, - 37,853,2967,2752,2751,1545,41,782,38,1345, - 3391,36,914,340,37,853,353,1533,3195,1238, - 41,1569,387,31,2915,352,2991,1123,2616,41, - 2404,1725,367,4361,345,1477,945,350,1914,1533, - 335,336,343,3391,857,4659,2467,315,321,2276, - 323,280,3372,2151,316,2251,430,2626,62,4659, - 1810,333,321,2276,323,57,353,2921,316,2251, - 349,1562,1938,2908,533,3002,344,1123,1911,1123, - 357,2680,2626,300,345,1477,945,350,527,446, - 3182,3198,1485,234,334,4296,1238,3531,1161,162, - 2147,2664,166,31,162,299,31,3448,186,4004, - 2626,2915,869,353,168,857,209,220,2675,208, - 217,218,219,221,2984,175,436,309,313,344, - 533,347,1477,945,350,174,1683,2915,3511,173, - 176,177,178,179,180,324,31,3214,1981,234, - 3172,2751,4415,390,423,162,2915,3222,1238,41, - 296,237,434,523,186,4004,1611,533,869,361, - 1434,107,209,220,2675,208,217,218,219,221, - 2993,175,352,2966,2625,2632,234,255,235,236, - 3553,174,162,2915,184,173,176,177,178,179, - 180,186,4004,2849,31,869,1333,2626,4057,209, - 220,2675,208,217,218,219,221,610,175,452, - 3022,533,2775,353,392,423,2664,3984,174,1333, - 2986,182,173,176,177,178,179,180,3024,438, - 234,345,1477,945,350,2530,162,4189,869,1485, - 2802,2037,2528,31,697,186,4004,2494,533,869, - 403,521,4212,209,220,2675,208,217,218,219, - 221,869,175,1241,41,1569,387,234,1238,41, - 1569,387,174,162,520,183,173,176,177,178, - 179,180,186,4004,501,2936,869,1389,2775,2626, - 209,220,2675,208,217,218,219,221,784,175, - 57,857,533,237,3026,429,1562,2432,2664,174, - 2623,2365,193,173,176,177,178,179,180,3018, - 31,234,498,500,2626,2761,302,162,31,258, - 235,236,3528,1346,3028,871,186,4004,1023,533, - 869,2596,2626,344,209,220,2675,208,217,218, - 219,221,2607,175,2673,41,1569,387,234,1533, - 3153,2664,3030,174,162,2751,3573,173,176,177, - 178,179,180,186,4004,1186,501,869,3031,627, - 1630,209,220,2675,208,217,218,219,221,958, - 175,57,31,533,2775,2804,2888,1562,1099,1123, - 174,3032,3033,198,173,176,177,178,179,180, - 391,423,234,2752,498,500,2761,3036,162,1238, - 41,1569,387,518,162,307,1045,186,4004,362, - 533,869,226,206,4262,209,220,2675,208,217, - 218,219,221,3038,175,1238,41,1569,387,234, - 332,336,3429,519,174,162,428,192,173,176, - 177,178,179,180,186,4004,31,3161,869,2301, - 4059,2915,209,220,2675,208,217,218,219,221, - 2680,175,57,1238,41,2556,286,1213,1562,971, - 2906,174,88,3041,200,173,176,177,178,179, - 180,2454,41,782,38,447,2569,36,914,33, - 37,853,32,34,772,31,29,58,937,112, - 83,84,114,995,525,1730,1635,41,3060,38, - 1345,3391,36,914,340,37,853,2165,41,782, - 38,1157,3043,36,914,340,37,853,2454,41, - 782,38,2915,2569,36,914,33,37,853,32, - 34,772,31,29,58,937,112,83,84,114, - 1737,1238,41,1569,387,1751,66,2041,2756,2626, - 4659,4602,333,321,2276,323,379,3060,31,316, - 2251,4659,3539,31,321,2276,323,3013,344,3045, - 316,2251,537,1238,41,2556,283,3047,57,2669, - 3051,356,353,522,1562,2604,4296,31,2071,527, - 4109,2557,175,4493,1238,41,1569,387,2041,2756, - 345,1477,945,350,2454,41,782,38,523,2569, - 36,914,33,37,853,32,34,772,31,29, - 58,937,112,83,84,114,1756,2454,41,782, - 38,448,2569,36,914,33,37,853,32,34, - 772,31,29,58,937,112,83,84,114,1772, - 3039,1238,41,1569,387,414,3061,1228,41,782, - 38,588,3391,36,914,340,37,853,290,519, - 1213,2915,940,41,1569,387,31,2244,2716,31, - 2766,3052,2626,1123,1238,41,2556,3048,57,2822, - 1809,3053,3056,2626,1562,2547,2319,2779,2836,41, - 393,234,31,31,1706,3064,3307,4222,162,278, - 2668,4659,234,334,321,2276,323,3057,1392,290, - 317,2251,3062,814,211,220,2675,210,217,218, - 219,221,353,4125,5219,211,220,2675,210,217, - 218,219,221,1393,41,1569,387,2529,2779,426, - 347,1477,945,350,2915,212,214,216,297,298, - 2754,2864,222,213,215,2626,212,214,216,297, - 298,2754,2634,222,213,215,382,2182,3139,296, - 57,5219,5219,1384,234,79,1562,1104,3118,5219, - 5219,31,4084,2827,325,3611,244,5219,5219,1238, - 41,296,527,4084,2849,3522,3237,211,220,2675, - 210,217,218,219,221,2454,41,782,38,3148, - 2569,36,914,33,37,853,32,34,772,31, - 29,58,937,112,83,84,92,5219,212,214, - 216,297,298,2754,237,222,213,215,2454,1588, - 782,1604,5219,2569,36,914,33,37,853,32, - 34,772,31,29,58,937,112,83,84,91, - 245,235,236,5219,5219,4084,3179,2454,41,782, - 38,1431,2569,36,914,33,37,853,32,34, - 772,31,29,58,937,112,83,84,90,2454, - 41,782,38,4295,2569,36,914,33,37,853, - 32,34,772,31,29,58,937,112,83,84, - 89,2454,41,782,38,5219,2569,36,914,33, - 37,853,32,34,772,31,29,58,937,112, - 83,84,88,2454,41,782,38,5219,2569,36, - 914,33,37,853,32,34,772,31,29,58, - 937,112,83,84,87,2454,41,782,38,5219, - 2569,36,914,33,37,853,32,34,772,31, - 29,58,937,112,83,84,86,2454,41,782, - 38,5219,2569,36,914,33,37,853,32,34, - 772,31,29,58,937,112,83,84,85,2320, - 41,782,38,5219,2569,36,914,33,37,853, - 32,34,772,31,29,58,937,112,83,84, - 110,2454,41,782,38,5219,2569,36,914,33, - 37,853,32,34,772,31,29,58,937,112, - 83,84,116,2454,41,782,38,5219,2569,36, - 914,33,37,853,32,34,772,31,29,58, - 937,112,83,84,115,2454,41,782,38,5219, - 2569,36,914,33,37,853,32,34,772,31, - 29,58,937,112,83,84,113,2454,41,782, - 38,5219,2569,36,914,33,37,853,32,34, - 772,31,29,58,937,112,83,84,111,1702, - 41,782,38,1345,5219,36,914,340,37,853, - 2410,41,782,38,2775,2569,36,914,33,37, - 853,32,34,772,31,29,58,937,93,83, - 84,2883,31,31,2775,2626,3105,3131,2908,2915, - 31,31,1123,2849,3520,2626,2760,2626,5219,5219, - 2626,31,306,4659,234,948,321,2276,323,5219, - 5219,1591,316,2251,344,1123,2664,166,5219,234, - 31,5219,185,3155,4182,2680,5219,211,220,2675, - 210,217,218,219,221,5219,2751,2607,5219,2607, - 162,5219,211,220,2675,210,217,218,219,221, - 531,1646,2071,1238,41,1569,387,4493,212,214, - 216,297,298,2754,2792,516,213,215,2626,2775, - 5219,309,313,212,214,216,297,298,2754,2925, - 515,213,215,2626,501,1476,2915,234,31,2987, - 57,4319,3969,3357,5219,31,1562,795,2752,533, - 2752,3222,234,5219,2908,2915,5219,204,1123,5219, - 211,220,2675,210,217,218,219,221,344,2915, - 3016,5219,499,500,162,211,220,2675,210,217, - 218,219,221,166,1306,3526,336,3552,336,3039, - 2751,212,214,216,297,298,2754,2955,223,213, - 215,2626,5219,4331,1809,1273,212,214,216,297, - 298,2754,2365,308,213,215,5219,5219,1201,2915, - 234,5219,2626,4651,5219,1238,41,1569,387,556, - 2548,41,782,38,1345,2775,36,914,340,37, - 853,234,2775,211,220,2675,210,217,218,219, - 221,1984,2607,3246,2611,41,1569,387,5219,3083, - 5219,5219,57,425,2030,404,4393,243,1562,915, - 2836,41,393,203,212,214,216,297,298,2754, - 305,495,213,215,4659,2775,3040,321,2276,323, - 5219,278,2775,316,2251,405,406,407,297,298, - 2754,2548,41,782,38,1345,2680,36,914,340, - 37,853,5219,2752,5219,237,5219,31,31,5219, - 2692,1123,1123,207,518,2775,1500,41,782,38, - 205,3391,36,914,340,37,853,5219,5219,5219, - 31,241,235,236,1123,5219,162,162,2775,2775, - 4010,336,310,313,279,4659,1306,1160,321,2276, - 323,2775,5219,301,316,2251,5219,5219,3407,162, - 248,251,254,257,2838,408,410,2921,3263,2100, - 4659,589,334,321,2276,323,2885,227,5219,319, - 2251,1419,41,1569,387,5219,5219,5219,1919,199, - 4409,1500,41,782,38,5219,3391,36,914,340, - 37,853,2548,41,782,38,1345,5219,36,914, - 340,37,853,1524,41,782,38,3346,57,36, - 914,340,37,853,1562,55,5219,5219,5219,1276, - 2836,41,393,2626,4651,1765,5219,5219,5219,2626, - 3391,1333,1333,918,5219,4659,5219,334,321,2276, - 323,400,234,31,317,2251,4659,1123,2664,321, - 2276,323,5219,5219,1765,316,2251,4659,2626,3391, - 318,3030,323,5219,5219,2030,404,4393,3567,5219, - 5219,5219,162,869,869,5219,5219,2664,5219,31, - 5219,333,1686,1123,2804,31,377,377,533,1123, - 1241,41,1569,387,5219,5219,405,406,407,297, - 298,2754,5219,2726,41,1569,387,4108,162,5219, - 333,5219,5219,162,162,2848,361,5219,1728,5219, - 5219,2692,186,4004,1770,31,5219,57,3572,2626, - 1602,2625,2632,1562,55,1393,41,1569,387,2966, - 57,5219,5219,2626,3507,361,1562,55,344,201, - 5219,31,1266,5219,5219,2626,3195,5219,5219,1602, - 2625,2632,344,5219,5219,2543,2726,41,1569,387, - 2751,2908,57,526,344,1123,408,411,1562,55, - 2726,41,1569,387,2751,1653,375,4003,2726,41, - 1569,387,2726,41,1569,387,2751,2531,3006,529, - 166,5219,533,57,2976,41,1569,387,5219,1562, - 55,1644,2999,41,1569,387,5219,57,5219,5219, - 5219,344,31,1562,55,57,2626,162,2829,57, - 31,1562,55,5219,2626,1562,55,194,5219,5219, - 5219,57,3088,4382,5219,344,5219,1562,55,57, - 3239,5219,5219,344,3444,1562,55,5219,5219,4588, - 202,1238,41,1569,387,5219,2968,2751,2834,1238, - 41,1569,387,5219,3649,2751,5219,31,5219,31, - 31,2626,505,533,533,5219,5219,31,31,5219, - 503,533,1123,5219,5219,5219,5219,5219,57,5219, - 344,196,344,344,1562,1779,57,31,162,162, - 344,1123,1562,2164,5219,5219,162,162,194,194, - 5219,5219,2751,5219,4382,4382,194,1854,3310,2908, - 2908,31,4382,1123,1123,1123,162,530,5219,5219, - 5219,5219,5219,5219,5219,5219,2023,5219,5219,5219, - 5219,5219,5219,5219,5219,5219,5219,5219,166,166, - 162,5219,5219,5219,5219,5219,5219,5219,5219,5219, - 4139,5219,4318,5219,5219,5219,5219,5219,5219,5219, - 5219,5219,3521,3604,5219,5219,5219,5219,5219,5219, - 4009,5219,5219,5219,5219,5219,5219,5219,5219,5219, - 5219,5219,5219,5219,5219,5219,5219,5219,5219,5219, - 5219,5219,5219,5219,5219,5219,5219,5219,5219,5219, - 5219,5219,5219,5219,5219,5219,2947,3291,5219,0, - 45,5239,0,45,5238,0,619,35,0,436, - 938,0,450,1389,0,44,5239,0,44,5238, - 0,2463,132,0,1,440,0,454,861,0, - 453,864,0,619,47,0,626,97,0,619, - 386,0,41,39,0,38,40,0,45,1113, - 0,1,562,0,1,5496,0,1,5495,0, - 1,5494,0,1,5493,0,1,5492,0,1, - 5491,0,1,5490,0,1,5489,0,1,5488, - 0,1,5487,0,1,5486,0,45,1,5239, - 0,45,1,5238,0,733,1,0,5458,246, - 0,5457,246,0,5558,246,0,5557,246,0, - 5485,246,0,5484,246,0,5483,246,0,5482, - 246,0,5481,246,0,5480,246,0,5479,246, - 0,5478,246,0,5496,246,0,5495,246,0, - 5494,246,0,5493,246,0,5492,246,0,5491, - 246,0,5490,246,0,5489,246,0,5488,246, - 0,5487,246,0,5486,246,0,45,246,5239, - 0,45,246,5238,0,5263,246,0,56,5239, - 0,56,5238,0,5225,1,0,5224,1,0, - 242,2883,0,387,38,0,38,387,0,386, - 35,0,35,386,0,51,5261,0,51,43, - 0,5239,56,0,5238,56,0,2463,134,0, - 2463,133,0,5550,441,0,1599,441,0,5263, - 1,0,45,1,0,55,43,0,1,98, - 0,43,55,0,497,2717,0,5263,233,1, - 0,45,233,1,0,233,413,0,43,5239, - 0,43,5238,0,1,5239,2,0,1,5238, - 2,0,43,5239,2,0,43,5238,2,0, - 5239,42,0,5238,42,0,5261,53,0,53, - 43,0,5229,402,0,5228,402,0,1,4271, - 0,1,1113,0,1,2863,0,233,412,0, - 3212,320,0,5550,101,0,1599,101,0,41, - 80,0,1,5550,0,1,1599,0,45,1, - 5239,2,0,45,1,5238,2,0,45,5239, - 2,0,45,5238,2,0,283,4124,0,497, - 4016,0,233,1,0,233,225,0,233,224, - 0,1,3548,0,1,4240,0,5231,1,0, - 5227,1,0,233,1,3300,0,5228,233,0, - 3312,233,0,3442,233,0,10,12,0,8, - 10,12,0,8,12,0,191,3209,0 + 105,107,107,106,106,197,197,91,91,180, + 180,180,180,180,125,46,46,156,179,179, + 126,126,126,126,127,158,181,181,37,37, + 116,128,128,128,128,108,108,120,120,120, + 159,160,160,160,160,160,160,160,160,160, + 160,160,184,184,182,182,183,183,161,161, + 161,161,162,185,110,109,109,186,186,163, + 163,163,163,102,102,102,187,187,9,9, + 10,188,188,189,164,155,155,165,165,166, + 167,167,6,6,7,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,77,82,82, + 169,169,130,130,131,131,131,131,131,131, + 3,132,132,129,129,111,111,85,78,74, + 157,157,112,112,190,190,190,133,133,124, + 124,191,191,170,170,1132,41,1962,1960,2219, + 2856,36,1117,33,37,947,32,34,1917,31, + 29,58,1211,112,83,84,114,1244,1493,1262, + 1254,1512,1389,1555,66,1523,1598,1579,1622,3214, + 1641,149,278,592,41,451,164,150,4543,2647, + 1781,41,3107,38,1781,1258,36,1117,340,37, + 947,1651,2447,41,939,38,237,3032,36,1117, + 33,37,947,32,34,924,31,29,58,1211, + 112,83,84,114,1244,2199,1262,1254,1512,1389, + 2363,1212,240,235,236,2221,1966,1027,41,451, + 1308,2908,4543,354,4570,279,1411,321,1400,323, + 592,41,284,316,1126,3595,237,1238,1770,2767, + 40,247,250,253,256,3434,631,420,801,1190, + 41,939,38,539,3192,36,1117,33,37,947, + 65,34,249,235,236,71,2775,657,1467,856, + 585,2697,2990,3172,4214,1655,41,939,38,2643, + 3032,36,1117,33,37,947,32,34,924,31, + 29,58,1211,112,83,84,114,1244,344,1262, + 1254,1512,1389,1555,1375,1523,1598,1579,1622,496, + 1641,149,1263,41,1708,49,515,150,48,1117, + 2769,2834,41,282,1238,41,2767,2816,444,3262, + 3263,417,3109,801,2125,516,1655,41,939,38, + 2643,3032,36,1117,33,37,947,32,34,924, + 31,29,58,1211,112,83,84,114,1244,344, + 1262,1254,1512,1389,1555,3472,1523,1598,1579,1622, + 4581,1641,149,454,2658,1032,31,515,150,445, + 685,2769,448,3262,3263,69,511,1511,1741,2644, + 2932,1911,41,939,38,1776,516,36,1117,46, + 37,947,330,336,2609,441,419,2628,495,1655, + 41,939,38,2643,3032,36,1117,33,37,947, + 32,34,924,31,29,58,1211,112,83,84, + 114,1244,344,1262,1254,1512,1389,1555,2940,1523, + 1598,1579,1622,2271,1641,149,1384,511,3283,31, + 515,150,331,746,2769,592,41,284,357,244, + 4237,1238,41,3139,3102,2650,1887,529,2628,516, + 1857,41,939,38,2643,3032,36,1117,33,37, + 947,32,34,924,31,29,58,1211,112,83, + 84,114,1244,344,1262,1254,1512,1389,1555,334, + 1523,1598,1579,1622,2591,1641,149,237,1024,31, + 290,515,150,819,332,2769,2033,41,939,38, + 511,4308,36,1117,33,37,947,67,34,1908, + 516,1350,1212,245,235,236,4068,2016,2736,2001, + 2960,2628,1986,41,939,38,2658,3032,36,1117, + 33,37,947,32,34,924,31,29,58,1211, + 112,83,84,114,1244,77,1262,1254,1512,1389, + 1555,2868,1523,1598,1579,1622,94,1641,149,108, + 3937,512,4133,380,150,1721,41,939,38,1411, + 3032,36,1117,33,37,947,32,34,924,31, + 29,58,1211,112,83,84,114,1244,857,1262, + 1254,1512,1389,1555,501,1523,1598,1579,1622,3283, + 1641,149,1238,41,2830,4133,380,150,2447,41, + 939,38,2658,3032,36,1117,33,37,947,32, + 34,924,31,29,58,1211,112,83,84,114, + 1244,2085,1262,1254,1512,1389,1555,506,1523,1598, + 1579,2504,2175,41,296,1411,30,31,386,3190, + 1824,1129,458,1921,41,939,38,99,3032,36, + 1117,33,37,947,32,34,924,31,29,58, + 1211,112,83,84,114,1244,2703,1262,1254,1512, + 1389,1555,3548,1523,1598,1579,1622,2151,1641,149, + 1357,387,3190,4133,380,150,1906,391,425,2095, + 41,939,38,3255,3032,36,1117,33,37,947, + 32,34,924,31,29,58,1211,112,83,84, + 114,1244,1339,1262,1254,1512,1389,1555,457,1523, + 1598,1579,1622,100,1641,149,1238,41,2767,281, + 164,150,2095,41,939,38,1787,3032,36,1117, + 33,37,947,32,34,924,31,29,58,1211, + 112,83,84,114,1244,355,1262,1254,1512,1389, + 1555,326,1523,1598,1579,1622,1032,1641,149,378, + 3190,2747,2219,374,150,2095,41,939,38,734, + 3032,36,1117,33,37,947,32,34,924,31, + 29,58,1211,112,83,84,114,1244,2881,1262, + 1254,1512,1389,1555,1545,1523,1598,1579,1622,2599, + 1641,149,3318,1129,1104,1271,374,150,2158,41, + 939,38,327,3192,36,1117,33,37,947,64, + 34,657,1238,3527,2095,41,939,38,166,3032, + 36,1117,33,37,947,32,34,924,31,29, + 58,1211,112,83,84,114,1244,373,1262,1254, + 1512,1389,1555,1751,1523,1598,1579,1622,501,1641, + 149,1238,2932,3283,1411,374,150,1793,41,939, + 38,2658,3032,36,1117,33,37,947,32,34, + 924,31,29,58,1211,112,83,84,114,1244, + 372,1262,1254,1512,1389,1555,1794,1523,1598,1579, + 1622,501,1641,149,1411,76,3283,436,148,150, + 2095,41,939,38,333,3032,36,1117,33,37, + 947,32,34,924,31,29,58,1211,112,83, + 84,114,1244,1847,1262,1254,1512,1389,1555,2166, + 1523,1598,1579,1622,68,1641,149,3959,853,370, + 2164,165,150,2095,41,939,38,333,3032,36, + 1117,33,37,947,32,34,924,31,29,58, + 1211,112,83,84,114,1244,1651,1262,1254,1512, + 1389,1555,291,1523,1598,1579,1622,59,1641,149, + 848,2847,1998,2989,161,150,2095,41,939,38, + 801,3032,36,1117,33,37,947,32,34,924, + 31,29,58,1211,112,83,84,114,1244,1651, + 1262,1254,1512,1389,1555,327,1523,1598,1579,1622, + 2929,1641,149,2700,41,2767,281,160,150,2095, + 41,939,38,2169,3032,36,1117,33,37,947, + 32,34,924,31,29,58,1211,112,83,84, + 114,1244,1701,1262,1254,1512,1389,1555,403,1523, + 1598,1579,1622,153,1641,149,1238,3008,2767,81, + 159,150,2095,41,939,38,2257,3032,36,1117, + 33,37,947,32,34,924,31,29,58,1211, + 112,83,84,114,1244,60,1262,1254,1512,1389, + 1555,1751,1523,1598,1579,1622,2125,1641,149,2700, + 41,2767,3010,158,150,2095,41,939,38,1236, + 3032,36,1117,33,37,947,32,34,924,31, + 29,58,1211,112,83,84,114,1244,756,1262, + 1254,1512,1389,1555,66,1523,1598,1579,1622,4472, + 1641,149,1238,41,2767,286,157,150,2095,41, + 939,38,321,3032,36,1117,33,37,947,32, + 34,924,31,29,58,1211,112,83,84,114, + 1244,1410,1262,1254,1512,1389,1555,2460,1523,1598, + 1579,1622,4485,1641,149,1238,41,2767,283,156, + 150,2095,41,939,38,1260,3032,36,1117,33, + 37,947,32,34,924,31,29,58,1211,112, + 83,84,114,1244,1338,1262,1254,1512,1389,1555, + 356,1523,1598,1579,1622,501,1641,149,2166,529, + 3283,2989,155,150,2095,41,939,38,2194,3032, + 36,1117,33,37,947,32,34,924,31,29, + 58,1211,112,83,84,114,1244,679,1262,1254, + 1512,1389,1555,2240,1523,1598,1579,1622,1969,1641, + 149,1238,41,2767,3099,154,150,2095,41,939, + 38,333,3032,36,1117,33,37,947,32,34, + 924,31,29,58,1211,112,83,84,114,1244, + 1353,1262,1254,1512,1389,1555,401,1523,1598,1579, + 1622,501,1641,149,1411,3480,3283,2219,153,150, + 2095,41,939,38,2658,3032,36,1117,33,37, + 947,32,34,924,31,29,58,1211,112,83, + 84,114,1244,1469,1262,1254,1512,1389,1555,1162, + 1523,1598,1579,1622,2719,1641,149,3600,61,3283, + 1777,152,150,2095,41,939,38,333,3032,36, + 1117,33,37,947,32,34,924,31,29,58, + 1211,112,83,84,114,1244,1934,1262,1254,1512, + 1389,1555,1980,1523,1598,1579,1622,328,1641,149, + 2771,4370,1238,3528,151,150,2051,41,939,38, + 1824,3032,36,1117,33,37,947,32,34,924, + 31,29,58,1211,112,83,84,114,1244,2230, + 1262,1254,1512,1389,1555,66,1523,1598,1579,1622, + 4489,2748,170,2095,41,939,38,1510,3032,36, + 1117,33,37,947,32,34,924,31,29,58, + 1211,112,83,84,114,1244,390,1262,1254,1512, + 1389,1555,1378,1523,1598,1579,1622,1411,1641,149, + 1238,41,1733,389,146,150,1238,41,287,329, + 2690,1417,2630,102,2359,41,939,38,1784,3032, + 36,1117,33,37,947,32,34,924,31,29, + 58,1211,112,83,84,114,1244,57,1262,1254, + 1512,1389,1555,54,1523,1598,1579,1622,66,1641, + 149,2771,2658,4517,675,195,150,2447,41,939, + 38,331,3032,36,1117,33,37,947,32,34, + 924,31,29,58,1211,112,83,84,114,1244, + 103,1262,1254,1512,1389,1555,60,1523,1598,1579, + 1622,315,2748,170,2447,41,939,38,55,3032, + 36,1117,33,37,947,32,34,924,31,29, + 58,1211,112,83,84,114,1244,288,1262,1254, + 1512,1389,1555,520,1523,1598,1579,1622,1411,2748, + 170,2033,41,939,38,55,4308,36,1117,33, + 37,947,66,34,1604,2447,41,939,38,295, + 3032,36,1117,33,37,947,32,34,924,31, + 29,58,1211,112,83,84,114,1244,2182,1262, + 1254,1512,1389,1555,78,1523,1598,1579,1622,762, + 2748,170,2447,41,939,38,2078,3032,36,1117, + 33,37,947,32,34,924,31,29,58,1211, + 112,83,84,114,1244,2688,1262,1254,1512,1389, + 1555,104,1523,1598,1579,1622,2940,2748,170,1911, + 41,939,38,2805,2960,36,1117,2174,37,947, + 2814,2112,1984,2447,41,939,38,421,3032,36, + 1117,33,37,947,32,34,924,31,29,58, + 1211,112,83,84,114,1244,382,1262,1254,1512, + 1389,1555,405,1523,1598,1579,1622,2906,2748,170, + 2491,41,939,38,420,3032,36,1117,33,37, + 947,32,34,924,31,29,58,1211,112,83, + 84,114,1244,381,1262,1254,1512,1389,1555,66, + 1523,1598,1579,1622,4555,2748,170,1911,41,939, + 38,2197,2960,36,1117,341,37,947,2960,2598, + 2125,2447,41,939,38,423,3032,36,1117,33, + 37,947,32,34,924,31,29,58,1211,112, + 83,84,114,1244,521,1262,1254,1512,1389,1555, + 302,1523,1598,2477,95,2617,226,108,2447,41, + 939,38,3520,3032,36,1117,33,37,947,32, + 34,924,31,29,58,1211,112,83,84,114, + 1244,1704,1262,1254,1512,1389,1555,2960,1523,2450, + 2447,41,939,38,2267,3032,36,1117,33,37, + 947,32,34,924,31,29,58,1211,112,83, + 84,114,1244,147,1262,1254,1512,1389,1555,1604, + 2458,2447,41,939,38,306,3032,36,1117,33, + 37,947,32,34,924,31,29,58,1211,112, + 83,84,114,1244,325,1262,1254,1512,2422,2447, + 41,939,38,529,3032,36,1117,33,37,947, + 32,34,924,31,29,58,1211,112,83,84, + 114,1244,2547,1262,1254,1512,2431,2447,41,939, + 38,2803,3032,36,1117,33,37,947,32,34, + 924,31,29,58,1211,112,83,84,114,1244, + 1314,1262,1254,2181,2447,41,939,38,240,3032, + 36,1117,33,37,947,32,34,924,31,29, + 58,1211,112,83,84,114,1244,1508,1262,1254, + 2261,2447,41,939,38,161,3032,36,1117,33, + 37,947,32,34,924,31,29,58,1211,112, + 83,84,114,1244,669,1262,1254,2269,2447,41, + 939,38,2219,3032,36,1117,33,37,947,32, + 34,924,31,29,58,1211,112,83,84,114, + 1244,262,1262,1254,2305,535,2141,41,939,38, + 2281,4308,36,1117,33,37,947,32,34,31, + 509,2658,4010,714,234,1911,41,939,38,2575, + 162,36,1117,2262,37,947,2661,4218,1,186, + 3052,4010,535,1238,41,1733,389,209,220,2692, + 208,217,218,219,221,351,175,1241,41,1733, + 389,234,1238,41,1733,389,174,162,2724,189, + 173,176,177,178,179,180,186,3052,4010,2265, + 429,2799,41,285,209,220,2692,208,217,218, + 219,221,1417,175,57,2890,41,395,1075,432, + 1727,2705,857,174,187,2042,190,173,176,177, + 178,179,180,2535,41,1733,389,31,2587,4072, + 2499,4241,2447,41,939,38,242,3032,36,1117, + 33,37,947,32,34,924,31,29,58,1211, + 112,83,84,114,1244,31,1262,2331,1612,1018, + 278,1485,41,939,38,1695,1110,36,1117,340, + 37,947,2541,41,939,38,2833,2140,36,1117, + 340,37,947,2658,237,2357,2568,2447,41,939, + 38,2221,3032,36,1117,33,37,947,32,34, + 924,31,29,58,1211,112,83,84,114,2155, + 240,235,236,3323,520,4570,2772,96,321,1400, + 323,392,425,279,316,1126,4570,521,1381,318, + 3070,323,2890,41,395,1636,353,2988,237,247, + 250,253,256,3434,2799,41,282,2751,31,1971, + 857,539,1129,1351,345,1120,558,350,66,2635, + 2644,2932,2981,4566,252,235,236,856,585,2697, + 2990,3172,4214,2447,41,939,38,4102,3032,36, + 1117,33,37,947,32,34,924,31,29,58, + 1211,112,83,84,114,1244,2849,1262,2344,1706, + 41,939,38,4458,857,36,1117,340,37,947, + 2909,1655,408,1766,41,939,38,1781,3283,36, + 1117,340,37,947,353,1591,3557,1643,849,1129, + 2561,680,3283,352,2658,2632,2667,41,1733,389, + 3331,367,345,1120,558,350,4582,2744,31,1118, + 343,4106,799,4570,162,445,321,1400,323,394, + 425,2263,316,1126,533,2643,2771,4570,3440,333, + 321,1400,323,57,353,3237,316,1126,349,1727, + 676,290,535,334,344,1668,1547,3995,2081,1862, + 2643,3283,345,1120,558,350,2903,1950,4072,2540, + 2551,234,353,4355,31,2658,914,162,4527,2681, + 2886,2960,1346,393,425,2999,186,3052,4010,1129, + 347,1120,558,350,209,220,2692,208,217,218, + 219,221,289,175,436,309,313,1335,535,3469, + 1774,2643,333,174,162,2658,3521,173,176,177, + 178,179,180,206,3963,2044,2268,234,31,2643, + 2681,1650,1303,162,50,2755,3308,2658,1801,2855, + 2521,523,186,3052,4010,535,2847,361,2681,75, + 209,220,2692,208,217,218,219,221,2995,175, + 1734,2854,2848,2869,234,621,2890,41,395,174, + 162,74,184,173,176,177,178,179,180,186, + 3052,4010,1637,41,1733,389,2846,209,220,2692, + 208,217,218,219,221,610,175,2658,503,535, + 1335,237,2960,2978,2643,2658,174,2964,2997,182, + 173,176,177,178,179,180,362,1973,234,57, + 3017,2906,2771,2681,162,1727,591,255,235,236, + 2768,73,697,186,3052,4010,535,500,502,72, + 185,209,220,2692,208,217,218,219,221,3021, + 175,352,31,1950,31,234,2770,1395,2643,2589, + 174,162,2771,183,173,176,177,178,179,180, + 186,3052,4010,2658,3549,1837,3167,344,209,220, + 2692,208,217,218,219,221,784,175,300,2782, + 535,503,353,2824,1238,41,296,174,3023,2769, + 193,173,176,177,178,179,180,3599,2003,234, + 345,1120,558,350,1819,162,2998,1196,2551,2658, + 52,2755,2941,871,186,3052,4010,535,299,3000, + 501,502,209,220,2692,208,217,218,219,221, + 2219,175,1524,41,1733,389,234,1238,41,1733, + 389,174,162,63,3563,173,176,177,178,179, + 180,186,3052,4010,1238,41,1733,389,2658,209, + 220,2692,208,217,218,219,221,958,175,57, + 4250,535,2960,237,431,1727,1383,2658,174,2771, + 2771,198,173,176,177,178,179,180,3330,31, + 234,57,62,2643,4018,2899,162,1727,1152,258, + 235,236,2945,3028,1045,186,3052,4010,535,2960, + 204,324,344,209,220,2692,208,217,218,219, + 221,3034,175,1238,41,1733,389,234,1238,41, + 1733,389,174,162,2769,192,173,176,177,178, + 179,180,186,3052,4010,307,383,203,2966,1830, + 209,220,2692,208,217,218,219,221,31,175, + 57,2048,2780,3019,31,430,1727,2832,4028,174, + 2960,3032,200,173,176,177,178,179,180,2447, + 41,939,38,2731,3032,36,1117,33,37,947, + 32,34,924,31,29,58,1211,112,83,84, + 114,1244,3038,2004,2447,41,939,38,305,3032, + 36,1117,33,37,947,32,34,924,31,29, + 58,1211,112,83,84,114,1244,88,2129,1367, + 41,3107,38,1781,3283,36,1117,340,37,947, + 2215,41,939,38,1695,3039,36,1117,340,37, + 947,2447,41,939,38,2219,3032,36,1117,33, + 37,947,32,34,924,31,29,58,1211,112, + 83,84,114,2173,2609,41,2686,2851,2844,3523, + 31,3040,2643,4570,4160,333,321,1400,323,3041, + 2658,2064,316,1126,4570,4010,4233,321,1400,323, + 3045,2681,2599,316,1126,631,1129,1312,3046,31, + 523,57,1375,1561,175,353,524,1727,871,4355, + 1228,41,939,38,107,3283,36,1117,340,37, + 947,166,2219,345,1120,558,350,2447,41,939, + 38,525,3032,36,1117,33,37,947,32,34, + 924,31,29,58,1211,112,83,84,114,2180, + 3047,588,2658,1583,41,1733,389,2960,3050,503, + 2282,2709,4010,3472,4570,2643,334,321,1400,323, + 3052,2815,2675,317,1126,2643,3053,522,31,3054, + 416,3109,3531,1647,234,353,3992,2358,31,2002, + 57,625,4574,814,234,207,1727,55,500,502, + 335,336,1738,347,1120,558,350,211,220,2692, + 210,217,218,219,221,2611,3014,211,220,2692, + 210,217,218,219,221,1238,41,1733,389,31, + 31,2857,31,4306,3541,2643,1129,3467,212,214, + 216,297,298,2919,427,222,213,215,212,214, + 216,297,298,2919,234,222,213,215,5229,31, + 31,162,57,2957,2711,5229,31,3080,1727,2764, + 744,1321,5229,5229,5229,4096,3072,211,220,2692, + 210,217,218,219,221,4096,3112,2403,41,939, + 38,5229,3032,36,1117,33,37,947,32,34, + 924,31,29,58,1211,93,83,84,212,214, + 216,297,298,2919,5229,222,213,215,2447,41, + 939,38,5229,3032,36,1117,33,37,947,32, + 34,924,31,29,58,1211,112,83,84,92, + 31,5229,5229,5229,1566,4096,3239,2447,1770,939, + 1813,5229,3032,36,1117,33,37,947,32,34, + 924,31,29,58,1211,112,83,84,91,2447, + 41,939,38,5229,3032,36,1117,33,37,947, + 32,34,924,31,29,58,1211,112,83,84, + 90,2447,41,939,38,5229,3032,36,1117,33, + 37,947,32,34,924,31,29,58,1211,112, + 83,84,89,2447,41,939,38,5229,3032,36, + 1117,33,37,947,32,34,924,31,29,58, + 1211,112,83,84,88,2447,41,939,38,5229, + 3032,36,1117,33,37,947,32,34,924,31, + 29,58,1211,112,83,84,87,2447,41,939, + 38,5229,3032,36,1117,33,37,947,32,34, + 924,31,29,58,1211,112,83,84,86,2447, + 41,939,38,5229,3032,36,1117,33,37,947, + 32,34,924,31,29,58,1211,112,83,84, + 85,2313,41,939,38,5229,3032,36,1117,33, + 37,947,32,34,924,31,29,58,1211,112, + 83,84,110,2447,41,939,38,5229,3032,36, + 1117,33,37,947,32,34,924,31,29,58, + 1211,112,83,84,116,2447,41,939,38,5229, + 3032,36,1117,33,37,947,32,34,924,31, + 29,58,1211,112,83,84,115,2447,41,939, + 38,5229,3032,36,1117,33,37,947,32,34, + 924,31,29,58,1211,112,83,84,113,2447, + 41,939,38,2960,3032,36,1117,33,37,947, + 32,34,924,31,29,58,1211,112,83,84, + 111,1902,41,939,38,1781,5229,36,1117,340, + 37,947,31,2999,5229,31,4398,535,31,3601, + 2876,205,1129,2960,2643,1238,41,1733,389,2658, + 2938,2144,5229,2753,2531,2643,4252,2643,940,41, + 1733,389,162,234,1238,41,296,162,1375,31, + 5229,186,3052,3438,344,4570,234,1042,321,1400, + 323,301,450,2337,316,1126,211,220,2692,210, + 217,218,219,221,2658,278,626,1862,201,211, + 220,2692,210,217,218,219,221,1476,1241,41, + 1733,389,1238,41,1733,389,188,212,214,216, + 297,298,2919,31,518,213,215,1961,449,3472, + 212,214,216,297,298,2919,2785,517,213,215, + 2643,527,2658,309,313,57,2918,2658,5229,278, + 2643,1727,55,31,5229,5229,2948,2270,2905,234, + 2643,2175,3166,296,4312,5229,332,336,4003,234, + 1956,79,5229,31,3308,5229,379,3240,5229,234, + 5229,3082,211,220,2692,210,217,218,219,221, + 5229,5229,211,220,2692,210,217,218,219,221, + 1375,3548,211,220,2692,210,217,218,219,221, + 4226,202,280,212,214,216,297,298,2919,454, + 223,213,215,212,214,216,297,298,2919,2658, + 308,213,215,212,214,216,297,298,2919,440, + 497,213,215,1530,41,939,38,1781,2658,36, + 1117,340,37,947,2604,41,1733,389,31,2587, + 5229,3472,2622,3136,31,1787,3003,243,535,5229, + 535,5229,5229,2825,41,1733,389,1238,41,1733, + 389,1201,3173,5229,31,2643,4393,344,1129,344, + 31,278,31,162,952,162,3981,4570,3636,336, + 321,1400,323,1042,234,194,316,1126,2959,2769, + 57,4381,3400,162,57,237,1727,55,31,1862, + 1727,731,1129,1354,956,5229,2960,1480,406,4446, + 1530,41,939,38,1781,2573,36,1117,340,37, + 947,241,235,236,2658,2658,1375,162,1238,41, + 1733,389,2960,5229,279,5229,5229,2485,407,408, + 409,297,298,2919,4403,310,313,5229,5229,196, + 248,251,254,257,3434,2658,5229,5229,3415,3492, + 2658,5229,539,2908,4570,57,5229,321,1400,323, + 227,1727,591,316,1126,1500,41,939,38,2960, + 3283,36,1117,340,37,947,3237,3472,5229,4359, + 1500,41,939,38,3264,3283,36,1117,340,37, + 947,1530,41,939,38,1781,5229,36,1117,340, + 37,947,5229,1238,41,1733,389,199,1375,5229, + 410,412,4286,3010,3710,336,5229,1129,5229,4570, + 5229,334,321,1400,323,5229,5229,5229,319,1126, + 5229,5229,5229,1870,4570,4460,334,321,1400,323, + 57,5229,162,317,1126,4570,1727,1426,321,1400, + 323,5229,168,5229,316,1126,1838,41,939,38, + 3389,5229,36,1117,340,37,947,3546,1547,3472, + 1276,5229,2643,3283,2643,4393,5229,5229,5229,5229, + 5229,5229,1524,41,1733,389,2939,5229,5229,5229, + 2643,2681,5229,234,402,2825,41,1733,389,2825, + 41,1733,389,5229,2599,5229,4113,336,1129,344, + 4570,5229,5229,318,3070,323,1480,406,4446,57, + 528,5229,5229,5229,333,1727,55,2825,41,1733, + 389,2769,57,166,5229,5229,57,1779,1727,55, + 5229,2643,1727,55,2555,5229,531,407,408,409, + 297,298,2919,2825,41,1733,389,2592,3480,361, + 2681,3197,5229,5229,57,2979,41,1733,389,5229, + 1727,55,2908,2854,2848,2869,2982,41,1733,389, + 1238,41,1733,389,1779,5229,5229,4340,2643,3288, + 57,2219,2219,5229,5229,31,1727,55,5229,2643, + 2064,3169,57,5229,5229,4233,5229,2681,1727,55, + 3557,5229,31,57,5229,4005,535,57,344,1727, + 55,5229,3051,1727,1469,5229,2643,3144,361,410, + 413,4010,4010,31,5229,344,5229,535,4024,5229, + 2769,162,3123,2848,2869,344,377,377,31,5229, + 31,194,2643,5229,2643,1856,344,4381,5229,31, + 31,31,162,535,2643,2643,5229,4268,5229,5229, + 31,344,194,344,1129,361,5229,4067,4381,5229, + 5229,5229,344,344,344,5229,5229,5229,162,3522, + 2848,2869,5229,2769,5229,2769,31,5229,194,162, + 2643,5229,1647,31,4381,2769,2769,1129,1899,2965, + 2925,5229,5229,5229,31,4107,5229,5229,1129,344, + 507,505,31,2599,5229,31,1129,1129,5229,1129, + 2599,2599,162,5229,1129,1129,4189,5229,5229,5229, + 31,2769,2987,162,1129,5229,5229,375,4083,5229, + 5229,162,166,3047,162,5229,532,5229,5229,166, + 166,3055,4208,428,1947,5229,5229,5229,5229,162, + 5229,5229,5229,5229,5229,5229,5229,5229,5229,4335, + 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, + 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, + 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, + 5229,5229,4305,5229,5229,5229,5229,5229,5229,5229, + 3218,5229,5229,5229,5229,5229,5229,3450,4054,5229, + 0,45,5249,0,45,5248,0,786,35,0, + 438,859,0,452,919,0,44,5249,0,44, + 5248,0,2481,132,0,1,442,0,456,999, + 0,455,1075,0,786,47,0,1077,97,0, + 786,388,0,41,39,0,38,40,0,45, + 647,0,1,564,0,1,5506,0,1,5505, + 0,1,5504,0,1,5503,0,1,5502,0, + 1,5501,0,1,5500,0,1,5499,0,1, + 5498,0,1,5497,0,1,5496,0,45,1, + 5249,0,45,1,5248,0,722,1,0,5468, + 246,0,5467,246,0,5568,246,0,5567,246, + 0,5495,246,0,5494,246,0,5493,246,0, + 5492,246,0,5491,246,0,5490,246,0,5489, + 246,0,5488,246,0,5506,246,0,5505,246, + 0,5504,246,0,5503,246,0,5502,246,0, + 5501,246,0,5500,246,0,5499,246,0,5498, + 246,0,5497,246,0,5496,246,0,45,246, + 5249,0,45,246,5248,0,5273,246,0,56, + 5249,0,56,5248,0,5235,1,0,5234,1, + 0,242,1249,0,389,38,0,38,389,0, + 388,35,0,35,388,0,51,5271,0,51, + 43,0,5249,56,0,5248,56,0,2481,134, + 0,2481,133,0,5560,443,0,2549,443,0, + 5273,1,0,45,1,0,55,43,0,1, + 98,0,43,55,0,499,2916,0,5273,233, + 1,0,45,233,1,0,233,415,0,43, + 5249,0,43,5248,0,1,5249,2,0,1, + 5248,2,0,43,5249,2,0,43,5248,2, + 0,5249,42,0,5248,42,0,5271,53,0, + 53,43,0,5239,404,0,5238,404,0,1, + 4290,0,1,647,0,1,4011,0,233,414, + 0,3558,320,0,5560,101,0,2549,101,0, + 41,80,0,1,5560,0,1,2549,0,45, + 1,5249,2,0,45,1,5248,2,0,45, + 5249,2,0,45,5248,2,0,283,4494,0, + 499,4013,0,233,1,0,233,225,0,233, + 224,0,1,2625,0,1,2752,0,5241,1, + 0,5237,1,0,233,1,3362,0,5238,233, + 0,3387,233,0,5241,384,0,5240,384,0, + 3474,233,0,10,12,0,8,10,12,0, + 191,3227,0,3586,384,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1101,7 +1102,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 42,43,44,45,46,47,48,49,50,51, 52,53,0,55,56,57,58,0,60,61, 62,63,64,6,66,67,68,91,92,0, - 72,101,3,75,76,77,78,79,80,81, + 72,101,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, @@ -1170,214 +1171,214 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,0,55, 56,57,58,0,60,61,62,63,64,0, - 66,67,68,4,11,12,72,95,0,75, + 66,67,68,4,11,12,72,0,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,7,30, - 9,10,11,12,0,14,15,16,17,18, + 9,10,11,12,70,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,0,55,69,57,0, - 1,2,61,4,5,121,7,66,67,68, + 49,50,51,52,53,0,55,70,57,0, + 1,2,61,4,5,0,7,66,67,68, 0,1,2,3,4,5,6,7,8,9, 10,0,0,13,14,15,16,17,18,19, 20,21,22,23,24,25,65,0,1,2, 3,4,5,6,7,0,9,0,1,2, 0,1,2,54,44,45,46,47,48,49, 50,51,52,53,54,55,56,0,58,0, - 75,61,0,0,0,30,66,67,68,57, - 8,71,72,73,17,0,1,2,3,4, + 65,61,0,1,2,70,66,67,68,7, + 0,71,72,73,17,0,1,2,3,4, 5,6,7,8,9,10,59,87,13,14, 15,16,17,18,19,20,21,22,23,24, 25,44,45,46,47,48,49,50,51,52, - 53,100,55,0,114,115,116,54,59,44, + 53,0,55,0,114,115,116,0,59,44, 45,46,47,48,49,50,51,52,53,54, - 55,56,0,58,70,0,61,0,1,2, - 8,66,67,68,7,0,71,72,73,0, + 55,56,121,58,0,100,61,0,0,1, + 2,66,67,68,10,0,71,72,73,0, 1,2,0,4,0,3,0,8,6,3, - 8,9,87,11,12,13,102,54,104,105, - 106,107,108,109,110,111,112,113,26,27, - 118,117,30,0,30,0,1,2,0,114, - 115,116,0,1,2,0,64,14,15,16, + 8,9,87,11,12,13,0,1,2,3, + 4,5,6,7,0,9,65,0,26,27, + 0,70,30,0,114,115,116,10,54,114, + 115,116,54,0,0,61,59,14,15,16, 17,18,19,20,21,22,23,24,25,0, - 65,59,3,64,69,59,28,65,0,1, - 2,69,70,71,0,73,74,44,45,46, - 47,48,49,50,51,52,53,0,55,54, + 0,59,99,64,69,59,0,65,8,45, + 46,69,70,71,30,73,74,44,45,46, + 47,48,49,50,51,52,53,0,55,73, 88,89,90,91,92,93,94,95,96,97, 98,99,100,101,102,103,104,105,106,107, - 108,109,110,111,112,113,0,30,0,117, - 118,3,120,121,6,0,8,9,3,11, - 12,13,0,17,0,1,2,3,4,5, - 6,7,0,9,26,27,4,73,30,0, + 108,109,110,111,112,113,0,73,0,117, + 118,3,120,121,6,0,8,9,69,11, + 12,13,102,8,0,1,2,3,4,5, + 6,7,0,9,26,27,30,117,30,0, 1,2,3,4,5,6,7,0,9,0, - 44,45,46,47,48,49,50,51,52,53, - 0,55,30,0,1,2,3,59,5,0, - 7,8,0,65,59,0,13,69,70,71, - 8,73,74,59,0,1,2,3,4,5, - 6,7,0,9,70,3,88,89,90,91, + 0,102,3,104,105,106,107,108,109,110, + 111,112,113,0,1,2,117,59,118,0, + 1,2,3,65,5,119,7,69,70,71, + 30,73,74,59,0,70,0,1,2,74, + 4,59,6,69,8,9,88,89,90,91, 92,93,94,95,96,97,98,99,100,101, 102,103,104,105,106,107,108,109,110,111, - 112,113,0,0,0,117,118,3,120,121, - 0,1,2,3,4,5,6,7,69,9, - 10,11,12,71,14,15,16,100,18,19, + 112,113,0,1,2,117,118,0,120,121, + 0,1,2,3,4,5,6,7,0,9, + 10,11,12,0,14,15,16,100,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,0,1,2,3,4,5, - 6,7,59,9,0,1,2,57,4,5, - 30,7,62,63,0,1,2,3,4,5, + 74,31,32,33,34,35,36,37,38,39, + 40,41,42,43,90,0,0,1,2,4, + 96,95,0,1,2,3,4,57,6,0, + 0,9,62,63,0,1,2,3,4,5, 6,7,72,9,10,11,12,0,14,15, 16,4,18,19,20,21,22,23,24,25, - 26,27,28,29,102,31,32,33,34,35, - 36,37,38,39,40,41,42,43,54,117, - 0,0,1,2,3,0,5,73,7,8, - 0,57,0,8,13,3,62,63,13,65, + 26,27,28,29,0,31,32,33,34,35, + 36,37,38,39,40,41,42,43,62,63, + 0,59,0,0,54,0,1,2,3,0, + 5,57,7,8,11,12,62,63,69,65, 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,0,18,19, + 10,11,12,0,14,15,16,4,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,0,1,2,30,4,59, - 6,0,8,9,69,0,71,57,0,1, - 2,3,0,5,64,7,8,54,0,1, - 2,71,0,1,2,3,4,5,6,7, - 8,9,10,11,12,30,14,15,16,0, + 40,41,42,43,59,0,1,2,3,4, + 5,6,7,0,9,0,0,57,0,74, + 0,1,2,3,64,5,8,7,88,89, + 0,71,0,1,2,3,4,5,6,7, + 0,9,10,11,12,30,14,15,16,59, 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,0,59,74,0, - 1,2,3,0,5,95,7,11,12,57, - 62,63,74,0,1,2,64,4,5,95, - 7,0,0,71,0,1,2,3,4,5, - 6,7,0,9,10,11,12,0,14,15, + 38,39,40,41,42,43,0,0,1,2, + 3,65,5,70,7,8,0,1,2,57, + 13,5,74,73,62,63,0,1,2,3, + 4,5,6,7,28,9,10,11,12,69, + 14,15,16,95,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, + 54,0,1,2,3,0,5,0,7,8, + 0,1,2,57,13,5,30,7,62,63, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,0,14,15,16,30,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,59,0,1,2,0,4, + 0,6,0,3,9,3,8,57,8,0, + 8,13,3,0,64,0,1,2,3,4, + 5,6,7,8,9,10,11,12,65,14, + 15,16,0,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,59, + 28,59,0,1,2,65,4,5,70,7, + 70,0,57,0,74,30,74,0,69,64, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,0,14,15,16,4,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,0,1,2,3,4,5, + 6,7,119,9,10,11,12,44,14,15, 16,0,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,65,0, - 0,30,73,0,1,2,3,4,8,6, - 59,57,9,114,115,116,62,63,0,1, + 36,37,38,39,40,41,42,43,95,0, + 0,1,2,0,4,5,3,7,5,6, + 0,57,9,73,11,12,17,0,1,2, + 119,4,5,0,7,0,3,0,118,26, + 27,4,29,30,0,1,2,114,115,116, + 30,57,8,44,45,46,47,48,49,50, + 51,52,53,0,55,30,0,30,0,88, + 89,3,59,5,6,62,63,9,65,11, + 12,54,69,70,0,1,2,3,0,5, + 0,7,59,30,26,27,8,29,30,0, + 65,88,89,90,91,92,93,94,64,0, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,59,93,94, + 62,63,0,65,0,3,0,69,70,30, + 0,1,2,59,4,0,6,11,12,9, + 0,0,64,3,88,89,88,89,90,91, + 92,93,94,73,65,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,0,1,2,3,4,5,6,7, + 0,9,10,11,12,0,14,15,16,65, + 18,19,20,21,22,23,24,25,26,27, + 28,29,61,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,0,0,1, 2,3,4,5,6,7,0,9,10,11, - 12,69,14,15,16,0,18,19,20,21, + 12,59,14,15,16,0,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,59,0,1,2,99,4,0,6, - 0,3,9,3,74,57,8,0,8,0, - 62,63,0,1,2,3,4,5,6,7, - 8,9,10,11,12,95,14,15,16,73, + 42,43,0,1,2,3,4,5,6,7, + 54,9,10,11,12,57,14,15,16,0, 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,0,59,0,59, - 0,1,2,65,0,1,2,69,4,57, - 6,0,74,9,74,4,64,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 0,14,15,16,4,18,19,20,21,22, - 23,24,25,26,27,28,29,65,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,0,1,2,3,4,5,6,7,73, - 9,10,11,12,44,14,15,16,0,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,0,0,0,1,2, - 0,4,5,3,7,5,6,0,57,9, - 0,11,12,17,0,1,2,3,8,5, - 0,7,0,13,0,118,26,27,4,29, - 30,0,1,2,114,115,116,30,0,8, - 44,45,46,47,48,49,50,51,52,53, - 0,55,30,0,0,0,88,89,3,59, - 5,6,62,63,9,65,11,12,44,69, - 70,90,0,59,0,1,2,96,4,69, - 6,26,27,9,29,30,0,65,88,89, - 90,91,92,93,94,64,10,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,59,93,94,62,63,65, - 65,0,0,0,69,70,0,1,2,0, - 4,8,6,11,12,9,13,0,88,89, - 3,88,89,88,89,90,91,92,93,94, - 0,30,97,98,99,100,101,102,103,104, - 105,106,107,108,109,110,111,112,113,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,0,14,15,16,0,18,19,20, - 21,22,23,24,25,26,27,28,29,70, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,0,0,0,1,2,3,4, - 5,6,7,73,9,10,11,12,59,14, - 15,16,0,18,19,20,21,22,23,24, - 25,26,27,28,29,59,31,32,33,34, - 35,36,37,38,39,40,41,42,43,0, - 1,2,3,4,5,6,7,0,9,10, - 11,12,57,14,15,16,0,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,0,1,2,3,4,5,6, - 7,0,9,10,11,12,0,14,15,16, - 4,18,19,20,21,22,23,24,25,26, - 27,28,29,119,31,32,33,34,35,36, - 37,38,39,40,41,42,43,0,1,2, - 3,4,5,6,7,0,9,10,11,12, - 0,14,15,16,0,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,0,1,2,17,4,0,0,1,2, - 3,10,5,0,7,14,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 65,44,45,46,47,48,49,50,51,52, - 53,0,55,30,3,44,45,46,47,48, - 49,50,51,52,53,0,55,0,0,1, - 2,3,61,5,0,7,0,66,67,68, - 0,1,2,0,4,0,1,2,65,4, - 10,54,0,0,14,15,16,17,18,19, - 20,21,22,23,24,25,0,1,2,3, - 4,5,6,7,8,9,93,94,0,13, - 28,45,46,17,44,45,46,47,48,49, - 50,51,52,53,0,55,30,0,0,54, - 0,61,0,1,2,8,66,67,68,0, - 44,45,46,47,48,49,50,51,52,53, - 0,55,88,89,30,59,0,1,2,3, - 4,5,6,7,8,9,0,1,2,13, - 74,88,89,17,119,0,1,2,3,4, - 5,6,7,8,9,0,1,2,13,65, - 0,0,17,65,62,63,69,69,71,69, - 44,45,46,47,48,49,50,51,52,53, - 0,55,73,0,0,59,3,93,94,0, - 1,2,3,4,5,6,7,8,9,54, - 74,56,13,58,0,60,17,0,0,26, - 27,3,8,0,1,2,71,13,5,30, - 7,0,1,2,3,4,5,6,7,8, - 9,0,87,0,13,0,1,2,17,59, - 5,8,59,54,0,56,13,58,0,60, - 0,0,1,2,3,4,5,6,7,8, - 9,30,0,0,13,0,1,2,17,0, - 1,2,0,1,2,54,87,56,0,58, - 30,60,0,1,2,0,103,0,10,54, - 28,0,71,0,1,2,3,4,5,6, - 7,8,9,120,73,54,13,56,87,58, - 17,60,0,1,2,3,4,5,6,7, - 8,9,71,54,0,13,54,0,65,17, - 0,0,54,0,0,0,54,0,87,61, - 0,1,2,8,0,8,0,54,0,56, - 4,58,8,60,0,1,2,3,4,5, - 6,7,8,9,71,0,54,13,56,0, - 58,17,60,0,0,10,30,90,30,10, - 87,8,8,96,0,1,2,3,4,5, - 6,7,8,9,54,0,0,13,65,87, - 70,17,0,8,69,0,1,2,54,74, - 56,74,58,0,60,0,0,90,74,54, - 0,90,0,96,8,56,61,96,0,1, - 2,0,30,0,0,0,3,64,54,8, - 56,87,58,8,60,71,0,0,13,3, - 30,0,30,0,3,0,3,0,3,0, - 0,0,0,3,3,0,70,0,0,74, - 0,87,0,3,0,3,0,3,65,3, - 0,0,0,3,69,0,0,30,3,0, - 74,0,0,0,0,0,0,0,0,0, - 0,0,0,0,70,74,0,0,0,0, - 0,0,0,0,0,0,0,70,0,0, - 0,0,30,0,0,0,0,0,69,0, - 0,69,0,0,0,70,0,70,0,0, - 0,73,0,61,0,0,0,0,0,0, - 0,70,0,0,0,0,70,0,0,0, - 0,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,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,0,0,0 + 28,29,75,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,1,2,3, + 4,5,6,7,0,9,10,11,12,0, + 14,15,16,4,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, + 0,1,2,3,4,5,6,7,0,9, + 10,11,12,44,14,15,16,0,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,0,1,2,17,4,0, + 0,1,2,3,10,5,0,7,14,15, + 16,17,18,19,20,21,22,23,24,25, + 0,1,2,65,44,45,46,47,48,49, + 50,51,52,53,0,55,30,3,44,45, + 46,47,48,49,50,51,52,53,0,55, + 0,1,2,54,4,61,6,0,0,9, + 66,67,68,0,1,2,8,4,0,1, + 2,65,4,10,54,0,0,14,15,16, + 17,18,19,20,21,22,23,24,25,0, + 1,2,3,4,5,6,7,8,9,93, + 94,0,13,0,1,2,17,44,45,46, + 47,48,49,50,51,52,53,0,55,30, + 0,73,54,3,61,8,0,1,2,66, + 67,68,74,44,45,46,47,48,49,50, + 51,52,53,0,55,88,89,0,59,0, + 1,2,3,4,5,6,7,8,9,0, + 1,2,13,74,88,89,17,0,0,1, + 2,3,4,5,6,7,8,9,0,1, + 2,13,4,0,6,17,3,9,62,63, + 0,74,0,44,45,46,47,48,49,50, + 51,52,53,0,55,0,0,0,59,3, + 0,8,0,1,2,3,4,5,6,7, + 8,9,54,74,56,13,58,0,60,17, + 0,0,26,27,0,1,2,90,8,71, + 30,0,30,96,0,1,2,3,4,5, + 6,7,8,9,0,87,0,13,0,1, + 2,17,0,73,0,59,54,64,56,0, + 58,30,60,0,0,1,2,3,4,5, + 6,7,8,9,0,1,2,13,54,0, + 0,17,30,0,1,2,65,70,54,87, + 56,71,58,0,60,0,1,2,0,103, + 0,3,54,10,0,71,0,1,2,3, + 4,5,6,7,8,9,120,65,54,13, + 56,87,58,17,60,0,1,2,3,4, + 5,6,7,8,9,71,0,54,13,0, + 1,2,17,0,90,93,94,54,0,54, + 96,87,0,90,61,0,8,0,0,96, + 54,3,56,59,58,10,60,0,1,2, + 3,4,5,6,7,8,9,71,0,54, + 13,56,30,58,17,60,8,0,0,0, + 0,13,3,87,0,8,8,0,1,2, + 3,4,5,6,7,8,9,17,0,0, + 13,56,87,0,17,0,8,8,70,71, + 0,54,13,56,4,58,69,60,0,1, + 2,0,1,2,44,45,46,47,48,49, + 50,51,52,53,0,55,0,0,0,0, + 30,54,0,56,87,58,8,60,71,0, + 8,13,74,0,70,13,0,8,0,3, + 0,8,0,3,30,3,30,0,65,30, + 3,0,74,0,87,70,3,0,0,0, + 0,3,3,3,0,0,0,3,3,0, + 0,0,0,0,3,0,0,0,0,0, + 0,0,0,0,0,0,69,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,74,71,30,28,69,0,0, + 0,0,0,0,0,0,0,0,0,0, + 69,0,0,0,0,0,0,0,0,0, + 73,0,0,0,0,0,0,0,69,73, + 0,69,69,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,0,0,0,0,0,0,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; @@ -1385,324 +1386,321 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5219,5193,5172,5172,5172,5172,5172,5172,5203,5172, - 1,1,1,5197,1,1,1,1,1,1, + 5229,5194,5173,5173,5173,5173,5173,5173,5210,5173, + 1,1,1,5198,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,1,1,1,5219,1,2906,1,2194,135, - 3124,1,1,1,5230,45,1,1,1,5263, - 5219,5226,5400,3529,5219,802,3427,4205,2202,4089, - 3289,2880,3419,2661,3362,3215,3313,10,5206,5206, - 5206,5206,5206,5206,5206,5206,5206,5206,5206,5206, - 5206,5206,5206,5206,5206,5206,5206,5206,5206,5206, - 5206,5206,5206,5206,5206,5206,5206,5219,5206,5206, - 5206,5206,5206,5206,5206,5206,5206,5206,5206,5206, - 5206,5206,5206,5206,5206,5206,5206,5206,5206,5206, - 5206,5219,5206,5206,5206,5206,136,5206,5206,5206, - 5206,5206,137,5206,5206,5206,2381,2353,5206,5206, - 5219,590,5206,5206,5206,5206,5206,5206,5206,5206, - 5206,5206,5206,5206,8,5209,5209,5209,5209,5209, - 5209,5209,5209,5209,5209,5209,5209,5209,5209,5209, - 5209,5209,5209,5209,5209,5209,5209,5209,5209,5209, - 5209,5209,5209,5209,5219,5209,5209,5209,5209,5209, - 5209,5209,5209,5209,5209,5209,5209,5209,5209,5209, - 5209,5209,5209,5209,5209,5209,5209,5209,5219,5209, - 5209,5209,5209,1896,5209,5209,5209,5209,5209,138, - 5209,5209,5209,2381,2353,5209,5209,5219,590,5209, - 5209,5209,5209,5209,5209,5209,5209,5209,5209,5209, - 5209,5219,5193,5172,5172,5172,5172,5172,5172,5200, - 5172,1,1,1,5197,1,1,1,1,1, + 1,1,1,1,385,1,1872,1,2217,135, + 3148,1,1,1,5240,45,1,1,1,5273, + 5229,5236,5410,3602,5229,2512,3460,3269,2220,3232, + 3343,2898,3449,1272,3441,2935,3405,10,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5229,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5229,5213,5213,5213,5213,136,5213,5213,5213, + 5213,5213,137,5213,5213,5213,2399,2371,5213,5213, + 5229,592,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,8,5216,5216,5216,5216,5216, + 5216,5216,5216,5216,5216,5216,5216,5216,5216,5216, + 5216,5216,5216,5216,5216,5216,5216,5216,5216,5216, + 5216,5216,5216,5216,5229,5216,5216,5216,5216,5216, + 5216,5216,5216,5216,5216,5216,5216,5216,5216,5216, + 5216,5216,5216,5216,5216,5216,5216,5216,5229,5216, + 5216,5216,5216,1913,5216,5216,5216,5216,5216,138, + 5216,5216,5216,2399,2371,5216,5216,5229,592,5216, + 5216,5216,5216,5216,5216,5216,5216,5216,5216,5216, + 5216,5229,5194,5173,5173,5173,5173,5173,5173,5201, + 5173,1,1,1,5198,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5219,1,1,1,1,1,1,1,1, + 1,5229,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5219,1,2906,1,2194, - 143,3124,1,1,1,5230,121,1,1,1, - 5219,5219,3477,5400,2883,2607,802,3427,4205,2202, - 4089,3289,2880,3419,2661,3362,3215,3313,5219,5193, - 5172,5172,5172,5172,5172,5172,5200,5172,1,1, - 1,5197,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5219,1, + 1,1,1,1,1,5229,1,1872,1,2217, + 143,3148,1,1,1,5240,121,1,1,1, + 5229,5229,3497,5410,1249,1526,2512,3460,3269,2220, + 3232,3343,2898,3449,1272,3441,2935,3405,5229,5194, + 5173,5173,5173,5173,5173,5173,5201,5173,1,1, + 1,5198,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5229,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5219,1,2906,1,2194,5219,3124,1, - 1,1,5230,2956,1,1,1,3454,3368,314, - 5400,2253,2833,802,3427,4205,2202,4089,3289,2880, - 3419,2661,3362,3215,3313,5219,5193,5172,5172,5172, - 5172,5172,5172,5200,5172,1,1,1,5197,1, + 1,1,5229,1,1872,1,2217,5229,3148,1, + 1,1,5240,3324,1,1,1,3411,2707,163, + 5410,2271,5229,2512,3460,3269,2220,3232,3343,2898, + 3449,1272,3441,2935,3405,5229,5194,5173,5173,5173, + 5173,5173,5173,5201,5173,1,1,1,5198,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5219,1,1,1,1, + 1,1,1,1,1,5229,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1070, - 1,2906,1,2194,5219,3124,1,1,1,5230, - 45,1,1,1,5263,97,1599,5400,4856,5550, - 802,3427,4205,2202,4089,3289,2880,3419,2661,3362, - 3215,3313,5219,5193,5172,5172,5172,5172,5172,5172, - 5200,5172,1,1,1,5197,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1360, + 1,1872,1,2217,5229,3148,1,1,1,5240, + 45,1,1,1,5273,97,2549,5410,4857,5560, + 2512,3460,3269,2220,3232,3343,2898,3449,1272,3441, + 2935,3405,5229,5194,5173,5173,5173,5173,5173,5173, + 5201,5173,1,1,1,5198,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5219,1,1,1,1,1,1,1, + 1,1,5229,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5219,1,2906,1, - 2194,5219,3124,1,1,1,5230,5219,1,1, - 1,5219,4823,4820,5400,5263,5219,802,3427,4205, - 2202,4089,3289,2880,3419,2661,3362,3215,3313,5219, - 5193,5172,5172,5172,5172,5172,5172,5200,5172,1, - 1,1,5197,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5219, + 1,1,1,1,1,1,5229,1,1872,1, + 2217,5229,3148,1,1,1,5240,5229,1,1, + 1,5229,4824,4821,5410,5273,5229,2512,3460,3269, + 2220,3232,3343,2898,3449,1272,3441,2935,3405,5229, + 5194,5173,5173,5173,5173,5173,5173,5201,5173,1, + 1,1,5198,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5229, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3542,1,2906,1,2194,144,3124, - 1,1,1,5230,123,1,1,1,5219,1, - 3477,5400,725,387,802,3427,4205,2202,4089,3289, - 2880,3419,2661,3362,3215,3313,5219,5193,5172,5172, - 5172,5172,5172,5172,5200,5172,1,1,1,5197, + 1,1,1,3540,1,1872,1,2217,144,3148, + 1,1,1,5240,123,1,1,1,5229,1, + 3497,5410,2850,389,2512,3460,3269,2220,3232,3343, + 2898,3449,1272,3441,2935,3405,5229,5194,5173,5173, + 5173,5173,5173,5173,5201,5173,1,1,1,5198, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5219,1,1,1, + 1,1,1,1,1,1,5229,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5219,1,2906,1,2194,139,3124,1,1,1, - 5230,122,1,1,1,3454,3368,3477,5400,2253, - 5219,802,3427,4205,2202,4089,3289,2880,3419,2661, - 3362,3215,3313,5219,5193,5172,5172,5172,5172,5172, - 5172,5200,5172,1,1,1,5197,1,1,1, + 5229,1,1872,1,2217,139,3148,1,1,1, + 5240,122,1,1,1,3411,2707,3497,5410,2271, + 5229,2512,3460,3269,2220,3232,3343,2898,3449,1272, + 3441,2935,3405,5229,5194,5173,5173,5173,5173,5173, + 5173,5201,5173,1,1,1,5198,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,191,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5219,1,2906, - 1,2194,5219,3124,1,1,1,5230,359,1, - 1,1,3454,3368,2322,5400,424,5219,802,3427, - 4205,2202,4089,3289,2880,3419,2661,3362,3215,3313, - 5219,5193,5172,5172,5172,5172,5172,5172,5200,5172, - 1,1,1,5197,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5229,1,1872, + 1,2217,5229,3148,1,1,1,5240,359,1, + 1,1,3411,2707,2340,5410,426,5229,2512,3460, + 3269,2220,3232,3343,2898,3449,1272,3441,2935,3405, + 5229,5194,5173,5173,5173,5173,5173,5173,5201,5173, + 1,1,1,5198,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5219,1,1,1,1,1,1,1,1,1, + 5229,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5219,1,2906,1,2194,4072, - 3124,1,1,1,5230,5216,1,1,1,5219, - 5238,5239,5400,5577,2607,802,3427,4205,2202,4089, - 3289,2880,3419,2661,3362,3215,3313,5219,5193,5172, - 5172,5172,5172,5172,5172,5200,5172,1,1,1, - 5197,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5219,1,1, + 1,1,1,1,5229,1,1872,1,2217,3451, + 3148,1,1,1,5240,5220,1,1,1,5229, + 5248,5249,5410,5587,1526,2512,3460,3269,2220,3232, + 3343,2898,3449,1272,3441,2935,3405,5229,5194,5173, + 5173,5173,5173,5173,5173,5201,5173,1,1,1, + 5198,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5229,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5219,1,2906,1,2194,5219,3124,1,1, - 1,5230,1,1,1,1,5219,4823,4820,5400, - 5263,5219,802,3427,4205,2202,4089,3289,2880,3419, - 2661,3362,3215,3313,5219,3300,1,1,1,1, - 1,1,3312,1,1,1,1,5228,1,1, + 1,5229,1,1872,1,2217,5229,3148,1,1, + 1,5240,5229,1,1,1,5229,4824,4821,5410, + 5273,5229,2512,3460,3269,2220,3232,3343,2898,3449, + 1272,3441,2935,3405,5229,3362,1,1,1,1, + 1,1,3387,1,1,1,1,5238,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5219,1,1,1,1,1, + 1,1,1,1,513,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5219,1, - 2906,1,2194,124,3124,1,1,1,5230,393, - 1,1,1,386,3321,2688,5400,5579,163,802, - 3427,4205,2202,4089,3289,2880,3419,2661,3362,3215, - 3313,45,4823,4820,4115,733,3698,3771,2863,619, - 3793,785,3749,3727,5219,5488,5486,5495,5481,5494, - 5490,5491,5489,5492,5493,5496,5487,3837,3815,5244, - 3665,5219,646,719,5246,675,3980,711,5247,5245, - 634,5240,5242,5243,5241,5484,5557,5558,5478,5485, - 5457,5483,5482,5479,5480,1,5458,1355,1311,5219, - 4823,4820,5614,733,4868,4819,2863,571,5615,5616, - 5219,5071,5071,233,5067,233,233,233,5075,233, - 1,141,528,233,1,1,1,1,1,1, - 1,1,1,1,1,1,2188,346,5162,5158, - 2801,5263,1113,1599,2863,5219,5550,5219,5238,5239, - 5219,5001,4998,922,1,1,1,1,1,1, - 1,1,1,1,5064,1,1204,229,1443,454, - 3437,1,5219,43,145,2916,1,1,1,3221, - 5223,413,5628,233,5481,5219,5071,5071,233,5067, - 233,233,233,5127,233,1,1859,5715,233,1, + 1,1,1,1,1,1,1,1,5229,1, + 1872,1,2217,124,3148,1,1,1,5240,395, + 1,1,1,388,3364,3339,5410,363,5229,2512, + 3460,3269,2220,3232,3343,2898,3449,1272,3441,2935, + 3405,45,4824,4821,4224,722,3717,3783,4011,786, + 3805,865,3761,3739,880,5498,5496,5505,5491,5504, + 5500,5501,5499,5502,5503,5506,5497,3849,3827,5254, + 3688,5229,678,876,5256,797,3657,805,5257,5255, + 675,5250,5252,5253,5251,5494,5567,5568,5488,5495, + 5467,5493,5492,5489,5490,5229,5468,2975,1317,5229, + 4824,4821,5626,722,4869,5229,4011,941,5627,5628, + 5229,5072,5072,233,5068,233,233,233,5076,233, + 1,5229,5229,233,1,1,1,1,1,1, + 1,1,1,1,1,1,2540,346,5163,5159, + 2819,5273,647,2549,4011,141,5560,5229,5248,5249, + 5229,5002,4999,926,1,1,1,1,1,1, + 1,1,1,1,5065,1,1072,229,1942,456, + 4116,1,44,4839,4836,3050,1,1,1,615, + 437,415,5640,233,5491,5229,5072,5072,233,5068, + 233,233,233,5128,233,1,1876,5727,233,1, 1,1,1,1,1,1,1,1,1,1, - 1,5484,5557,5558,5478,5485,5457,5483,5482,5479, - 5480,2290,5458,55,5650,5651,5652,5261,4847,1, - 1,1,1,1,1,1,1,1,1,5064, - 1,1204,5219,1443,1817,5219,1,44,4838,4835, - 5231,1,1,1,575,5219,412,5628,233,5219, - 4823,4820,39,5263,5219,4862,348,5231,4862,1851, - 4862,4862,5715,4862,4862,4862,1034,1943,1775,1733, - 1691,1649,1607,1565,1523,1481,1439,1397,4862,4862, - 5222,4310,4862,228,3140,5219,8814,8814,5219,5650, - 5651,5652,56,5034,5031,5219,5230,5488,5486,5495, - 5481,5494,5490,5491,5489,5492,5493,5496,5487,242, - 4167,4862,5010,5230,4013,1859,868,4862,56,5001, - 4998,4862,4862,4862,5219,4862,4862,5484,5557,5558, - 5478,5485,5457,5483,5482,5479,5480,5219,5458,5261, - 4862,4862,4862,4862,4862,4862,4862,4862,4862,4862, - 4862,4862,4862,4862,4862,4862,4862,4862,4862,4862, - 4862,4862,4862,4862,4862,4862,230,4011,5219,4862, - 4862,4865,4862,4862,4865,320,4865,4865,5130,4865, - 4865,4865,5219,5481,368,5088,5084,2801,1,1113, - 1,2863,56,1,4865,4865,5239,5617,4865,5219, - 5162,5158,4271,5263,1113,1599,2863,142,5550,5219, - 5484,5557,5558,5478,5485,5457,5483,5482,5479,5480, - 5219,5458,5239,1,5088,5084,5118,4865,5121,511, - 5124,5229,5219,4865,1859,5219,5228,4865,4865,4865, - 5227,4865,4865,1859,312,5153,5148,4271,5049,1113, - 5145,2863,1,5142,1167,4541,4865,4865,4865,4865, - 4865,4865,4865,4865,4865,4865,4865,4865,4865,4865, - 4865,4865,4865,4865,4865,4865,4865,4865,4865,4865, - 4865,4865,145,453,5219,4865,4865,4433,4865,4865, - 5219,1,1,1,1,1,1,1,876,1, - 1,1,1,5226,1,1,1,2290,1,1, + 1,5494,5567,5568,5488,5495,5467,5493,5492,5489, + 5490,5229,5468,140,5662,5663,5664,5229,4848,1, + 1,1,1,1,1,1,1,1,1,5065, + 1,1072,4820,1942,1,2308,1,455,5229,8819, + 8819,1,1,1,5182,294,414,5640,233,5229, + 4824,4821,39,5273,5229,4863,348,5241,4863,2924, + 4863,4863,5727,4863,4863,4863,5229,5154,5149,4290, + 5050,647,5146,4011,337,5143,3530,304,4863,4863, + 145,3050,4863,228,5662,5663,5664,5532,3179,5662, + 5663,5664,5271,5229,35,5185,4851,5498,5496,5505, + 5491,5504,5500,5501,5499,5502,5503,5506,5497,145, + 5229,4863,2340,5240,2007,1876,5229,4863,5233,5567, + 5568,4863,4863,4863,786,4863,4863,5494,5567,5568, + 5488,5495,5467,5493,5492,5489,5490,5229,5468,2095, + 4863,4863,4863,4863,4863,4863,4863,4863,4863,4863, + 4863,4863,4863,4863,4863,4863,4863,4863,4863,4863, + 4863,4863,4863,4863,4863,4863,5229,422,5229,4863, + 4863,4866,4863,4863,4866,5229,4866,4866,1833,4866, + 4866,4866,1038,5235,368,5089,5085,2819,1,647, + 1,4011,349,1,4866,4866,3104,4278,4866,5229, + 5163,5159,4290,5273,647,2549,4011,142,5560,242, + 5229,1038,5011,1790,1747,1704,1661,1618,1575,1532, + 1489,1446,1403,56,5035,5032,4278,4866,5232,1, + 5089,5085,4290,4866,647,3468,4011,4866,4866,4866, + 3249,4866,4866,1876,117,4686,1,5053,5053,5234, + 5050,1876,2549,1172,364,5560,4866,4866,4866,4866, + 4866,4866,4866,4866,4866,4866,4866,4866,4866,4866, + 4866,4866,4866,4866,4866,4866,4866,4866,4866,4866, + 4866,4866,56,5002,4999,4866,4866,5229,4866,4866, + 5229,1,1,1,1,1,1,1,5229,1, + 1,1,1,5229,1,1,1,2308,1,1, 1,1,1,1,1,1,1,1,1,1, - 5219,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5219,5153,5148,4271,5049,1113, - 5145,2863,4850,5142,5219,4823,4820,1,733,4868, - 4515,2863,1,1,1,4911,4907,4115,4915,3698, - 3771,2863,5751,3793,4871,3749,3727,5219,4898,4904, - 4877,2591,4880,4892,4889,4895,4886,4883,4874,4901, - 3837,3815,5244,3665,1034,646,719,5246,675,3980, - 711,5247,5245,634,5240,5242,5243,5241,2151,4310, - 5219,1,5088,5084,4271,12,1113,2077,2863,312, - 349,1311,5219,5213,312,4469,45,45,8,512, - 45,4823,4820,4115,733,3698,3771,2863,3554,3793, - 562,3749,3727,5219,5488,5486,5495,35,5494,5490, - 5491,5489,5492,5493,5496,5487,3837,3815,5244,3665, - 1,646,719,5246,675,3980,711,5247,5245,634, - 5240,5242,5243,5241,1,5052,5052,4826,5049,1859, - 1599,5219,364,5550,8,436,5213,1311,1,5088, - 5084,2801,5219,1113,5230,2863,5004,2990,5219,5238, - 5239,5226,45,4823,4820,4115,733,3698,3771,2863, - 3554,3793,562,3749,3727,4829,5488,5486,5495,435, - 5494,5490,5491,5489,5492,5493,5496,5487,3837,3815, - 5244,3665,5219,646,719,5246,675,3980,711,5247, - 5245,634,5240,5242,5243,5241,126,1859,364,1, - 5088,5084,4271,5219,1113,4106,2863,3321,2688,1311, - 3859,977,5007,5219,4823,4820,5230,733,1113,364, - 2863,106,5219,5226,147,4823,4820,4115,733,3698, - 3771,2863,363,3793,562,3749,3727,140,5488,5486, - 5495,450,5494,5490,5491,5489,5492,5493,5496,5487, - 3837,3815,5244,3665,5219,646,719,5246,675,3980, - 711,5247,5245,634,5240,5242,5243,5241,2225,5219, - 1,4832,2077,346,45,45,2958,5263,364,1599, - 4697,1311,5550,5650,5651,5652,45,45,1,4911, - 4907,4115,4915,3698,3771,2863,444,3793,4871,3749, - 3727,3158,4898,4904,4877,5219,4880,4892,4889,4895, - 4886,4883,4874,4901,3837,3815,5244,3665,5219,646, - 719,5246,675,3980,711,5247,5245,634,5240,5242, - 5243,5241,1859,440,1,1,2322,1,1,4844, - 1,2958,4844,2958,364,1311,342,5219,5004,5219, - 45,45,45,4823,4820,4115,733,3698,3771,2863, - 5231,3793,562,3749,3727,364,5488,5486,5495,865, - 5494,5490,5491,5489,5492,5493,5496,5487,3837,3815, - 5244,3665,5219,646,719,5246,675,3980,711,5247, - 5245,634,5240,5242,5243,5241,5219,1859,5219,1859, - 293,5238,5239,342,441,45,45,342,5263,1311, - 5046,5219,342,5043,5007,1863,5230,45,4823,4820, - 4115,733,3698,3771,2863,5223,3793,562,3749,3727, - 45,5488,5486,5495,5263,5494,5490,5491,5489,5492, - 5493,5496,5487,3837,3815,5244,3665,2236,646,719, - 5246,675,3980,711,5247,5245,634,5240,5242,5243, - 5241,45,4823,4820,4115,733,3698,3771,2863,2114, - 3793,562,3749,3727,2870,5488,5486,5495,127,5494, - 5490,5491,5489,5492,5493,5496,5487,3837,3815,5244, - 3665,117,646,719,5246,675,3980,711,5247,5245, - 634,5240,5242,5243,5241,5219,231,5219,4823,4820, - 1,733,1113,952,2863,5684,5678,47,1311,5682, - 5219,5676,5677,5481,1,5088,5084,2801,5229,1113, - 5219,2863,132,5228,45,5222,5707,5708,5263,5685, - 5687,5219,5238,5239,5650,5651,5652,4853,5219,5231, - 5484,5557,5558,5478,5485,5457,5483,5482,5479,5480, - 131,5458,2490,130,5219,5219,2635,2775,952,645, - 5684,5678,1478,1504,5682,5688,5676,5677,2143,5709, - 5686,3881,5219,1859,98,1,1,3903,1,578, - 5058,5707,5708,5058,5685,5687,304,4841,5698,5697, - 5710,5679,5680,5703,5704,5230,5522,5701,5702,5681, - 5683,5705,5706,5711,5691,5692,5693,5689,5690,5699, - 5700,5695,5694,5696,645,2436,2409,1478,1504,2243, - 5688,386,125,402,5709,5686,101,45,45,294, - 5263,5112,5136,3321,2688,5133,5115,5219,2635,2775, - 4475,2635,2775,5698,5697,5710,5679,5680,5703,5704, - 5219,4859,5701,5702,5681,5683,5705,5706,5711,5691, - 5692,5693,5689,5690,5699,5700,5695,5694,5696,45, - 4823,4820,4115,733,3698,3771,2863,5219,3793,562, - 3749,3727,5219,5488,5486,5495,322,5494,5490,5491, - 5489,5492,5493,5496,5487,3837,3815,5244,3665,1989, - 646,719,5246,675,3980,711,5247,5245,634,5240, - 5242,5243,5241,5219,5219,45,4823,4820,4115,733, - 3698,3771,2863,2936,3793,562,3749,3727,1069,5488, - 5486,5495,5219,5494,5490,5491,5489,5492,5493,5496, - 5487,3837,3815,5244,3665,1859,646,719,5246,675, - 3980,711,5247,5245,634,5240,5242,5243,5241,45, - 4823,4820,4287,733,3698,3771,2863,5219,3793,562, - 3749,3727,1311,5488,5486,5495,5219,5494,5490,5491, - 5489,5492,5493,5496,5487,3837,3815,5244,3665,5219, - 646,719,5246,675,3980,711,5247,5245,634,5240, - 5242,5243,5241,45,4823,4820,4115,733,3698,3771, - 2863,5219,3793,562,3749,3727,5219,5488,5486,5495, - 2137,5494,5490,5491,5489,5492,5493,5496,5487,3837, - 3815,5244,3665,3430,646,719,5246,675,3980,711, - 5247,5245,634,5240,5242,5243,5241,45,4823,4820, - 4115,733,3698,3771,2863,5219,3793,562,3749,3727, - 5219,5488,5486,5495,5219,5494,5490,5491,5489,5492, - 5493,5496,5487,3837,3815,5244,3665,232,646,719, - 5246,675,3980,711,5247,5245,634,5240,5242,5243, - 5241,5219,4823,4820,5481,5263,5219,1,5088,5084, - 4271,638,1113,134,2863,5488,5486,5495,5481,5494, - 5490,5491,5489,5492,5493,5496,5487,51,5028,5028, - 5727,5484,5557,5558,5478,5485,5457,5483,5482,5479, - 5480,5219,5458,2490,4678,5484,5557,5558,5478,5485, - 5457,5483,5482,5479,5480,376,5458,5219,1,5088, - 5084,5118,5614,5121,129,5124,337,571,5615,5616, - 246,4991,4987,5219,4995,394,4823,4820,5037,5263, - 638,5025,5219,128,4978,4984,4957,4942,4960,4972, - 4969,4975,4966,4963,4954,4981,35,386,386,5019, - 386,386,5019,386,5022,5019,2436,2409,5219,5019, - 3003,5557,5558,386,4933,4927,4924,4951,4930,4921, - 4936,4939,4948,4945,133,4918,4826,5219,5219,45, - 292,5614,5219,5001,4998,5227,571,5615,5616,5219, - 386,386,386,386,386,386,386,386,386,386, - 5219,386,2635,2775,2490,5022,38,387,387,5013, - 387,387,5013,387,5016,5013,42,5103,5100,5013, - 5022,2635,2775,387,3430,1,5172,5172,233,5172, - 233,233,233,5175,233,5219,5034,5031,233,5040, - 5219,5219,8584,3541,3859,977,991,4013,5226,1812, - 387,387,387,387,387,387,387,387,387,387, - 105,387,2973,82,5219,5016,4008,2436,2409,1, - 5172,5172,233,5172,233,233,233,233,233,5169, - 5016,3627,233,2194,5219,3124,8584,5219,5219,5289, - 5290,4124,5229,5219,5238,5239,225,5228,1113,2934, - 2863,1,5172,5172,233,5172,233,233,233,5178, - 233,35,5715,1,233,43,5061,5061,8584,2026, - 5061,5229,4288,5169,5219,3627,5228,2194,5219,3124, - 5219,1,5172,5172,233,5172,233,233,233,5175, - 233,619,1,5219,233,394,5238,5239,8584,43, - 5055,5055,5219,5081,5078,5169,5715,3627,1,2194, - 619,3124,5219,5096,5092,5219,656,120,5181,2747, - 3107,5219,224,1,5172,5172,233,5172,233,233, - 233,5175,233,2064,420,5169,233,3627,5715,2194, - 8584,3124,1,5172,5172,233,5172,233,233,233, - 233,233,225,2286,5219,233,5261,119,5656,8584, - 371,118,3154,5219,5219,5219,5261,1,5715,5184, - 53,5109,5109,5225,5219,167,56,5169,1,3627, - 5238,2194,5225,3124,1,5172,5172,233,5172,233, - 233,233,233,233,225,1,5169,233,3627,304, - 2194,8584,3124,1,1,5181,5238,3881,619,5522, - 5715,5187,5190,3903,1,5172,5172,233,5172,233, - 233,233,233,233,5106,1,369,233,5670,5715, - 1209,8584,5219,5225,4667,5219,8668,7244,5169,5224, - 3627,167,2194,5219,3124,422,1,3881,5224,3154, - 80,3881,5219,3903,524,2553,5184,3903,5219,8668, - 7244,1,2934,5219,416,1,4561,5230,5169,169, - 3627,5715,2194,197,3124,5226,109,41,197,4719, - 5139,5219,3413,283,3212,5219,5166,5219,3130,445, - 5219,5219,311,4720,4529,504,1269,502,5219,5224, - 5219,5715,5219,4669,5219,4670,5219,4474,4001,4677, - 5219,5219,5219,3395,3438,5219,5219,4002,4721,517, - 524,506,2,5219,5219,5219,5219,5219,5219,5219, - 5219,5219,5219,5219,2165,169,5219,5219,5219,5219, - 5219,5219,5219,5219,5219,5219,5219,3396,5219,5219, - 5219,5219,43,5219,5219,5219,5219,5219,2736,5219, - 5219,4200,5219,5219,5219,4612,5219,4620,5219,5219, - 5219,3027,5219,4410,5219,5219,5219,5219,5219,5219, - 5219,3396,5219,5219,5219,5219,1947,5219,5219,5219, - 5219,1251,5219,5219,5219,5219,5219,5219,5219,5219, - 5219,5219,5219,5219,5219,5219,5219,5219,5219,5219, - 5219,5219,5219,5219,5219,5219,5219,5219,5219,5219, - 5219,5219,5219,5219,5219,5219,5219,5219,5219,5219, - 5219,5219,5219,5219,5219,5219,5219,5219,3430 + 364,1,1,1,1,1,1,1,1,1, + 1,1,1,1,3893,5229,5229,5248,5249,3036, + 3915,364,346,45,45,3067,5273,1,2549,371, + 43,5560,1,1,1,4912,4908,4224,4916,3717, + 3783,4011,5763,3805,4872,3761,3739,5229,4899,4905, + 4878,862,4881,4893,4890,4896,4887,4884,4875,4902, + 3849,3827,5254,3688,5229,678,876,5256,797,3657, + 805,5257,5255,675,5250,5252,5253,5251,3871,1067, + 127,1876,5229,126,5271,1,5089,5085,2819,5229, + 647,1317,4011,5005,3364,3339,45,45,1215,514, + 45,4824,4821,4224,722,3717,3783,4011,5223,3805, + 564,3761,3739,5229,5498,5496,5505,2011,5504,5500, + 5501,5499,5502,5503,5506,5497,3849,3827,5254,3688, + 106,678,876,5256,797,3657,805,5257,5255,675, + 5250,5252,5253,5251,1876,312,5154,5149,4290,5050, + 647,5146,4011,292,5143,5229,5229,1317,1,5008, + 1,5089,5085,4290,5207,647,364,4011,2652,2793, + 5229,5236,147,4824,4821,4224,722,3717,3783,4011, + 369,3805,564,3761,3739,4585,5498,5496,5505,4715, + 5504,5500,5501,5499,5502,5503,5506,5497,3849,3827, + 5254,3688,5229,678,876,5256,797,3657,805,5257, + 5255,675,5250,5252,5253,5251,5229,1,5089,5085, + 5119,2559,5122,1311,5125,5239,43,5062,5062,1317, + 5238,5062,364,2095,45,45,1,4912,4908,4224, + 4916,3717,3783,4011,2867,3805,4872,3761,3739,1274, + 4899,4905,4878,364,4881,4893,4890,4896,4887,4884, + 4875,4902,3849,3827,5254,3688,5229,678,876,5256, + 797,3657,805,5257,5255,675,5250,5252,5253,5251, + 1569,1,5089,5085,4290,322,647,35,4011,312, + 5229,5248,5249,1317,312,647,4638,4011,45,45, + 45,4824,4821,4224,722,3717,3783,4011,5204,3805, + 564,3761,3739,5229,5498,5496,5505,4827,5504,5500, + 5501,5499,5502,5503,5506,5497,3849,3827,5254,3688, + 5229,678,876,5256,797,3657,805,5257,5255,675, + 5250,5252,5253,5251,1876,442,1,1,5229,1, + 1,4845,1,3067,4845,3067,5239,1317,342,314, + 5005,5238,2768,376,5207,45,4824,4821,4224,722, + 3717,3783,4011,5204,3805,564,3761,3739,2566,5498, + 5496,5505,5229,5504,5500,5501,5499,5502,5503,5506, + 5497,3849,3827,5254,3688,438,678,876,5256,797, + 3657,805,5257,5255,675,5250,5252,5253,5251,1876, + 4009,1876,5229,4824,4821,342,722,647,580,4011, + 342,519,1317,1,342,4830,5008,5229,1083,5207, + 45,4824,4821,4224,722,3717,3783,4011,5233,3805, + 564,3761,3739,45,5498,5496,5505,5273,5504,5500, + 5501,5499,5502,5503,5506,5497,3849,3827,5254,3688, + 5229,678,876,5256,797,3657,805,5257,5255,675, + 5250,5252,5253,5251,45,4824,4821,4224,722,3717, + 3783,4011,3468,3805,564,3761,3739,1255,5498,5496, + 5505,131,5504,5500,5501,5499,5502,5503,5506,5497, + 3849,3827,5254,3688,530,678,876,5256,797,3657, + 805,5257,5255,675,5250,5252,5253,5251,5589,230, + 5229,4824,4821,1,722,647,784,4011,5696,5690, + 452,1317,5694,5629,5688,5689,5491,5229,4824,4821, + 3468,722,4869,320,4011,132,5131,56,5232,5719, + 5720,5249,5697,5699,5229,5248,5249,5662,5663,5664, + 4833,3281,5241,5494,5567,5568,5488,5495,5467,5493, + 5492,5489,5490,47,5468,2508,130,5249,5229,2652, + 2793,784,636,5696,5690,1665,1684,5694,5700,5688, + 5689,2081,5698,5721,1,5089,5085,2819,5229,647, + 446,4011,1876,4854,5719,5720,5241,5697,5699,5229, + 4842,5710,5709,5722,5691,5692,5715,5716,5240,388, + 5713,5714,5693,5695,5717,5718,5723,5703,5704,5705, + 5701,5702,5711,5712,5707,5706,5708,636,2454,2427, + 1665,1684,1,5700,5229,4640,125,5698,5721,4860, + 443,45,45,1876,5273,5229,5047,3364,3339,5044, + 5229,5229,5240,4660,2652,2793,5710,5709,5722,5691, + 5692,5715,5716,573,2598,5713,5714,5693,5695,5717, + 5718,5723,5703,5704,5705,5701,5702,5711,5712,5707, + 5706,5708,45,4824,4821,4224,722,3717,3783,4011, + 5229,3805,564,3761,3739,5229,5498,5496,5505,5739, + 5504,5500,5501,5499,5502,5503,5506,5497,3849,3827, + 5254,3688,3016,678,876,5256,797,3657,805,5257, + 5255,675,5250,5252,5253,5251,55,1,45,4824, + 4821,4224,722,3717,3783,4011,5229,3805,564,3761, + 3739,1314,5498,5496,5505,5229,5504,5500,5501,5499, + 5502,5503,5506,5497,3849,3827,5254,3688,5229,678, + 876,5256,797,3657,805,5257,5255,675,5250,5252, + 5253,5251,45,4824,4821,3998,722,3717,3783,4011, + 1166,3805,564,3761,3739,1317,5498,5496,5505,5229, + 5504,5500,5501,5499,5502,5503,5506,5497,3849,3827, + 5254,3688,3630,678,876,5256,797,3657,805,5257, + 5255,675,5250,5252,5253,5251,45,4824,4821,4224, + 722,3717,3783,4011,5229,3805,564,3761,3739,45, + 5498,5496,5505,5273,5504,5500,5501,5499,5502,5503, + 5506,5497,3849,3827,5254,3688,5229,678,876,5256, + 797,3657,805,5257,5255,675,5250,5252,5253,5251, + 45,4824,4821,4224,722,3717,3783,4011,5229,3805, + 564,3761,3739,1905,5498,5496,5505,5229,5504,5500, + 5501,5499,5502,5503,5506,5497,3849,3827,5254,3688, + 231,678,876,5256,797,3657,805,5257,5255,675, + 5250,5252,5253,5251,5229,4824,4821,5491,5273,5229, + 1,5089,5085,5119,640,5122,134,5125,5498,5496, + 5505,5491,5504,5500,5501,5499,5502,5503,5506,5497, + 51,5029,5029,5668,5494,5567,5568,5488,5495,5467, + 5493,5492,5489,5490,5229,5468,2508,4693,5494,5567, + 5568,5488,5495,5467,5493,5492,5489,5490,5229,5468, + 98,1,1,3058,1,5626,5059,129,1,5059, + 941,5627,5628,246,4992,4988,167,4996,396,4824, + 4821,5038,5273,640,5026,5229,128,4979,4985,4958, + 4943,4961,4973,4970,4976,4967,4964,4955,4982,35, + 388,388,5020,388,388,5020,388,5023,5020,2454, + 2427,5229,5020,293,5248,5249,388,4934,4928,4925, + 4952,4931,4922,4937,4940,4949,4946,5229,4919,4827, + 5229,2132,45,4704,5626,5235,5229,5002,4999,941, + 5627,5628,167,388,388,388,388,388,388,388, + 388,388,388,5229,388,2652,2793,120,5023,38, + 389,389,5014,389,389,5014,389,5017,5014,42, + 5104,5101,5014,5023,2652,2793,389,5229,1,5173, + 5173,233,5173,233,233,233,5176,233,101,45, + 45,233,5273,5229,5137,8822,4712,5134,3871,1067, + 5229,5234,5229,389,389,389,389,389,389,389, + 389,389,389,1,389,5229,82,5229,5017,3462, + 5229,5188,1,5173,5173,233,5173,233,233,233, + 233,233,5170,5017,4121,233,2217,424,3148,8822, + 5229,5229,5299,5300,43,5056,5056,3893,5237,225, + 786,1,3057,3915,1,5173,5173,233,5173,233, + 233,233,5179,233,5229,5727,5229,233,5229,5082, + 5079,8822,133,2954,119,4244,5170,5240,4121,5229, + 2217,786,3148,118,1,5173,5173,233,5173,233, + 233,233,5176,233,5229,5035,5032,233,1483,5229, + 5229,8822,2508,5229,5097,5093,5682,4590,5170,5727, + 4121,5236,2217,1,3148,53,5110,5110,5229,659, + 5229,4494,5271,5182,105,224,1,5173,5173,233, + 5173,233,233,233,5176,233,1258,5041,5170,233, + 4121,5727,2217,8822,3148,1,5173,5173,233,5173, + 233,233,233,233,233,225,5229,5271,233,396, + 5248,5249,8822,5229,3893,2454,2427,3179,5229,5107, + 3915,5727,5229,3893,5185,304,5237,418,5229,3915, + 5170,4713,4121,2044,2217,5532,3148,1,5173,5173, + 233,5173,233,233,233,233,233,225,404,5170, + 233,4121,3057,2217,8822,3148,5113,1,1,109, + 232,5116,4720,5727,447,5191,5235,1,5173,5173, + 233,5173,233,233,233,233,233,5491,1,5229, + 233,2249,5727,5229,8822,311,526,5239,995,5236, + 56,5170,5238,4121,5248,2217,2183,3148,5229,8734, + 7931,5229,8734,7931,5494,5567,5568,5488,5495,5467, + 5493,5492,5489,5490,80,5468,5229,41,1,5229, + 5248,5170,1,4121,5727,2217,5239,3148,5236,1, + 197,5238,5234,8,627,197,5229,169,506,3558, + 283,5226,5229,5167,5140,3158,3629,5229,4000,4029, + 4721,504,526,5229,5727,4203,4476,5229,5229,5229, + 5229,4602,4623,3993,5229,5229,5229,4649,4612,5229, + 1,5229,5229,508,4730,2,5229,5229,1,5229, + 5229,5229,5229,5229,5229,5229,2778,5229,5229,5229, + 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, + 5229,5229,5229,169,5226,43,3125,4650,5229,5229, + 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, + 4651,5229,5229,5229,5229,5229,5229,5229,5229,5229, + 2991,5229,5229,5229,5229,5229,5229,5229,2778,3045, + 5229,1964,2536,5229,5229,5229,5229,5229,5229,5229, + 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, + 5229,5229,5229,5229,5229,4304 }; }; public final static char termAction[] = TermAction.termAction; @@ -1710,59 +1708,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 975,7,766,1,297,638,638,638,638,1106, - 297,396,396,500,396,610,750,612,767,767, - 767,767,767,767,767,767,767,398,404,409, - 406,413,411,418,416,420,419,421,114,422, - 766,766,37,37,37,37,806,572,9,9, - 393,37,350,211,396,396,9,531,398,211, - 211,202,750,885,36,969,1108,1043,766,396, - 398,682,682,572,766,767,767,767,767,767, - 767,767,767,767,767,767,767,767,767,767, - 767,767,767,767,766,766,766,766,766,766, - 766,766,766,766,766,766,767,211,570,570, - 570,570,259,211,9,9,1104,1032,1043,497, - 1043,492,1043,494,1043,1027,1106,806,350,350, - 9,767,1104,309,453,380,379,263,1050,1050, - 1106,612,350,36,766,804,968,803,806,805, - 803,211,350,406,406,404,404,404,411,411, - 411,411,409,409,416,413,413,419,418,420, - 1120,421,297,297,297,297,806,806,570,569, - 570,393,806,389,214,806,368,259,299,366, - 497,304,806,806,806,259,570,202,350,437, - 211,455,457,806,969,767,37,402,167,211, - 1108,806,806,638,805,969,766,766,766,766, - 766,297,297,750,926,389,214,368,367,368, - 259,368,304,304,806,259,806,211,384,372, - 383,457,259,804,211,402,1104,968,1108,806, - 804,211,211,211,211,572,572,389,388,448, - 806,214,1120,495,638,261,878,1110,214,368, - 368,1019,806,304,448,446,447,806,617,766, - 381,381,353,353,806,451,1104,689,211,806, - 402,403,402,766,167,165,398,1108,211,211, - 389,969,644,497,570,638,803,809,1112,800, - 297,627,64,1020,806,448,767,806,617,766, - 766,457,969,211,455,372,617,1085,402,572, - 767,350,165,804,644,644,70,230,804,368, - 368,800,442,1104,631,767,1120,361,1019,806, - 1106,1106,806,829,457,804,617,403,211,350, - 443,448,1017,930,156,297,495,106,644,644, - 230,804,368,497,1106,1112,800,767,767,806, - 806,806,829,211,829,69,156,1017,640,1106, - 448,569,638,816,816,443,497,730,627,806, - 297,806,806,297,822,829,70,644,443,360, - 442,211,1106,806,230,70,230,568,568,928, - 731,1106,806,572,458,822,644,766,840,800, - 443,806,806,230,37,37,928,730,1120,767, - 1120,443,729,297,297,297,731,297,806,122, - 443,443,806,497,211,210,824,448,211,839, - 806,443,569,722,297,722,731,1120,731,750, - 750,748,814,750,443,443,835,928,37,824, - 839,443,490,689,731,211,800,211,748,156, - 297,211,928,447,837,816,211,211,1098,731, - 835,731,443,156,766,731,728,839,568,497, - 497,1100,766,729,572,443,211,803,731,211, - 443,731 + 558,7,397,1,351,706,706,706,706,1104, + 351,746,746,906,746,213,381,215,398,398, + 398,398,398,398,398,398,398,748,754,759, + 756,763,761,768,766,770,769,771,220,772, + 397,397,37,37,37,37,437,175,9,9, + 743,37,314,113,746,746,9,937,748,113, + 113,104,381,848,36,1017,1106,1041,397,746, + 748,836,836,175,397,398,398,398,398,398, + 398,398,398,398,398,398,398,398,398,398, + 398,398,398,398,397,397,397,397,397,397, + 397,397,397,397,397,397,398,113,976,976, + 976,976,491,113,9,9,1102,1030,1041,717, + 1041,712,1041,714,1041,1025,1104,437,314,314, + 9,398,1102,273,519,503,502,317,1048,1048, + 1104,215,314,36,397,435,1016,434,437,436, + 434,113,314,756,756,754,754,754,761,761, + 761,761,759,759,766,763,763,769,768,770, + 1118,771,351,351,351,351,437,437,976,975, + 976,743,437,739,446,437,513,491,602,511, + 717,652,437,437,437,491,976,104,314,787, + 113,521,523,437,1017,398,37,752,69,113, + 1106,437,437,706,436,1017,397,397,397,397, + 397,351,351,381,889,739,446,513,512,513, + 491,513,652,652,437,491,437,113,507,495, + 506,523,491,435,113,752,1102,1016,1106,437, + 435,113,113,113,113,175,175,739,738,659, + 437,446,1118,715,706,493,155,1108,446,513, + 513,730,437,652,659,657,658,437,720,397, + 504,504,162,162,437,517,1102,662,113,437, + 752,753,752,397,69,271,748,1106,113,113, + 739,1017,798,717,976,706,434,843,1110,431, + 351,695,64,731,437,659,398,437,720,397, + 397,523,1017,113,521,495,720,1083,752,175, + 398,314,271,435,798,798,608,462,435,513, + 513,431,792,1102,699,398,1118,170,730,437, + 1104,1104,437,898,523,435,720,753,113,314, + 793,659,600,978,262,351,715,644,798,798, + 462,435,513,717,1104,1110,431,398,398,437, + 437,437,898,113,898,607,262,600,708,1104, + 659,975,706,440,440,793,717,361,695,437, + 351,437,437,351,891,898,608,798,793,169, + 792,113,1104,437,462,608,462,974,974,1023, + 362,1104,437,175,524,891,798,397,117,431, + 793,437,437,462,37,37,1023,361,1118,398, + 1118,793,360,351,351,351,362,351,437,228, + 793,793,437,717,113,112,893,659,113,659, + 717,437,793,975,353,351,353,362,1118,362, + 381,381,379,796,381,793,793,904,1023,37, + 893,659,117,793,556,662,362,113,431,113, + 379,262,351,113,1023,117,440,113,113,1096, + 362,904,362,793,262,397,362,359,658,974, + 717,717,1098,397,360,175,793,113,791,116, + 434,362,113,793,791,791,362 }; }; public final static char asb[] = Asb.asb; @@ -1770,119 +1768,118 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 8,73,118,74,13,69,121,0,31,62, + 8,73,118,74,13,70,121,0,31,62, 32,33,63,7,34,35,36,37,57,38, 39,40,41,42,28,26,27,9,6,11, 12,5,29,65,43,3,47,14,15,61, 45,16,66,48,17,18,49,50,19,20, 51,52,21,22,53,67,55,10,68,23, - 24,46,25,1,2,4,44,0,64,61, - 45,16,66,48,18,49,50,19,20,51, - 52,21,22,53,67,55,68,23,44,24, - 46,25,15,14,47,8,3,9,6,13, - 58,60,87,17,54,7,1,2,5,4, - 10,56,0,65,73,95,69,118,74,71, - 121,14,15,31,62,16,32,33,18,19, - 20,63,34,21,22,35,36,37,57,38, - 39,10,23,24,25,40,41,42,28,26, - 27,11,12,29,43,8,9,6,4,13, - 1,2,7,3,5,0,96,90,11,12, - 91,92,88,89,30,93,94,97,98,99, - 100,101,102,117,73,95,70,104,105,106, - 107,108,109,110,111,112,113,118,71,13, - 121,65,1,2,9,6,4,3,59,69, - 74,8,0,87,56,7,114,115,116,58, - 8,3,9,6,5,73,71,13,72,47, - 14,15,61,45,16,66,48,17,18,49, - 50,19,20,51,52,21,22,53,67,55, - 10,68,23,44,24,46,25,4,1,2, - 54,0,47,14,15,45,16,48,17,18, - 49,50,19,20,51,7,52,21,22,53, - 55,23,44,24,46,25,1,2,8,59, - 9,6,5,4,74,13,3,0,4,8, - 73,64,0,1,2,8,71,0,62,63, - 3,10,32,36,34,31,39,15,25,14, - 21,19,20,22,23,18,16,24,40,43, - 41,42,28,38,33,37,5,7,4,26, - 27,9,6,11,12,29,35,1,2,118, - 8,0,75,65,73,95,74,64,59,3, - 8,69,13,70,0,4,30,8,73,64, - 0,9,6,4,5,7,1,2,3,59, - 65,70,69,8,74,95,0,57,45,7, + 24,46,25,1,2,4,44,0,96,90, + 11,12,91,92,88,89,30,93,94,97, + 98,99,100,101,102,117,73,95,69,104, + 105,106,107,108,109,110,111,112,113,118, + 71,13,121,65,1,2,9,6,4,3, + 59,70,74,8,0,71,62,63,57,26, + 27,9,6,11,12,29,35,3,40,43, + 41,42,28,38,33,37,15,25,14,21, + 19,20,22,23,18,16,24,32,36,34, + 31,39,64,8,7,1,2,5,4,10, + 0,75,65,73,95,74,64,59,3,8, + 70,13,69,0,8,74,14,15,31,16, + 32,33,18,19,20,34,21,22,35,36, + 37,57,38,39,10,23,24,25,40,41, + 42,28,3,26,27,9,6,11,12,29, + 4,43,5,7,1,2,63,62,0,65, + 73,95,70,118,74,71,121,14,15,31, + 62,16,32,33,18,19,20,63,34,21, + 22,35,36,37,57,38,39,10,23,24, + 25,40,41,42,28,26,27,11,12,29, + 43,8,9,6,4,13,1,2,7,3, + 5,0,62,63,3,10,32,36,34,31, + 39,15,25,14,21,19,20,22,23,18, + 16,24,40,43,41,42,28,38,33,37, + 5,7,4,26,27,9,6,11,12,29, + 35,1,2,118,8,0,47,14,15,45, + 16,48,17,18,49,50,19,20,51,7, + 52,21,22,53,55,23,44,24,46,25, + 1,2,8,59,9,6,5,4,74,13, + 3,0,87,114,115,116,54,73,119,122, + 71,72,75,58,56,60,77,79,85,83, + 76,81,82,84,86,64,78,80,13,8, + 47,61,45,66,48,17,49,50,51,52, + 53,67,55,68,44,46,57,62,63,10, + 32,36,34,31,39,15,25,14,21,19, + 20,22,23,18,16,24,40,43,41,42, + 28,38,33,37,26,27,11,12,29,35, + 9,6,3,4,7,5,1,2,0,65, + 69,70,1,2,0,87,56,7,114,115, + 116,58,8,3,9,6,5,73,71,13, + 72,47,14,15,61,45,16,66,48,17, + 18,49,50,19,20,51,52,21,22,53, + 67,55,10,68,23,44,24,46,25,4, + 1,2,54,0,9,6,4,5,7,1, + 2,3,59,65,69,70,8,74,95,0, + 4,30,8,73,64,0,7,5,3,59, + 6,9,95,47,14,15,45,16,66,48, + 17,18,49,50,19,20,51,52,21,22, + 53,67,55,10,68,23,44,24,46,25, + 1,2,4,74,8,61,0,14,15,31, + 62,16,32,33,18,19,20,63,7,34, + 21,22,35,36,37,57,38,39,10,23, + 24,25,40,41,42,1,2,3,26,27, + 9,6,11,12,5,29,4,43,72,28, + 0,4,8,73,64,0,64,61,45,16, + 66,48,18,49,50,19,20,51,52,21, + 22,53,67,55,68,23,44,24,46,25, + 15,14,47,8,3,9,6,13,58,60, + 87,17,54,7,1,2,5,4,10,56, + 0,1,2,8,71,0,69,70,71,8, + 0,47,14,15,61,45,16,66,48,17, + 18,49,50,19,20,51,52,21,22,53, + 67,55,10,68,23,44,24,46,25,1, + 2,4,95,0,8,64,70,0,73,8, + 59,3,69,70,13,30,0,8,64,69, + 0,54,73,4,1,2,64,8,0,45, + 57,46,8,65,95,69,70,74,0,44, + 1,2,4,114,115,116,0,57,45,7, 46,5,1,2,4,75,64,120,103,26, 27,59,3,96,90,6,91,92,11,12, 89,88,30,93,94,97,98,9,99,100, - 101,65,95,74,121,70,104,105,106,107, - 108,109,110,111,112,113,73,118,71,102, - 117,69,13,8,0,70,69,71,8,0, - 7,5,3,59,6,9,95,47,14,15, - 45,16,66,48,17,18,49,50,19,20, - 51,52,21,22,53,67,55,10,68,23, - 44,24,46,25,1,2,4,74,8,61, - 0,54,73,4,1,2,64,8,0,47, - 14,15,61,45,16,66,48,17,18,49, - 50,19,20,51,52,21,22,53,67,55, - 10,68,23,44,24,46,25,1,2,4, - 63,62,11,12,6,91,92,99,9,100, - 5,29,30,107,108,104,105,106,112,111, - 113,89,88,109,110,97,98,93,94,101, - 102,26,27,90,103,3,59,70,69,65, - 0,8,74,14,15,31,16,32,33,18, - 19,20,34,21,22,35,36,37,57,38, - 39,10,23,24,25,40,41,42,28,3, - 26,27,9,6,11,12,29,4,43,5, - 7,1,2,63,62,0,45,57,46,8, - 65,95,70,69,74,0,8,64,69,0, - 73,8,59,3,70,69,13,30,0,8, - 64,70,0,60,47,14,15,61,45,16, - 66,48,87,17,18,49,50,19,20,51, - 56,52,21,22,53,67,55,10,68,23, - 58,44,24,46,25,8,3,9,6,71, - 13,7,4,54,5,1,2,0,47,14, - 15,61,45,16,66,48,17,18,49,50, - 19,20,51,52,21,22,53,67,55,10, - 68,23,44,24,46,25,1,2,4,95, - 0,87,114,115,116,54,73,119,122,71, - 72,75,58,56,60,77,79,85,83,76, - 81,82,84,86,64,78,80,13,8,47, - 61,45,66,48,17,49,50,51,52,53, - 67,55,68,44,46,57,62,63,10,32, - 36,34,31,39,15,25,14,21,19,20, - 22,23,18,16,24,40,43,41,42,28, - 38,33,37,26,27,11,12,29,35,9, - 6,3,4,7,5,1,2,0,8,73, - 64,75,0,76,0,65,70,69,1,2, - 0,45,46,75,3,73,13,64,57,8, - 65,95,69,74,70,0,69,13,71,62, - 63,57,26,27,9,6,11,12,29,35, - 3,40,43,41,42,28,38,33,37,15, - 25,14,21,19,20,22,23,18,16,24, - 32,36,34,31,39,64,8,7,1,2, - 5,4,10,0,62,63,26,27,9,11, - 12,5,29,35,3,4,7,40,43,41, - 42,28,38,33,37,15,25,14,21,19, - 20,22,23,18,16,24,10,32,36,34, - 31,39,59,1,2,6,0,119,0,61, - 45,16,66,48,18,49,50,19,20,51, + 101,65,95,74,121,69,104,105,106,107, + 108,109,110,111,112,113,73,118,102,117, + 71,70,13,8,0,76,0,60,47,14, + 15,61,45,16,66,48,87,17,18,49, + 50,19,20,51,56,52,21,22,53,67, + 55,10,68,23,58,44,24,46,25,8, + 3,9,6,71,13,7,4,54,5,1, + 2,0,8,73,64,75,0,62,63,26, + 27,9,11,12,5,29,35,3,4,7, + 40,43,41,42,28,38,33,37,15,25, + 14,21,19,20,22,23,18,16,24,10, + 32,36,34,31,39,59,1,2,6,0, + 45,46,75,3,73,13,64,57,8,65, + 95,70,74,69,0,47,14,15,61,45, + 16,66,48,17,18,49,50,19,20,51, 52,21,22,53,67,55,10,68,23,44, - 24,46,25,15,14,47,8,3,9,13, - 58,56,60,87,17,30,4,6,7,1, - 2,5,54,0,14,15,31,62,16,32, - 33,18,19,20,63,7,34,21,22,35, - 36,37,57,38,39,10,23,24,25,40, - 41,42,1,2,3,26,27,9,6,11, - 12,5,29,4,43,72,28,0,44,1, - 2,4,114,115,116,0,10,66,61,67, - 68,15,25,14,21,19,20,22,23,18, - 16,24,75,73,95,118,71,64,121,120, - 96,103,90,26,27,11,12,91,92,88, - 89,30,65,93,94,97,98,99,100,101, - 102,117,70,104,105,106,107,108,109,110, - 111,112,113,69,47,45,48,17,49,50, - 51,52,53,55,44,46,13,8,74,3, - 59,7,5,6,9,1,2,4,0,13, - 8,7,5,3,1,2,6,9,4,73, - 0 + 24,46,25,1,2,4,63,62,11,12, + 6,91,92,99,9,100,5,29,30,107, + 108,104,105,106,112,111,113,89,88,109, + 110,97,98,93,94,101,102,26,27,90, + 103,3,59,69,70,65,0,61,45,16, + 66,48,18,49,50,19,20,51,52,21, + 22,53,67,55,10,68,23,44,24,46, + 25,15,14,47,8,3,9,13,58,56, + 60,87,17,30,4,6,7,1,2,5, + 54,0,119,0,10,66,61,67,68,15, + 25,14,21,19,20,22,23,18,16,24, + 75,73,95,118,71,64,121,120,96,103, + 90,26,27,11,12,91,92,88,89,30, + 65,93,94,97,98,99,100,101,102,117, + 69,104,105,106,107,108,109,110,111,112, + 113,70,47,45,48,17,49,50,51,52, + 53,55,44,46,13,8,74,3,59,7, + 5,6,9,1,2,4,0,13,8,7, + 5,3,1,2,6,9,4,73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1890,59 +1887,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 211,12,66,12,12,12,12,12,12,173, - 12,12,12,141,12,44,218,112,66,66, - 199,66,66,66,66,66,66,12,12,12, - 12,12,12,12,12,12,12,12,66,12, - 66,102,37,37,37,37,112,147,129,129, - 77,5,95,264,12,12,129,143,12,264, - 264,154,1,66,75,50,12,12,102,12, - 12,24,24,147,102,66,66,66,66,66, - 66,66,66,66,66,66,66,66,66,66, - 66,66,66,66,66,66,66,66,66,66, - 66,66,66,66,66,102,66,264,12,12, - 12,12,72,264,32,32,172,235,236,110, - 236,131,236,15,236,229,10,112,95,95, - 32,66,172,90,153,62,62,12,12,12, - 10,112,95,37,19,185,40,184,203,112, - 184,264,95,12,12,12,12,12,12,12, + 135,12,64,12,12,12,12,12,12,68, + 12,12,12,220,12,42,236,156,64,64, + 200,64,64,64,64,64,64,12,12,12, + 12,12,12,12,12,12,12,12,64,12, + 64,113,37,37,37,37,156,83,133,133, + 21,5,97,264,12,12,133,222,12,264, + 264,160,1,64,72,48,12,12,113,12, + 12,26,26,83,113,64,64,64,64,64, + 64,64,64,64,64,64,64,64,64,64, + 64,64,64,64,64,64,64,64,64,64, + 64,64,64,64,64,113,64,264,12,12, + 12,12,80,264,32,32,170,233,234,121, + 234,173,234,57,234,227,10,156,97,97, + 32,64,170,92,159,13,13,12,12,12, + 10,156,97,37,77,188,143,187,204,156, + 187,264,97,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,133,11,12,12, - 12,138,112,129,129,133,129,238,129,12, - 110,129,238,112,11,12,12,136,95,12, - 264,249,129,112,50,66,37,129,83,264, - 12,11,112,12,189,50,66,102,102,102, - 102,12,12,32,12,115,222,129,129,97, - 49,97,129,204,11,49,133,264,12,122, - 12,259,48,133,264,30,138,40,12,203, - 133,264,264,264,264,147,147,129,115,60, - 112,164,12,80,12,12,88,241,222,97, - 97,214,133,204,60,12,12,133,129,66, - 12,12,62,62,112,121,172,259,264,133, - 129,86,12,102,138,190,12,12,264,264, - 115,50,129,110,12,12,173,129,166,124, - 12,12,173,145,238,60,66,204,115,66, - 66,129,50,264,249,179,129,12,30,147, - 66,95,190,185,192,129,206,129,238,129, - 22,181,164,172,12,66,12,13,175,238, - 173,173,11,129,259,185,115,86,264,95, - 164,60,12,206,242,12,16,88,206,192, - 259,185,22,254,55,124,181,66,66,11, - 238,238,119,264,129,109,166,12,12,173, - 60,12,12,197,197,164,254,59,12,238, - 12,11,11,12,129,119,206,129,164,117, - 12,264,173,238,259,206,129,12,12,129, - 99,55,11,147,262,115,192,19,65,124, - 164,238,81,259,37,37,158,105,12,66, - 12,164,12,12,12,12,106,12,204,162, - 164,164,204,52,264,264,129,60,264,129, - 81,164,12,160,12,12,106,12,106,270, - 270,257,12,270,164,164,12,129,37,119, - 64,164,12,37,106,264,124,264,266,129, - 12,264,158,60,12,197,264,264,129,106, - 12,106,164,124,102,106,160,64,12,52, - 52,122,66,12,150,164,264,184,106,264, - 164,106 + 12,12,12,12,12,12,175,11,12,12, + 12,140,156,133,133,175,133,192,133,12, + 121,133,192,156,11,12,12,138,97,12, + 264,147,133,156,48,64,37,133,54,264, + 12,11,156,12,224,48,64,113,113,113, + 113,12,12,32,12,40,244,133,133,70, + 47,70,133,205,11,47,175,264,12,126, + 12,209,46,175,264,88,140,143,12,204, + 175,264,264,264,264,83,83,133,40,218, + 156,154,12,74,12,12,99,254,244,70, + 70,178,175,205,218,12,12,175,133,64, + 12,12,13,13,156,125,170,209,264,175, + 133,52,12,113,140,225,12,12,264,264, + 40,48,133,121,12,12,68,133,164,128, + 12,12,68,86,192,218,64,205,40,64, + 64,133,48,264,147,182,133,12,88,83, + 64,97,225,188,195,133,212,133,192,133, + 19,184,154,170,12,64,12,24,269,192, + 68,68,11,133,209,188,40,52,264,97, + 154,218,12,212,255,12,58,99,212,195, + 209,188,19,266,15,128,184,64,64,11, + 192,192,50,264,133,120,164,12,12,68, + 218,12,12,123,123,154,266,217,12,192, + 12,11,11,12,133,50,212,133,154,90, + 12,264,68,192,209,212,133,12,12,133, + 110,15,11,83,262,40,195,77,62,128, + 154,192,75,209,37,37,101,116,12,64, + 12,154,12,12,12,12,117,12,205,152, + 154,154,205,107,264,264,133,218,264,133, + 121,75,154,12,105,12,12,117,12,117, + 273,273,207,12,273,154,154,12,133,37, + 50,218,133,154,12,37,117,264,128,264, + 240,133,12,264,101,62,123,264,264,133, + 117,12,117,154,128,113,117,105,218,12, + 107,107,126,64,12,251,154,264,103,61, + 187,117,264,154,103,12,117 }; }; public final static char nasb[] = Nasb.nasb; @@ -1950,34 +1947,34 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,148,146,120,145,144,5, - 2,0,183,0,5,1,42,0,4,29, - 0,154,0,5,2,10,7,135,0,139, - 0,5,7,10,2,13,4,45,0,67, - 134,133,0,2,7,3,0,54,2,67, - 0,42,55,0,165,5,164,0,4,66, - 0,75,0,66,42,5,7,10,2,13, - 0,54,67,0,169,0,4,187,0,42, - 104,0,4,171,0,137,0,151,0,13, - 2,10,7,5,83,0,109,0,48,42, - 173,4,39,0,66,39,48,68,4,42, - 0,2,44,0,61,0,177,0,124,0, - 34,95,94,64,54,7,10,2,4,0, - 5,44,2,3,0,95,94,5,56,0, - 4,45,166,0,185,0,4,97,0,4, - 172,0,34,94,95,4,0,156,0,112, - 0,4,39,38,0,2,64,54,7,10, - 4,90,5,0,5,102,161,0,95,94, - 54,64,56,5,7,10,2,0,2,113, - 0,114,4,48,82,0,108,0,5,7, - 10,13,3,1,0,4,48,82,84,0, - 4,168,0,5,102,184,0,4,45,39, - 0,4,48,82,102,46,5,0,2,5, - 120,116,117,118,13,87,0,2,62,0, - 38,54,7,10,2,4,153,0,23,4, - 5,90,0,42,155,0,39,175,23,4, - 0,45,4,34,0,45,4,174,0,4, - 45,103,0 + 3,13,7,10,149,147,120,146,145,5, + 2,0,75,0,167,5,166,0,155,0, + 4,189,0,185,0,5,2,10,7,136, + 0,5,7,10,2,13,4,45,0,61, + 0,2,7,3,0,54,2,67,0,124, + 0,138,0,4,173,0,5,1,40,0, + 66,127,40,7,10,2,13,5,0,109, + 0,171,0,40,104,0,4,29,0,54, + 67,0,4,97,0,187,0,140,0,179, + 0,13,2,10,7,5,83,0,152,0, + 157,0,158,0,112,0,40,55,0,48, + 40,175,4,39,0,66,39,48,68,4, + 40,0,108,0,34,95,94,64,54,7, + 10,2,4,0,4,170,0,95,94,5, + 56,0,67,135,134,0,23,4,5,90, + 0,4,39,38,0,2,44,0,34,94, + 95,4,0,2,64,54,7,10,4,5, + 90,0,5,44,2,3,0,5,102,186, + 0,95,94,54,64,56,5,7,10,2, + 0,2,62,0,114,4,48,82,0,5, + 7,10,13,3,1,0,39,177,23,4, + 0,4,48,82,84,0,4,66,0,4, + 45,168,0,2,113,0,2,5,120,116, + 117,118,13,87,0,4,45,39,0,45, + 4,176,0,4,48,82,102,46,5,0, + 4,174,0,38,54,7,10,2,4,154, + 0,45,4,34,0,40,156,0,5,102, + 163,0,4,45,103,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1991,7 +1988,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 55,61,67,84,88,90,94,97,99,109, 110,111,123,104,54,106,47,64,70,73, 76,83,89,93,98,77,95,103,1,46, - 53,58,78,121,20,63,91,101,44,33, + 53,58,78,121,20,63,91,101,33,44, 119,122,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 15,16,21,22,32,4,23,24,25,26, @@ -2008,8 +2005,8 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 132,137,139,0,0,138,236,136,0,230, 135,0,146,134,0,0,145,151,0,0, 152,161,182,162,163,164,165,166,154,167, - 168,169,170,127,171,0,144,129,133,172, - 0,130,141,140,155,180,0,0,0,0, + 168,169,170,127,171,0,144,129,133,130, + 172,0,141,140,155,180,0,0,0,0, 0,0,0,0,175,158,0,205,0,148, 189,0,202,206,0,128,0,174,0,0, 0,0,0,0,207,178,0,0,0,0, @@ -2017,14 +2014,14 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 213,160,209,210,211,0,0,0,0,149, 208,221,177,198,0,0,212,0,0,0, 241,242,150,181,0,191,192,193,194,195, - 197,200,0,0,215,218,220,0,239,0, - 240,0,142,143,147,0,0,157,159,0, - 173,0,183,184,185,186,187,190,0,196, - 0,199,204,0,216,217,0,222,225,227, - 229,0,233,234,235,237,238,125,0,153, - 156,0,176,0,179,0,201,214,219,0, - 223,224,226,228,0,231,232,243,244,0, - 0,0,0,0,0 + 197,200,0,0,215,218,0,220,0,239, + 0,240,0,142,143,147,0,0,157,159, + 0,173,0,183,184,185,186,187,190,0, + 196,0,199,204,0,216,217,0,0,222, + 225,227,229,0,233,234,235,237,238,125, + 0,153,156,0,176,0,179,0,201,214, + 219,0,223,224,226,228,0,231,232,243, + 244,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2032,18 +2029,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 151,565,584,516,532,543,554,356,261,275, - 297,303,42,286,376,414,159,573,467,20, - 51,71,80,85,90,127,187,292,309,320, - 331,267,281,491,27,366,331,592,27,209, - 240,1,14,61,76,106,141,222,314,327, - 336,345,349,432,460,512,602,606,610,97, - 7,97,141,394,410,423,444,504,423,523, - 539,550,561,199,478,56,56,148,214,217, - 235,256,217,217,56,353,457,464,148,56, - 623,110,228,398,438,451,116,116,228,56, - 228,385,169,104,436,614,621,614,621,65, - 404,134,104,104,245 + 156,570,589,521,537,548,559,361,266,280, + 302,308,42,291,381,419,164,578,472,20, + 51,71,80,85,90,127,192,297,314,325, + 336,141,272,286,496,27,141,371,336,597, + 27,214,245,1,14,61,76,106,227,319, + 332,341,350,354,437,465,517,607,611,615, + 97,7,97,399,415,428,449,509,428,528, + 544,555,566,204,483,56,56,153,219,222, + 240,261,222,222,56,358,462,469,153,56, + 628,110,233,403,443,456,116,116,233,56, + 233,390,174,104,441,619,626,619,626,65, + 409,134,104,104,250 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2051,18 +2048,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,363,132,95, - 132,132,48,272,382,420,165,67,473,25, - 25,25,59,59,95,132,192,132,132,325, - 325,272,101,496,38,371,579,597,32,203, - 203,5,18,5,59,95,132,226,318,318, - 318,95,95,132,238,5,5,5,238,226, - 11,101,145,363,363,363,448,496,427,527, - 527,527,527,203,482,59,59,5,5,220, - 238,5,259,259,343,95,5,238,5,489, - 5,113,340,401,441,454,119,123,231,508, - 499,388,172,95,95,616,616,618,618,67, - 406,136,194,179,247 + 18,5,5,5,5,5,5,368,132,95, + 132,132,48,277,387,425,170,67,478,25, + 25,25,59,59,95,132,197,132,132,330, + 330,146,277,101,501,38,149,376,584,602, + 32,208,208,5,18,5,59,95,231,323, + 323,323,95,95,132,243,5,5,5,243, + 231,11,101,368,368,368,453,501,432,532, + 532,532,532,208,487,59,59,5,5,225, + 243,5,264,264,348,95,5,243,5,494, + 5,113,345,406,446,459,119,123,236,513, + 504,393,177,95,95,621,621,623,623,67, + 411,136,199,184,252 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2072,15 +2069,15 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static char scopeLhs[] = { 46,17,17,17,17,17,17,71,86,47, 80,118,77,52,71,70,46,17,19,3, - 6,9,161,161,158,116,46,81,118,117, - 119,53,47,135,130,71,17,17,130,96, - 57,132,74,164,161,158,126,59,117,117, - 119,176,50,55,139,17,17,17,17,12, - 112,158,126,71,70,70,36,135,70,17, - 17,17,17,96,19,165,161,177,94,101, - 75,58,153,76,119,72,140,139,169,135, - 16,158,119,103,69,21,127,127,56,135, - 135,71,46,158,65,133,44,133,44,164, + 6,9,163,163,160,116,46,81,118,117, + 119,126,53,47,136,131,126,71,17,17, + 131,96,57,133,74,166,163,160,59,117, + 117,119,178,50,55,140,17,17,17,17, + 12,112,160,71,70,70,36,136,70,17, + 17,17,17,96,19,167,163,179,94,101, + 75,58,154,76,119,72,141,140,171,136, + 16,160,119,103,69,21,128,128,56,136, + 136,71,46,160,65,134,44,134,44,166, 103,116,46,46,57 }; }; @@ -2092,13 +2089,13 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 119,74,74,74,74,74,74,74,71,13, 71,71,65,1,74,122,64,3,74,65, 65,65,1,1,13,71,64,71,71,1, - 1,1,1,4,65,13,1,1,65,74, - 74,74,119,74,1,13,71,1,1,1, - 1,13,13,71,118,74,74,74,118,1, - 74,1,69,74,74,74,73,4,74,65, + 1,71,1,1,4,65,70,13,1,1, + 65,74,74,74,119,74,1,13,1,1, + 1,1,13,13,71,118,74,74,74,118, + 1,74,1,74,74,74,73,4,74,65, 65,65,65,74,3,1,1,74,74,3, 118,74,1,1,1,13,74,118,74,5, - 74,1,54,70,73,74,1,1,6,1, + 74,1,54,69,73,74,1,1,6,1, 54,76,75,13,13,4,4,4,4,3, 1,64,1,1,3 }; @@ -2111,10 +2108,10 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 96,248,248,248,248,248,248,106,87,96, 85,154,85,98,106,106,96,248,248,181, 223,224,57,57,82,154,96,85,154,154, - 154,98,96,137,50,106,248,248,50,146, - 66,26,106,30,57,82,311,66,154,154, - 154,22,98,33,63,248,248,248,248,243, - 6,82,311,106,106,106,280,137,106,248, + 154,311,98,96,137,50,311,106,248,248, + 50,146,66,26,106,30,57,82,66,154, + 154,154,22,98,33,63,248,248,248,248, + 243,6,82,106,106,106,280,137,106,248, 248,248,248,146,248,30,57,24,146,148, 142,66,60,71,154,106,54,63,140,137, 248,82,154,1,106,249,154,154,121,137, @@ -2127,69 +2124,69 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 312,3,57,0,127,0,311,3,119,0, - 127,175,0,127,178,75,0,217,0,251, - 127,30,125,0,20,0,290,127,30,54, + 314,3,57,0,127,0,313,3,119,0, + 127,175,0,127,178,75,0,217,0,252, + 127,30,125,0,20,0,292,127,30,54, 0,20,53,0,33,134,0,20,53,0, - 0,290,127,30,54,205,0,20,131,0, - 251,127,30,130,0,185,128,0,144,0, - 220,3,288,0,288,0,2,0,127,0, - 251,127,30,133,0,185,128,225,0,185, - 128,44,225,0,185,128,308,44,0,131, + 0,292,127,30,54,205,0,20,131,0, + 252,127,30,130,0,185,128,0,144,0, + 220,3,290,0,290,0,2,0,127,0, + 252,127,30,133,0,185,128,225,0,185, + 128,44,225,0,185,128,310,44,0,131, 190,167,128,0,129,0,190,167,128,0, - 136,129,0,171,0,304,127,171,0,127, + 136,129,0,171,0,306,127,171,0,127, 171,0,223,129,0,167,243,0,139,0, - 0,0,137,0,0,0,303,127,165,250, - 0,128,0,250,0,130,0,0,128,0, - 302,127,165,0,44,128,0,152,3,0, - 127,278,277,127,75,276,171,0,277,127, - 75,276,171,0,216,0,217,0,276,171, - 0,96,0,0,216,0,217,0,204,96, - 0,0,216,0,217,0,277,127,276,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,190,167,177,0,136,0,167,128,0, - 10,0,0,0,215,59,0,126,0,228, - 127,3,181,0,181,0,2,0,0,127, - 0,0,0,0,0,199,3,0,202,0, - 238,127,165,28,17,0,185,128,56,58, - 0,198,129,0,131,185,128,274,58,0, - 185,128,274,58,0,185,128,70,124,56, - 0,238,127,165,56,0,238,127,165,227, - 56,0,272,127,165,124,66,0,272,127, - 165,66,0,185,128,66,0,137,0,190, - 185,128,243,0,139,0,185,128,243,0, - 190,167,128,10,0,167,128,10,0,93, - 139,0,149,0,265,127,146,0,265,127, - 171,0,162,85,0,295,161,297,298,3, - 82,0,127,174,0,297,298,3,82,0, - 129,0,127,174,0,162,3,76,191,81, - 0,127,129,0,191,81,0,108,2,133, - 127,129,0,226,3,76,0,199,168,0, - 33,172,0,168,0,178,33,172,0,226, - 3,86,0,191,157,226,3,84,0,62, - 174,0,226,3,84,0,127,174,62,174, - 0,296,127,165,0,162,0,215,78,0, - 30,174,0,162,117,158,0,30,172,0, - 183,3,0,127,152,0,220,3,0,215, - 59,262,0,162,59,0,183,3,292,63, - 128,0,127,0,0,0,0,292,63,128, - 0,2,148,127,0,0,0,0,150,0, - 126,54,167,128,0,31,150,0,93,139, - 31,150,0,223,185,128,0,149,31,150, - 0,162,3,39,0,162,3,65,183,30, - 31,0,183,30,31,0,20,2,133,127, - 0,162,3,65,183,30,34,0,183,30, - 34,0,162,3,65,183,30,36,0,183, - 30,36,0,162,3,65,183,30,32,0, - 183,30,32,0,220,3,126,190,167,128, - 10,0,126,190,167,128,10,0,139,2, - 0,127,0,220,3,125,177,167,128,10, - 0,177,167,128,10,0,137,2,0,127, - 0,220,3,136,0,220,3,140,0,162, - 59,140,0,257,0,31,0,31,142,0, - 166,0,162,3,0 + 0,0,137,0,0,0,305,127,163,251, + 0,128,0,251,0,130,0,0,128,0, + 304,127,163,250,0,128,0,0,44,128, + 0,0,152,3,0,127,279,278,127,75, + 277,171,0,278,127,75,277,171,0,216, + 0,217,0,277,171,0,96,0,0,216, + 0,217,0,204,96,0,0,216,0,217, + 0,278,127,277,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,190,167,177,0, + 136,0,167,128,0,10,0,0,0,215, + 59,0,126,0,228,127,3,181,0,181, + 0,2,0,0,127,0,0,0,0,0, + 199,3,0,202,0,238,127,163,28,17, + 0,185,128,56,58,0,198,129,0,131, + 185,128,275,58,0,185,128,275,58,0, + 185,128,69,124,56,0,238,127,163,56, + 0,238,127,163,227,56,0,273,127,163, + 124,66,0,273,127,163,66,0,185,128, + 66,0,137,0,190,185,128,243,0,139, + 0,185,128,243,0,190,167,128,10,0, + 167,128,10,0,93,139,0,149,0,266, + 127,146,0,266,127,171,0,162,85,0, + 297,161,299,300,3,82,0,127,174,0, + 299,300,3,82,0,129,0,127,174,0, + 162,3,76,191,81,0,127,129,0,191, + 81,0,108,2,133,127,129,0,226,3, + 76,0,199,168,0,33,172,0,168,0, + 178,33,172,0,226,3,86,0,191,157, + 226,3,84,0,62,174,0,226,3,84, + 0,127,174,62,174,0,298,127,163,0, + 162,0,215,78,0,30,174,0,162,117, + 158,0,30,172,0,183,3,0,127,152, + 0,220,3,0,215,59,263,0,162,59, + 0,183,3,294,63,128,0,127,0,0, + 0,0,294,63,128,0,2,148,127,0, + 0,0,0,150,0,126,54,167,128,0, + 31,150,0,93,139,31,150,0,223,185, + 128,0,149,31,150,0,162,3,39,0, + 162,3,65,183,30,31,0,183,30,31, + 0,20,2,133,127,0,162,3,65,183, + 30,34,0,183,30,34,0,162,3,65, + 183,30,36,0,183,30,36,0,162,3, + 65,183,30,32,0,183,30,32,0,220, + 3,126,190,167,128,10,0,126,190,167, + 128,10,0,139,2,0,127,0,220,3, + 125,177,167,128,10,0,177,167,128,10, + 0,137,2,0,127,0,220,3,136,0, + 220,3,140,0,162,59,140,0,258,0, + 31,0,31,142,0,166,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2197,38 +2194,38 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4588,4677,4670,4669,0,3407,4182,3161,3131,0, - 3246,3209,3155,3118,3064,3027,2973,2936,2880,2550, - 2513,4474,0,2680,0,3520,3307,2766,0,2736, - 865,0,3246,3209,3039,3016,3155,3118,3064,3027, - 2973,2936,802,2880,2550,2513,4422,4421,0,3105, - 4013,3013,0,1420,1378,0,3438,4072,0,2675, - 4393,0,2494,673,0,4371,2675,4296,3507,4393, - 3357,3969,4382,4200,2815,578,4271,3346,2801,2664, - 0,4409,4188,0,4409,4188,3611,4167,4099,3539, - 4084,4016,4001,3528,0,4409,4188,3611,4167,4099, - 3539,4084,4016,4001,3528,3246,3209,3155,3118,3064, - 3027,2973,2936,2880,2550,2513,0,2591,725,0, - 2815,4371,1345,4296,3507,4444,3346,1925,1157,1298, - 4415,2848,2055,724,721,0,2064,656,0,977, - 0,2276,2251,1477,945,3507,2848,3357,2801,2664, - 2958,2751,0,4224,533,2626,0,4602,4594,4582, - 4578,4570,4556,4525,4493,4659,4651,4195,4073,3501, - 4480,4361,3391,3593,3174,3083,2838,3265,2569,0, - 4602,3444,4594,3239,3088,4582,4578,4570,2829,2543, - 4556,4525,4493,3534,4659,3423,3303,4651,2747,2607, - 2286,1943,3522,4195,2574,4073,2761,3501,4480,4361, - 1938,3391,1118,3593,1113,3174,3083,4224,2838,2626, - 3265,2569,733,3357,3969,4382,4200,2815,4371,578, - 2531,2675,2518,4296,2239,3507,4271,3346,2801,4393, - 2664,798,1251,2151,922,2064,656,3980,3947,3925, - 1034,2253,2322,2290,2381,2353,590,2775,2635,2490, - 2463,2436,2409,3477,3454,3368,3321,2688,3903,3881, - 3859,3837,3815,3793,3771,3749,3727,3698,3665,1947, - 2202,2165,2114,2077,2026,1269,1209,1989,1167,876, - 1896,1859,815,743,682,1817,1775,1733,1691,1649, - 1607,1565,1523,1481,1439,1397,533,1355,1311,1123, - 991,948,1070,0 + 4226,4649,4623,4602,0,2635,2622,2182,1961,0, + 3264,3227,3173,3136,3082,3045,2991,2954,2898,2568, + 2531,3993,0,1862,0,2270,1566,744,0,627, + 573,0,3264,3227,3492,3415,3173,3136,3082,3045, + 2991,2954,2512,2898,2568,2531,4582,4581,0,3438, + 3050,2957,0,2166,848,0,4590,3451,0,2692, + 4446,0,1561,1303,0,4370,2692,4355,3480,4446, + 3400,3981,4381,4203,2833,580,4290,3389,2819,2681, + 0,4460,4241,0,4460,4241,3601,4116,4106,3541, + 4096,4013,4000,3531,0,4460,4241,3601,4116,4106, + 3541,4096,4013,4000,3531,3264,3227,3173,3136,3082, + 3045,2991,2954,2898,2568,2531,0,3036,2850,0, + 2833,4370,1781,4355,3480,4458,3389,1824,1695,1024, + 2906,2847,853,1351,1308,0,1258,659,0,1067, + 0,1400,1126,1120,558,3480,2847,3400,2819,2681, + 3067,2769,0,4214,535,2643,0,4566,4555,4543, + 4517,4489,4485,4472,4233,4570,4393,4308,4237,3595, + 4068,3523,3283,3192,2856,2587,3434,3214,3032,0, + 4566,4005,4555,3288,3197,4543,4517,4489,2592,2573, + 4485,4472,4233,1741,4570,1655,1612,4393,1569,1526, + 1483,1166,4018,4308,1950,4237,4072,3595,4068,3523, + 871,3283,734,3192,647,2856,2587,4214,3434,2643, + 3214,3032,722,3400,3981,4381,4203,2833,4370,580, + 2555,2692,2257,4355,2169,3480,4290,3389,2819,4446, + 2681,801,2536,2081,926,1258,659,3657,3959,3937, + 1038,2271,2340,2308,2399,2371,592,2793,2652,2508, + 2481,2454,2427,3497,3411,2707,3364,3339,3915,3893, + 3871,3849,3827,3805,3783,3761,3739,3717,3688,1964, + 2220,2183,2132,2095,2044,1274,1215,2007,1172,880, + 1913,1876,819,746,685,1833,1790,1747,1704,1661, + 1618,1575,1532,1489,1446,1403,535,1360,1317,1129, + 995,952,1083,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2236,59 +2233,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,291,127,264,39,31,34,36,32,10, + 0,293,127,265,39,31,34,36,32,10, 136,125,133,7,130,4,3,128,35,29, 5,12,11,6,9,27,26,140,145,148, 147,150,149,153,151,155,154,156,57,158, - 69,3,30,30,30,30,128,3,30,30, + 70,3,30,30,30,30,128,3,30,30, 168,127,59,3,62,63,30,7,125,183, 162,168,127,62,63,167,166,125,3,124, 126,103,120,3,59,90,96,12,11,92, 91,6,94,93,65,30,88,89,9,98, 97,100,99,101,113,112,111,110,109,108, - 107,106,105,104,70,117,102,162,183,183, - 183,183,167,220,127,127,127,266,267,250, - 268,243,269,66,270,271,10,128,59,59, + 107,106,105,104,69,117,102,162,183,183, + 183,183,167,220,127,127,127,267,268,251, + 269,243,270,66,271,272,10,128,59,59, 127,157,127,59,3,218,217,136,126,125, - 10,128,59,292,3,190,4,54,5,128, + 10,128,59,294,3,190,4,54,5,128, 54,220,162,147,147,145,145,145,149,149, 149,149,148,148,151,150,150,154,153,155, - 162,156,65,65,65,65,190,177,251,254, - 251,213,128,6,165,167,231,128,126,125, - 124,165,128,128,185,167,251,213,215,158, - 224,127,3,128,167,206,3,293,168,152, - 257,190,128,125,185,167,73,3,3,3, - 3,126,125,69,167,127,127,126,125,127, - 185,127,165,127,185,167,54,228,229,146, + 162,156,65,65,65,65,190,177,252,255, + 252,213,128,6,163,167,231,128,126,125, + 124,163,128,128,185,167,252,213,215,158, + 224,127,3,128,167,206,3,295,168,152, + 258,190,128,125,185,167,73,3,3,3, + 3,126,125,70,167,127,127,126,125,127, + 185,127,163,127,185,167,54,228,229,146, 230,127,167,54,183,127,127,4,223,5, - 54,162,162,162,162,3,3,6,184,303, - 128,169,225,56,54,205,58,171,305,127, - 127,73,190,127,272,124,273,190,157,70, - 224,199,187,181,177,3,127,69,228,190, - 157,259,262,59,179,4,124,126,220,220, - 127,167,165,227,30,54,274,276,127,3, - 181,307,225,44,128,272,70,69,127,70, - 70,3,167,199,127,213,157,126,127,3, - 59,162,4,190,127,165,65,30,128,75, - 127,213,304,127,125,73,283,199,69,128, - 44,308,185,221,127,190,127,259,220,215, + 54,162,162,162,162,3,3,6,184,305, + 128,169,225,56,54,205,58,171,307,127, + 127,73,190,127,273,124,274,190,157,69, + 224,199,187,181,177,3,127,70,228,190, + 157,260,263,59,179,4,124,126,220,220, + 127,167,163,227,30,54,275,277,127,3, + 181,309,225,44,128,273,69,70,127,69, + 69,3,167,199,127,213,157,126,127,3, + 59,162,4,190,127,163,65,30,128,75, + 127,213,306,127,125,73,285,199,70,128, + 44,310,185,221,127,190,127,260,220,215, 131,238,17,54,171,60,56,58,237,127, - 127,185,127,277,73,69,213,73,70,185, + 127,185,127,278,73,70,213,73,69,185, 128,128,127,228,221,28,127,3,124,56, - 238,290,54,10,61,131,277,165,287,128, - 288,185,185,57,157,127,127,165,265,199, - 275,28,70,128,69,65,30,231,231,278, - 127,69,185,3,3,127,127,3,70,69, - 157,128,185,127,70,70,127,296,80,78, + 238,292,54,10,61,131,278,163,289,128, + 290,185,185,57,157,127,127,163,266,199, + 276,28,69,128,70,65,30,231,231,279, + 127,70,185,3,3,127,127,3,69,70, + 157,128,185,127,69,69,127,298,80,78, 1,162,8,86,84,82,81,76,83,85, - 79,77,56,75,220,312,221,238,152,165, - 185,227,290,279,119,8,73,215,73,3, - 3,3,191,3,124,162,124,178,69,127, - 127,227,65,3,73,226,168,226,298,146, - 76,226,127,302,8,61,95,311,168,157, - 199,157,297,127,3,157,279,69,231,157, - 157,127,70,191,161,265,162,70,122,295, - 157,157 + 79,77,56,75,220,314,221,238,152,163, + 250,185,227,292,280,119,8,73,215,73, + 3,3,3,191,3,124,162,124,178,70, + 127,127,163,227,65,3,73,226,168,226, + 300,146,76,226,127,127,61,95,313,168, + 157,199,157,299,127,3,157,280,304,231, + 157,157,127,69,191,161,266,162,189,70, + 69,122,297,157,189,8,157 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2564,20 +2561,20 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 522, + NUM_STATES = 527, NT_OFFSET = 123, - LA_STATE_OFFSET = 5751, + LA_STATE_OFFSET = 5763, MAX_LA = 2147483647, - NUM_RULES = 532, - NUM_NONTERMINALS = 195, - NUM_SYMBOLS = 318, + NUM_RULES = 534, + NUM_NONTERMINALS = 197, + NUM_SYMBOLS = 320, SEGMENT_SIZE = 8192, - START_STATE = 4031, + START_STATE = 2845, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4819, - ERROR_ACTION = 5219; + ACCEPT_ACTION = 4820, + ERROR_ACTION = 5229; 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 02bb85f717c..6f4e87322b3 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 @@ -118,7 +118,7 @@ public interface CPPSizeofExpressionParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 70, + TK_Assign = 69, TK_StarAssign = 104, TK_SlashAssign = 105, TK_PercentAssign = 106, @@ -129,7 +129,7 @@ public interface CPPSizeofExpressionParsersym { TK_AndAssign = 111, TK_CaretAssign = 112, TK_OrAssign = 113, - TK_Comma = 69, + TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, TK_RightBrace = 71, @@ -209,8 +209,8 @@ public interface CPPSizeofExpressionParsersym { "enum", "struct", "union", - "Comma", "Assign", + "Comma", "RightBrace", "ERROR_TOKEN", "Colon", 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 1c22a1d01c4..96b8688b055 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 @@ -171,13 +171,15 @@ private CPPParserAction action; public CPPTemplateTypeParameterParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { // binding resolution actions need access to IASTName nodes, temporary action = new CPPParserAction (); //action.resolver = new C99TypedefTrackerParserAction (this); action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); + action.builder.setParserOptions(options); + // comment this line to use with backtracking parser //setParserAction(action); } @@ -189,10 +191,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // _1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -1863,14 +1865,14 @@ public CPPTemplateTypeParameterParser(String[] mapFrom) { // constructor } // - // Rule 383: initializer_clause ::= { <openscope-ast> initializer_list , } + // Rule 383: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // case 383: { action.builder. consumeInitializerList(); break; } // - // Rule 384: initializer_clause ::= { <openscope-ast> initializer_list } + // Rule 384: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // case 384: { action.builder. consumeInitializerList(); break; @@ -1884,380 +1886,394 @@ public CPPTemplateTypeParameterParser(String[] mapFrom) { // constructor } // - // Rule 390: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 386: start_initializer_list ::= $Empty // - case 390: { action.builder. - consumeClassSpecifier(); break; + case 386: { action.builder. + initializerListStart(); break; } // - // Rule 391: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt + // Rule 387: end_initializer_list ::= $Empty // - case 391: { action.builder. - consumeClassHead(false); break; + case 387: { action.builder. + initializerListEnd(); break; } // - // Rule 392: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt + // Rule 392: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // case 392: { action.builder. - consumeClassHead(false); break; + consumeClassSpecifier(); break; } // - // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // Rule 393: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // case 393: { action.builder. - consumeClassHead(true); break; + consumeClassHead(false); break; } // - // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt + // Rule 394: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // case 394: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // + case 395: { action.builder. consumeClassHead(true); break; } // - // Rule 396: identifier_name_opt ::= $Empty + // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // case 396: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 398: identifier_name_opt ::= $Empty + // + case 398: { action.builder. consumeEmpty(); break; } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 402: visibility_label ::= access_specifier_keyword : // - case 400: { action.builder. + case 402: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 403: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 401: { action.builder. + case 403: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 404: member_declaration ::= declaration_specifiers_opt ; // - case 402: { action.builder. + case 404: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 405: { action.builder. + case 407: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 413: member_declaration ::= ERROR_TOKEN // - case 411: { action.builder. + case 413: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 419: member_declarator ::= declarator constant_initializer + // Rule 421: member_declarator ::= declarator constant_initializer // - case 419: { action.builder. + case 421: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= bit_field_declarator : constant_expression + // Rule 422: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action.builder. + case 422: { action.builder. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= : constant_expression + // Rule 423: member_declarator ::= : constant_expression // - case 421: { action.builder. + case 423: { action.builder. consumeBitField(false); break; } // - // Rule 422: bit_field_declarator ::= identifier_name + // Rule 424: bit_field_declarator ::= identifier_name // - case 422: { action.builder. + case 424: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: constant_initializer ::= = constant_expression + // Rule 425: constant_initializer ::= = constant_expression // - case 423: { action.builder. + case 425: { action.builder. consumeInitializer(); break; } // - // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 431: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 431: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt 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 430: { action.builder. + case 432: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword virtual 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 431: { action.builder. + case 433: { action.builder. consumeBaseSpecifier(true, true); break; } // - // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 434: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 432: { action.builder. + case 434: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 433: access_specifier_keyword ::= private + // Rule 435: access_specifier_keyword ::= private // - case 433: { action.builder. + case 435: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= protected + // Rule 436: access_specifier_keyword ::= protected // - case 434: { action.builder. + case 436: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 435: access_specifier_keyword ::= public + // Rule 437: access_specifier_keyword ::= public // - case 435: { action.builder. + case 437: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 437: access_specifier_keyword_opt ::= $Empty + // Rule 439: access_specifier_keyword_opt ::= $Empty // - case 437: { action.builder. + case 439: { action.builder. consumeEmpty(); break; } // - // Rule 439: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > + // Rule 441: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 439: { action.builder. + case 441: { action.builder. consumeTemplateId(); break; } // - // Rule 440: conversion_function_id ::= operator conversion_type_id + // Rule 442: conversion_function_id ::= operator conversion_type_id // - case 440: { action.builder. + case 442: { action.builder. consumeConversionName(); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 443: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 441: { action.builder. + case 443: { action.builder. consumeTypeId(true); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq + // Rule 444: conversion_type_id ::= type_specifier_seq // - case 442: { action.builder. + case 444: { action.builder. consumeTypeId(false); break; } // - // Rule 443: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 445: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 443: { action.builder. + case 445: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 451: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 449: { action.builder. + case 451: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 452: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 450: { action.builder. + case 452: { action.builder. consumeQualifiedId(false); break; } // - // Rule 453: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 455: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 453: { action.builder. + case 455: { action.builder. consumeTemplateId(); break; } // - // Rule 454: operator_id_name ::= operator overloadable_operator + // Rule 456: operator_id_name ::= operator overloadable_operator // - case 454: { action.builder. + case 456: { action.builder. consumeOperatorName(); break; } // - // Rule 497: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 499: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 497: { action.builder. + case 499: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 498: export_opt ::= export + // Rule 500: export_opt ::= export // - case 498: { action.builder. + case 500: { action.builder. consumePlaceHolder(); break; } // - // Rule 499: export_opt ::= $Empty + // Rule 501: export_opt ::= $Empty // - case 499: { action.builder. + case 501: { action.builder. consumeEmpty(); break; } // - // Rule 503: template_parameter ::= parameter_declaration + // Rule 505: template_parameter ::= parameter_declaration // - case 503: { action.builder. + case 505: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt + // Rule 506: type_parameter ::= class identifier_name_opt // - case 504: { action.builder. + case 506: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= class identifier_name_opt = type_id + // Rule 507: type_parameter ::= class identifier_name_opt = type_id // - case 505: { action.builder. + case 507: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= typename identifier_name_opt + // Rule 508: type_parameter ::= typename identifier_name_opt // - case 506: { action.builder. + case 508: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= typename identifier_name_opt = type_id + // Rule 509: type_parameter ::= typename identifier_name_opt = type_id // - case 507: { action.builder. + case 509: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 508: 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 // - case 508: { action.builder. + case 510: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 511: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 509: { action.builder. + case 511: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 510: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > + // Rule 512: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 510: { action.builder. + case 512: { action.builder. consumeTemplateId(); break; } // - // Rule 516: template_argument ::= type_id + // Rule 518: template_argument ::= type_id // - case 516: { action.builder. + case 518: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 519: explicit_instantiation ::= template declaration // - case 517: { action.builder. + case 519: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 520: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 520: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 521: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 519: { action.builder. + case 521: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 524: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 524: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 525: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 525: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 524: { action.builder. + case 526: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // Rule 527: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 525: { action.builder. + case 527: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq + // Rule 528: exception_declaration ::= type_specifier_seq // - case 526: { action.builder. + case 528: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 534: type_parameter_start ::= ERROR_TOKEN + // Rule 536: type_parameter_start ::= ERROR_TOKEN // - case 534: { action.builder. + case 536: { action.builder. 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 1b94a5e5b55..d6b1e1db244 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 @@ -75,458 +75,455 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 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,5,4,3,1,3,1,1,5, - 4,4,5,5,1,0,1,1,1,2, - 4,2,2,1,5,1,1,1,1,1, - 1,1,2,1,0,1,3,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, + 3,1,7,6,3,0,0,1,3,1, + 1,5,4,4,5,5,1,0,1,1, + 1,2,4,2,2,1,5,1,1,1, + 1,1,1,1,2,1,0,1,3,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,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,-131,0,0,0,-22,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,-131,0,0,0, + -22,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,-3,0,-7,0, + 0,0,0,0,-44,0,0,0,0,0, + -137,0,0,0,-8,0,0,0,0,0, + 0,0,0,-158,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-127,0,0,0, - 0,0,0,0,-2,0,-3,0,0,0, - 0,0,-6,-83,0,0,0,-7,-137,0, - 0,0,-23,0,0,0,0,0,0,0, - 0,-158,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-387,0,0,-459, + 0,0,-59,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-387,0,0,-191,-8,0, - -59,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-192,0, + 0,-199,0,0,0,0,0,0,0,0, + 0,0,0,0,-349,0,-463,0,0,-191, + 0,0,0,0,0,0,-177,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-138,0, 0,0,0,0,0,0,0,0,0,0, - 0,-30,0,0,0,0,-193,0,0,0, - 0,0,0,-177,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-206,0, + 0,0,0,-12,-252,0,-35,0,0,0, + 0,-30,0,0,0,-16,-176,-26,0,0, + 0,0,-178,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-206,0,0,0,0, - -252,-33,0,0,0,0,0,0,-56,0, - 0,0,-92,-176,0,0,0,0,0,-178, + 0,0,0,0,0,0,0,0,0,-19, 0,0,0,0,0,0,0,0,0,0, + -83,0,0,0,-197,0,0,0,0,-138, 0,0,0,0,0,0,0,0,0,0, + 0,0,-36,0,0,0,0,-133,0,-196, + 0,0,-182,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-36,0,0,0,0,-349,0,0,0, - 0,-24,0,0,-12,0,0,0,0,0, - -196,0,0,0,0,0,-199,0,0,0, - 0,0,0,0,0,0,0,0,0,-363, - 0,0,0,0,0,0,-262,0,0,-182, 0,0,0,0,0,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,-46,0,0, - 0,-16,0,0,-35,-290,0,0,0,0, - 0,-283,0,0,0,-298,0,0,0,0, + -350,0,-34,0,0,0,0,-20,-37,-1, + 0,0,0,0,0,0,-342,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,-19,0,-20,0,0, - 0,0,-40,0,0,0,0,0,-87,0, - 0,-4,0,0,0,0,-106,0,0,0, - 0,0,-221,0,0,0,-134,0,0,0, - 0,0,0,0,0,-93,0,0,0,0, - 0,0,0,0,0,-487,0,0,0,0, + 0,0,0,0,0,0,0,0,-93,0, + -54,0,0,0,0,0,-436,0,0,0, + 0,0,0,0,-56,0,0,0,-6,0, + 0,0,0,0,0,0,-221,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-27,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,-372,-54,-27,0,0,0,0,-512, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-283,0,0,0,0, + 0,-523,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,0,0, - 0,-111,0,0,0,0,0,-260,-406,0, - 0,0,0,-442,0,0,0,-28,0,0, + 0,0,0,-306,0,0,0,0,0,0, + 0,0,0,0,-92,-172,0,0,0,-260, 0,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,-28,0,0, + -290,0,0,0,0,0,0,0,-317,0, + -442,0,0,0,-111,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-306,0,0,0,0,0,-18,0,0, - 0,-31,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-268, - 0,0,0,0,0,0,0,0,0,-258, - 0,0,0,0,0,-91,0,0,0,0, - -44,0,0,-85,0,0,-99,0,-81,0, - 0,0,-43,0,0,0,0,0,0,0, + 0,0,-31,0,0,0,0,0,0,0, + -43,0,-49,0,0,0,0,0,0,0, + 0,0,0,-99,0,-18,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -313,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-214,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,-49,0,0,0,0,0,0, - 0,-50,0,0,0,0,0,0,0,0, - -86,0,0,-100,0,-208,0,0,0,-51, + 0,0,0,0,0,0,0,-50,0,0, + 0,0,-106,0,0,0,0,0,-81,0, + 0,0,-385,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-367,0,0, - 0,0,0,0,0,0,0,-129,0,0, - 0,0,0,-52,0,0,0,-21,0,0, - 0,-286,0,0,0,0,0,0,0,0, + -313,0,0,0,0,0,0,0,-327,0, + 0,0,0,0,0,-367,-51,0,0,0, + 0,-82,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,-53,0,-133, - 0,0,0,0,-379,0,0,0,-79,0, 0,0,0,0,0,0,0,0,0,0, + 0,-52,0,0,0,0,0,0,-53,-473, + -55,0,0,0,-208,0,0,0,-68,0, 0,0,0,0,0,0,0,0,0,0, - -342,0,0,0,0,0,0,0,0,0, - -55,0,0,0,0,0,0,-68,0,0, - 0,-198,0,0,0,-354,0,0,0,0, - -180,0,-160,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-69,0,0,0, + 0,0,0,0,-70,0,-312,0,0,0, + 0,0,0,-71,0,0,0,-21,0,0, + 0,-180,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-303,0,0,0,0,0, - 0,0,0,0,-464,0,0,0,0,-1, - -181,-265,0,0,-161,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-33,0,0,0,0,0, + -79,0,0,0,-512,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,-69,-216,0,0,0,-162,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -72,0,-87,0,0,0,0,0,-73,-91, + 0,0,0,0,0,-354,0,0,0,0, + -23,0,-160,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-70,0,-513,0, - 0,0,0,0,0,-225,0,0,-163,0, + 0,0,0,0,-74,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-198, + 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,0,0, - 0,0,0,0,0,0,0,0,-71,0, - 0,0,0,0,0,0,-401,-423,0,0, - -164,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-75,0,0, + 0,0,-271,0,0,0,0,0,-162,0, + 0,0,-76,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, + -80,0,0,0,0,-276,0,0,0,0, + 0,-163,0,0,0,-84,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -72,0,-514,0,0,0,0,0,0,-293, - 0,0,-165,0,0,0,-73,0,0,0, + 0,0,0,-88,0,0,0,0,0,0, + 0,-94,0,-95,0,0,0,0,-282,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,-273,0,0,0,0,0, - 0,0,-74,0,0,0,0,0,0,0, - 0,0,0,0,-166,0,0,0,0,0, + 0,0,0,0,0,0,-96,0,0,0, + 0,0,0,0,-97,0,-428,0,0,0, + 0,-325,0,0,0,0,0,-165,0,0, + 0,-110,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,-119,0,-128, + 0,0,0,0,-330,0,0,0,0,0, + -166,0,0,0,-136,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, + -185,0,-186,0,0,0,0,-331,0,0, + 0,0,0,-167,0,0,0,-202,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-75,0,-130,0,0,0, - 0,-459,0,-76,0,0,-167,0,0,0, + 0,0,0,0,0,-203,0,0,0,0, + 0,0,0,-204,0,-205,0,0,0,0, + -361,0,0,0,0,0,-168,0,0,0, + -210,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,-213,0, + 0,0,0,-344,-226,0,-181,0,0,-169, + 0,0,0,-227,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,-229, + 0,0,0,0,0,0,-373,-230,-231,-216, + 0,0,-170,0,0,0,-232,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-77,0,-183,0, - 0,0,0,-463,0,-78,0,0,-168,0, - 0,0,-80,0,0,0,0,0,0,0, + 0,0,0,0,-233,0,0,0,0,0, + 0,0,-234,0,0,0,0,0,0,0, + -235,-236,-237,0,0,-284,0,0,0,-238, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-84,0, - -200,0,0,0,0,-88,-94,-95,0,0, - -169,0,0,0,-96,0,0,0,0,0, + 0,0,0,0,0,0,0,-239,0,0, + 0,0,0,0,0,-240,0,-241,0,0, + 0,0,0,-522,-242,-243,0,0,-294,0, + 0,0,-244,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, + -250,0,0,0,0,-4,0,0,-251,0, + 0,-517,0,0,0,-253,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -97,0,-201,0,0,0,0,-110,-116,-119, - 0,0,-170,0,0,0,-128,0,0,0, + 0,0,0,-261,0,0,0,0,0,0, + 0,-263,0,-264,0,0,0,0,-24,-274, + -275,-278,0,0,-316,0,0,0,-225,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-372,0,0,0, + 0,0,0,0,-279,0,-280,0,0,0, + 0,-347,0,0,0,-281,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-136,0,-207,0,0,0,0,-184, - -185,-186,0,0,-284,0,0,0,-202,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-223,0, + 0,0,-100,0,0,0,0,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,-203,0,-220,0,0,0, - 0,-204,-205,-210,0,0,-294,0,0,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,-472,0,-224,0, - 0,0,0,-212,-447,-402,0,0,-516,0, - 0,0,-213,0,0,0,0,0,0,0, + 0,0,-304,0,-305,0,0,0,0,-391, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-226,0, - -245,0,0,0,0,-227,-317,0,0,0, - -316,0,0,0,-380,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -228,0,-229,0,0,0,0,-347,0,0, - 0,-403,0,0,0,0,0,0,0,0, + 0,-310,0,0,0,0,-175,0,0,0, + -303,-311,0,0,0,0,0,-322,-39,-323, + -400,0,0,0,0,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, + 0,0,-329,0,0,0,0,-450,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-223,0,0,0,-230,0, - 0,0,0,0,0,0,0,-231,-390,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-346,0,-348, + 0,0,0,0,-219,0,0,0,-129,-364, + 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, - -232,0,0,0,0,-391,0,0,0,0, + 0,0,0,0,0,0,0,0,-85,0, + -86,0,0,-134,0,-157,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-233,0,0, - 0,0,0,0,0,0,0,-234,0,0, - 0,0,-175,0,0,0,0,-235,0,0, - 0,0,0,0,-37,-236,-400,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,0,0,0,-238,0,-239,0, - 0,0,0,-450,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-154,0,0, + 0,-25,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-286, + 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,-401,0, + 0,0,0,0,-156,0,0,0,-380,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-240,0,-241,0,0,0,0, - -219,0,0,0,-246,-242,0,0,0,0, - 0,0,0,0,-172,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,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,-243,0,-89,0,0,-291, - 0,-159,0,0,0,0,0,0,0,0, + 0,0,0,0,-368,0,0,0,0,-149, + 0,0,0,-369,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-150,0,0,0, + -375,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-378,0, + 0,0,0,-151,0,0,0,-397,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-315,0,0,0,0,0,0, - 0,0,0,-301,0,-157,0,0,0,-326, + 0,0,0,0,0,-405,0,0,0,0, + -435,-17,-89,-47,0,0,0,0,-335,0, + 0,0,-408,-293,0,0,0,0,0,-409, + 0,-363,0,0,-262,0,0,-324,0,0, + 0,-214,0,0,-130,0,0,-448,0,0, + 0,0,-392,0,0,0,0,0,0,0, + 0,0,0,0,-90,-412,0,-404,0,0, + -379,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,-244,0,0, - 0,0,0,0,0,-247,0,-154,0,0, + 0,0,-416,0,0,0,0,0,0,0, + 0,-406,0,0,0,0,0,0,0,0, + 0,-301,0,0,0,0,0,0,0,0, + 0,0,0,-13,0,0,0,0,-258,0, + 0,0,0,0,-14,0,0,0,0,0, + 0,0,0,-152,0,0,0,0,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,-423,0,-15,-413,0,0,0, + -338,0,0,0,0,0,0,0,-292,0, + 0,0,0,-9,0,0,-353,0,0,0, + 0,0,0,-384,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, + -418,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-32,0,0,0,0, + -429,0,0,0,0,0,-5,0,0,-449, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-344,0, - 0,0,0,0,-156,0,0,0,-249,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-250,0,0,0, - 0,0,-148,0,0,0,0,0,0,0, + 0,0,-419,0,0,0,0,-451,0,0, + 0,0,0,0,0,-40,0,-98,0,0, + 0,0,-453,0,0,0,-218,-41,0,0, + 0,-454,0,0,0,-48,0,0,-273,0, + 0,0,-407,0,0,0,0,0,0,0, + 0,0,0,-427,0,0,0,-464,0,0, + 0,0,-153,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,-149, - 0,0,0,-251,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-511,0,0,0,0,-150,0,0,0, - -253,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-374,0, - 0,0,0,-151,0,0,0,-261,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-263,0,0,0,0, - -435,-355,-218,-47,0,-385,0,0,-335,0, - 0,0,-264,-356,0,0,0,0,0,-5, - 0,0,0,0,0,-460,-436,0,0,0, - 0,0,0,0,0,0,-10,-448,0,0, - 0,0,0,-195,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-90,0,0, - -274,0,-518,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-421,0,0, - 0,-275,-278,0,0,0,0,0,0,0, - 0,0,0,0,-327,-411,0,0,0,0, - -398,0,0,0,0,0,0,0,0,0, - 0,0,-13,0,0,0,0,-279,0,0, - 0,0,0,-14,0,0,0,0,0,-48, - 0,0,-152,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,-192,0,0,0,0,0,-280,-281, - 0,0,0,0,-104,0,0,-357,0,-115, - 0,0,0,-358,0,-187,-34,0,0,0, - 0,0,0,0,-266,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-457, + -126,0,0,0,0,-187,0,0,-410,0, + 0,0,0,0,0,0,0,-38,0,0, + 0,0,0,0,0,0,0,-139,0,0, + 0,0,-455,-195,0,-456,-173,0,0,0, + 0,-458,0,-474,-475,0,0,0,0,0, + 0,0,0,0,0,0,-421,0,0,-104, + 0,-476,0,0,0,0,0,0,0,0, + 0,0,0,0,-183,0,0,-477,-45,0, + 0,0,-117,0,-200,-270,-527,0,-359,-360, + 0,0,0,0,-482,0,-315,0,-478,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,0,0, - 0,-105,0,0,0,0,0,0,-304,0, - 0,0,0,0,0,-107,0,0,0,0, - 0,0,0,0,0,-384,0,0,0,-395, - -305,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -39,0,0,0,0,-310,-272,0,-255,-41, - 0,0,0,0,0,-407,0,0,0,0, - 0,0,0,0,0,0,-392,0,0,0, - 0,0,0,0,0,-153,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,-457,0,-480,-322,0,0,0,0, - 0,-312,0,0,0,0,0,-323,0,0, - -38,0,0,0,0,0,0,0,0,0, - -352,0,0,-404,0,0,0,0,0,0, - 0,0,0,0,0,0,-329,-346,0,0, - 0,0,0,0,0,0,-348,0,0,-197, - 0,0,-475,0,-364,0,0,0,0,0, - 0,0,0,0,0,0,0,-297,0,0, - -45,0,0,0,0,-419,0,0,0,-126, - -139,-368,0,0,0,0,0,0,-109,-477, - 0,0,0,0,0,-369,-375,0,0,0, - 0,0,0,0,0,0,-373,0,0,0, - 0,0,0,0,-378,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-397, - -405,0,0,-498,0,0,0,0,0,0, - 0,0,0,-490,0,0,-15,0,0,-140, - 0,-408,-173,0,0,0,0,0,0,0, - 0,0,0,0,-409,0,-413,-171,-359,0, - 0,0,0,0,0,-412,0,0,-179,0, - -504,0,0,0,0,0,-416,-418,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-9,0,-112,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -189,0,0,-429,0,0,0,0,0,0, - 0,0,0,0,-506,0,0,-396,0,0, - 0,0,0,0,-449,0,0,0,0,0, - 0,0,0,0,0,-117,0,0,0,0, - 0,-324,0,0,0,0,-451,-453,0,0, - -257,-510,0,0,-190,0,0,-454,0,-455, - 0,0,0,0,0,0,0,0,-415,0, - 0,-456,0,0,0,-248,0,0,0,0, - -458,0,0,0,0,0,0,0,0,0, - 0,-353,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-521,-299,0,0,0, - 0,0,0,0,-473,-474,0,-467,0,0, - 0,0,0,0,0,0,-476,0,0,0, - 0,0,-481,-427,0,0,-271,0,0,0, - -485,-11,-524,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-444, - -496,0,-194,0,0,-217,0,0,-452,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-254,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-383, - -446,0,0,0,0,0,0,0,-461,0, - 0,0,0,0,0,0,0,-143,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-500, - 0,0,-144,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-505,0,0,-308,0,0, - 0,0,0,0,0,0,0,0,-515,0, - 0,0,0,-517,0,0,0,0,0,0, - 0,-410,-102,0,0,0,0,0,0,0, - 0,0,0,0,0,-443,0,0,0,0, - 0,0,0,0,0,0,-276,0,0,0, - -462,0,-471,-345,0,0,0,0,0,0, - 0,0,0,0,-431,0,0,0,0,0, - -29,0,0,0,0,-422,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-430,0,0,0,0,0,0,0,0, - -270,0,0,0,0,0,-499,0,-256,0, - 0,0,0,0,0,0,0,0,0,-145, + 0,0,-374,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-174,0,0,-17,0,0,0,0,-282, + 0,0,-492,-486,0,0,0,0,-420,0, + 0,0,0,0,-447,-498,0,0,0,0, + 0,0,0,-506,0,0,0,0,0,-518, + -411,-528,0,0,0,0,0,0,0,-505, 0,0,0,0,0,0,0,0,0,0, - -470,0,0,0,-439,0,0,-325,0,0, - 0,0,0,0,-146,0,0,0,0,0, + 0,0,0,0,0,0,-415,0,0,0, + 0,0,-248,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-147,0, + -193,-58,0,0,0,0,0,0,0,0, + 0,0,0,-507,0,0,0,0,0,0, + -437,0,0,0,0,0,-500,0,0,0, + 0,0,0,0,0,0,-383,0,0,-268, + 0,0,0,0,0,-398,0,0,-272,0, + -511,0,0,0,0,-269,0,0,0,0, + 0,0,0,0,0,0,0,0,-46,0, + -105,-179,0,0,0,-460,0,-514,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-103,0,0,0,0,0,0,0, + 0,0,0,0,-524,0,0,-431,0,0, + 0,-345,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -336,0,0,0,0,-330,0,0,0,-289, - -382,0,0,0,0,0,0,-483,0,-295, - -440,-121,0,0,0,0,0,0,0,-296, - -302,0,0,0,0,0,0,-420,0,0, - 0,0,0,0,0,-484,0,0,0,0, + 0,0,-441,0,0,0,0,0,0,0, + 0,-529,0,0,0,0,-386,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,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,-109,-112,0,0,0,0,0, + 0,0,0,0,0,0,-143,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-488,0,0,0,-331,0,0, - 0,-361,0,0,0,0,0,-307,-334,-337, - -339,0,0,0,0,0,0,-341,-362,-370, - -371,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,-61, + 0,-144,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-470,0,0,-308,0,0,0, + 0,0,0,0,0,0,0,-516,0,0, + 0,0,-414,0,0,0,0,0,-515,0, + -328,-102,0,0,0,0,0,0,0,0, + 0,0,0,0,-309,0,0,0,0,0, + 0,0,0,0,0,-467,-257,-446,0,0, + 0,-299,0,0,0,0,0,-201,0,0, + 0,0,-471,0,0,0,0,0,0,-29, 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,-488,0,0, + -207,0,0,0,0,0,0,0,0,-366, + 0,0,0,0,0,-189,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,-63,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, + -220,0,-174,-255,0,0,0,0,-190,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-65,0,0, + -115,0,0,0,0,0,0,-194,0,-254, + -256,0,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,-66, + 0,0,0,0,0,0,0,0,0,-147, 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, + 0,-336,0,-289,-295,0,-140,0,0,-224, + 0,-382,0,0,0,0,-171,0,0,0, + 0,-440,-10,0,-245,0,0,0,0,0, + -296,0,0,0,0,-399,0,0,-302,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, - 0,0,0,0,0,-141,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-142,0,0, + 0,0,0,0,0,0,-246,0,0,0, + 0,0,0,0,-444,0,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,0,0,0,0,-307, + -291,-334,0,0,-337,0,0,0,0,-339, + -341,-362,0,0,0,0,0,0,0,-370, + -371,-426,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,-287,0,0,0,0,0,0,0,0, + -61,0,0,0,-513,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-508,0,0,0,0,-465,0, - 0,0,0,0,-468,-108,0,0,0,-441, - -478,-122,-338,0,0,0,0,-426,-434,-469, - 0,0,0,0,-376,-486,0,-495,0,0, - 0,0,0,0,0,0,0,-503,-328,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,-63,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,-381,-491, - -493,0,0,-437,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, - 0,0,0,0,-318,0,0,0,0,-425, + -66,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-433,-386,0,0,0,-292,0,0, - 0,0,0,-360,0,0,-300,0,0,-26, + 0,0,-67,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,-507,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,-332,0,0,0,0, - 0,0,-123,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-388, + 0,0,0,0,0,0,-141,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -42,0,0,0,0,0,0,0,0,0, - 0,0,-501,0,0,0,0,-58,0,0, - 0,0,0,0,-188,-502,0,0,0,0, - -519,-523,-309,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,-57,0,0,0,0, - 0,0,0,0,0,0,-520,0,0,0, - 0,0,0,-343,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, + -209,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-287,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-509,0,0,0,0,-326, + 0,0,0,0,0,-355,-108,0,0,0, + -356,-479,-424,-376,-357,0,0,0,-434,-469, + 0,0,0,0,-300,-381,-487,0,-489,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, - -350,-113,0,0,0,0,0,0,0,0, - 0,-389,0,0,0,0,0,0,0,0, - 0,0,-492,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-333,0,0,0, - 0,0,0,0,0,-267,0,0,0,0, - 0,-377,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-101,0,0,0,0,0,-118, - 0,0,0,0,0,0,0,0,0,-414, - 0,0,0,0,0,0,0,0,0,-489, + 0,0,0,0,0,0,0,0,0,-425, + 0,-358,-519,0,-395,0,0,0,0,0, + 0,0,0,0,0,0,-452,0,0,0, + -461,0,0,0,0,0,0,0,-396,0, + 0,0,0,0,0,-318,0,0,0,0, + -433,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-504,0,0,0,0, + 0,-462,0,0,0,0,0,0,0,0, + 0,0,0,-332,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-215,0,0,0,0,-103,0,0, - 0,0,0,0,0,0,0,0,-319,-320, - 0,0,0,0,0,0,0,-366,-222,0, + 0,0,0,0,-388,0,0,0,0,0, + 0,0,0,0,0,-443,0,0,0,0, + -422,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -314,0,0,0,0,0,0,0,0,0, + -42,0,0,0,0,0,0,-113,0,0, + 0,0,0,0,0,-319,0,-430,0,0, + 0,-217,0,0,0,0,-188,0,0,0, + 0,0,-439,0,0,0,-465,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-472,-484,-11,-468, + -493,0,0,0,0,0,0,0,0,0, + 0,-320,0,0,0,0,-343,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-340,0, + 0,0,0,-481,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-351,0,0,0, - 0,0,0,0,0,-393,0,0,0,-394, - 0,0,0,0,0,0,-417,0,0,0, - 0,0,0,0,0,-432,0,0,0,-445, + 0,0,0,0,-485,0,0,0,0,0, + 0,0,-333,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-490,-508,0, + 0,-389,0,0,0,-495,0,0,0,0, + 0,0,0,-494,0,0,0,0,0,0, + 0,0,0,0,-266,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-267,0,0,-520,0,0, + -526,0,-101,0,-499,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-494,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-321,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-321,-120,0,0,0, - 0,0,-114,0,0,0,0,0,-399,0, - 0,0,0,0,0,0,0,0,0,-125, - 0,0,0,-438,-135,0,0,0,0,0, - -259,0,0,0,0,0,0,0,0,0, - 0,-277,0,0,0,0,0,0,-424,0, - 0,0,0,0,0,0,0,-285,0,0, - 0,0,0,0,0,-479,0,0,0,0, - 0,0,0,0,0,0,0,-482,0,0, - 0,0,0,0,0,0,0,0,0,-124, - 0,0,0,0,0,0,0,-288,0,0, - 0,0,0,0,0,0,-466,0,-365,0, - 0,0,0,0,0,0,0,0,-509,0, + 0,0,0,-377,0,0,0,0,0,0, + 0,0,0,0,-502,0,-118,0,0,0, + 0,0,-503,-521,0,0,-525,-215,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-222,0,0,0,0,-314,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-340,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-351,0,0,0,-393,0, + 0,0,0,0,0,0,0,0,-491,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-394,0,0,0,0,-365, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-417,0,0,0,-432,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-445,0,0,0,0,0,0,0, + -496,0,-57,-438,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-114,0,0,0,0, + 0,0,0,0,-120,0,0,0,0,0, + 0,0,0,0,0,0,0,-125,0,0, + 0,0,0,0,0,-135,0,0,0,0, + 0,0,0,-510,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-259, + 0,0,0,0,0,0,0,-480,0,0, + 0,0,0,0,0,-277,0,0,0,0, + 0,0,0,0,-285,0,0,0,-121,0, + 0,-122,0,0,-483,0,0,0,0,0, + 0,0,0,-123,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-124, + 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,-466,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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; @@ -536,536 +533,534 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface BaseAction { public final static char baseAction[] = { - 168,4,54,83,83,32,32,66,66,38, - 38,42,42,191,191,192,192,193,193,1, + 170,4,54,83,83,32,32,66,66,38, + 38,40,40,193,193,194,194,195,195,1, 1,15,15,15,15,15,15,15,15,16, 16,16,14,11,11,8,8,8,8,8, 8,2,67,67,5,5,12,12,12,12, - 45,45,133,133,134,62,62,43,17,17, + 45,45,134,134,135,62,62,43,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,135,135, - 135,114,114,18,18,18,18,18,18,18, - 18,18,18,18,18,18,19,19,169,169, - 170,170,171,138,138,139,139,136,136,140, - 137,137,20,20,21,21,23,23,23,24, + 17,17,17,17,17,17,17,17,136,136, + 136,114,114,18,18,18,18,18,18,18, + 18,18,18,18,18,18,19,19,171,171, + 172,172,173,139,139,140,140,137,137,141, + 138,138,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,34,34,35,35,36,36,41, - 41,40,40,40,40,40,40,40,40,40, - 40,40,40,40,39,30,141,141,97,97, - 172,172,92,194,194,68,68,68,68,68, + 31,33,33,34,34,35,35,36,36,42, + 42,41,41,41,41,41,41,41,41,41, + 41,41,41,41,39,30,142,142,97,97, + 174,174,92,196,196,68,68,68,68,68, 68,68,68,68,69,69,69,65,65,56, - 56,173,173,70,70,70,103,103,174,174, - 71,71,71,175,175,72,72,72,72,72, + 56,175,175,70,70,70,103,103,176,176, + 71,71,71,177,177,72,72,72,72,72, 73,73,84,84,84,84,84,84,84,49, - 49,49,49,49,115,115,116,116,50,176, + 49,49,49,49,115,115,116,116,50,178, 22,22,22,22,22,48,48,87,87,87, - 87,87,148,148,143,143,143,143,143,144, - 144,144,145,145,145,146,146,146,147,147, - 147,88,88,88,88,88,89,89,89,13, + 87,87,149,149,144,144,144,144,144,145, + 145,145,146,146,146,147,147,147,148,148, + 148,88,88,88,88,88,89,89,89,13, 13,13,13,13,13,13,13,13,13,13, 100,120,120,120,120,120,120,118,118,118, - 119,119,150,150,149,149,122,122,104,79, - 79,80,81,52,47,151,151,53,51,86, - 86,152,152,142,142,123,124,124,76,76, - 153,153,63,63,63,59,59,58,64,64, + 119,119,151,151,150,150,122,122,104,79, + 79,80,81,52,47,152,152,53,51,86, + 86,153,153,143,143,123,124,124,76,76, + 154,154,63,63,63,59,59,58,64,64, 75,75,57,57,57,90,90,99,98,98, 61,61,60,60,55,55,44,101,101,101, 93,93,93,94,94,95,95,95,96,96, - 105,105,105,107,107,106,106,195,195,91, - 91,178,178,178,178,178,126,46,46,155, - 177,177,127,127,127,127,179,179,37,37, - 117,128,128,128,128,108,108,121,121,121, - 157,158,158,158,158,158,158,158,158,158, - 158,158,182,182,180,180,181,181,159,159, - 159,159,160,183,110,109,109,184,184,161, - 161,161,161,102,102,102,185,185,9,9, - 10,186,186,187,162,154,154,163,163,164, - 165,165,6,6,7,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,166,166,166, - 166,166,166,166,166,166,166,77,82,82, - 167,167,130,130,111,111,111,111,111,111, - 3,131,131,129,129,112,112,85,78,74, - 156,156,113,113,188,188,188,132,132,125, - 125,189,189,168,168,1132,41,1913,1904,1487, - 4483,36,995,33,37,1048,32,34,1871,31, - 29,58,1348,114,84,85,116,2155,1442,1519, - 1477,1577,1561,1645,1603,1139,1687,1213,1654,1696, - 1703,151,280,31,1374,166,152,3064,1411,1279, - 41,1092,38,162,4509,36,995,33,37,1048, - 65,34,2405,41,1092,38,239,4248,36,995, - 33,37,1048,32,34,1341,31,29,58,1348, - 114,84,85,116,357,1442,1519,1477,1577,1561, - 1645,2196,242,237,238,418,41,451,770,1441, - 4597,2360,41,1092,38,281,4248,36,995,33, - 37,1048,32,34,1341,31,29,58,1348,94, - 84,85,249,252,255,258,2871,330,356,1363, - 41,1092,38,772,4509,36,995,33,37,1048, - 64,34,1114,1771,1745,40,1864,770,2697,865, - 2125,2791,2800,4231,1603,41,1092,38,2634,4248, - 36,995,33,37,1048,32,34,1341,31,29, - 58,1348,114,84,85,116,346,1442,1519,1477, - 1577,1561,1645,1603,69,1687,2756,1654,1696,1703, - 151,2131,327,454,515,152,4488,4488,3007,1350, - 41,1787,49,1374,2000,48,995,391,425,516, - 1603,41,1092,38,2634,4248,36,995,33,37, - 1048,32,34,1341,31,29,58,1348,114,84, - 85,116,346,1442,1519,1477,1577,1561,1645,1603, - 872,1687,1237,1654,1696,1703,151,2700,336,335, - 515,152,249,3500,3007,1193,392,425,444,3047, - 3048,1114,41,289,68,516,511,2175,41,1092, - 38,3156,4702,36,995,33,37,1048,32,34, - 2924,509,3373,2379,2742,2397,496,1264,41,298, - 1603,41,1092,38,2634,4248,36,995,33,37, - 1048,32,34,1341,31,29,58,1348,114,84, - 85,116,346,1442,1519,1477,1577,1561,1645,1603, - 1539,1687,511,1654,1696,1703,151,328,327,3601, - 515,152,74,4488,3007,1514,2521,50,2316,2434, - 4039,2397,1114,41,2868,516,1877,41,1092,38, - 2634,4248,36,995,33,37,1048,32,34,1341, - 31,29,58,1348,114,84,85,116,346,1442, - 1519,1477,1577,1561,1645,1603,1527,1687,1738,1654, - 1696,1703,151,1238,1032,335,515,152,4372,2128, - 3007,1385,1027,41,395,329,239,1114,41,3135, - 3081,516,511,2175,41,1092,38,2128,4702,36, - 995,33,37,1048,67,34,1853,96,3116,2461, - 110,2397,251,237,238,3066,1669,41,1092,38, - 419,4248,36,995,33,37,1048,32,34,1341, - 31,29,58,1348,114,84,85,116,495,1442, - 1519,1477,1577,1561,1645,1603,2113,1687,512,1654, - 1696,1703,151,1714,66,1519,382,152,4020,4680, - 1741,41,1092,38,2201,4248,36,995,33,37, - 1048,32,34,1341,31,29,58,1348,114,84, - 85,116,385,1442,1519,1477,1577,1561,1645,1603, - 578,1687,1237,1654,1696,1703,151,101,2091,1820, - 382,152,4020,4120,1941,41,1092,38,1633,4248, - 36,995,33,37,1048,32,34,1341,31,29, - 58,1348,114,84,85,116,383,1442,1519,1477, - 1577,1561,1645,1603,3243,1687,403,1654,1696,1703, - 151,4018,66,386,382,152,4020,4559,2051,41, - 1092,38,1858,4248,36,995,33,37,1048,32, - 34,1341,31,29,58,1348,114,84,85,116, - 770,1442,1519,1477,1577,1561,1645,1603,359,1687, - 1275,1654,1696,1703,151,529,1986,387,376,152, - 3039,418,41,286,31,3457,4663,1853,3013,2051, - 41,1092,38,2104,4248,36,995,33,37,1048, - 32,34,1341,31,29,58,1348,114,84,85, - 116,1285,1442,1519,1477,1577,1561,1645,1603,353, - 1687,380,1654,1696,1703,151,418,41,286,376, - 152,4718,2051,41,1092,38,390,4248,36,995, - 33,37,1048,32,34,1341,31,29,58,1348, - 114,84,85,116,332,1442,1519,1477,1577,1561, - 1645,1603,2142,1687,375,1654,1696,1703,151,394, - 425,31,376,152,1853,3492,2051,41,1092,38, - 2156,4248,36,995,33,37,1048,32,34,1341, - 31,29,58,1348,114,84,85,116,2946,1442, - 1519,1477,1577,1561,1645,1603,326,1687,1853,1654, - 1696,1703,151,436,2250,374,166,152,2006,41, - 1092,38,2858,4248,36,995,33,37,1048,32, - 34,1341,31,29,58,1348,114,84,85,116, - 3950,1442,1519,1477,1577,1561,1645,1603,2344,1687, - 1407,1654,1696,1729,172,1264,3025,298,372,1813, - 41,1092,38,441,4248,36,995,33,37,1048, - 32,34,1341,31,29,58,1348,114,84,85, - 116,2733,1442,1519,1477,1577,1561,1645,1603,2201, - 1687,506,1654,1696,1703,151,3172,3601,2538,150, - 152,331,1114,41,1745,283,1114,41,1143,389, - 574,1374,78,2051,41,1092,38,1864,4248,36, - 995,33,37,1048,32,34,1341,31,29,58, - 1348,114,84,85,116,1237,1442,1519,1477,1577, - 1561,1645,1603,429,1687,1237,1654,1696,1703,151, - 2592,1374,2241,163,152,2051,41,1092,38,1385, - 4248,36,995,33,37,1048,32,34,1341,31, - 29,58,1348,114,84,85,116,3690,1442,1519, - 1477,1577,1561,1645,1603,1803,1687,3149,1654,1696, - 1703,151,1263,1374,458,162,152,2051,41,1092, - 38,4026,4248,36,995,33,37,1048,32,34, - 1341,31,29,58,1348,114,84,85,116,3246, - 1442,1519,1477,1577,1561,1645,1603,1178,1687,1237, - 1654,1696,1703,151,457,4134,1374,161,152,2051, - 41,1092,38,445,4248,36,995,33,37,1048, - 32,34,1341,31,29,58,1348,114,84,85, - 116,533,1442,1519,1477,1577,1561,1645,1603,501, - 1687,3149,1654,1696,1703,151,3972,1374,1374,160, - 152,2051,41,1092,38,523,4248,36,995,33, - 37,1048,32,34,1341,31,29,58,1348,114, - 84,85,116,1082,1442,1519,1477,1577,1561,1645, - 1603,2122,1687,1237,1654,1696,1703,151,565,59, - 2237,159,152,2051,41,1092,38,1188,4248,36, - 995,33,37,1048,32,34,1341,31,29,58, - 1348,114,84,85,116,1275,1442,1519,1477,1577, - 1561,1645,1603,414,1687,3149,1654,1696,1703,151, - 105,106,317,158,152,2051,41,1092,38,522, - 4248,36,995,33,37,1048,32,34,1341,31, - 29,58,1348,114,84,85,116,2201,1442,1519, - 1477,1577,1561,1645,1603,60,1687,1853,1654,1696, - 1703,151,1114,3588,395,157,152,2051,41,1092, - 38,290,4248,36,995,33,37,1048,32,34, - 1341,31,29,58,1348,114,84,85,116,30, - 1442,1519,1477,1577,1561,1645,1603,669,1687,1853, - 1654,1696,1703,151,1114,3221,582,156,152,2051, - 41,1092,38,1278,4248,36,995,33,37,1048, - 32,34,1341,31,29,58,1348,114,84,85, - 116,3263,1442,1519,1477,1577,1561,1645,1603,1408, - 1687,1853,1654,1696,1703,151,71,510,597,155, - 152,2051,41,1092,38,2529,4248,36,995,33, - 37,1048,32,34,1341,31,29,58,1348,114, - 84,85,116,77,1442,1519,1477,1577,1561,1645, - 1603,1366,1687,1853,1654,1696,1703,151,1402,2321, - 2166,154,152,2051,41,1092,38,2537,4248,36, - 995,33,37,1048,32,34,1341,31,29,58, - 1348,114,84,85,116,76,1442,1519,1477,1577, - 1561,1645,1603,1482,1687,1853,1654,1696,1703,151, - 153,1548,234,153,152,2051,41,1092,38,1667, - 4248,36,995,33,37,1048,32,34,1341,31, - 29,58,1348,114,84,85,116,61,1442,1519, - 1477,1577,1561,1645,1603,1932,1687,1853,1654,1696, - 1703,151,1938,1955,1614,167,152,2051,41,1092, - 38,1521,4248,36,995,33,37,1048,32,34, - 1341,31,29,58,1348,114,84,85,116,95, - 1442,1519,1477,1577,1561,1645,1603,2480,1687,1853, - 1654,1696,1703,151,2642,1394,2946,148,152,2314, - 41,1092,38,2625,4248,36,995,33,37,1048, - 32,34,1341,31,29,58,1348,114,84,85, - 116,60,1442,1519,1477,1577,1561,1645,1603,588, - 1687,1853,1654,1696,1703,151,675,1114,2571,197, - 152,2405,41,1092,38,1424,4248,36,995,33, - 37,1048,32,34,1341,31,29,58,1348,114, - 84,85,116,3590,1442,1519,1477,1577,1561,1645, - 1603,2139,1687,2640,1654,1696,1729,172,2405,41, - 1092,38,1714,4248,36,995,33,37,1048,32, - 34,1341,31,29,58,1348,114,84,85,116, - 521,1442,1519,1477,1577,1561,1645,1603,520,1687, - 79,1654,1696,1729,172,2226,41,1092,38,2657, - 4702,36,995,33,37,1048,66,34,1648,2405, - 41,1092,38,297,4248,36,995,33,37,1048, - 32,34,1341,31,29,58,1348,114,84,85, - 116,1897,1442,1519,1477,1577,1561,1645,1603,293, - 1687,1721,1654,1696,1729,172,2405,41,1092,38, - 421,4248,36,995,33,37,1048,32,34,1341, - 31,29,58,1348,114,84,85,116,2065,1442, - 1519,1477,1577,1561,1645,1603,1082,1687,2107,1654, - 1696,1729,172,2661,41,1092,38,358,1649,36, - 995,343,37,1048,529,2096,1981,2405,41,1092, - 38,420,4248,36,995,33,37,1048,32,34, - 1341,31,29,58,1348,114,84,85,116,147, - 1442,1519,1477,1577,1561,1645,1603,2875,1687,2947, - 1654,1696,1729,172,2450,41,1092,38,423,4248, - 36,995,33,37,1048,32,34,1341,31,29, - 58,1348,114,84,85,116,239,1442,1519,1477, - 1577,1561,1645,1603,1234,1687,762,1654,1696,1729, - 172,2661,41,1092,38,1853,830,36,995,46, - 37,1048,254,237,238,2405,41,1092,38,1528, - 4248,36,995,33,37,1048,32,34,1341,31, - 29,58,1348,114,84,85,116,3600,1442,1519, - 1477,1577,1561,1645,1603,1031,1687,31,1654,2308, - 1853,684,2405,41,1092,38,3207,4248,36,995, - 33,37,1048,32,34,1341,31,29,58,1348, - 114,84,85,116,1275,1442,1519,1477,1577,1561, - 1645,1603,98,1687,2128,2206,2405,41,1092,38, - 1853,4248,36,995,33,37,1048,32,34,1341, - 31,29,58,1348,114,84,85,116,756,1442, - 1519,1477,1577,1561,1645,1603,2058,2194,2405,41, - 1092,38,3699,4248,36,995,33,37,1048,32, - 34,1341,31,29,58,1348,114,84,85,116, - 291,1442,1519,1477,1577,1561,2149,2405,41,1092, - 38,2519,4248,36,995,33,37,1048,32,34, - 1341,31,29,58,1348,114,84,85,116,1728, - 1442,1519,1477,1577,2157,2405,41,1092,38,1971, - 4248,36,995,33,37,1048,32,34,1341,31, - 29,58,1348,114,84,85,116,2240,1442,1519, - 1477,1577,2159,2405,41,1092,38,401,4248,36, - 995,33,37,1048,32,34,1341,31,29,58, - 1348,114,84,85,116,770,1442,1519,1477,2038, - 2405,41,1092,38,2325,4248,36,995,33,37, - 1048,32,34,1341,31,29,58,1348,114,84, - 85,116,2635,1442,1519,1477,2071,2405,41,1092, - 38,2354,4248,36,995,33,37,1048,32,34, - 1341,31,29,58,1348,114,84,85,116,1275, - 1442,1519,1477,2098,2405,41,1092,38,1197,4248, - 36,995,33,37,1048,32,34,1341,31,29, - 58,1348,114,84,85,116,2668,1442,1519,1477, - 2108,262,1853,31,1930,535,2733,1226,4450,2661, - 41,1092,38,2637,1853,36,995,2967,37,1048, - 1027,41,395,236,393,425,2780,940,41,451, - 1226,164,4597,2250,75,302,354,31,1,188, - 3249,2634,535,3149,1426,2571,74,211,222,4422, - 210,219,220,221,223,521,164,177,31,346, - 236,2524,740,2869,208,3616,176,1226,164,191, - 175,178,179,180,181,182,188,3249,2924,355, - 3149,3007,2585,2587,211,222,4422,210,219,220, - 221,223,507,164,177,684,1275,347,539,583, - 352,684,170,176,189,1137,192,175,178,179, - 180,181,182,1650,41,1092,38,722,2618,36, - 995,342,37,1048,2495,41,1143,389,629,2931, - 1027,41,395,2405,41,1092,38,244,4248,36, - 995,33,37,1048,32,34,1341,31,29,58, - 1348,114,84,85,116,31,1442,1519,2118,820, - 4460,280,301,2552,41,287,292,4150,445,2715, - 2768,323,850,325,2548,31,318,782,1853,2696, - 1114,41,1143,389,1853,239,1397,1398,355,908, - 448,3047,3048,1595,2592,1515,41,1092,38,3348, - 246,36,995,342,37,1048,347,539,583,352, - 73,242,237,238,906,97,72,280,110,1722, - 41,1092,38,4444,281,36,995,342,37,1048, - 3217,810,31,402,2915,4315,4255,2588,1780,2595, - 2915,249,252,255,258,2871,31,3131,239,4150, - 628,354,772,320,2796,325,2661,41,1092,38, - 1853,2792,36,995,3027,37,1048,2697,865,2125, - 2791,2800,4231,4150,247,237,238,323,850,325, - 282,2945,318,782,332,338,2779,1426,2571,1023, - 2973,369,63,2634,355,1224,1496,41,1092,38, - 3404,4488,36,995,342,37,1048,1114,41,1143, - 389,2623,347,539,583,352,2405,41,1092,38, - 1137,4248,36,995,33,37,1048,32,34,1341, - 31,29,58,1348,114,84,85,116,2686,1442, - 1519,2126,239,349,432,2780,2838,535,3688,535, - 4150,239,1715,335,323,850,325,4577,2889,318, - 782,1861,41,1778,2949,236,4006,4028,257,237, - 238,66,1435,164,1714,164,4586,260,237,238, - 364,188,3249,188,3249,3149,4304,2097,2702,211, - 222,4422,210,219,220,221,223,2821,57,177, - 2552,41,284,436,1736,945,927,535,176,292, - 203,3213,175,178,179,180,181,182,2907,311, - 315,1194,41,1143,389,236,1114,41,1143,389, - 2593,2593,2949,164,1226,1226,2274,2592,3214,1429, - 523,188,3249,677,535,3149,2412,1091,3084,211, - 222,4422,210,219,220,221,223,2762,57,177, - 168,168,236,431,1736,2955,1779,3397,176,2756, - 164,186,175,178,179,180,181,182,188,3249, - 2962,2971,3149,2690,1394,3156,211,222,4422,210, - 219,220,221,223,610,405,177,2883,535,327, - 31,858,2777,1657,1226,176,529,2634,184,175, - 178,179,180,181,182,2891,236,2762,31,2593, - 4632,204,1226,1226,164,2623,2435,1815,1899,327, - 164,697,188,3249,4488,535,3149,2719,2978,1486, - 211,222,4422,210,219,220,221,223,164,168, - 177,52,2316,236,1550,304,31,2245,2634,176, - 2554,164,185,175,178,179,180,181,182,188, - 3249,31,355,3149,2963,1110,2623,211,222,4422, - 210,219,220,221,223,784,335,177,1853,535, - 347,539,583,352,363,2982,176,520,345,195, - 175,178,179,180,181,182,2114,236,1941,1820, - 1821,4488,2910,41,284,164,2770,2983,88,721, - 62,1397,871,188,3249,2589,535,3149,3002,2425, - 3003,211,222,4422,210,219,220,221,223,2681, - 2452,177,3007,2511,236,503,1114,41,1143,389, - 176,3008,164,3364,175,178,179,180,181,182, - 188,3249,66,336,3149,502,872,4590,211,222, - 4422,210,219,220,221,223,958,1397,177,3682, - 535,355,3131,57,500,3016,175,176,1275,54, - 200,175,178,179,180,181,182,2984,236,349, - 539,583,352,1354,2762,190,164,1114,41,1745, - 288,2967,31,1045,188,3249,2634,535,3149,337, - 338,785,211,222,4422,210,219,220,221,223, - 2762,3030,177,31,346,236,1535,2797,3131,2762, - 2634,176,228,164,194,175,178,179,180,181, - 182,188,3249,31,309,3149,3007,3187,346,211, - 222,4422,210,219,220,221,223,505,308,177, - 2111,1114,41,298,2634,3689,338,187,176,2762, - 866,202,175,178,179,180,181,182,2405,41, - 1092,38,2623,4248,36,995,33,37,1048,32, - 34,1341,31,29,58,1348,114,84,85,116, - 2895,1442,1939,2405,41,1092,38,206,4248,36, - 995,33,37,1048,32,34,1341,31,29,58, - 1348,114,84,85,116,2989,1442,1946,1786,41, - 2898,38,3404,4488,36,995,342,37,1048,1866, - 41,1092,38,722,727,36,995,342,37,1048, - 5300,503,66,1227,41,1092,38,4606,4488,36, - 995,342,37,1048,5300,3403,2531,41,1092,38, - 3404,502,36,995,342,37,1048,1114,41,1745, - 285,2762,4150,2762,327,335,323,850,325,4488, - 500,318,782,4150,5300,66,3580,323,850,325, - 4610,2100,318,782,777,2634,1853,4150,5300,5300, - 336,323,850,325,355,524,319,782,4304,205, - 4150,307,1853,346,323,850,325,3036,355,318, - 782,2763,347,539,583,352,4521,2457,109,31, - 525,335,1435,4147,5300,1126,349,539,583,352, - 2405,41,1092,38,3240,4248,36,995,33,37, - 1048,32,34,1341,31,29,58,1348,114,84, - 85,116,1657,1981,4382,1550,2634,5300,5300,2634, - 1114,41,1745,2856,5300,5300,5300,416,2907,312, - 315,1114,41,298,2623,2797,5300,2623,2221,41, - 1745,283,5300,384,5300,2405,41,1092,38,2369, - 4248,36,995,33,37,1048,32,34,1341,31, - 29,58,1348,114,84,85,116,527,1983,2405, - 41,1092,38,2862,4248,36,995,33,37,1048, - 32,34,1341,31,29,58,1348,114,84,85, - 116,2703,2029,5300,5300,2634,1114,2942,1745,82, - 31,2809,5300,363,2605,2634,503,454,2762,5300, - 31,2826,31,236,4196,2634,2634,2205,1820,1821, - 31,31,5300,236,4407,3571,502,440,1114,41, - 1143,389,427,236,346,3674,2762,213,222,4422, - 212,219,220,221,223,501,209,213,222,4422, - 212,219,220,221,223,2848,3007,213,222,4422, - 212,219,220,221,223,430,5300,1829,214,216, - 218,299,300,2523,207,224,215,217,214,216, - 218,299,300,2523,5300,224,215,217,214,216, - 218,299,300,2523,2762,224,215,217,2221,41, - 1745,2956,1114,41,1745,2990,4079,2479,2685,31, - 31,31,1331,993,3581,3280,4079,2606,31,31, - 31,31,2516,2611,1992,2884,4079,3198,2405,41, - 1092,38,303,4248,36,995,33,37,1048,32, - 34,1341,31,29,58,1348,114,84,85,93, - 2405,1771,1092,1813,5300,4248,36,995,33,37, - 1048,32,34,1341,31,29,58,1348,114,84, - 85,92,2405,41,1092,38,5300,4248,36,995, - 33,37,1048,32,34,1341,31,29,58,1348, - 114,84,85,91,2405,41,1092,38,5300,4248, - 36,995,33,37,1048,32,34,1341,31,29, - 58,1348,114,84,85,90,2405,41,1092,38, - 5300,4248,36,995,33,37,1048,32,34,1341, - 31,29,58,1348,114,84,85,89,2405,41, - 1092,38,5300,4248,36,995,33,37,1048,32, - 34,1341,31,29,58,1348,114,84,85,88, - 2405,41,1092,38,5300,4248,36,995,33,37, - 1048,32,34,1341,31,29,58,1348,114,84, - 85,87,2405,41,1092,38,5300,4248,36,995, - 33,37,1048,32,34,1341,31,29,58,1348, - 114,84,85,86,2269,41,1092,38,5300,4248, - 36,995,33,37,1048,32,34,1341,31,29, - 58,1348,114,84,85,112,2405,41,1092,38, - 5300,4248,36,995,33,37,1048,32,34,1341, - 31,29,58,1348,114,84,85,118,2405,41, - 1092,38,5300,4248,36,995,33,37,1048,32, - 34,1341,31,29,58,1348,114,84,85,117, - 2405,41,1092,38,5300,4248,36,995,33,37, - 1048,32,34,1341,31,29,58,1348,114,84, - 85,115,2405,41,1092,38,5300,4248,36,995, - 33,37,1048,32,34,1341,31,29,58,1348, - 114,84,85,113,1529,41,1092,38,3404,1853, - 36,995,342,37,1048,1853,1330,41,1143,389, - 31,31,31,2842,1226,535,2634,2634,31,31, - 31,5300,3591,1905,956,2720,31,5300,31,2634, - 2994,449,3994,346,346,236,5300,381,2789,327, - 4005,164,3359,57,4488,5300,5300,236,4150,1736, - 196,55,323,850,325,4393,3007,318,782,213, - 222,4422,212,219,220,221,223,1855,2673,5300, - 1435,213,222,4422,212,219,220,221,223,2737, - 1853,1853,5300,2634,1114,41,1143,389,5300,5300, - 214,216,218,299,300,2523,4508,518,215,217, - 5300,236,214,216,218,299,300,2523,5300,517, - 215,217,3041,3095,4080,31,5300,311,315,1226, - 2914,450,5300,5300,2634,213,222,4422,212,219, - 220,221,223,2930,1237,5300,4261,2634,853,41, - 1143,389,236,5300,2593,164,3084,1397,1226,5300, - 1114,41,1143,389,2512,236,214,216,218,299, - 300,2523,1853,225,215,217,213,222,4422,212, - 219,220,221,223,168,280,3149,102,2762,213, - 222,4422,212,219,220,221,223,57,5300,5300, - 379,5300,5300,1736,3132,919,1397,214,216,218, - 299,300,2523,31,310,215,217,2634,3131,5300, - 214,216,218,299,300,2523,2573,497,215,217, - 1799,41,2898,38,3404,346,36,995,342,37, - 1048,2556,41,1143,389,5300,2931,5300,2897,5300, - 5300,3098,5300,1853,245,334,338,3007,2506,41, - 1143,389,80,5300,5300,1201,1853,3131,1862,2634, - 4691,2762,2762,2531,41,1092,38,3404,280,36, - 995,342,37,1048,4150,1479,5300,236,323,850, - 325,5300,5300,318,782,57,31,5300,1563,377, - 535,1736,239,937,3700,338,777,1853,5300,229, - 201,1038,406,2705,1318,41,1092,38,346,4488, - 36,995,342,37,1048,1853,164,4150,243,237, - 238,323,850,325,5300,1647,318,782,5300,4262, - 3007,281,407,408,409,299,300,2523,5300,1224, - 5300,1258,5300,5300,5300,5300,5300,3223,250,253, - 256,259,2871,5300,5300,5300,5300,2488,4150,772, - 5300,336,323,850,325,5300,5300,321,782,5300, - 5300,2763,1194,41,1143,389,4521,5300,5300,417, - 2907,5300,1318,41,1092,38,5300,4488,36,995, - 342,37,1048,2531,41,1092,38,3404,5300,36, - 995,342,37,1048,5300,5300,5300,1397,5300,57, - 5300,5300,410,412,5300,1736,1289,55,5300,5300, - 2634,4691,2612,41,1092,38,2806,5300,36,995, - 342,37,1048,5300,791,1120,4150,4416,236,336, - 323,850,325,5300,1922,319,782,4150,2634,4488, - 1922,323,850,325,2634,4488,318,782,5300,5300, - 1237,5300,1038,406,2705,5300,2623,5300,3131,3345, - 1506,5300,2623,2862,2634,5300,4150,5300,5300,5300, - 320,2796,325,2799,41,1143,389,5300,1114,41, - 1143,389,346,407,408,409,299,300,2523,31, - 31,335,3149,1226,1226,3701,338,335,2582,1543, - 41,1143,389,4488,4038,5300,379,5300,2488,5300, - 57,1716,41,1143,389,57,1736,5300,1272,164, - 164,1736,428,1822,3373,363,5300,5300,2524,2688, - 3116,363,5300,5300,5300,2690,57,5300,5300,1689, - 1820,1821,1736,5300,1570,1689,1820,1821,57,1543, - 41,1143,389,5300,1736,4508,55,5300,5300,5300, - 5300,4138,5300,410,413,3688,5300,1716,41,1143, - 389,5300,5300,1356,5300,5300,1716,41,1143,389, - 1716,41,1143,389,5300,5300,57,1716,41,1143, - 389,5300,1736,5300,55,5300,2501,41,1143,389, - 2784,41,1143,389,57,4019,5300,5300,5300,5300, - 1736,2766,55,57,5300,5300,5300,57,5300,1736, - 5300,55,2857,1736,57,55,535,5300,5300,2817, - 1736,5300,55,57,5300,5300,104,57,2936,1736, - 5300,55,3608,1736,346,55,31,31,4256,4084, - 1226,535,164,1114,41,1143,389,5300,3281,2593, - 5300,196,3511,1226,5300,5300,4393,5300,5300,346, - 1114,41,1143,389,2593,31,164,164,1226,535, - 5300,1114,41,1143,389,2694,1773,5300,5300,168, - 57,3007,1114,41,1143,389,1736,346,2910,2765, - 5300,5300,1731,2634,168,164,5300,57,1114,41, - 1143,389,5300,1736,1647,716,31,5300,57,3007, - 535,346,5300,5300,1736,198,2284,5300,31,57, - 1857,528,535,5300,5300,1736,5300,937,346,5300, - 31,5300,5300,3007,2634,57,164,5300,31,5300, - 346,1736,2634,3122,531,196,3426,31,164,31, - 4393,2634,346,1226,5300,5300,5300,196,5300,31, - 346,3999,4393,1226,5300,5300,5300,5300,5300,346, - 5300,5300,5300,5300,3007,5300,5300,5300,5300,164, - 5300,5300,3007,5300,5300,1863,4178,5300,1527,164, - 5300,3007,5300,2290,5300,5300,5300,5300,4297,5300, - 5300,5300,532,5300,5300,5300,5300,5300,5300,4081, - 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,4162,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,5300,5300,5300,5300,3515,5300, - 0,922,1,0,2530,1,0,1,2,5320, - 0,1,2,5319,0,45,5320,0,45,5319, - 0,1221,322,0,452,2247,0,438,2568,0, - 2665,35,0,5306,1,0,5305,1,0,5541, - 248,0,5540,248,0,5641,248,0,5640,248, - 0,5568,248,0,5567,248,0,5566,248,0, - 5565,248,0,5564,248,0,5563,248,0,5562, - 248,0,5561,248,0,5579,248,0,5578,248, - 0,5577,248,0,5576,248,0,5575,248,0, - 5574,248,0,5573,248,0,5572,248,0,5571, - 248,0,5570,248,0,5569,248,0,45,248, - 5320,0,45,248,5319,0,5344,248,0,2665, - 388,0,56,5320,0,56,5319,0,44,5320, - 0,44,5319,0,2457,134,0,1,442,0, - 456,1361,0,455,1401,0,41,39,0,5344, - 1,0,45,1,0,45,2,5320,0,45, - 2,5319,0,2665,47,0,2513,99,0,38, - 40,0,45,672,0,51,5342,0,51,43, - 0,1,994,0,1,5579,0,1,5578,0, - 1,5577,0,1,5576,0,1,5575,0,1, - 5574,0,1,5573,0,1,5572,0,1,5571, - 0,1,5570,0,1,5569,0,45,1,5320, - 0,45,1,5319,0,729,1,0,499,2506, - 0,5344,235,1,0,45,235,1,0,235, - 415,0,43,5320,0,43,5319,0,244,2940, - 0,389,38,0,38,389,0,388,35,0, - 35,388,0,5320,56,0,5319,56,0,2457, - 136,0,2457,135,0,5633,443,0,2685,443, - 0,5310,404,0,5309,404,0,1,4263,0, - 1,672,0,1,3421,0,235,414,0,55, - 43,0,1,100,0,43,55,0,5342,53, - 0,53,43,0,1,5633,0,1,2685,0, - 45,1,2,5320,0,45,1,2,5319,0, - 43,5320,2,0,43,5319,2,0,5320,42, - 0,5319,42,0,499,4025,0,235,1,0, - 235,227,0,5633,103,0,2685,103,0,41, - 81,0,235,226,0,285,3029,0,5312,1, - 0,5308,1,0,235,1,3127,0,5309,235, - 0,3128,235,0,3196,235,0,10,12,0, - 8,10,12,0,8,12,0,193,3186,0 + 105,105,105,107,107,106,106,197,197,91, + 91,180,180,180,180,180,126,46,46,156, + 179,179,127,127,127,127,128,158,181,181, + 37,37,117,129,129,129,129,108,108,121, + 121,121,159,160,160,160,160,160,160,160, + 160,160,160,160,184,184,182,182,183,183, + 161,161,161,161,162,185,110,109,109,186, + 186,163,163,163,163,102,102,102,187,187, + 9,9,10,188,188,189,164,155,155,165, + 165,166,167,167,6,6,7,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,168, + 168,168,168,168,168,168,168,168,168,77, + 82,82,169,169,131,131,111,111,111,111, + 111,111,3,132,132,130,130,112,112,85, + 78,74,157,157,113,113,190,190,190,133, + 133,125,125,191,191,170,170,1132,41,1779, + 1777,1242,4498,36,954,33,37,1078,32,34, + 1769,31,29,58,1269,114,84,85,116,1075, + 1287,1304,1295,1389,1381,1478,1425,1213,1511,1481, + 1493,1519,1521,151,280,418,41,286,166,152, + 4666,2518,41,1113,38,1786,4513,36,954,33, + 37,1078,65,34,2402,41,1113,38,239,3112, + 36,954,33,37,1078,32,34,1261,31,29, + 58,1269,114,84,85,116,357,1287,1304,1295, + 1389,1381,1478,1908,242,237,238,418,41,453, + 1114,4298,4615,2357,41,1113,38,281,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,94,84,85,249,252,255,258,2898,2888, + 41,287,2110,41,1113,38,813,4736,36,954, + 33,37,1078,32,34,2802,511,1114,3034,1751, + 770,863,727,869,2179,2818,4241,1603,41,1113, + 38,2655,3112,36,954,33,37,1078,32,34, + 1261,31,29,58,1269,114,84,85,116,346, + 1287,1304,1295,1389,1381,1478,1425,69,1511,2906, + 1493,1519,1521,151,1300,2124,1483,1230,517,152, + 3203,2696,1114,1605,1597,40,74,1799,1114,41, + 1121,391,518,1603,41,1113,38,2655,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,114,84,85,116,346,1287,1304,1295,1389, + 1381,1478,1425,996,1511,57,1493,1519,1521,151, + 1797,1554,336,1383,517,152,1569,2696,239,393, + 427,1610,446,2613,2741,2888,41,284,518,513, + 2969,41,1113,38,3093,4513,36,954,33,37, + 1078,64,34,1654,251,237,238,1949,1536,1951, + 1114,41,289,1603,41,1113,38,2655,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,114,84,85,116,346,1287,1304,1295,1389, + 1381,1478,1425,3181,1511,513,1493,1519,1521,151, + 421,2495,1526,1398,517,152,4518,2696,1982,2089, + 2823,50,1941,1959,330,1951,246,2116,518,1805, + 41,1113,38,2655,3112,36,954,33,37,1078, + 32,34,1261,31,29,58,1269,114,84,85, + 116,346,1287,1304,1295,1389,1381,1478,1425,1190, + 1511,66,1493,1519,1521,151,4688,940,41,453, + 517,152,4615,2696,239,1351,41,1650,49,31, + 239,48,954,2714,518,513,68,2110,41,1113, + 38,497,4736,36,954,33,37,1078,67,34, + 247,237,238,1966,1402,1951,254,237,238,1934, + 41,1113,38,1297,3112,36,954,33,37,1078, + 32,34,1261,31,29,58,1269,114,84,85, + 116,535,1287,1304,1295,1389,1381,1478,1425,4262, + 1511,514,1493,1519,1521,151,1114,41,2180,4050, + 382,152,1669,41,1113,38,2337,3112,36,954, + 33,37,1078,32,34,1261,31,29,58,1269, + 114,84,85,116,430,1287,1304,1295,1389,1381, + 1478,1425,3257,1511,66,1493,1519,1521,151,4545, + 559,447,4050,382,152,1610,2402,41,1113,38, + 2793,3112,36,954,33,37,1078,32,34,1261, + 31,29,58,1269,114,84,85,116,2967,1287, + 1304,1295,1389,1381,1478,1425,2148,1511,2500,1493, + 1923,2527,450,2613,2741,3401,388,3374,405,1114, + 2000,1869,41,1113,38,1654,3112,36,954,33, + 37,1078,32,34,1261,31,29,58,1269,114, + 84,85,116,2562,1287,1304,1295,1389,1381,1478, + 1425,2655,1511,332,1493,1519,1521,151,498,389, + 3374,4050,382,152,1190,3548,2044,41,1113,38, + 3765,3112,36,954,33,37,1078,32,34,1261, + 31,29,58,1269,114,84,85,116,1034,1287, + 1304,1295,1389,1381,1478,1425,353,1511,2686,1493, + 1519,1521,151,1114,41,3529,3486,376,152,2044, + 41,1113,38,2116,3112,36,954,33,37,1078, + 32,34,1261,31,29,58,1269,114,84,85, + 116,1548,1287,1304,1295,1389,1381,1478,1425,684, + 1511,293,1493,1519,1521,151,1271,2711,380,3374, + 376,152,2044,41,1113,38,1271,3112,36,954, + 33,37,1078,32,34,1261,31,29,58,1269, + 114,84,85,116,456,1287,1304,1295,1389,1381, + 1478,1425,2712,1511,101,1493,1519,1521,151,2713, + 2747,506,375,376,152,2044,41,1113,38,1260, + 3112,36,954,33,37,1078,32,34,1261,31, + 29,58,1269,114,84,85,116,1835,1287,1304, + 1295,1389,1381,1478,1425,1321,1511,1346,1493,1519, + 1521,151,4565,438,501,374,166,152,1999,41, + 1113,38,1610,3112,36,954,33,37,1078,32, + 34,1261,31,29,58,1269,114,84,85,116, + 78,1287,1304,1295,1389,1381,1478,1425,3393,1511, + 79,1493,1519,1536,172,327,2552,447,372,2260, + 3203,1741,41,1113,38,2803,3112,36,954,33, + 37,1078,32,34,1261,31,29,58,1269,114, + 84,85,116,523,1287,1304,1295,1389,1381,1478, + 1425,1725,1511,1145,1493,1519,1521,151,2717,1318, + 1979,331,150,152,3182,460,1114,41,1121,391, + 791,162,335,2044,41,1113,38,1751,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,114,84,85,116,414,1287,1304,1295,1389, + 1381,1478,1425,431,1511,3402,1493,1519,1521,151, + 1114,41,1597,283,163,152,2044,41,1113,38, + 2167,3112,36,954,33,37,1078,32,34,1261, + 31,29,58,1269,114,84,85,116,523,1287, + 1304,1295,1389,1381,1478,1425,356,1511,60,1493, + 1519,1521,151,1114,41,1597,288,162,152,2044, + 41,1113,38,395,3112,36,954,33,37,1078, + 32,34,1261,31,29,58,1269,114,84,85, + 116,669,1287,1304,1295,1389,1381,1478,1425,582, + 1511,1411,1493,1519,1521,151,1114,41,1597,285, + 161,152,2044,41,1113,38,1409,3112,36,954, + 33,37,1078,32,34,1261,31,29,58,1269, + 114,84,85,116,71,1287,1304,1295,1389,1381, + 1478,1425,510,1511,597,1493,1519,1521,151,1114, + 41,1597,2178,160,152,2044,41,1113,38,443, + 3112,36,954,33,37,1078,32,34,1261,31, + 29,58,1269,114,84,85,116,2748,1287,1304, + 1295,1389,1381,1478,1425,1366,1511,2223,1493,1519, + 1521,151,2352,41,1597,283,159,152,2044,41, + 1113,38,1367,3112,36,954,33,37,1078,32, + 34,1261,31,29,58,1269,114,84,85,116, + 1735,1287,1304,1295,1389,1381,1478,1425,2097,1511, + 2760,1493,1519,1521,151,1114,2445,1597,82,158, + 152,2044,41,1113,38,1482,3112,36,954,33, + 37,1078,32,34,1261,31,29,58,1269,114, + 84,85,116,153,1287,1304,1295,1389,1381,1478, + 1425,1860,1511,234,1493,1519,1521,151,2352,41, + 1597,2454,157,152,2044,41,1113,38,1683,3112, + 36,954,33,37,1078,32,34,1261,31,29, + 58,1269,114,84,85,116,1792,1287,1304,1295, + 1389,1381,1478,1425,1883,1511,1899,1493,1519,1521, + 151,1114,41,1597,2508,156,152,2044,41,1113, + 38,1914,3112,36,954,33,37,1078,32,34, + 1261,31,29,58,1269,114,84,85,116,2498, + 1287,1304,1295,1389,1381,1478,1425,2644,1511,2582, + 1493,1519,1521,151,2821,588,317,1610,155,152, + 2044,41,1113,38,675,3112,36,954,33,37, + 1078,32,34,1261,31,29,58,1269,114,84, + 85,116,2074,1287,1304,1295,1389,1381,1478,1425, + 2179,1511,403,1493,1519,1521,151,2819,2460,1924, + 1610,154,152,2044,41,1113,38,2084,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,114,84,85,116,2127,1287,1304,1295,1389, + 1381,1478,1425,2146,1511,407,1493,1519,1521,151, + 459,2232,2670,147,153,152,2044,41,1113,38, + 2549,3112,36,954,33,37,1078,32,34,1261, + 31,29,58,1269,114,84,85,116,2799,1287, + 1304,1295,1389,1381,1478,1425,1139,1511,762,1493, + 1519,1521,151,4003,47,830,1031,167,152,2044, + 41,1113,38,756,3112,36,954,33,37,1078, + 32,34,1261,31,29,58,1269,114,84,85, + 116,1554,1287,1304,1295,1389,1381,1478,1425,1921, + 1511,2548,1493,1519,1521,151,1027,41,397,2029, + 148,152,2307,41,1113,38,2149,3112,36,954, + 33,37,1078,32,34,1261,31,29,58,1269, + 114,84,85,116,1193,1287,1304,1295,1389,1381, + 1478,1425,2781,1511,1812,1493,1519,1521,151,249, + 2233,2638,2707,197,152,2402,41,1113,38,1610, + 3112,36,954,33,37,1078,32,34,1261,31, + 29,58,1269,114,84,85,116,2597,1287,1304, + 1295,1389,1381,1478,1425,2813,1511,2814,1493,1519, + 1536,172,2402,41,1113,38,2954,3112,36,954, + 33,37,1078,32,34,1261,31,29,58,1269, + 114,84,85,116,569,1287,1304,1295,1389,1381, + 1478,1425,384,1511,328,1493,1519,1536,172,2220, + 41,1113,38,1190,4736,36,954,33,37,1078, + 66,34,59,2402,41,1113,38,297,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,114,84,85,116,326,1287,1304,1295,1389, + 1381,1478,1425,2432,1511,2835,1493,1519,1536,172, + 2402,41,1113,38,423,3112,36,954,33,37, + 1078,32,34,1261,31,29,58,1269,114,84, + 85,116,359,1287,1304,1295,1389,1381,1478,1425, + 531,1511,2987,1493,1519,1536,172,2796,41,1113, + 38,1654,2831,36,954,343,37,1078,2994,2674, + 2996,2402,41,1113,38,422,3112,36,954,33, + 37,1078,32,34,1261,31,29,58,1269,114, + 84,85,116,2597,1287,1304,1295,1389,1381,1478, + 1425,3715,1511,2534,1493,1519,1536,172,2447,41, + 1113,38,425,3112,36,954,33,37,1078,32, + 34,1261,31,29,58,1269,114,84,85,116, + 239,1287,1304,1295,1389,1381,1478,1425,2521,1511, + 2314,1493,1519,1536,172,2796,41,1113,38,1190, + 945,36,954,46,37,1078,257,237,238,2402, + 41,1113,38,2694,3112,36,954,33,37,1078, + 32,34,1261,31,29,58,1269,114,84,85, + 116,3981,1287,1304,1295,1389,1381,1478,1425,31, + 1511,31,1915,2917,1145,3523,2402,41,1113,38, + 2958,3112,36,954,33,37,1078,32,34,1261, + 31,29,58,1269,114,84,85,116,358,1287, + 1304,1295,1389,1381,1478,1425,531,1906,2402,41, + 1113,38,1736,3112,36,954,33,37,1078,32, + 34,1261,31,29,58,1269,114,84,85,116, + 2935,1287,1304,1295,1389,1381,1873,2402,41,1113, + 38,2255,3112,36,954,33,37,1078,32,34, + 1261,31,29,58,1269,114,84,85,116,1610, + 1287,1304,1295,1389,1880,2402,41,1113,38,1487, + 3112,36,954,33,37,1078,32,34,1261,31, + 29,58,1269,114,84,85,116,329,1287,1304, + 1295,1389,1898,2402,41,1113,38,2255,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,114,84,85,116,2902,1287,1304,1295,1829, + 2402,41,1113,38,2561,3112,36,954,33,37, + 1078,32,34,1261,31,29,58,1269,114,84, + 85,116,105,1287,1304,1295,1837,2402,41,1113, + 38,1919,3112,36,954,33,37,1078,32,34, + 1261,31,29,58,1269,114,84,85,116,3002, + 1287,1304,1295,1855,2402,41,1113,38,3006,3112, + 36,954,33,37,1078,32,34,1261,31,29, + 58,1269,114,84,85,116,3007,1287,1304,1295, + 1863,262,1348,31,1542,537,2655,687,4487,2796, + 41,1113,38,3008,2623,36,954,1827,37,1078, + 2976,1034,3001,236,2644,2919,41,298,2978,41, + 284,164,418,41,286,1190,354,4745,1,188, + 4127,3087,537,1114,41,1121,391,211,222,4474, + 210,219,220,221,223,31,1922,177,2597,743, + 236,2919,2550,298,2938,3639,176,30,164,191, + 175,178,179,180,181,182,188,4127,3087,355, + 434,2255,996,3011,211,222,4474,210,219,220, + 221,223,2212,505,177,1741,4110,347,541,1401, + 352,3639,1145,176,189,1134,192,175,178,179, + 180,181,182,504,1322,41,1113,38,1345,1434, + 36,954,342,37,1078,2492,41,1121,391,2171, + 2959,3093,3732,503,2402,41,1113,38,244,3112, + 36,954,33,37,1078,32,34,1261,31,29, + 58,1269,114,84,85,116,66,1287,1304,1871, + 96,4569,280,110,1610,2171,2106,2819,738,2539, + 3179,2854,323,2342,325,2655,2568,318,1999,853, + 41,1121,391,327,1348,392,239,66,2655,355, + 868,531,4595,236,2796,41,1113,38,52,1941, + 36,954,2697,37,1078,304,2644,347,541,1401, + 352,3013,242,237,238,780,280,213,222,4474, + 212,219,220,221,223,281,1650,41,1113,38, + 4433,3012,36,954,342,37,1078,1027,41,397, + 2566,355,249,252,255,258,2898,106,214,216, + 218,299,300,1994,813,520,215,217,354,347, + 541,1401,352,1114,41,1121,391,345,2776,863, + 727,869,2179,2818,4241,505,1426,1095,31,2213, + 738,4248,823,88,323,2342,325,31,2913,318, + 1999,1265,3014,80,369,504,1027,41,397,1434, + 433,355,2083,1529,41,1113,38,3222,3203,36, + 954,342,37,1078,2819,502,3315,3711,1654,347, + 541,1401,352,2402,41,1113,38,1134,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,114,84,85,116,585,1287,1304,1872,239, + 349,1649,228,724,537,1265,2100,738,3087,66, + 335,323,2342,325,4619,290,318,1999,1993,41, + 1622,3314,236,4037,4057,260,237,238,1649,1607, + 164,168,1265,3018,1596,2000,3019,2808,188,4127, + 3087,2655,3020,4317,3025,175,211,222,4474,210, + 219,220,221,223,1648,57,177,3001,168,2644, + 31,1554,436,1173,2886,176,537,3427,2975,175, + 178,179,180,181,182,1190,311,315,3026,1227, + 41,1121,391,1850,236,1190,2495,47,3203,1649, + 1649,4518,164,1265,1265,1368,2844,1434,3471,523, + 188,4127,3087,537,332,338,2761,3550,211,222, + 4474,210,219,220,221,223,57,77,177,168, + 168,236,1554,1434,1640,3610,3307,176,363,164, + 186,175,178,179,180,181,182,188,4127,3087, + 336,3541,3625,1683,1691,211,222,4474,210,219, + 220,221,223,610,3027,177,292,537,355,1114, + 41,1121,391,291,176,2640,3030,184,175,178, + 179,180,181,182,3031,236,349,541,1401,352, + 727,1434,2986,164,2829,2001,4115,4139,1297,302, + 697,188,4127,3087,537,97,432,5272,110,211, + 222,4474,210,219,220,221,223,2904,5272,177, + 5272,2531,236,1114,41,1121,391,5272,176,5272, + 164,185,175,178,179,180,181,182,188,4127, + 3087,770,1927,41,1121,391,211,222,4474,210, + 219,220,221,223,784,383,177,301,537,429, + 57,1114,41,1121,391,176,54,2640,195,175, + 178,179,180,181,182,5272,236,1364,5272,57, + 770,2655,2172,190,164,1554,684,2304,522,1596, + 2000,871,188,4127,3087,537,770,5272,452,2644, + 211,222,4474,210,219,220,221,223,5272,327, + 177,31,327,236,3203,4267,2916,3203,1654,176, + 1265,164,3060,175,178,179,180,181,182,188, + 4127,3087,1260,1114,41,1121,391,211,222,4474, + 210,219,220,221,223,958,164,177,66,537, + 394,427,327,4633,208,4355,176,3203,3087,200, + 175,178,179,180,181,182,335,236,505,335, + 57,5272,5272,31,525,164,1554,1265,1693,5272, + 522,5272,1045,188,4127,3087,537,1654,504,396, + 427,211,222,4474,210,219,220,221,223,2963, + 5272,177,725,4300,236,395,427,5272,502,335, + 176,292,164,194,175,178,179,180,181,182, + 188,4127,3087,2937,1355,5272,2260,3087,211,222, + 4474,210,219,220,221,223,5272,31,177,2977, + 2001,680,4382,379,1492,31,2586,176,3111,2914, + 202,175,178,179,180,181,182,2402,41,1113, + 38,5272,3112,36,954,33,37,1078,32,34, + 1261,31,29,58,1269,114,84,85,116,5272, + 1287,1785,2402,41,1113,38,5272,3112,36,954, + 33,37,1078,32,34,1261,31,29,58,1269, + 114,84,85,116,1654,1287,1794,1560,41,2248, + 38,3222,3203,36,954,342,37,1078,1915,41, + 1113,38,1345,1654,36,954,342,37,1078,1654, + 5272,327,1498,41,1113,38,3203,3203,36,954, + 342,37,1078,377,4059,2675,41,1113,38,3222, + 5272,36,954,342,37,1078,1434,2100,1114,41, + 298,738,2100,3087,335,323,2342,325,1190,3087, + 318,1999,738,1114,41,298,323,2342,325,379, + 2093,318,1999,675,2655,524,738,5272,3480,336, + 323,2342,325,355,526,319,1999,4317,1434,738, + 76,1190,346,323,2342,325,5272,355,318,1999, + 2700,347,541,1401,352,3203,31,5272,3427,527, + 3150,2083,309,3427,1390,349,541,1401,352,2402, + 41,1113,38,61,3112,36,954,33,37,1078, + 32,34,1261,31,29,58,1269,114,84,85, + 116,1190,1812,2808,1023,337,338,2655,2655,2764, + 3712,338,4297,3166,385,5272,5272,3480,418,2250, + 102,1114,41,1121,391,2644,2644,4378,31,4049, + 31,31,3159,95,3432,4055,2402,41,1113,38, + 1784,3112,36,954,33,37,1078,32,34,1261, + 31,29,58,1269,114,84,85,116,280,1820, + 2402,41,1113,38,5272,3112,36,954,33,37, + 1078,32,34,1261,31,29,58,1269,114,84, + 85,116,2659,1828,31,31,2655,31,1209,4184, + 1190,1265,2766,5272,363,364,2655,31,456,104, + 5272,1265,2838,31,236,1190,2655,2655,3677,1683, + 1691,31,5272,5272,236,4363,1649,164,442,31, + 1265,282,60,3602,236,346,2009,164,213,222, + 4474,212,219,220,221,223,1916,3605,213,222, + 4474,212,219,220,221,223,168,2696,213,222, + 4474,212,219,220,221,223,5272,1190,509,214, + 216,218,299,300,1994,2819,224,215,217,214, + 216,218,299,300,1994,5272,224,215,217,214, + 216,218,299,300,1994,5272,224,215,217,3631, + 1119,1190,31,5272,877,31,2027,4056,3003,3612, + 31,31,31,308,3147,1183,3156,4056,3061,5272, + 31,31,31,4221,2203,2588,3622,4056,3426,2402, + 41,1113,38,98,3112,36,954,33,37,1078, + 32,34,1261,31,29,58,1269,114,84,85, + 93,2402,1605,1113,1665,2454,3112,36,954,33, + 37,1078,32,34,1261,31,29,58,1269,114, + 84,85,92,2402,41,1113,38,5272,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,114,84,85,91,2402,41,1113,38,5272, + 3112,36,954,33,37,1078,32,34,1261,31, + 29,58,1269,114,84,85,90,2402,41,1113, + 38,1914,3112,36,954,33,37,1078,32,34, + 1261,31,29,58,1269,114,84,85,89,2402, + 41,1113,38,5272,3112,36,954,33,37,1078, + 32,34,1261,31,29,58,1269,114,84,85, + 88,2402,41,1113,38,5272,3112,36,954,33, + 37,1078,32,34,1261,31,29,58,1269,114, + 84,85,87,2402,41,1113,38,5272,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,114,84,85,86,2262,41,1113,38,5272, + 3112,36,954,33,37,1078,32,34,1261,31, + 29,58,1269,114,84,85,112,2402,41,1113, + 38,5272,3112,36,954,33,37,1078,32,34, + 1261,31,29,58,1269,114,84,85,118,2402, + 41,1113,38,5272,3112,36,954,33,37,1078, + 32,34,1261,31,29,58,1269,114,84,85, + 117,2402,41,1113,38,5272,3112,36,954,33, + 37,1078,32,34,1261,31,29,58,1269,114, + 84,85,115,2402,41,1113,38,5272,3112,36, + 954,33,37,1078,32,34,1261,31,29,58, + 1269,114,84,85,113,1714,41,1113,38,3222, + 1190,36,954,342,37,1078,1190,1399,41,1121, + 391,1190,31,2898,2731,1190,537,2655,2655,31, + 31,5272,5272,3045,3468,2100,2749,31,5272,31, + 2655,3137,3722,959,346,346,236,31,75,5272, + 5272,4025,164,74,57,530,5272,73,236,738, + 1554,196,55,323,2342,325,4394,2696,318,1999, + 213,222,4474,212,219,220,221,223,533,659, + 5272,1607,213,222,4474,212,219,220,221,223, + 2872,5272,1190,2985,2655,1190,3427,1265,5272,5272, + 5272,214,216,218,299,300,1994,2819,519,215, + 217,2819,236,214,216,218,299,300,1994,1190, + 225,215,217,164,72,4301,31,63,311,315, + 1265,2942,170,334,338,2655,213,222,4474,212, + 219,220,221,223,5272,187,2917,5272,4428,206, + 3388,62,2819,236,5272,5272,164,5272,2761,5272, + 5272,5272,5272,5272,2100,4036,5272,214,216,218, + 299,300,1994,5272,310,215,217,213,222,4474, + 212,219,220,221,223,1729,41,2248,38,3222, + 205,36,954,342,37,1078,2675,41,1113,38, + 3222,1190,36,954,342,37,1078,5272,214,216, + 218,299,300,1994,4273,499,215,217,5272,5272, + 5272,2553,41,1121,391,3427,2959,5272,1227,41, + 1121,391,5272,109,245,5272,31,5272,1190,738, + 1265,5272,2687,323,2342,325,2655,1201,318,1999, + 738,2655,4720,1188,323,2342,325,1190,280,318, + 1999,675,3730,338,346,57,164,4497,5272,236, + 3685,1554,1607,55,5272,4041,5272,2819,2819,31, + 1190,1190,239,2655,5272,529,1081,5272,5272,451, + 820,5272,31,1050,408,4405,1265,1231,41,1113, + 38,346,3203,36,954,342,37,1078,243,237, + 238,5272,381,3070,2916,307,209,5272,537,312, + 315,281,164,2696,409,410,411,299,300,1994, + 5272,4045,5272,5272,507,2819,4067,5272,250,253, + 256,259,2898,2100,164,5272,419,2250,5272,1984, + 813,738,188,4127,336,323,2342,325,2819,2819, + 321,1999,1231,41,1113,38,1190,3203,36,954, + 342,37,1078,207,2675,41,1113,38,3222,203, + 36,954,342,37,1078,1382,41,1113,38,3377, + 5272,36,954,342,37,1078,303,4113,3124,5272, + 5272,5272,5272,5272,3427,1289,412,414,2819,2655, + 4720,2819,5272,1787,3604,1190,738,2655,3203,336, + 323,2342,325,404,5272,319,1999,236,738,2649, + 5272,4425,323,2342,325,2644,31,318,1999,738, + 1265,3731,338,320,2162,325,229,3161,5272,201, + 3054,1050,408,4405,2783,41,1113,38,2833,5272, + 36,954,342,37,1078,1190,164,1787,5272,5272, + 335,2655,3203,1190,1190,4112,5272,1190,2167,41, + 1121,391,409,410,411,299,300,1994,5272,2644, + 5272,4641,204,1863,41,1121,391,3188,2090,41, + 1121,391,5272,3402,363,3399,4431,1984,738,3252, + 5272,5272,320,2162,325,57,5272,5272,2955,1683, + 1691,1554,5272,2360,335,1863,41,1121,391,5272, + 57,5272,5272,5272,5272,57,1554,5272,2544,3710, + 3541,1554,5272,55,5272,2090,41,1121,391,2090, + 41,1121,391,5272,5272,2709,5272,2963,363,1643, + 1396,5272,57,2655,412,415,5272,5272,1554,5272, + 55,5272,2955,1683,1691,2090,41,1121,391,5272, + 31,346,57,5272,1265,5272,57,2724,1554,5272, + 55,5272,1554,5272,55,2090,41,1121,391,2503, + 41,1121,391,4166,5272,5272,5272,2573,3710,5272, + 164,2793,57,2615,41,1121,391,5272,1554,2389, + 55,2982,5272,31,1649,537,5272,537,1265,5272, + 5272,5272,57,5272,5272,5272,57,3039,1554,5272, + 55,5272,1554,346,55,346,1114,41,1121,391, + 57,164,5272,164,168,31,1554,3131,55,537, + 196,3428,2565,5272,5272,4394,5272,2696,1114,41, + 1121,391,5272,5272,5272,3443,31,346,2259,5272, + 537,5272,5272,57,31,164,5272,5272,1265,1554, + 5272,795,5272,5272,3438,5272,5272,5272,346,2696, + 1114,41,1121,391,5272,57,164,5272,31,5272, + 2965,1554,537,719,164,2565,1114,41,1121,391, + 2696,4277,5272,4494,198,1114,41,1121,391,31, + 346,3521,31,2655,5272,31,2655,57,164,537, + 5272,5272,5272,1554,31,2632,5272,196,2655,4493, + 5272,346,4394,57,346,5272,5272,346,5272,1554, + 31,2304,57,31,2655,164,346,2655,1554,5272, + 2558,5272,5272,2696,196,5272,2696,5272,5272,4394, + 5272,5272,346,5272,1708,346,31,1726,2696,5272, + 2655,5272,5272,5272,5272,5272,5272,4379,5272,1734, + 5272,5272,5272,5272,2696,5272,5272,2696,346,5272, + 5272,4386,5272,5272,5272,1736,5272,5272,4030,5272, + 5272,5272,5272,5272,5272,5272,5272,5272,5272,5272, + 2696,5272,5272,5272,5272,5272,5272,5272,4435,5272, + 5272,534,5272,0,1956,1,0,2767,1,0, + 1,2,5292,0,1,2,5291,0,45,5292, + 0,45,5291,0,2301,322,0,454,2533,0, + 440,2585,0,2808,35,0,5278,1,0,5277, + 1,0,5513,248,0,5512,248,0,5613,248, + 0,5612,248,0,5540,248,0,5539,248,0, + 5538,248,0,5537,248,0,5536,248,0,5535, + 248,0,5534,248,0,5533,248,0,5551,248, + 0,5550,248,0,5549,248,0,5548,248,0, + 5547,248,0,5546,248,0,5545,248,0,5544, + 248,0,5543,248,0,5542,248,0,5541,248, + 0,45,248,5292,0,45,248,5291,0,5316, + 248,0,2808,390,0,56,5292,0,56,5291, + 0,44,5292,0,44,5291,0,2477,134,0, + 1,444,0,458,1312,0,457,1787,0,41, + 39,0,5316,1,0,45,1,0,45,2, + 5292,0,45,2,5291,0,2808,47,0,2817, + 99,0,38,40,0,45,732,0,51,5314, + 0,51,43,0,1,911,0,1,5551,0, + 1,5550,0,1,5549,0,1,5548,0,1, + 5547,0,1,5546,0,1,5545,0,1,5544, + 0,1,5543,0,1,5542,0,1,5541,0, + 45,1,5292,0,45,1,5291,0,925,1, + 0,501,1992,0,5316,235,1,0,45,235, + 1,0,235,417,0,43,5292,0,43,5291, + 0,244,2881,0,391,38,0,38,391,0, + 390,35,0,35,390,0,5292,56,0,5291, + 56,0,2477,136,0,2477,135,0,5605,445, + 0,2940,445,0,5282,406,0,5281,406,0, + 1,3415,0,1,732,0,1,3450,0,235, + 416,0,55,43,0,1,100,0,43,55, + 0,5314,53,0,53,43,0,1,5605,0, + 1,2940,0,45,1,2,5292,0,45,1, + 2,5291,0,43,5292,2,0,43,5291,2, + 0,5292,42,0,5291,42,0,501,4044,0, + 235,1,0,235,227,0,5605,103,0,2940, + 103,0,41,81,0,235,226,0,285,2969, + 0,5284,1,0,5280,1,0,235,1,2798, + 0,5281,235,0,2813,235,0,5284,386,0, + 5283,386,0,2925,235,0,10,12,0,8, + 10,12,0,193,3215,0,3062,386,0,8, + 12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1186,211 +1181,211 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 36,37,38,39,40,41,42,43,44,45, 0,47,48,49,50,51,52,53,54,55, 56,57,58,73,60,61,62,63,64,0, - 66,67,68,0,1,2,72,95,28,75, + 66,67,68,0,1,2,72,95,0,75, 76,77,78,79,80,81,82,83,84,85, 86,0,1,2,3,4,5,6,0,8, - 9,10,0,12,13,14,15,16,17,18, + 9,10,11,12,0,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,0,47,48, - 49,50,51,52,53,54,55,0,57,12, - 13,60,0,0,1,2,0,66,67,68, + 49,50,51,52,53,54,55,0,57,0, + 46,60,0,75,7,121,7,66,67,68, 0,1,2,3,4,5,6,7,8,9, - 10,11,0,0,14,15,16,17,18,19, - 20,21,22,23,24,25,0,1,2,3, - 4,5,6,0,8,9,0,0,1,2, - 40,4,30,7,7,45,46,47,48,49, - 50,51,52,53,54,55,56,65,58,121, - 60,69,0,0,1,2,66,67,68,73, - 7,71,72,73,0,88,89,0,0,1, - 2,7,4,5,0,59,8,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 64,64,14,15,16,17,18,19,20,21, - 22,23,24,25,114,115,116,0,1,2, - 3,4,5,6,46,8,9,64,40,0, - 1,2,99,45,46,47,48,49,50,51, - 52,53,54,55,56,71,58,70,60,0, - 1,2,90,0,66,67,68,8,96,71, - 72,73,0,1,2,0,4,5,3,0, - 8,6,7,0,9,87,11,12,13,102, - 7,104,105,106,107,108,109,110,111,112, - 113,26,27,0,117,30,0,0,114,115, - 116,0,114,115,116,4,0,0,46,3, + 10,0,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,0,1,2,0, + 0,1,2,3,4,5,6,99,8,9, + 40,0,30,14,3,45,46,47,48,49, + 50,51,52,53,54,55,56,70,58,0, + 60,74,3,74,0,73,66,67,68,40, + 0,71,72,73,45,5,47,48,49,50, + 51,52,53,54,55,26,27,87,0,1, + 2,3,4,5,6,7,8,9,10,0, + 59,13,14,15,16,17,18,19,20,21, + 22,23,24,25,114,115,116,0,59,0, + 0,0,1,2,3,4,5,6,40,8, + 9,11,12,45,46,47,48,49,50,51, + 52,53,54,55,56,0,58,0,60,4, + 0,1,2,0,66,67,68,10,8,71, + 72,73,103,0,65,0,0,0,3,70, + 4,6,7,10,9,87,11,12,13,120, + 59,0,1,2,3,40,5,0,7,8, + 69,26,27,46,13,30,30,0,0,1, + 2,0,114,115,116,88,89,60,0,46, 0,14,15,16,17,18,19,20,21,22, - 23,24,25,0,59,0,1,2,0,76, - 65,30,4,10,69,70,71,40,73,74, - 0,45,45,47,47,48,49,50,51,52, + 23,24,25,60,59,0,1,2,0,4, + 65,30,7,0,69,70,71,40,73,74, + 7,0,45,76,47,48,49,50,51,52, 53,54,55,88,89,90,91,92,93,94, 95,96,97,98,99,100,101,102,103,104, - 105,106,107,108,109,110,111,112,113,56, - 70,0,117,118,3,120,0,6,7,3, - 9,118,11,12,13,0,1,2,3,4, - 5,6,0,8,9,0,4,26,27,102, - 70,30,119,0,0,1,2,3,0,5, - 0,7,8,3,117,11,0,14,0,1, - 2,3,30,5,0,7,8,3,0,11, - 59,3,0,1,2,59,65,0,30,0, - 69,70,71,40,73,74,0,0,45,10, - 47,48,49,50,51,52,53,54,55,88, + 105,106,107,108,109,110,111,112,113,69, + 0,0,117,118,3,120,0,6,7,64, + 9,0,11,12,13,4,10,0,1,2, + 3,4,5,6,71,8,9,26,27,0, + 102,30,102,4,104,105,106,107,108,109, + 110,111,112,113,0,117,0,117,0,1, + 2,3,4,5,6,0,8,9,3,30, + 59,0,56,0,3,0,65,0,7,69, + 69,70,71,0,73,74,59,4,0,0, + 1,2,3,4,5,6,0,8,9,88, 89,90,91,92,93,94,95,96,97,98, 99,100,101,102,103,104,105,106,107,108, - 109,110,111,112,113,46,70,59,117,118, - 95,120,0,1,2,3,4,5,6,60, - 8,9,10,0,12,13,69,15,16,17, + 109,110,111,112,113,0,1,2,117,118, + 59,120,0,1,2,3,4,5,6,0, + 8,9,10,11,12,74,7,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 28,29,0,31,32,33,34,35,36,37, + 28,29,73,31,32,33,34,35,36,37, 38,39,0,41,42,43,44,0,0,0, - 1,2,3,4,5,6,0,8,9,57, - 12,13,30,7,62,63,0,65,0,1, - 2,3,4,5,6,7,8,9,10,0, - 12,13,69,15,16,17,18,19,20,21, + 1,2,3,0,5,7,7,8,0,57, + 7,114,115,116,62,63,0,65,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,0,0,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,59,41, - 42,43,44,0,0,0,1,2,4,70, - 0,0,1,2,3,57,5,0,7,8, - 74,65,64,0,7,88,89,0,11,71, - 0,1,2,3,4,5,6,7,8,9, - 10,95,12,13,40,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 57,31,32,33,34,35,36,37,38,39, - 59,41,42,43,44,0,1,2,3,4, - 5,6,0,8,9,74,69,57,0,1, - 2,3,0,5,64,3,8,70,88,89, - 0,71,0,1,2,3,4,5,6,0, - 8,9,10,0,12,13,7,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,0,41,42,43,44,0,73,7, - 0,1,2,0,4,0,1,2,3,57, - 5,73,70,8,62,63,0,1,2,3, - 4,5,6,64,8,9,10,30,12,13, - 0,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,46,31,32,33, - 34,35,36,37,38,39,0,41,42,43, - 44,0,1,2,59,4,74,6,7,0, - 9,0,3,57,0,0,7,0,62,63, - 0,1,2,3,4,5,6,7,8,9, - 10,0,12,13,0,15,16,17,18,19, + 42,43,44,0,1,2,3,64,5,0, + 7,8,74,74,0,57,13,118,0,1, + 2,3,64,5,0,0,8,95,3,71, + 0,1,2,3,4,5,6,65,8,9, + 10,11,12,0,30,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, - 0,41,42,43,44,0,1,2,59,4, - 0,6,12,13,9,74,65,57,0,0, - 1,2,65,74,64,0,1,2,3,4, - 5,6,7,8,9,10,95,12,13,65, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,65,31,32,33,34, - 35,36,37,38,39,46,41,42,43,44, - 0,1,2,3,4,5,6,0,8,9, - 10,4,12,13,0,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, - 0,41,42,43,44,0,0,7,0,0, - 4,11,3,0,5,6,0,57,9,14, - 0,12,13,0,1,2,3,4,0,6, - 10,0,9,118,0,26,27,0,29,30, - 0,1,2,30,4,40,6,0,0,9, - 45,0,47,48,49,50,51,52,53,54, - 55,30,88,89,0,0,46,3,59,5, - 6,62,63,9,65,0,12,13,69,70, - 60,30,59,46,0,1,2,0,4,5, - 26,27,8,29,30,30,65,88,89,90, - 91,92,93,94,88,89,97,98,99,100, - 101,102,103,104,105,106,107,108,109,110, - 111,112,113,59,93,94,62,63,0,65, - 0,1,2,69,70,0,1,2,90,4, - 5,0,0,8,96,70,0,1,2,0, - 0,5,88,89,90,91,92,93,94,0, - 10,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,0,1, - 2,3,4,5,6,0,8,9,10,30, - 12,13,46,15,16,17,18,19,20,21, + 46,41,42,43,44,0,0,1,2,65, + 4,0,6,7,59,9,0,57,0,1, + 2,73,62,63,0,1,2,3,4,5, + 6,0,8,9,10,11,12,93,94,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,46,41,42,43,44,0, + 1,2,3,4,69,6,65,46,9,0, + 74,57,0,1,2,69,62,63,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,95,0,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,69,41, + 32,33,34,35,36,37,38,39,59,41, + 42,43,44,0,0,1,2,3,0,5, + 0,0,8,0,90,57,0,1,2,70, + 96,0,64,0,1,2,3,4,5,6, + 7,8,9,10,11,12,28,65,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,65,31,32,33,34,35,36, + 37,38,39,59,41,42,43,44,0,1, + 2,0,4,70,6,65,65,9,62,63, + 57,70,0,1,2,0,4,64,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,88,89,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,46,41, 42,43,44,0,1,2,3,4,5,6, - 0,8,9,10,0,12,13,59,15,16, + 69,8,9,10,11,12,0,0,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,0,41,42,43,44,0,0, - 1,2,3,4,5,6,46,8,9,10, - 57,12,13,30,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,65, - 31,32,33,34,35,36,37,38,39,0, - 41,42,43,44,0,1,2,3,4,5, - 6,0,8,9,10,4,12,13,65,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,0,41,42,43,44,0, - 1,2,3,4,5,6,0,8,9,10, - 0,12,13,7,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,0, - 41,42,43,44,0,1,2,0,4,65, - 0,1,2,69,10,0,1,2,14,15, - 16,17,18,19,20,21,22,23,24,25, - 0,1,2,0,4,69,6,71,0,9, - 0,1,2,3,40,5,0,0,8,45, - 3,47,48,49,50,51,52,53,54,55, - 0,0,1,2,60,0,1,2,30,4, - 66,67,68,26,27,10,30,62,63,14, - 15,16,17,18,19,20,21,22,23,24, - 25,0,1,2,0,4,0,6,0,3, - 9,0,0,70,0,40,59,46,119,7, - 45,10,47,48,49,50,51,52,53,54, - 55,0,1,2,3,60,5,0,30,8, - 3,66,67,68,0,1,2,3,4,5, - 6,7,8,9,0,11,0,46,14,0, - 103,0,1,2,3,4,5,6,7,8, - 9,60,11,69,30,14,0,120,0,65, - 0,1,2,72,40,5,74,0,8,45, - 0,47,48,49,50,51,52,53,54,55, - 0,40,46,59,0,0,45,7,47,48, - 49,50,51,52,53,54,55,30,74,0, - 59,0,0,1,2,3,4,5,6,7, - 8,9,0,11,0,74,14,3,0,0, - 1,2,3,4,5,6,7,8,9,90, - 11,30,0,14,0,96,0,1,2,3, - 4,5,6,7,8,9,90,11,46,30, - 14,71,96,119,69,0,1,2,56,75, - 58,0,0,61,0,46,4,0,7,70, - 3,7,11,71,73,56,0,58,0,0, - 61,3,46,0,1,2,7,69,0,87, - 11,0,56,0,58,7,0,61,0,1, - 2,46,40,7,28,73,87,71,0,1, - 2,3,4,5,6,7,8,9,0,11, - 0,30,14,87,0,0,1,2,3,4, - 5,6,7,8,9,0,11,0,74,14, - 3,0,1,2,3,4,5,6,7,8, - 9,0,11,0,46,14,0,0,1,2, - 62,63,74,7,56,69,58,11,0,61, - 74,46,0,0,0,7,114,115,116,71, - 0,56,0,58,0,3,61,46,0,7, - 0,3,0,73,0,87,71,56,0,58, - 28,7,61,46,30,11,0,1,2,0, - 1,2,87,0,1,2,3,4,5,6, - 7,8,9,0,11,0,3,14,87,0, - 1,2,3,4,5,6,7,8,9,65, - 11,59,74,14,0,0,0,65,0,0, - 5,69,46,4,0,46,74,3,14,46, - 70,0,0,69,3,71,0,93,94,56, - 0,58,0,3,61,46,30,0,30,30, - 3,0,0,0,40,56,14,58,0,45, - 61,47,48,49,50,51,52,53,54,55, - 87,0,0,121,3,3,0,0,0,3, - 3,65,40,0,0,0,87,45,3,47, - 48,49,50,51,52,53,54,55,0,0, - 0,69,3,0,0,0,70,0,30,93, - 94,0,0,0,0,0,0,0,0,0, - 0,0,0,0,73,73,73,0,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,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,0,65,0,3,0,5,6,0, + 57,9,14,11,12,0,0,0,3,0, + 1,2,7,4,5,0,118,8,26,27, + 0,29,30,0,1,2,0,4,40,6, + 0,0,9,45,4,47,48,49,50,51, + 52,53,54,55,45,0,47,0,0,0, + 3,59,5,6,62,63,9,65,11,12, + 30,69,70,90,59,69,0,1,2,96, + 65,88,89,26,27,70,29,30,0,74, + 88,89,90,91,92,93,94,0,73,97, + 98,99,100,101,102,103,104,105,106,107, + 108,109,110,111,112,113,59,0,0,62, + 63,0,65,65,88,89,69,70,7,0, + 1,2,0,4,5,3,121,8,62,63, + 0,0,0,88,89,88,89,90,91,92, + 93,94,11,12,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,1,2,3,4,5,6,90,8, + 9,10,11,12,96,64,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,69,31,32,33,34,35,36,37,38, + 39,69,41,42,43,44,0,1,2,3, + 4,5,6,0,8,9,10,11,12,0, + 59,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,10,41,42,43, + 44,0,1,2,0,0,0,1,2,3, + 4,5,6,57,8,9,10,11,12,0, + 0,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,73,31,32,33, + 34,35,36,37,38,39,0,41,42,43, + 44,0,1,2,3,4,5,6,0,8, + 9,10,11,12,0,0,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,0,41,42,43,44,0,1,2,3, + 4,5,6,0,8,9,10,11,12,0, + 7,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,0,41,42,43, + 44,0,1,2,0,4,65,0,4,0, + 3,10,0,1,2,14,15,16,17,18, + 19,20,21,22,23,24,25,0,1,2, + 0,4,5,70,71,8,0,1,2,30, + 4,40,6,0,40,9,45,4,47,48, + 49,50,51,52,53,54,55,0,0,90, + 30,60,0,1,2,96,4,66,67,68, + 0,0,10,46,4,0,14,15,16,17, + 18,19,20,21,22,23,24,25,30,0, + 0,0,1,2,3,4,5,6,7,8, + 9,30,40,73,13,14,0,45,0,47, + 48,49,50,51,52,53,54,55,114,115, + 116,30,60,65,0,1,2,70,66,67, + 68,40,0,1,2,0,45,5,47,48, + 49,50,51,52,53,54,55,0,73,0, + 59,93,94,0,1,2,3,4,5,6, + 7,8,9,57,0,74,13,14,0,1, + 2,3,4,5,6,7,8,9,46,0, + 0,13,14,0,0,1,2,3,0,5, + 11,12,8,40,30,0,0,14,45,3, + 47,48,49,50,51,52,53,54,55,0, + 1,2,59,4,46,6,0,70,9,3, + 0,0,0,40,56,30,58,74,45,61, + 47,48,49,50,51,52,53,54,55,71, + 0,1,2,3,4,5,6,7,8,9, + 30,30,30,13,14,87,0,0,0,1, + 2,3,4,5,6,7,8,9,119,0, + 30,13,14,0,0,0,1,2,3,4, + 5,6,7,8,9,0,46,30,13,14, + 0,0,0,1,2,3,56,5,58,30, + 8,61,0,30,46,0,1,2,0,7, + 5,0,0,8,56,13,58,0,0,61, + 30,46,0,0,7,3,3,87,0,71, + 0,56,0,58,0,7,61,7,30,0, + 0,13,10,13,0,87,71,0,1,2, + 3,4,5,6,7,8,9,0,73,0, + 13,14,87,0,1,2,3,4,5,6, + 7,8,9,65,30,119,13,14,46,0, + 69,0,1,2,3,4,5,6,7,8, + 9,74,60,46,13,14,0,0,1,2, + 70,93,94,56,72,58,0,0,61,46, + 70,0,95,0,7,0,1,2,71,56, + 7,58,0,0,61,0,0,46,0,1, + 2,119,7,7,87,7,14,56,13,58, + 0,30,61,46,0,1,2,0,1,2, + 87,0,1,2,3,4,5,6,7,8, + 9,46,40,0,13,14,3,45,87,47, + 48,49,50,51,52,53,54,55,0,1, + 2,74,4,5,71,0,8,0,1,2, + 46,0,64,46,0,0,0,46,7,3, + 74,7,7,0,13,0,3,56,3,58, + 0,0,61,3,3,0,0,0,3,3, + 0,0,0,0,46,3,3,0,0,0, + 3,3,3,46,0,0,0,3,87,0, + 0,0,3,0,0,28,0,0,0,0, + 0,0,0,0,69,0,0,0,0,0, + 0,0,0,0,0,0,71,0,74,0, + 0,30,28,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 70,70,0,0,0,0,0,0,0,0, + 0,0,0,0,0,69,0,0,73,69, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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; @@ -1398,312 +1393,316 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TermAction { public final static char termAction[] = {0, - 5300,5274,5247,5247,5247,5247,5247,5284,5247,5247, - 1,5278,1,1,1,1,1,1,1,1, + 5272,5237,5210,5210,5210,5210,5210,5253,5210,5210, + 1,1,1,5241,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,5300,1,1,1, - 1,1,1,1,1,1,1694,1,1955,137, - 1,2975,1,1,5311,45,1,1,1,5344, - 5300,5307,5483,5300,734,1395,3161,3401,2164,3289, - 3105,2853,3152,1652,3140,2536,3138,10,5287,5287, - 5287,5287,5287,5287,5287,5287,5287,5287,5287,5287, - 5287,5287,5287,5287,5287,5287,5287,5287,5287,5287, - 5287,5287,5287,5287,5287,5287,5287,5300,5287,5287, - 5287,5287,5287,5287,5287,5287,5287,5287,5287,5287, - 5287,5287,5287,2640,5287,5287,5287,5287,5287,5287, - 5287,5287,5287,5287,5287,5287,138,5287,5287,5287, - 5287,5287,361,5287,5287,5287,2375,2347,5287,5287, - 5300,351,5287,5287,5287,5287,5287,5287,5287,5287, - 5287,5287,5287,5287,8,5290,5290,5290,5290,5290, - 5290,5290,5290,5290,5290,5290,5290,5290,5290,5290, - 5290,5290,5290,5290,5290,5290,5290,5290,5290,5290, - 5290,5290,5290,5290,5300,5290,5290,5290,5290,5290, - 5290,5290,5290,5290,5290,5290,5290,5290,5290,5290, - 1268,5290,5290,5290,5290,5290,5290,5290,5290,5290, - 5290,5290,5290,5300,5290,5290,5290,5290,5290,3459, - 5290,5290,5290,2375,2347,5290,5290,5660,324,5290, - 5290,5290,5290,5290,5290,5290,5290,5290,5290,5290, - 5290,5300,5274,5247,5247,5247,5247,5247,5281,5247, - 5247,1,5278,1,1,1,1,1,1,1, + 1,1,1,1,1,1,387,1,1,1, + 1,1,1,1,1,1,677,1,2399,137, + 1,2499,1,1,5283,45,1,1,1,5316, + 5272,5279,5455,5272,737,2848,2922,4172,2218,4131, + 2770,2880,2916,630,2913,3186,2822,10,5256,5256, + 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, + 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, + 5256,5256,5256,5256,5256,5256,5256,5272,5256,5256, + 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, + 5256,5256,5256,2826,5256,5256,5256,5256,5256,5256, + 5256,5256,5256,5256,5256,5256,138,5256,5256,5256, + 5256,5256,361,5256,5256,5256,2395,2367,5256,5256, + 5272,351,5256,5256,5256,5256,5256,5256,5256,5256, + 5256,5256,5256,5256,8,5259,5259,5259,5259,5259, + 5259,5259,5259,5259,5259,5259,5259,5259,5259,5259, + 5259,5259,5259,5259,5259,5259,5259,5259,5259,5259, + 5259,5259,5259,5259,5272,5259,5259,5259,5259,5259, + 5259,5259,5259,5259,5259,5259,5259,5259,5259,5259, + 1308,5259,5259,5259,5259,5259,5259,5259,5259,5259, + 5259,5259,5259,5272,5259,5259,5259,5259,5259,3551, + 5259,5259,5259,2395,2367,5259,5259,5632,324,5259, + 5259,5259,5259,5259,5259,5259,5259,5259,5259,5259, + 5259,5272,5237,5210,5210,5210,5210,5210,5244,5210, + 5210,1,1,1,5241,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5300,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1268,1,1, - 1,1,1,1,1,1,1,1694,1,1955, - 5300,1,2975,1,1,5311,45,1,1,1, - 5344,5300,2685,5483,4657,5633,1395,3161,3401,2164, - 3289,3105,2853,3152,1652,3140,2536,3138,5300,5274, - 5247,5247,5247,5247,5247,5281,5247,5247,1,5278, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5300,1, + 1,5272,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1308,1,1, + 1,1,1,1,1,1,1,677,1,2399, + 5272,1,2499,1,1,5283,45,1,1,1, + 5316,5272,2940,5455,4675,5605,2848,2922,4172,2218, + 4131,2770,2880,2916,630,2913,3186,2822,5272,5237, + 5210,5210,5210,5210,5210,5244,5210,5210,1,1, + 1,5241,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5272,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,143,1,1,1,1,1, - 1,1,1,1,1694,1,1955,5300,1,2975, - 1,1,5311,139,1,1,1,5300,4918,4915, - 5483,5344,2318,1395,3161,3401,2164,3289,3105,2853, - 3152,1652,3140,2536,3138,5300,5274,5247,5247,5247, - 5247,5247,5281,5247,5247,1,5278,1,1,1, + 1,1,1,1,677,1,2399,5272,1,2499, + 1,1,5283,139,1,1,1,5272,4881,4878, + 5455,5316,2338,2848,2922,4172,2218,4131,2770,2880, + 2916,630,2913,3186,2822,5272,5237,5210,5210,5210, + 5210,5210,5244,5210,5210,1,1,1,5241,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5300,1,1,1,1, + 1,1,1,1,1,5272,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5300,1,1,1,1,1,1,1,1, - 1,1694,1,1955,2286,1,2975,1,1,5311, - 123,1,1,1,5300,5300,3549,5483,2940,456, - 1395,3161,3401,2164,3289,3105,2853,3152,1652,3140, - 2536,3138,5300,5274,5247,5247,5247,5247,5247,5281, - 5247,5247,1,5278,1,1,1,1,1,1, + 1,5272,1,1,1,1,1,1,1,1, + 1,677,1,2399,2306,1,2499,1,1,5283, + 123,1,1,1,5272,5272,3580,5455,2881,458, + 2848,2922,4172,2218,4131,2770,2880,2916,630,2913, + 3186,2822,5272,5237,5210,5210,5210,5210,5210,5244, + 5210,5210,1,1,1,5241,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5300,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5040,1, - 1,1,1,1,1,1,1,1,1694,1, - 1955,145,1,2975,1,1,5311,125,1,1, - 1,3525,3470,3549,5483,5300,455,1395,3161,3401, - 2164,3289,3105,2853,3152,1652,3140,2536,3138,5300, - 5274,5247,5247,5247,5247,5247,5281,5247,5247,1, - 5278,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5300, + 1,1,5272,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5003,1, + 1,1,1,1,1,1,1,1,677,1, + 2399,145,1,2499,1,1,5283,125,1,1, + 1,3556,3499,3580,5455,5272,457,2848,2922,4172, + 2218,4131,2770,2880,2916,630,2913,3186,2822,5272, + 5237,5210,5210,5210,5210,5210,5244,5210,5210,1, + 1,1,5241,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5272, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5043,1,1,1,1, - 1,1,1,1,1,1694,1,1955,141,1, - 2975,1,1,5311,124,1,1,1,3525,3470, - 3549,5483,2252,108,1395,3161,3401,2164,3289,3105, - 2853,3152,1652,3140,2536,3138,5300,5274,5247,5247, - 5247,5247,5247,5281,5247,5247,1,5278,1,1, + 1,1,1,1,1,5006,1,1,1,1, + 1,1,1,1,1,677,1,2399,141,1, + 2499,1,1,5283,124,1,1,1,3556,3499, + 3580,5455,2269,108,2848,2922,4172,2218,4131,2770, + 2880,2916,630,2913,3186,2822,5272,5237,5210,5210, + 5210,5210,5210,5244,5210,5210,1,1,1,5241, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,193,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,4769,1,1,1,1,1,1,1, - 1,1,1694,1,1955,146,1,2975,1,1, - 5311,140,1,1,1,3525,3470,592,5483,426, - 2318,1395,3161,3401,2164,3289,3105,2853,3152,1652, - 3140,2536,3138,5300,5274,5247,5247,5247,5247,5247, - 5281,5247,5247,1,5278,1,1,1,1,1, + 1,1,4600,1,1,1,1,1,1,1, + 1,1,677,1,2399,146,1,2499,1,1, + 5283,140,1,1,1,3556,3499,594,5455,428, + 2338,2848,2922,4172,2218,4131,2770,2880,2916,630, + 2913,3186,2822,5272,5237,5210,5210,5210,5210,5210, + 5244,5210,5210,1,1,1,5241,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5300,1,1,1,1,1,1, + 1,1,1,5272,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,144, - 1,1,1,1,1,1,1,1,1,1694, - 1,1955,3451,1,2975,1,1,5311,5297,1, - 1,1,5300,5319,5320,5483,2252,3576,1395,3161, - 3401,2164,3289,3105,2853,3152,1652,3140,2536,3138, - 5300,5274,5247,5247,5247,5247,5247,5281,5247,5247, - 1,5278,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5300,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5300,1,1,1, - 1,1,1,1,1,1,1694,1,1955,2286, - 1,2975,1,1,5311,5300,1,1,1,5300, - 4918,4915,5483,5344,107,1395,3161,3401,2164,3289, - 3105,2853,3152,1652,3140,2536,3138,5300,5274,5247, - 5247,5247,5247,5247,5281,5247,5247,1,5278,1, + 1,1,1,1,1,1,1,1,1,677, + 1,2399,2966,1,2499,1,1,5283,5263,1, + 1,1,5272,5291,5292,5455,2269,1655,2848,2922, + 4172,2218,4131,2770,2880,2916,630,2913,3186,2822, + 5272,5237,5210,5210,5210,5210,5210,5244,5210,5210, + 1,1,1,5241,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5300,1,1, + 5272,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5272,1,1,1, + 1,1,1,1,1,1,677,1,2399,2306, + 1,2499,1,1,5283,5272,1,1,1,5272, + 4881,4878,5455,5316,107,2848,2922,4172,2218,4131, + 2770,2880,2916,630,2913,3186,2822,5272,5237,5210, + 5210,5210,5210,5210,5244,5210,5210,1,1,1, + 5241,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5272,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2127,1,1,1,1,1,1, - 1,1,1,1694,1,1955,5300,1,2975,1, - 1,5311,1,1,1,1,396,5319,5320,5483, - 5300,5300,1395,3161,3401,2164,3289,3105,2853,3152, - 1652,3140,2536,3138,5300,3127,1,1,1,1, - 1,3128,1,1,1,5309,1,1,1,1, + 1,1,1,2181,1,1,1,1,1,1, + 1,1,1,677,1,2399,5272,1,2499,1, + 1,5283,1,1,1,1,398,5291,5292,5455, + 5272,5272,2848,2922,4172,2218,4131,2770,2880,2916, + 630,2913,3186,2822,5272,2798,1,1,1,1, + 1,2813,1,1,1,1,1,5281,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5300,1,1,1,1,1, + 1,1,1,1,5272,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5300,1,1,1,1,1,1,1,1,1, - 1694,1,1955,1867,1,2975,1,1,5311,5300, - 1,1,1,5300,5319,5320,5483,5662,1039,1395, - 3161,3401,2164,3289,3105,2853,3152,1652,3140,2536, - 3138,45,4918,4915,4286,729,3730,3796,5300,3421, - 3818,1176,5300,3774,3752,5564,5571,5569,5578,5577, - 5573,5574,5572,5575,5576,5579,5570,3862,3840,5325, - 3708,5300,1212,1298,5327,1230,631,1264,5328,5326, - 1204,5567,5321,5323,5324,5322,5640,126,5641,5561, - 5568,5540,5566,5565,5562,5563,5541,129,1309,3323, - 3298,5697,5300,5300,5025,5022,5300,913,5698,5699, - 5300,5135,5135,235,5131,235,235,5139,235,235, - 1,235,5300,5300,1,1,1,1,1,1, - 1,1,1,1,1,1,348,5059,5055,2729, - 5344,672,2685,142,3421,5633,5300,5300,4918,4915, - 1,5344,573,5312,5312,1,5128,1,1,1, - 1,1,1,1,1,1,817,862,1402,4900, - 1,3495,119,5300,5319,5320,1,1,1,5700, - 5312,415,5711,235,5300,2643,2826,147,5300,4918, - 4915,5308,729,5072,437,1268,3421,5798,5300,5135, - 5135,235,5131,235,235,5196,235,235,1,235, - 5311,5311,1,1,1,1,1,1,1,1, - 1,1,1,1,5733,5734,5735,5300,5059,5055, - 4263,5344,672,2685,933,3421,5633,5311,1,56, - 5025,5022,592,1,5128,1,1,1,1,1, - 1,1,1,1,817,5307,1402,1783,1,44, - 5031,5028,3906,5300,1,1,1,557,3928,414, - 5711,235,5300,4918,4915,39,729,5072,5046,5300, - 3421,5046,5046,5300,5046,5798,5046,5046,5046,2215, - 5304,1741,1699,1657,1615,1573,1531,1489,1447,1405, - 1363,5046,5046,5300,3028,5046,339,230,5733,5734, - 5735,395,5733,5734,5735,388,99,147,2025,5066, - 506,5564,5571,5569,5578,5577,5573,5574,5572,5575, - 5576,5579,5570,306,5046,295,5319,5320,1,3241, - 5046,2665,389,5605,5046,5046,5046,5567,5046,5046, - 504,5640,5640,5641,5641,5561,5568,5540,5566,5565, - 5562,5563,5541,5046,5046,5046,5046,5046,5046,5046, - 5046,5046,5046,5046,5046,5046,5046,5046,5046,5046, - 5046,5046,5046,5046,5046,5046,5046,5046,5046,3372, - 2547,5300,5046,5046,5069,5046,350,5069,5069,1134, - 5069,5303,5069,5069,5069,314,5225,5220,4263,5049, - 672,5217,56,3421,5214,1,5320,5069,5069,2215, - 3222,5069,3195,231,1,4911,4907,5187,452,5190, - 244,5310,5193,5148,3028,5309,373,5564,1,4911, - 4907,4263,5320,672,1,314,3421,4758,322,314, - 5069,4921,56,5166,5163,1268,5069,365,4924,1, - 5069,5069,5069,5567,5069,5069,5300,5300,5640,4901, - 5641,5561,5568,5540,5566,5565,5562,5563,5541,5069, - 5069,5069,5069,5069,5069,5069,5069,5069,5069,5069, - 5069,5069,5069,5069,5069,5069,5069,5069,5069,5069, - 5069,5069,5069,5069,5069,567,1139,1268,5069,5069, - 4243,5069,1,5121,5117,4286,5125,3730,3796,4904, - 3421,3818,5081,165,3774,3752,2799,5108,5114,5087, - 5090,5102,5099,5105,5096,5093,5084,5111,3862,3840, - 5325,3708,438,1212,1298,5327,1230,631,1264,5328, - 5326,1204,5300,5321,5323,5324,5322,133,128,370, - 4911,4907,2729,1,672,1,1,3421,1,1309, - 3323,3298,4927,366,45,45,5300,514,45,4918, - 4915,4286,729,3730,3796,3320,3421,3818,994,5300, - 3774,3752,1825,5571,5569,5578,5577,5573,5574,5572, - 5575,5576,5579,5570,3862,3840,5325,3708,5300,1212, - 1298,5327,1230,631,1264,5328,5326,1204,1268,5321, - 5323,5324,5322,530,45,5300,5166,5163,5344,1088, - 132,1,4911,4907,2729,1309,672,5300,4933,3421, - 366,2593,5311,5300,5310,2643,2826,371,5309,5307, - 45,4918,4915,4286,729,3730,3796,3320,3421,3818, - 994,366,3774,3752,2881,5571,5569,5578,5577,5573, - 5574,5572,5575,5576,5579,5570,3862,3840,5325,3708, - 2991,1212,1298,5327,1230,631,1264,5328,5326,1204, - 1268,5321,5323,5324,5322,5300,5225,5220,4263,5049, - 672,5217,5300,3421,5214,4936,4220,1309,1,4911, - 4907,4263,316,672,5311,4010,3421,1182,2643,2826, - 5300,5307,149,4918,4915,4286,729,3730,3796,1, - 3421,3818,994,5300,3774,3752,5268,5571,5569,5578, - 5577,5573,5574,5572,5575,5576,5579,5570,3862,3840, - 5325,3708,5300,1212,1298,5327,1230,631,1264,5328, - 5326,1204,5300,5321,5323,5324,5322,35,1988,5306, - 396,4918,4915,5300,5344,1,4911,4907,2729,1309, - 672,1988,1044,3421,45,45,1,5121,5117,4286, - 5125,3730,3796,5311,3421,3818,5081,4930,3774,3752, - 5300,5108,5114,5087,5090,5102,5099,5105,5096,5093, - 5084,5111,3862,3840,5325,3708,45,1212,1298,5327, - 1230,631,1264,5328,5326,1204,5300,5321,5323,5324, - 5322,1,5052,5052,1268,5049,5305,2685,366,1, - 5633,5300,2514,1309,5300,5300,4933,5300,45,45, - 45,4918,4915,4286,729,3730,3796,5312,3421,3818, - 994,5300,3774,3752,5300,5571,5569,5578,5577,5573, - 5574,5572,5575,5576,5579,5570,3862,3840,5325,3708, - 5300,1212,1298,5327,1230,631,1264,5328,5326,1204, - 127,5321,5323,5324,5322,442,1,1,1268,1, - 5300,5037,3323,3298,5037,366,2628,1309,5300,51, - 5078,5078,2679,4936,5311,45,4918,4915,4286,729, - 3730,3796,5304,3421,3818,994,366,3774,3752,2680, - 5571,5569,5578,5577,5573,5574,5572,5575,5576,5579, - 5570,3862,3840,5325,3708,5753,1212,1298,5327,1230, - 631,1264,5328,5326,1204,5075,5321,5323,5324,5322, - 45,4918,4915,4286,729,3730,3796,5300,3421,3818, - 994,2928,3774,3752,131,5571,5569,5578,5577,5573, - 5574,5572,5575,5576,5579,5570,3862,3840,5325,3708, - 5300,1212,1298,5327,1230,631,1264,5328,5326,1204, - 404,5321,5323,5324,5322,232,5300,5181,5300,1, - 1248,5184,946,388,5767,5761,130,1309,5765,5564, - 1,5759,5760,348,45,45,2514,5344,5300,2685, - 4901,134,5633,5303,5300,5790,5791,43,5768,5770, - 443,45,45,5019,5344,5567,5178,5300,122,5175, - 5640,5300,5641,5561,5568,5540,5566,5565,5562,5563, - 5541,2484,2643,2826,5300,5300,567,946,733,5767, - 5761,1737,1738,5765,5771,508,5759,5760,5792,5769, - 4904,3592,1268,5342,5300,4918,4915,5300,729,672, - 5790,5791,3421,5768,5770,4012,5034,5781,5780,5793, - 5762,5763,5786,5787,2643,2826,5784,5785,5764,5766, - 5788,5789,5794,5774,5775,5776,5772,5773,5782,5783, - 5778,5777,5779,733,2430,2403,1737,1738,5300,5771, - 42,5241,5238,5792,5769,5300,4918,4915,3906,729, - 672,5300,5300,3421,3928,797,43,5205,5205,513, - 306,5205,5781,5780,5793,5762,5763,5786,5787,5300, - 5605,5784,5785,5764,5766,5788,5789,5794,5774,5775, - 5776,5772,5773,5782,5783,5778,5777,5779,45,4918, - 4915,4286,729,3730,3796,5300,3421,3818,994,4203, - 3774,3752,3678,5571,5569,5578,5577,5573,5574,5572, - 5575,5576,5579,5570,3862,3840,5325,3708,5300,1212, - 1298,5327,1230,631,1264,5328,5326,1204,876,5321, - 5323,5324,5322,45,4918,4915,4286,729,3730,3796, - 55,3421,3818,994,5300,3774,3752,1443,5571,5569, - 5578,5577,5573,5574,5572,5575,5576,5579,5570,3862, - 3840,5325,3708,5300,1212,1298,5327,1230,631,1264, - 5328,5326,1204,5300,5321,5323,5324,5322,5300,45, - 4918,4915,4685,729,3730,3796,1352,3421,3818,994, - 1309,3774,3752,4750,5571,5569,5578,5577,5573,5574, - 5572,5575,5576,5579,5570,3862,3840,5325,3708,5739, - 1212,1298,5327,1230,631,1264,5328,5326,1204,5300, - 5321,5323,5324,5322,45,4918,4915,4286,729,3730, - 3796,5300,3421,3818,994,1906,3774,3752,5810,5571, - 5569,5578,5577,5573,5574,5572,5575,5576,5579,5570, - 3862,3840,5325,3708,5300,1212,1298,5327,1230,631, - 1264,5328,5326,1204,5300,5321,5323,5324,5322,45, - 4918,4915,4286,729,3730,3796,5300,3421,3818,994, - 5300,3774,3752,5308,5571,5569,5578,5577,5573,5574, - 5572,5575,5576,5579,5570,3862,3840,5325,3708,378, - 1212,1298,5327,1230,631,1264,5328,5326,1204,5300, - 5321,5323,5324,5322,5300,4918,4915,5300,5344,4133, - 5300,8784,7337,3495,1131,5300,5319,5320,5564,5571, - 5569,5578,5577,5573,5574,5572,5575,5576,5579,5570, - 100,1,1,296,1,1000,5202,5307,5300,5202, - 1,4911,4907,4263,5567,672,47,83,3421,5640, - 2941,5641,5561,5568,5540,5566,5565,5562,5563,5541, - 5300,5300,5145,5142,5697,248,5012,5008,2665,5016, - 913,5698,5699,5370,5371,1131,5063,3884,1300,4963, - 4999,5005,4978,4981,4993,4990,4996,4987,4984,4975, - 5002,103,45,45,294,5344,5300,5256,1,4115, - 5253,5300,1,1951,5300,4954,3010,5342,3195,169, - 4948,922,4945,4972,4951,4942,4957,4960,4969,4966, - 4939,1,4911,4907,5187,5697,5190,5300,2665,5193, - 4499,913,5698,5699,35,388,388,5157,388,388, - 5157,5160,388,5157,519,5157,5300,567,388,121, - 579,38,389,389,5151,389,389,5151,5154,389, - 5151,2530,5151,1947,4930,389,120,659,5300,4013, - 5300,5319,5320,5834,388,672,169,5300,3421,388, - 5300,388,388,388,388,388,388,388,388,388, - 1,389,2771,5160,1,424,389,5271,389,389, - 389,389,389,389,389,389,389,2749,5160,418, - 5154,35,1,5247,5247,235,5247,235,235,5250, - 235,235,5300,235,5300,5154,8707,4500,447,1, - 5247,5247,235,5247,235,235,235,235,235,3906, - 235,2665,446,8707,5300,3928,1,5247,5247,235, - 5247,235,235,5262,235,235,3906,235,5244,2749, - 8707,5307,3928,3195,4371,5300,8843,8843,1305,3698, - 1955,5300,45,2975,1,5244,5344,5300,5310,2076, - 4656,5306,5309,227,422,1305,5300,1955,5300,1, - 2975,1221,5244,5300,8784,7337,5310,2537,1,5798, - 5309,5300,1305,5300,1955,526,5300,2975,5300,5025, - 5022,5342,1161,5306,3442,625,5798,226,1,5247, - 5247,235,5247,235,235,5250,235,235,5300,235, - 5300,3691,8707,5798,5300,1,5247,5247,235,5247, - 235,235,5250,235,235,5300,235,5300,5305,8707, - 3029,1,5247,5247,235,5247,235,235,235,235, - 235,5300,235,5300,5244,8707,1,43,5199,5199, - 3884,1300,526,199,1305,4767,1955,199,1,2975, - 5305,5244,1,5300,136,171,5733,5734,5735,227, - 5300,1305,1,1955,5300,2514,2975,5244,5300,344, - 41,4144,5300,2039,12,5798,227,1305,5300,1955, - 2957,5294,2975,3518,2484,8,53,5211,5211,5300, - 5234,5230,5798,1,5247,5247,235,5247,235,235, - 235,235,235,111,235,5300,4669,8707,5798,1, - 5247,5247,235,5247,235,235,235,235,235,5169, - 235,1268,171,8707,233,5300,135,344,81,56, - 3576,344,5208,5319,5300,5342,344,3012,5564,5244, - 3415,285,313,8,5265,5294,5300,2430,2403,1305, - 5300,1955,234,4709,2975,5244,2484,5300,5259,5319, - 4684,5300,5300,5300,5567,1305,5564,1955,5300,5640, - 2975,5641,5561,5568,5540,5566,5565,5562,5563,5541, - 5798,5300,5300,344,4011,4726,5300,5300,2,2855, - 4738,5172,5567,5300,5300,5300,5798,5640,4470,5641, - 5561,5568,5540,5566,5565,5562,5563,5541,5300,5300, - 5300,3386,4779,5300,5300,5300,3415,5300,43,2430, - 2403,5300,5300,5300,5300,5300,5300,5300,5300,5300, - 5300,5300,5300,5300,2913,2950,3004,5300,1909 + 5272,1,1,1,1,1,1,1,1,1, + 677,1,2399,1919,1,2499,1,1,5283,5272, + 1,1,1,5272,5291,5292,5455,5634,1,2848, + 2922,4172,2218,4131,2770,2880,2916,630,2913,3186, + 2822,45,4881,4878,4643,925,3761,3827,142,3450, + 3849,2562,3805,3783,43,5536,5543,5541,5550,5549, + 5545,5546,5544,5547,5548,5551,5542,3893,3871,5297, + 3739,5272,1168,1259,5299,1217,633,1252,5300,5298, + 1123,5539,5293,5295,5296,5294,5612,5272,5613,5533, + 5540,5512,5538,5537,5534,5535,5513,5272,1351,5272, + 5314,5671,5272,3721,5278,4863,5278,2806,5672,5673, + 5272,5098,5098,235,5094,235,235,5102,235,235, + 1,5272,5272,235,1,1,1,1,1,1, + 1,1,1,1,1,1,5272,4988,4985,231, + 5272,5022,5018,3415,5316,732,2940,594,3450,5605, + 1,350,929,5536,2299,1,5091,1,1,1, + 1,1,1,1,1,1,2555,4806,1006,83, + 1,5277,2908,5277,5272,5674,1,1,1,5539, + 5272,417,5685,235,5612,1655,5613,5533,5540,5512, + 5538,5537,5534,5535,5513,5342,5343,5772,5272,5098, + 5098,235,5094,235,235,5159,235,235,1,5272, + 1308,235,1,1,1,1,1,1,1,1, + 1,1,1,1,5707,5708,5709,129,3607,5272, + 126,370,4874,4870,2756,1,732,1,1,3450, + 1,3352,3327,1,5091,1,1,1,1,1, + 1,1,1,1,2555,45,1006,1,1,5316, + 44,4994,4991,5272,1,1,1,4864,1076,416, + 5685,235,581,1,736,39,397,5272,5009,2532, + 390,5009,5009,4864,5009,5772,5009,5009,5009,800, + 1308,1,4874,4870,5150,2686,5153,5272,5282,5156, + 1136,5009,5009,567,5281,5009,2808,230,56,4988, + 4985,454,5707,5708,5709,2664,2853,4867,147,567, + 147,5536,5543,5541,5550,5549,5545,5546,5544,5547, + 5548,5551,5542,4867,5009,5272,4881,4878,5272,5316, + 5009,4887,5284,5272,5009,5009,5009,5539,5009,5009, + 5280,5272,5612,3046,5613,5533,5540,5512,5538,5537, + 5534,5535,5513,5009,5009,5009,5009,5009,5009,5009, + 5009,5009,5009,5009,5009,5009,5009,5009,5009,5009, + 5009,5009,5009,5009,5009,5009,5009,5009,5009,1833, + 508,5272,5009,5009,5032,5009,306,5032,5032,5283, + 5032,1,5032,5032,5032,391,5577,348,5022,5018, + 2756,5316,732,2940,5279,3450,5605,5032,5032,56, + 1046,5032,1046,5292,1790,1747,1704,1661,1618,1575, + 1532,1489,1446,1403,5272,3617,5272,3617,314,5188, + 5183,3415,5012,732,5180,99,3450,5177,5029,5292, + 5032,1,2889,5272,2534,5272,5032,439,4896,3623, + 5032,5032,5032,5272,5032,5032,1308,2594,5272,5272, + 5188,5183,3415,5012,732,5180,5272,3450,5177,5032, + 5032,5032,5032,5032,5032,5032,5032,5032,5032,5032, + 5032,5032,5032,5032,5032,5032,5032,5032,5032,5032, + 5032,5032,5032,5032,5032,295,5291,5292,5032,5032, + 1308,5032,1,5084,5080,4643,5088,3761,3827,5272, + 3450,3849,5044,3805,3783,4899,5276,5071,5077,5050, + 5053,5065,5062,5068,5059,5056,5047,5074,3893,3871, + 5297,3739,2042,1168,1259,5299,1217,633,1252,5300, + 5298,1123,1,5293,5295,5296,5294,5272,1,1, + 4874,4870,2756,5272,732,169,4896,3450,5272,1351, + 5284,5707,5708,5709,45,45,5272,516,45,4881, + 4878,4643,925,3761,3827,5266,3450,3849,911,3805, + 3783,5272,5272,5543,5541,5550,5549,5545,5546,5544, + 5547,5548,5551,5542,3893,3871,5297,3739,5272,1168, + 1259,5299,1217,633,1252,5300,5298,1123,1308,5293, + 5295,5296,5294,1,4874,4870,3415,5283,732,5272, + 314,3450,169,4899,134,1351,314,5275,1,4874, + 4870,3415,5250,732,55,322,3450,4485,4884,5279, + 149,4881,4878,4643,925,3761,3827,2002,3450,3849, + 911,3805,3783,5272,2504,5543,5541,5550,5549,5545, + 5546,5544,5547,5548,5551,5542,3893,3871,5297,3739, + 5272,1168,1259,5299,1217,633,1252,5300,5298,1123, + 1440,5293,5295,5296,5294,506,1,5015,5015,4997, + 5012,5272,2940,366,1308,5605,373,1351,51,5041, + 5041,2042,45,45,1,5084,5080,4643,5088,3761, + 3827,5272,3450,3849,5044,3805,3783,2450,2423,5071, + 5077,5050,5053,5065,5062,5068,5059,5056,5047,5074, + 3893,3871,5297,3739,119,1168,1259,5299,1217,633, + 1252,5300,5298,1123,5038,5293,5295,5296,5294,348, + 45,45,2534,5316,4299,2940,2035,2125,5605,365, + 366,1351,56,5129,5126,1179,45,45,45,4881, + 4878,4643,925,3761,3827,5247,3450,3849,911,3805, + 3783,366,5272,5543,5541,5550,5549,5545,5546,5544, + 5547,5548,5551,5542,3893,3871,5297,3739,5272,1168, + 1259,5299,1217,633,1252,5300,5298,1123,1308,5293, + 5295,5296,5294,165,1,4874,4870,2756,5272,732, + 5272,5272,3450,133,3937,1351,5272,5291,5292,3524, + 3959,5272,5250,45,4881,4878,4643,925,3761,3827, + 5247,3450,3849,911,3805,3783,2622,2037,5543,5541, + 5550,5549,5545,5546,5544,5547,5548,5551,5542,3893, + 3871,5297,3739,2046,1168,1259,5299,1217,633,1252, + 5300,5298,1123,1308,5293,5295,5296,5294,444,1, + 1,371,1,1876,5000,5727,4151,5000,3915,818, + 1351,2532,398,4881,4878,5272,5316,5250,45,4881, + 4878,4643,925,3761,3827,5276,3450,3849,911,3805, + 3783,2664,2853,5543,5541,5550,5549,5545,5546,5544, + 5547,5548,5551,5542,3893,3871,5297,3739,5272,1168, + 1259,5299,1217,633,1252,5300,5298,1123,45,5293, + 5295,5296,5294,45,4881,4878,4643,925,3761,3827, + 1222,3450,3849,911,3805,3783,5272,5272,5543,5541, + 5550,5549,5545,5546,5544,5547,5548,5551,5542,3893, + 3871,5297,3739,122,1168,1259,5299,1217,633,1252, + 5300,5298,1123,132,5293,5295,5296,5294,232,5272, + 5129,5126,1,5713,5272,909,510,5741,5735,339, + 1351,5739,5536,5733,5734,1,5272,5272,2534,5272, + 4881,4878,344,925,732,448,5275,3450,5764,5765, + 5272,5742,5744,445,45,45,131,5316,5539,5141, + 56,5272,5138,5612,5291,5613,5533,5540,5512,5538, + 5537,5534,5535,5513,5612,130,5613,5272,5272,5272, + 909,1045,5741,5735,1562,1564,5739,5745,5733,5734, + 5291,5743,5766,3937,1308,662,5272,4988,4985,3959, + 344,2664,2853,5764,5765,344,5742,5744,121,344, + 5755,5754,5767,5736,5737,5760,5761,5272,627,5758, + 5759,5738,5740,5762,5763,5768,5748,5749,5750,5746, + 5747,5756,5757,5752,5751,5753,1045,5272,5272,1562, + 1564,1,5745,5784,2664,2853,5743,5766,5231,5272, + 4881,4878,316,925,732,3243,344,3450,3915,818, + 5272,128,296,2664,2853,5755,5754,5767,5736,5737, + 5760,5761,3352,3327,5758,5759,5738,5740,5762,5763, + 5768,5748,5749,5750,5746,5747,5756,5757,5752,5751, + 5753,45,4881,4878,4643,925,3761,3827,3937,3450, + 3849,911,3805,3783,3959,5283,5543,5541,5550,5549, + 5545,5546,5544,5547,5548,5551,5542,3893,3871,5297, + 3739,1091,1168,1259,5299,1217,633,1252,5300,5298, + 1123,2005,5293,5295,5296,5294,45,4881,4878,4643, + 925,3761,3827,5272,3450,3849,911,3805,3783,5272, + 1830,5543,5541,5550,5549,5545,5546,5544,5547,5548, + 5551,5542,3893,3871,5297,3739,306,1168,1259,5299, + 1217,633,1252,5300,5298,1123,5577,5293,5295,5296, + 5294,42,5204,5201,5272,5272,45,4881,4878,4696, + 925,3761,3827,1351,3450,3849,911,3805,3783,5272, + 5272,5543,5541,5550,5549,5545,5546,5544,5547,5548, + 5551,5542,3893,3871,5297,3739,2093,1168,1259,5299, + 1217,633,1252,5300,5298,1123,5272,5293,5295,5296, + 5294,45,4881,4878,4643,925,3761,3827,5272,3450, + 3849,911,3805,3783,5272,5272,5543,5541,5550,5549, + 5545,5546,5544,5547,5548,5551,5542,3893,3871,5297, + 3739,5272,1168,1259,5299,1217,633,1252,5300,5298, + 1123,5272,5293,5295,5296,5294,45,4881,4878,4643, + 925,3761,3827,5272,3450,3849,911,3805,3783,120, + 5280,5543,5541,5550,5549,5545,5546,5544,5547,5548, + 5551,5542,3893,3871,5297,3739,5272,1168,1259,5299, + 1217,633,1252,5300,5298,1123,5272,5293,5295,5296, + 5294,5272,4881,4878,45,5316,2701,244,5316,440, + 5111,575,5272,7939,7318,5536,5543,5541,5550,5549, + 5545,5546,5544,5547,5548,5551,5542,5272,4881,4878, + 35,925,5035,1002,5279,3450,100,1,1,4890, + 1,5539,5165,5272,1201,5165,5612,1216,5613,5533, + 5540,5512,5538,5537,5534,5535,5513,515,136,3937, + 2808,5671,248,4975,4971,3959,4979,2806,5672,5673, + 5272,35,575,937,1226,5272,4926,4962,4968,4941, + 4944,4956,4953,4959,4950,4947,4938,4965,2504,5272, + 5272,35,390,390,5120,390,390,5120,5123,390, + 5120,4893,4917,424,5120,390,532,4911,5272,4908, + 4935,4914,4905,4920,4923,4932,4929,4902,5707,5708, + 5709,4893,5671,5132,5272,7939,7318,879,2806,5672, + 5673,390,43,5168,5168,5272,390,5168,390,390, + 390,390,390,390,390,390,390,294,2942,5272, + 5123,2450,2423,38,391,391,5114,391,391,5114, + 5117,391,5114,2526,390,5123,5114,391,1,5210, + 5210,235,5210,235,235,5213,235,235,1698,127, + 5272,235,8843,233,1,4874,4870,3415,5272,732, + 3352,3327,3450,391,4982,5272,1,5536,391,4783, + 391,391,391,391,391,391,391,391,391,103, + 45,45,5117,5316,5207,5219,5272,1089,5216,4146, + 5272,5272,5272,5539,2591,4749,2399,5117,5612,2499, + 5613,5533,5540,5512,5538,5537,5534,5535,5513,227, + 1,5210,5210,235,5210,235,235,235,235,235, + 4752,4764,4780,235,8843,5772,378,5272,1,5210, + 5210,235,5210,235,235,5225,235,235,2924,47, + 2123,235,8843,1,5272,1,5210,5210,235,5210, + 235,235,5213,235,235,5272,5207,2808,235,8843, + 5272,5272,1,4874,4870,5150,2591,5153,2399,5026, + 5156,2499,406,2808,5207,5272,5291,5292,135,5144, + 732,420,521,3450,2591,5147,2399,1,5272,2499, + 2123,5207,5272,5272,366,4256,4312,5772,5272,226, + 5272,2591,5272,2399,5272,5282,2499,5282,2504,5272, + 426,5281,1956,5281,5272,5772,227,1,5210,5210, + 235,5210,235,235,5213,235,235,5272,2979,5272, + 235,8843,5772,1,5210,5210,235,5210,235,235, + 235,235,235,5135,3720,2924,235,8843,567,5272, + 2130,1,5210,5210,235,5210,235,235,235,235, + 235,366,2767,5207,235,8843,5272,5272,5108,5105, + 4205,2450,2423,2591,5808,2399,5272,1,2499,5207, + 861,81,366,1,5278,5272,8840,8840,227,2591, + 5234,2399,234,5272,2499,1,1,5207,5272,5291, + 5292,2924,5282,528,5772,5284,5536,2591,5281,2399, + 5272,5222,2499,5314,43,5162,5162,53,5174,5174, + 5772,1,5210,5210,235,5210,235,235,235,235, + 235,5314,5539,5272,235,8843,4456,5612,5772,5613, + 5533,5540,5512,5538,5537,5534,5535,5513,5272,4881, + 4878,5277,925,5035,5279,41,3450,5272,5197,5193, + 1612,1,5283,5171,1,8,5272,5207,199,2301, + 528,171,5269,5272,199,5272,2969,2591,2970,2399, + 111,5272,2499,3636,2543,285,5272,5272,5228,4043, + 449,313,5272,5272,2079,4644,4042,5272,5272,5272, + 4728,4334,4755,5314,5272,5272,5272,4579,5772,5272, + 5272,2,4704,5272,1,4258,5272,5272,5272,5272, + 5272,5272,5272,5272,3218,5272,5272,5272,5272,5272, + 5272,5272,5272,5272,5272,5272,5269,5272,171,5272, + 5272,43,2481,5272,5272,5272,5272,5272,5272,5272, + 5272,5272,5272,5272,5272,5272,5272,5272,5272,5272, + 917,4216,5272,5272,5272,5272,5272,5272,5272,5272, + 5272,5272,5272,5272,5272,3218,5272,5272,3033,1962 }; }; public final static char termAction[] = TermAction.termAction; @@ -1711,59 +1710,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asb { public final static char asb[] = {0, - 218,724,227,70,70,509,721,721,509,387, - 387,843,424,387,637,573,509,316,433,433, - 122,1,2,11,11,356,663,663,774,356, - 663,452,1081,1009,1020,866,1020,579,1020,581, - 1020,1004,1020,1083,356,1081,454,70,648,227, - 227,227,227,1083,648,625,300,627,317,317, - 317,317,317,317,317,317,317,666,672,677, - 674,681,679,686,684,688,687,689,166,690, - 316,316,163,704,458,458,998,1085,359,359, - 660,163,490,663,663,227,663,359,490,490, - 456,424,356,656,493,356,865,538,632,223, - 866,650,356,356,356,538,637,456,721,300, - 387,387,387,387,356,587,805,665,490,490, - 300,914,386,998,300,666,907,907,587,316, - 317,317,317,317,317,317,317,317,317,317, - 317,317,317,317,317,317,317,317,317,316, - 316,316,316,316,316,316,316,316,316,316, - 316,317,458,458,354,997,359,359,1081,163, - 163,359,490,7,435,270,656,493,865,224, - 865,538,865,650,650,356,538,356,353,490, - 490,844,844,844,844,538,490,316,317,229, - 236,1027,1027,1083,627,163,386,316,354,490, - 353,355,353,490,163,674,674,672,672,672, - 679,679,679,679,677,677,684,681,681,687, - 686,688,450,689,490,490,1085,356,844,843, - 844,660,844,715,542,656,655,421,356,493, - 450,582,227,540,767,440,493,865,865,846, - 356,650,421,419,420,356,356,648,648,648, - 648,356,356,316,356,998,317,387,670,24, - 490,355,998,316,715,854,997,300,715,656, - 998,869,866,844,227,353,864,442,350,648, - 575,414,847,356,421,317,356,316,316,316, - 316,648,648,538,354,490,670,1081,1085,356, - 354,715,854,717,354,869,869,78,509,354, - 865,865,350,709,1081,61,317,450,65,846, - 356,1083,1083,356,490,490,490,490,587,587, - 356,670,671,670,316,24,216,666,1085,717, - 856,717,710,421,955,959,207,648,582,114, - 869,869,509,354,865,866,1083,442,350,317, - 317,356,356,356,490,490,1062,670,587,317, - 163,216,717,856,648,77,207,955,20,1083, - 421,843,710,866,280,575,356,648,356,356, - 671,490,163,459,78,869,710,64,709,490, - 1083,356,78,957,281,1083,356,587,436,869, - 316,729,350,710,356,356,957,280,450,317, - 450,710,279,648,648,648,281,648,356,173, - 710,710,356,866,490,387,421,490,728,356, - 710,272,648,272,281,450,281,300,300,298, - 713,300,710,710,68,957,728,710,542,281, - 490,350,490,298,207,648,490,957,420,726, - 490,490,1075,281,68,281,710,207,316,281, - 278,728,866,866,1077,316,279,587,710,490, - 281,490,710,281 + 11,838,295,340,340,623,835,835,623,397, + 397,793,474,397,490,827,623,152,483,483, + 195,1,2,347,347,192,674,674,724,192, + 674,503,1067,995,1006,852,1006,589,1006,591, + 1006,990,1006,1069,192,1067,505,340,501,295, + 295,295,295,1069,501,582,136,584,153,153, + 153,153,153,153,153,153,153,677,683,688, + 685,692,690,697,695,699,698,700,239,701, + 152,152,236,715,509,509,982,1071,369,369, + 671,236,541,674,674,295,674,369,541,541, + 507,474,192,667,607,192,851,652,656,291, + 852,661,192,192,192,652,490,507,835,136, + 397,397,397,397,192,544,755,676,541,541, + 136,900,396,982,136,677,893,893,544,152, + 153,153,153,153,153,153,153,153,153,153, + 153,153,153,153,153,153,153,153,153,152, + 152,152,152,152,152,152,152,152,152,152, + 152,153,509,509,190,981,369,369,1067,236, + 236,369,541,7,485,338,667,607,851,292, + 851,652,851,661,661,192,652,192,189,541, + 541,794,794,794,794,652,541,152,153,297, + 304,1013,1013,1069,584,236,396,152,190,541, + 189,191,189,541,236,685,685,683,683,683, + 690,690,690,690,688,688,695,692,692,698, + 697,699,1083,700,541,541,1071,192,794,793, + 794,671,794,829,796,667,666,362,192,607, + 1083,592,295,654,55,1073,607,851,851,597, + 192,661,362,360,361,192,192,501,501,501, + 501,192,192,152,192,982,153,397,681,62, + 541,191,982,152,829,840,981,136,829,667, + 982,855,852,794,295,189,850,1075,186,501, + 365,424,598,192,362,153,192,152,152,152, + 152,501,501,652,190,541,681,1067,1071,192, + 190,829,840,831,190,855,855,430,623,190, + 851,851,186,720,1067,99,153,1083,103,597, + 192,1069,1069,192,541,541,541,541,544,544, + 192,681,682,681,152,62,289,677,1071,831, + 842,831,721,362,941,943,280,501,592,466, + 855,855,623,190,851,852,1069,1075,186,153, + 153,192,192,192,541,541,1048,681,544,153, + 236,289,831,842,501,429,280,941,356,1069, + 362,793,721,852,116,365,192,501,192,192, + 682,541,236,510,430,855,721,102,720,541, + 1069,192,430,988,117,1069,192,544,486,855, + 152,17,186,721,192,192,988,116,1083,153, + 1083,721,115,501,501,501,117,501,192,246, + 721,721,192,852,541,397,362,541,362,852, + 192,721,108,501,108,117,1083,117,136,136, + 134,605,136,721,721,106,988,362,17,721, + 796,117,541,186,541,134,280,501,541,988, + 17,541,541,1061,117,106,117,721,280,152, + 117,114,361,852,852,1063,152,115,544,721, + 541,719,16,117,541,721,719,719,117 }; }; public final static char asb[] = Asb.asb; @@ -1771,115 +1770,115 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asr { public final static byte asr[] = {0, - 3,65,70,69,121,59,7,74,95,0, - 75,3,65,73,95,69,74,11,59,7, - 64,70,0,96,90,12,13,91,92,88, - 89,65,93,94,97,98,99,100,101,102, - 117,95,104,105,106,107,108,109,110,111, - 112,113,118,74,71,1,2,4,9,6, - 73,59,30,3,7,69,11,70,0,65, - 70,69,121,1,2,0,64,60,45,17, - 66,49,18,50,51,19,20,52,53,21, - 22,54,67,55,68,23,40,24,47,25, - 16,15,48,7,3,9,6,11,58,61, - 87,14,46,8,1,2,5,4,10,56, - 0,62,63,3,10,32,36,34,31,39, + 3,65,69,70,121,59,7,74,95,0, + 60,10,46,72,0,71,62,63,57,26, + 27,9,6,11,12,29,35,3,41,44, + 42,43,28,38,33,37,16,25,15,21, + 19,20,22,23,18,17,24,32,36,34, + 31,39,64,7,8,1,2,5,4,10, + 0,96,90,11,12,91,92,88,89,65, + 93,94,97,98,99,100,101,102,117,95, + 104,105,106,107,108,109,110,111,112,113, + 118,74,71,1,2,4,9,6,73,59, + 30,3,7,70,13,69,0,87,114,115, + 116,46,73,119,122,71,72,75,58,56, + 61,77,79,85,83,76,81,82,84,86, + 64,78,80,13,7,48,60,45,66,49, + 14,50,51,52,53,54,67,55,68,40, + 47,57,62,63,10,32,36,34,31,39, 16,25,15,21,19,20,22,23,18,17, - 24,41,44,42,43,28,38,33,37,5, - 8,4,26,27,9,6,12,13,29,35, - 1,2,118,7,0,65,73,95,69,118, - 74,71,15,16,31,62,17,32,33,18, - 19,20,63,34,21,22,35,36,37,57, - 38,39,10,23,24,25,41,42,43,28, - 26,27,12,13,29,44,7,9,6,4, - 11,1,2,8,3,5,0,60,10,46, - 72,0,4,7,73,64,30,0,7,73, - 118,74,11,69,0,48,15,16,45,17, - 49,14,18,50,51,19,20,52,8,53, - 21,22,54,55,23,40,24,47,25,1, - 2,7,59,9,5,4,74,11,3,6, - 0,87,114,115,116,46,73,119,122,71, - 72,75,58,56,61,77,79,85,83,76, - 81,82,84,86,64,78,80,11,7,48, - 60,45,66,49,14,50,51,52,53,54, - 67,55,68,40,47,57,62,63,10,32, - 36,34,31,39,16,25,15,21,19,20, - 22,23,18,17,24,41,44,42,43,28, - 38,33,37,26,27,12,13,29,35,9, - 6,3,4,8,5,1,2,0,31,62, + 24,41,44,42,43,28,38,33,37,26, + 27,11,12,29,35,9,6,3,4,8, + 5,1,2,0,62,63,3,10,32,36, + 34,31,39,16,25,15,21,19,20,22, + 23,18,17,24,41,44,42,43,28,38, + 33,37,5,8,4,26,27,9,6,11, + 12,29,35,1,2,118,7,0,65,73, + 95,70,118,74,71,15,16,31,62,17, + 32,33,18,19,20,63,34,21,22,35, + 36,37,57,38,39,10,23,24,25,41, + 42,43,28,26,27,11,12,29,44,7, + 9,6,4,13,1,2,8,3,5,0, + 4,7,73,64,30,0,7,73,118,74, + 13,70,0,48,15,16,45,17,49,14, + 18,50,51,19,20,52,8,53,21,22, + 54,55,23,40,24,47,25,1,2,7, + 59,9,5,4,74,13,3,6,0,65, + 69,70,121,1,2,0,75,3,65,73, + 95,70,74,13,59,7,64,69,0,69, + 70,71,7,0,7,64,70,0,31,62, 32,33,63,8,34,35,36,37,57,38, - 39,41,42,43,28,26,27,9,6,12, - 13,5,29,65,44,3,48,15,16,60, + 39,41,42,43,28,26,27,9,6,11, + 12,5,29,65,44,3,48,15,16,60, 45,17,66,49,14,18,50,51,19,20, 52,53,21,22,54,67,55,10,68,23, - 24,47,25,1,2,4,40,0,70,69, - 71,7,0,9,6,4,3,5,8,59, - 1,2,65,70,95,74,7,69,0,11, - 7,8,5,3,1,2,6,9,4,73, - 0,8,5,3,59,6,9,95,48,15, - 16,60,45,17,66,49,14,18,50,51, - 19,20,52,53,21,22,54,67,55,10, - 68,23,40,24,47,25,1,2,4,74, - 7,0,87,56,8,114,115,116,58,7, - 3,9,6,5,73,71,11,72,48,15, - 16,60,45,17,66,49,14,18,50,51, - 19,20,52,53,21,22,54,67,55,10, - 68,23,40,24,47,25,4,1,2,46, - 0,48,15,16,45,17,66,49,14,18, - 50,51,19,20,52,53,21,22,54,67, - 55,10,68,23,40,24,47,25,1,2, - 4,95,60,0,7,64,69,0,46,73, - 4,64,7,1,2,0,7,74,15,16, - 31,17,32,33,18,19,20,34,21,22, - 35,36,37,57,38,39,10,23,24,25, - 41,42,43,28,3,26,27,9,6,12, - 13,29,4,44,5,8,1,2,63,62, - 0,4,7,73,64,0,7,65,69,74, - 121,1,2,9,6,4,59,3,0,1, - 2,7,71,0,57,45,8,47,5,1, - 2,4,75,64,121,120,103,26,27,59, - 3,96,90,6,91,92,12,13,89,88, - 30,93,94,97,98,9,99,100,101,65, - 95,74,70,104,105,106,107,108,109,110, - 111,112,113,73,118,71,102,117,69,11, - 7,0,76,0,45,47,57,7,95,74, - 65,69,70,121,0,69,11,71,62,63, - 57,26,27,9,6,12,13,29,35,3, - 41,44,42,43,28,38,33,37,16,25, - 15,21,19,20,22,23,18,17,24,32, - 36,34,31,39,64,7,8,1,2,5, - 4,10,0,48,15,16,60,45,17,66, + 24,47,25,1,2,4,40,0,64,60, + 45,17,66,49,18,50,51,19,20,52, + 53,21,22,54,67,55,68,23,40,24, + 47,25,16,15,48,7,3,9,6,13, + 58,61,87,14,46,8,1,2,5,4, + 10,56,0,9,6,4,3,5,8,59, + 1,2,65,69,95,74,7,70,0,7, + 65,70,74,121,1,2,9,6,4,59, + 3,0,8,5,3,59,6,9,95,48, + 15,16,60,45,17,66,49,14,18,50, + 51,19,20,52,53,21,22,54,67,55, + 10,68,23,40,24,47,25,1,2,4, + 74,7,0,7,74,15,16,31,17,32, + 33,18,19,20,34,21,22,35,36,37, + 57,38,39,10,23,24,25,41,42,43, + 28,3,26,27,9,6,11,12,29,4, + 44,5,8,1,2,63,62,0,46,73, + 4,64,7,1,2,0,40,1,2,4, + 114,115,116,0,76,0,87,56,8,114, + 115,116,58,7,3,9,6,5,73,71, + 13,72,48,15,16,60,45,17,66,49, + 14,18,50,51,19,20,52,53,21,22, + 54,67,55,10,68,23,40,24,47,25, + 4,1,2,46,0,4,7,73,64,0, + 1,2,7,71,0,57,45,8,47,5, + 1,2,4,75,64,121,120,103,26,27, + 59,3,96,90,6,91,92,11,12,89, + 88,30,93,94,97,98,9,99,100,101, + 65,95,74,69,104,105,106,107,108,109, + 110,111,112,113,73,118,102,117,71,70, + 13,7,0,48,15,16,60,45,17,66, 49,14,18,50,51,19,20,52,53,21, 22,54,67,55,10,68,23,40,24,47, - 25,1,2,4,63,62,12,13,6,91, - 92,99,9,100,5,29,70,30,107,108, + 25,1,2,4,63,62,11,12,6,91, + 92,99,9,100,5,29,69,30,107,108, 104,105,106,112,111,113,89,88,109,110, 97,98,93,94,101,102,26,27,90,103, - 3,59,69,65,0,40,1,2,4,114, - 115,116,0,45,47,57,3,65,95,70, - 69,74,11,75,73,64,7,0,61,48, - 15,16,60,45,17,66,49,87,14,18, - 50,51,19,20,52,56,53,21,22,54, - 67,55,10,68,23,58,40,24,47,25, - 7,3,9,6,71,11,8,4,46,5, - 1,2,0,62,63,26,27,9,6,12, - 13,5,29,35,3,4,8,41,44,42, - 43,38,33,37,16,25,15,21,19,20, - 22,23,18,17,24,10,32,36,34,31, - 39,59,1,2,28,0,119,0,60,45, - 17,66,49,18,50,51,19,20,52,53, + 3,59,70,65,0,48,15,16,45,17, + 66,49,14,18,50,51,19,20,52,53, 21,22,54,67,55,10,68,23,40,24, - 47,25,16,15,48,7,3,9,11,58, - 56,61,87,14,30,4,6,8,1,2, - 5,46,0,10,66,60,67,68,16,25, - 15,21,19,20,22,23,18,17,24,75, - 73,95,118,71,64,121,120,96,103,90, - 26,27,12,13,91,92,88,89,30,65, - 93,94,97,98,99,100,101,102,117,70, - 104,105,106,107,108,109,110,111,112,113, - 69,48,45,49,14,50,51,52,53,54, - 55,40,47,11,7,74,3,59,8,5, - 6,9,1,2,4,0 + 47,25,1,2,4,95,60,0,45,47, + 57,7,95,74,65,70,69,121,0,45, + 47,57,3,65,95,69,70,74,13,75, + 73,64,7,0,61,48,15,16,60,45, + 17,66,49,87,14,18,50,51,19,20, + 52,56,53,21,22,54,67,55,10,68, + 23,58,40,24,47,25,7,3,9,6, + 71,13,8,4,46,5,1,2,0,62, + 63,26,27,9,6,11,12,5,29,35, + 3,4,8,41,44,42,43,38,33,37, + 16,25,15,21,19,20,22,23,18,17, + 24,10,32,36,34,31,39,59,1,2, + 28,0,60,45,17,66,49,18,50,51, + 19,20,52,53,21,22,54,67,55,10, + 68,23,40,24,47,25,16,15,48,7, + 3,9,13,58,56,61,87,14,30,4, + 6,8,1,2,5,46,0,119,0,10, + 66,60,67,68,16,25,15,21,19,20, + 22,23,18,17,24,75,73,95,118,71, + 64,121,120,96,103,90,26,27,11,12, + 91,92,88,89,30,65,93,94,97,98, + 99,100,101,102,117,69,104,105,106,107, + 108,109,110,111,112,113,70,48,45,49, + 14,50,51,52,53,54,55,40,47,13, + 7,74,3,59,8,5,6,9,1,2, + 4,0,13,7,8,5,3,1,2,6, + 9,4,73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1887,59 +1886,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Nasb { public final static char nasb[] = {0, - 88,12,12,57,57,149,12,12,153,32, - 32,12,142,5,108,12,153,61,12,12, - 74,13,13,13,13,233,12,12,195,212, - 12,141,182,242,243,121,243,156,243,53, - 243,236,12,10,233,182,107,57,12,12, - 12,12,12,183,12,35,252,233,61,61, - 208,61,61,61,61,61,61,12,12,12, - 12,12,12,12,12,12,12,12,61,12, - 61,61,79,12,149,149,171,12,149,149, - 69,79,271,12,12,12,12,149,271,271, - 260,185,233,149,149,158,149,215,149,12, - 121,149,215,233,11,12,164,260,12,252, - 32,32,32,32,233,161,197,12,271,271, - 1,61,81,171,252,12,15,15,161,101, - 61,61,61,61,61,61,61,61,61,61, - 61,61,61,61,61,61,61,61,61,61, - 61,61,61,61,61,61,61,61,61,61, - 101,61,153,153,191,39,27,27,182,79, - 79,27,271,12,12,12,131,245,149,149, - 25,128,25,149,213,11,128,158,190,271, - 271,12,12,12,12,170,271,61,61,12, - 12,12,12,10,233,79,32,104,191,271, - 190,233,190,271,79,12,12,12,12,12, + 53,12,12,95,95,142,12,12,252,37, + 37,12,135,5,106,12,252,64,12,12, + 81,13,13,13,13,44,12,12,204,217, + 12,134,191,240,241,124,241,159,241,144, + 241,234,12,10,44,191,105,95,12,12, + 12,12,12,68,12,57,272,44,64,64, + 213,64,64,64,64,64,64,12,12,12, + 12,12,12,12,12,12,12,12,64,12, + 64,64,86,12,142,142,117,12,142,142, + 88,86,229,12,12,12,12,142,229,229, + 263,194,44,142,142,161,142,220,142,12, + 124,142,220,44,11,12,164,263,12,272, + 37,37,37,37,44,154,206,12,229,229, + 1,64,47,117,272,12,15,15,154,102, + 64,64,64,64,64,64,64,64,64,64, + 64,64,64,64,64,64,64,64,64,64, + 64,64,64,64,64,64,64,64,64,64, + 102,64,252,252,200,40,32,32,191,86, + 86,32,229,12,12,12,157,243,142,142, + 30,25,30,142,218,11,25,161,199,229, + 229,12,12,12,12,116,229,64,64,12, + 12,12,12,10,44,86,37,148,200,229, + 199,44,199,229,86,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,271,271,12,11,12,12, - 12,166,12,149,153,149,131,174,233,114, - 12,47,12,12,90,133,245,25,25,199, - 158,213,174,12,12,158,233,12,12,12, - 12,158,11,61,233,171,61,32,149,50, - 271,230,171,61,149,149,39,27,131,131, - 171,149,121,12,12,183,149,176,144,12, - 12,183,72,215,174,61,213,101,101,101, - 101,12,12,169,158,271,126,166,12,212, - 158,131,131,149,191,203,149,222,149,215, - 149,83,187,114,182,12,61,12,43,256, - 215,183,183,11,271,271,271,271,161,161, - 158,149,45,12,101,166,231,12,12,149, - 149,67,114,174,12,222,134,12,54,90, - 222,203,153,191,83,227,21,144,187,61, - 61,11,215,215,271,271,12,126,161,61, - 79,231,67,67,12,120,176,12,12,183, - 174,12,114,227,173,12,215,12,11,11, - 45,271,79,269,222,149,114,92,12,271, - 183,215,222,149,98,21,11,161,271,203, - 104,60,144,114,215,48,96,116,12,61, - 12,114,12,12,12,12,117,12,213,112, - 114,114,213,85,271,32,174,271,149,48, - 114,94,12,12,117,12,117,218,218,151, - 12,218,114,114,12,149,59,114,32,117, - 271,144,271,265,149,12,271,96,174,12, - 271,271,149,117,12,117,114,144,101,117, - 94,59,85,85,142,61,12,123,114,271, - 117,271,114,117 + 12,12,12,12,229,229,12,11,12,12, + 12,166,12,142,252,142,157,176,44,180, + 12,112,12,12,70,255,243,30,30,169, + 161,218,176,12,12,161,44,12,12,12, + 12,161,11,64,44,117,64,37,142,72, + 229,131,117,64,142,142,40,32,157,157, + 117,142,124,12,12,68,142,185,137,12, + 12,68,75,220,176,64,218,102,102,102, + 102,12,12,115,161,229,77,166,12,217, + 161,157,157,142,200,208,142,126,142,220, + 142,55,196,180,191,12,64,12,28,49, + 220,68,68,11,229,229,229,229,154,154, + 161,142,110,12,102,166,132,12,12,142, + 142,97,180,176,12,126,256,12,145,70, + 126,208,252,200,55,182,21,137,196,64, + 64,11,220,220,229,229,12,77,154,64, + 86,132,97,97,12,123,185,12,12,68, + 176,12,180,182,175,12,220,12,11,11, + 110,229,86,227,126,142,180,91,12,229, + 68,220,126,142,99,21,11,154,229,208, + 148,62,137,180,220,113,173,119,12,64, + 12,180,12,12,12,12,120,12,218,178, + 180,180,218,151,229,37,176,229,142,124, + 113,180,79,12,12,120,12,120,223,223, + 250,12,223,180,180,12,142,176,142,180, + 37,120,229,137,229,268,142,12,229,173, + 62,229,229,142,120,12,120,180,137,102, + 120,79,176,151,151,135,64,12,231,180, + 229,93,61,120,229,180,93,12,120 }; }; public final static char nasb[] = Nasb.nasb; @@ -1947,34 +1946,34 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,148,146,121,145,144,5, - 2,0,75,0,5,2,10,7,135,0, - 165,5,164,0,109,0,5,7,10,2, - 13,4,44,0,2,7,3,0,67,134, - 133,0,183,0,137,0,42,104,0,4, - 171,0,5,1,42,0,108,0,66,42, - 5,7,10,2,13,0,125,0,4,187, - 0,185,0,13,2,10,7,5,83,0, - 169,0,154,0,42,56,0,168,0,151, - 0,177,0,113,0,156,0,48,42,173, - 4,39,0,4,30,0,32,94,95,4, - 0,4,39,38,0,66,39,48,68,4, - 42,0,4,172,0,139,0,2,67,0, - 61,0,38,54,7,10,2,4,153,0, - 32,95,94,64,54,7,10,2,4,0, - 39,175,4,22,0,5,45,2,3,0, - 4,97,0,95,94,5,57,0,2,54, - 67,0,4,66,0,2,64,54,7,10, - 4,90,5,0,95,94,54,64,57,5, - 7,10,2,0,4,44,166,0,5,102, - 184,0,115,4,48,82,0,5,7,10, - 13,3,1,0,2,62,0,4,44,103, - 0,4,48,82,84,0,42,155,0,2, - 114,0,2,45,0,2,5,121,117,118, - 119,13,87,0,4,48,82,102,46,5, - 0,4,44,39,0,5,102,161,0,22, - 4,5,90,0,44,4,174,0,44,4, - 32,0 + 3,13,7,10,149,147,121,146,145,5, + 2,0,75,0,5,2,10,7,136,0, + 167,5,166,0,2,67,0,185,0,109, + 0,5,7,10,2,13,4,44,0,67, + 135,134,0,2,45,0,171,0,5,102, + 163,0,170,0,155,0,2,7,3,0, + 66,128,40,7,10,2,13,5,0,152, + 0,4,173,0,187,0,140,0,113,0, + 13,2,10,7,5,83,0,4,189,0, + 179,0,158,0,108,0,125,0,48,40, + 175,4,39,0,32,94,95,4,0,138, + 0,40,104,0,2,54,67,0,66,39, + 48,68,4,40,0,4,48,82,84,0, + 2,114,0,32,95,94,64,54,7,10, + 2,4,0,5,1,40,0,4,30,0, + 40,56,0,4,97,0,61,0,5,45, + 2,3,0,95,94,5,57,0,5,102, + 186,0,157,0,4,66,0,4,39,38, + 0,40,156,0,2,64,54,7,10,4, + 5,90,0,95,94,54,64,57,5,7, + 10,2,0,4,44,168,0,115,4,48, + 82,0,5,7,10,13,3,1,0,2, + 62,0,4,44,103,0,44,4,32,0, + 4,174,0,2,5,121,117,118,119,13, + 87,0,4,48,82,102,46,5,0,39, + 177,4,22,0,38,54,7,10,2,4, + 154,0,22,4,5,90,0,44,4,176, + 0,4,44,39,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1983,12 +1982,12 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TerminalIndex { public final static char terminalIndex[] = {0, 113,114,2,31,13,10,115,79,9,100, - 120,11,12,66,48,52,60,68,74,75, + 11,12,120,66,48,52,60,68,74,75, 86,87,102,105,107,7,8,112,14,19, 55,61,67,84,88,90,94,97,99,104, 109,110,111,123,54,93,106,47,64,70, 73,76,83,89,98,77,95,103,1,53, - 46,58,78,121,20,63,91,101,44,33, + 46,58,78,121,20,63,91,101,33,44, 119,122,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, 15,16,21,22,32,4,23,24,25,26, @@ -2005,8 +2004,8 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 132,137,139,0,0,138,236,136,0,230, 135,0,146,134,0,0,145,151,0,0, 152,182,161,162,163,164,165,166,167,154, - 168,127,169,170,171,0,144,129,133,172, - 0,130,141,155,140,180,0,0,0,0, + 168,127,169,170,171,0,144,129,133,130, + 172,0,141,155,140,180,0,0,0,0, 0,0,0,0,148,175,158,0,205,0, 189,0,202,206,0,128,0,174,0,0, 0,0,0,0,207,178,0,0,0,0, @@ -2014,14 +2013,14 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 213,160,209,210,211,0,0,0,0,149, 208,221,177,198,0,0,212,0,0,0, 0,241,242,150,181,0,191,192,193,194, - 195,197,200,0,0,215,218,220,0,239, - 240,0,142,143,147,0,0,157,159,0, - 173,0,183,184,185,186,187,190,0,196, - 0,199,204,0,216,217,0,222,225,227, - 229,0,233,234,235,237,238,125,0,153, - 156,0,176,0,179,0,201,214,219,0, - 223,224,226,228,0,231,232,243,244,0, - 0,0,0,0,0 + 195,197,200,0,0,215,218,0,220,0, + 239,240,0,142,143,147,0,0,157,159, + 0,173,0,183,184,185,186,187,190,0, + 196,0,199,204,0,216,217,0,0,222, + 225,227,229,0,233,234,235,237,238,125, + 0,153,156,0,176,0,179,0,201,214, + 219,0,223,224,226,228,0,231,232,243, + 244,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2029,18 +2028,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopePrefix { public final static char scopePrefix[] = { - 151,573,592,524,540,551,562,356,261,275, - 297,303,42,286,376,414,159,581,467,20, - 51,71,80,85,90,127,187,292,309,320, - 331,267,281,495,27,366,331,600,27,209, - 240,1,14,61,76,106,141,222,314,327, - 336,345,349,432,460,489,516,520,610,614, - 618,97,7,97,141,394,410,423,444,508, - 423,531,547,558,569,199,478,56,56,148, - 214,217,235,256,217,217,56,353,457,464, - 148,56,631,110,228,398,438,451,116,116, - 228,56,228,385,169,104,436,622,629,622, - 629,65,404,134,104,104,245 + 156,578,597,529,545,556,567,361,266,280, + 302,308,42,291,381,419,164,586,472,20, + 51,71,80,85,90,127,192,297,314,325, + 336,141,272,286,500,27,141,371,336,605, + 27,214,245,1,14,61,76,106,227,319, + 332,341,350,354,437,465,494,521,525,615, + 619,623,97,7,97,399,415,428,449,513, + 428,536,552,563,574,204,483,56,56,153, + 219,222,240,261,222,222,56,358,462,469, + 153,56,636,110,233,403,443,456,116,116, + 233,56,233,390,174,104,441,627,634,627, + 634,65,409,134,104,104,250 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2048,18 +2047,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,363,132,95, - 132,132,48,272,382,420,165,67,473,25, - 25,25,59,59,95,132,192,132,132,325, - 325,272,101,500,38,371,587,605,32,203, - 203,5,18,5,59,95,132,226,318,318, - 318,95,95,132,238,5,5,5,5,5, - 238,226,11,101,145,363,363,363,448,500, - 427,535,535,535,535,203,482,59,59,5, - 5,220,238,5,259,259,343,95,5,238, - 5,493,5,113,340,401,441,454,119,123, - 231,512,503,388,172,95,95,624,624,626, - 626,67,406,136,194,179,247 + 18,5,5,5,5,5,5,368,132,95, + 132,132,48,277,387,425,170,67,478,25, + 25,25,59,59,95,132,197,132,132,330, + 330,146,277,101,505,38,149,376,592,610, + 32,208,208,5,18,5,59,95,231,323, + 323,323,95,95,132,243,5,5,5,5, + 5,243,231,11,101,368,368,368,453,505, + 432,540,540,540,540,208,487,59,59,5, + 5,225,243,5,264,264,348,95,5,243, + 5,498,5,113,345,406,446,459,119,123, + 236,517,508,393,177,95,95,629,629,631, + 631,67,411,136,199,184,252 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2069,16 +2068,16 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final static char scopeLhs[] = { 46,17,17,17,17,17,17,71,86,47, 80,119,77,52,71,70,46,17,19,3, - 6,9,161,161,158,117,46,81,119,118, - 120,53,47,135,111,71,17,17,111,96, - 58,132,74,164,161,158,127,60,118,118, - 120,176,50,56,139,18,17,17,17,17, - 17,12,113,158,127,71,70,70,36,135, - 70,17,17,17,17,96,19,165,161,177, - 94,101,75,59,153,76,120,72,140,139, - 169,135,16,158,120,103,69,21,128,128, - 57,135,135,71,46,158,65,133,45,133, - 45,164,103,117,46,46,58 + 6,9,163,163,160,117,46,81,119,118, + 120,127,53,47,136,111,127,71,17,17, + 111,96,58,133,74,166,163,160,60,118, + 118,120,178,50,56,140,18,17,17,17, + 17,17,12,113,160,71,70,70,36,136, + 70,17,17,17,17,96,19,167,163,179, + 94,101,75,59,154,76,120,72,141,140, + 171,136,16,160,120,103,69,21,129,129, + 57,136,136,71,46,160,65,134,45,134, + 45,166,103,117,46,46,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2086,17 +2085,17 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,74,74,74,74,74,71,11, + 119,74,74,74,74,74,74,74,71,13, 71,71,65,1,74,122,64,3,74,65, - 65,65,1,1,11,71,64,71,71,1, - 1,1,1,4,65,11,1,1,65,74, - 74,74,119,74,1,11,71,1,1,1, - 1,11,11,71,118,74,74,74,74,74, - 118,1,74,1,69,74,74,74,73,4, + 65,65,1,1,13,71,64,71,71,1, + 1,71,1,1,4,65,70,13,1,1, + 65,74,74,74,119,74,1,13,1,1, + 1,1,13,13,71,118,74,74,74,74, + 74,118,1,74,1,74,74,74,73,4, 74,65,65,65,65,74,3,1,1,74, - 74,3,118,74,1,1,1,11,74,118, - 74,5,74,1,46,70,73,74,1,1, - 6,1,46,76,75,11,11,4,4,4, + 74,3,118,74,1,1,1,13,74,118, + 74,5,74,1,46,69,73,74,1,1, + 6,1,46,76,75,13,13,4,4,4, 4,3,1,64,1,1,3 }; }; @@ -2108,10 +2107,10 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 76,232,232,232,232,232,232,86,67,76, 65,145,65,78,86,86,76,232,232,165, 207,208,56,56,62,145,76,65,145,145, - 145,78,76,101,311,86,232,232,311,303, - 149,46,86,26,56,62,295,149,145,145, - 145,22,78,29,53,232,232,232,232,232, - 232,227,6,62,295,86,86,86,264,101, + 145,295,78,76,101,311,295,86,232,232, + 311,303,149,46,86,26,56,62,149,145, + 145,145,22,78,29,53,232,232,232,232, + 232,232,227,6,62,86,86,86,264,101, 86,232,232,232,232,303,232,26,56,24, 303,305,299,149,59,154,145,86,50,53, 104,101,232,62,145,1,86,233,145,145, @@ -2124,70 +2123,70 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeRhs { public final static char scopeRhs[] = {0, - 312,3,57,0,127,0,311,3,119,0, - 127,175,0,127,179,75,0,217,0,252, - 127,30,125,0,20,0,290,127,30,46, + 314,3,57,0,127,0,313,3,119,0, + 127,175,0,127,179,75,0,217,0,253, + 127,30,125,0,20,0,292,127,30,46, 0,20,53,0,33,134,0,20,53,0, - 0,290,127,30,46,205,0,20,131,0, - 252,127,30,130,0,185,128,0,144,0, - 220,3,288,0,288,0,2,0,127,0, - 252,127,30,133,0,185,128,225,0,185, - 128,40,225,0,185,128,308,40,0,131, + 0,292,127,30,46,205,0,20,131,0, + 253,127,30,130,0,185,128,0,144,0, + 220,3,290,0,290,0,2,0,127,0, + 253,127,30,133,0,185,128,225,0,185, + 128,40,225,0,185,128,310,40,0,131, 190,168,128,0,129,0,190,168,128,0, - 136,129,0,171,0,304,127,171,0,127, + 136,129,0,171,0,306,127,171,0,127, 171,0,223,129,0,168,244,0,139,0, - 0,0,137,0,0,0,303,127,165,251, - 0,128,0,251,0,130,0,0,128,0, - 302,127,165,0,44,128,0,153,3,0, - 127,278,277,127,75,276,171,0,277,127, - 75,276,171,0,216,0,217,0,276,171, - 0,96,0,0,216,0,217,0,204,96, - 0,0,216,0,217,0,277,127,276,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,190,168,177,0,136,0,168,128,0, - 10,0,0,0,215,59,0,126,0,228, - 127,3,182,0,182,0,2,0,0,127, - 0,0,0,0,0,199,3,0,202,0, - 239,127,165,28,14,0,185,128,56,58, - 0,198,129,0,131,185,128,274,58,0, - 185,128,274,58,0,185,128,70,124,56, - 0,239,127,165,56,0,239,127,165,227, - 56,0,272,127,165,124,66,0,272,127, - 165,66,0,185,128,66,0,137,0,190, - 185,128,244,0,139,0,185,128,244,0, - 190,168,128,10,0,168,128,10,0,93, - 139,0,149,0,265,127,145,0,265,127, - 171,0,162,85,0,295,161,297,298,3, - 82,0,127,174,0,297,298,3,82,0, - 129,0,127,174,0,162,3,76,191,81, - 0,127,129,0,191,81,0,108,2,133, - 127,129,0,226,3,76,0,199,167,0, - 33,172,0,167,0,178,33,172,0,226, - 3,86,0,191,155,226,3,84,0,62, - 174,0,226,3,84,0,127,174,62,174, - 0,296,127,165,0,162,0,215,78,0, - 30,174,0,162,117,158,0,30,172,0, - 178,3,0,127,152,0,220,3,0,215, - 59,262,0,162,59,0,178,3,292,63, - 128,0,127,0,0,0,0,292,63,128, - 0,2,148,127,0,0,0,0,178,3, - 35,0,150,0,126,46,168,128,0,31, - 150,0,93,139,31,150,0,223,185,128, - 0,149,31,150,0,178,3,39,0,162, - 3,39,0,162,3,65,178,30,31,0, - 178,30,31,0,20,2,133,127,0,162, - 3,65,178,30,34,0,178,30,34,0, - 162,3,65,178,30,36,0,178,30,36, - 0,162,3,65,178,30,32,0,178,30, - 32,0,220,3,126,190,168,128,10,0, - 126,190,168,128,10,0,139,2,0,127, - 0,220,3,125,177,168,128,10,0,177, - 168,128,10,0,137,2,0,127,0,220, - 3,136,0,220,3,140,0,162,59,140, - 0,257,0,31,0,31,142,0,166,0, - 162,3,0 + 0,0,137,0,0,0,305,127,163,252, + 0,128,0,252,0,130,0,0,128,0, + 304,127,163,251,0,128,0,0,44,128, + 0,0,153,3,0,127,279,278,127,75, + 277,171,0,278,127,75,277,171,0,216, + 0,217,0,277,171,0,96,0,0,216, + 0,217,0,204,96,0,0,216,0,217, + 0,278,127,277,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,190,168,177,0, + 136,0,168,128,0,10,0,0,0,215, + 59,0,126,0,228,127,3,182,0,182, + 0,2,0,0,127,0,0,0,0,0, + 199,3,0,202,0,239,127,163,28,14, + 0,185,128,56,58,0,198,129,0,131, + 185,128,275,58,0,185,128,275,58,0, + 185,128,69,124,56,0,239,127,163,56, + 0,239,127,163,227,56,0,273,127,163, + 124,66,0,273,127,163,66,0,185,128, + 66,0,137,0,190,185,128,244,0,139, + 0,185,128,244,0,190,168,128,10,0, + 168,128,10,0,93,139,0,149,0,266, + 127,145,0,266,127,171,0,162,85,0, + 297,161,299,300,3,82,0,127,174,0, + 299,300,3,82,0,129,0,127,174,0, + 162,3,76,191,81,0,127,129,0,191, + 81,0,108,2,133,127,129,0,226,3, + 76,0,199,167,0,33,172,0,167,0, + 178,33,172,0,226,3,86,0,191,155, + 226,3,84,0,62,174,0,226,3,84, + 0,127,174,62,174,0,298,127,163,0, + 162,0,215,78,0,30,174,0,162,117, + 158,0,30,172,0,178,3,0,127,152, + 0,220,3,0,215,59,263,0,162,59, + 0,178,3,294,63,128,0,127,0,0, + 0,0,294,63,128,0,2,148,127,0, + 0,0,0,178,3,35,0,150,0,126, + 46,168,128,0,31,150,0,93,139,31, + 150,0,223,185,128,0,149,31,150,0, + 178,3,39,0,162,3,39,0,162,3, + 65,178,30,31,0,178,30,31,0,20, + 2,133,127,0,162,3,65,178,30,34, + 0,178,30,34,0,162,3,65,178,30, + 36,0,178,30,36,0,162,3,65,178, + 30,32,0,178,30,32,0,220,3,126, + 190,168,128,10,0,126,190,168,128,10, + 0,139,2,0,127,0,220,3,125,177, + 168,128,10,0,177,168,128,10,0,137, + 2,0,127,0,220,3,136,0,220,3, + 140,0,162,59,140,0,258,0,31,0, + 31,142,0,166,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2195,38 +2194,38 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeState { public final static char scopeState[] = {0, - 4632,4738,4726,4011,0,2452,2994,1897,1905,0, - 3223,3186,3132,3095,3041,3004,2950,2913,2853,2548, - 2511,2855,0,1435,0,2537,625,0,3223,3186, - 1563,1479,3132,3095,3041,3004,2950,2913,1395,2853, - 2548,2511,4460,4134,0,2884,1992,993,0,2588, - 810,0,2611,2605,0,4371,3451,0,4422,2705, - 0,4416,4255,0,4416,4255,3591,4133,4120,3581, - 4079,4025,4013,3571,0,4416,4255,3591,4133,4120, - 3581,4079,4025,4013,3571,3223,3186,3132,3095,3041, - 3004,2950,2913,2853,2548,2511,0,2928,734,0, - 659,579,0,1300,0,2806,4382,4508,3404,4304, - 4039,3348,721,3039,4450,3116,3373,4444,858,722, - 0,4610,4606,4597,4590,4586,4577,4559,4521,4718, - 4702,4691,4509,4483,4680,4663,4372,4006,4488,4248, - 2931,2871,4150,0,535,4231,2634,0,4382,4422, - 4304,2705,3373,3359,3994,4393,3386,2806,4220,4263, - 3348,2729,2623,0,4610,4084,4606,3608,2936,4597, - 4590,4586,2817,3682,1356,4577,4559,3678,3576,3518, - 4521,4138,4718,3500,4702,3397,3217,4691,3156,4509, - 4483,1352,4680,2690,4663,4372,4006,927,4488,4248, - 2931,4231,2871,672,4150,2634,729,3359,3994,4393, - 3386,2806,4382,4220,2766,4422,4304,2519,4263,3348, - 2705,2201,2113,3373,2729,2623,2025,933,797,659, - 579,631,3972,3950,2215,2252,592,2286,2375,2347, - 2318,2826,2643,2484,2457,2430,2403,3549,3525,3470, - 3323,3298,3928,3906,3884,3862,3840,3818,3796,3774, - 3752,3730,3708,1909,2164,2127,2076,2039,1988,1951, - 876,1867,1825,1226,820,740,684,1783,1741,1699, - 1657,1615,1573,1531,1489,1447,1405,1363,535,1182, - 1139,1309,1268,1088,1000,956,1044,0,850,782, - 583,539,3116,3373,3359,2514,2729,3007,2623,0, - 3280,3495,3064,1400,0 + 4641,4755,4728,4042,0,1355,3137,1260,3045,0, + 3252,3215,3161,3124,3070,3033,2979,2942,2880,2568, + 2531,4334,0,1607,0,917,627,0,3252,3215, + 3399,3188,3161,3124,3070,3033,2979,2942,2848,2880, + 2568,2531,3393,3257,0,2588,2203,2027,0,2937, + 2552,0,3156,1209,0,861,2966,0,4474,4405, + 0,4425,4267,0,4425,4267,3622,4151,4110,3612, + 4056,4044,2701,3602,0,4425,4267,3622,4151,4110, + 3612,4056,4044,2701,3602,3252,3215,3161,3124,3070, + 3033,2979,2942,2880,2568,2531,0,2594,737,0, + 800,581,0,818,0,2833,4382,3480,3222,4317, + 3401,3377,725,3182,4487,2963,3402,4433,3179,1345, + 0,4633,4619,4615,4595,4569,4565,4545,4518,4745, + 4736,4720,4513,4498,4688,4666,4248,4037,3203,3112, + 2959,2898,738,0,537,4241,2655,0,4382,4474, + 4317,4405,3402,3388,4025,4394,4216,2833,4205,3415, + 3377,2756,2644,0,4633,3131,4619,3039,2793,4615, + 4595,4569,2573,1741,1396,4565,4545,1698,1655,1612, + 4518,2709,4745,1569,4736,1526,1483,4720,3093,4513, + 4498,1440,4688,3541,4666,4248,4037,1173,3203,3112, + 2959,4241,2898,732,738,2655,925,3388,4025,4394, + 4216,2833,4382,4205,2724,4474,4317,2539,3415,3377, + 4405,2255,2167,3402,2756,2644,2079,937,662,800, + 581,633,4003,3981,1046,2269,594,2306,2395,2367, + 2338,2853,2664,2504,2477,2450,2423,3580,3556,3499, + 3352,3327,3959,3937,3915,3893,3871,3849,3827,3805, + 3783,3761,3739,1962,2218,2181,2130,2093,2042,2005, + 879,1919,1876,1265,823,743,687,1833,1790,1747, + 1704,1661,1618,1575,1532,1489,1446,1403,537,1222, + 1179,1351,1308,1136,1002,959,1091,0,2342,1999, + 1401,541,2963,3402,3388,2534,2756,2696,2644,0, + 3147,2532,2714,870,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2234,59 +2233,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface InSymb { public final static char inSymb[] = {0, - 0,291,46,10,60,30,231,231,127,70, - 70,290,145,127,167,65,69,70,224,199, + 0,293,46,10,60,30,231,231,127,69, + 69,292,145,127,167,65,70,69,224,199, 59,217,218,187,182,177,130,133,8,5, - 125,3,127,266,267,251,268,244,269,66, - 270,271,125,10,128,127,3,60,39,31, + 125,3,127,267,268,252,269,244,270,66, + 271,272,125,10,128,127,3,60,39,31, 34,36,32,10,136,4,3,128,35,29, - 5,13,12,6,9,27,26,140,146,148, + 5,12,11,6,9,27,26,140,146,148, 147,150,149,152,151,156,154,157,57,158, - 70,70,215,158,3,3,168,166,30,30, + 69,69,215,158,3,3,168,166,30,30, 167,59,3,62,63,125,124,30,224,199, - 127,213,128,6,165,168,231,128,126,125, - 124,165,128,128,185,168,213,127,231,3, + 127,213,128,6,163,168,231,128,126,125, + 124,163,128,128,185,168,213,127,231,3, 30,30,30,30,128,3,8,125,178,162, 127,62,63,168,3,126,103,120,3,59, - 90,96,13,12,92,91,6,94,93,65, + 90,96,12,11,92,91,6,94,93,65, 30,88,89,9,98,97,100,99,101,113, - 112,111,110,109,108,107,106,105,104,70, + 112,111,110,109,108,107,106,105,104,69, 117,102,127,127,190,4,127,127,127,59, 59,127,228,229,230,168,127,127,126,125, - 127,185,127,165,127,185,168,46,70,178, - 162,178,178,178,178,168,220,127,155,264, - 136,126,125,10,128,59,292,3,190,178, + 127,185,127,163,127,185,168,46,69,178, + 162,178,178,178,178,168,220,127,155,265, + 136,126,125,10,128,59,294,3,190,178, 46,128,46,220,162,147,147,146,146,146, 149,149,149,149,148,148,151,150,150,154, - 152,156,162,157,228,228,257,190,252,254, - 252,213,252,155,69,6,184,303,128,169, - 225,56,46,205,58,171,305,127,127,73, - 190,127,272,124,273,190,128,65,65,65, - 65,190,177,69,128,168,206,3,293,167, - 153,185,168,73,155,155,4,69,127,127, - 168,165,227,30,46,274,276,127,3,182, - 307,225,40,128,272,70,69,3,3,3, + 152,156,162,157,228,228,258,190,253,255, + 253,213,253,155,70,6,184,305,128,169, + 225,56,46,205,58,171,307,127,127,73, + 190,127,273,124,274,190,128,65,65,65, + 65,190,177,70,128,168,206,3,295,167, + 153,185,168,73,155,155,4,70,127,127, + 168,163,227,30,46,275,277,127,3,182, + 309,225,40,128,273,69,70,3,3,3, 3,126,125,168,46,178,127,127,223,5, - 46,127,127,221,190,127,165,65,30,128, - 75,127,213,304,127,125,73,283,199,69, - 128,40,308,185,162,162,162,162,3,3, - 190,155,259,262,59,180,4,124,126,221, + 46,127,127,221,190,127,163,65,30,128, + 75,127,213,306,127,125,73,285,199,70, + 128,40,310,185,162,162,162,162,3,3, + 190,155,260,263,59,180,4,124,126,221, 221,127,131,239,14,46,171,61,56,58, - 238,127,127,185,127,277,73,69,213,73, - 70,185,128,128,220,220,126,127,3,59, + 238,127,127,185,127,278,73,70,213,73, + 69,185,128,128,220,220,126,127,3,59, 162,4,127,127,57,28,127,3,124,56, - 239,290,131,277,165,287,128,288,185,185, - 259,220,215,3,127,165,265,199,275,28, - 70,128,65,278,127,69,185,3,312,127, - 3,70,69,155,128,185,127,296,80,78, + 239,292,131,278,163,289,128,290,185,185, + 260,220,215,3,127,163,266,199,276,28, + 69,128,65,279,127,70,185,3,314,127, + 3,69,70,155,128,185,127,298,80,78, 1,162,7,86,84,82,81,76,83,85, - 79,77,56,75,220,69,239,153,165,185, - 227,279,119,7,73,215,73,3,3,3, - 191,3,124,162,124,179,127,227,3,73, - 226,167,226,298,145,76,226,127,302,7, - 95,311,167,155,199,155,297,127,3,155, - 279,69,155,155,127,70,191,161,265,162, - 122,295,155,155 + 79,77,56,75,220,70,239,153,163,251, + 185,227,280,119,7,73,215,73,3,3, + 3,191,3,124,162,124,179,127,163,227, + 3,73,226,167,226,300,145,76,226,127, + 127,95,313,167,155,199,155,299,127,3, + 155,280,304,155,155,127,69,191,161,266, + 162,189,70,122,297,155,189,7,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2562,20 +2561,20 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 524, + NUM_STATES = 529, NT_OFFSET = 123, - LA_STATE_OFFSET = 5834, + LA_STATE_OFFSET = 5808, MAX_LA = 2147483647, - NUM_RULES = 534, - NUM_NONTERMINALS = 195, - NUM_SYMBOLS = 318, + NUM_RULES = 536, + NUM_NONTERMINALS = 197, + NUM_SYMBOLS = 320, SEGMENT_SIZE = 8192, - START_STATE = 1400, + START_STATE = 870, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4900, - ERROR_ACTION = 5300; + ACCEPT_ACTION = 4863, + ERROR_ACTION = 5272; 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 f9e46714291..dd63a1558d7 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 @@ -96,8 +96,8 @@ public interface CPPTemplateTypeParameterParsersym { TK_MinusMinus = 27, TK_And = 9, TK_Star = 6, - TK_Plus = 12, - TK_Minus = 13, + TK_Plus = 11, + TK_Minus = 12, TK_Tilde = 5, TK_Bang = 29, TK_Slash = 91, @@ -118,7 +118,7 @@ public interface CPPTemplateTypeParameterParsersym { TK_Colon = 73, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 70, + TK_Assign = 69, TK_StarAssign = 104, TK_SlashAssign = 105, TK_PercentAssign = 106, @@ -129,11 +129,11 @@ public interface CPPTemplateTypeParameterParsersym { TK_AndAssign = 111, TK_CaretAssign = 112, TK_OrAssign = 113, - TK_Comma = 69, + TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, TK_RightBrace = 71, - TK_SemiColon = 11, + TK_SemiColon = 13, TK_LeftBrace = 64, TK_ERROR_TOKEN = 72, TK_0 = 44, @@ -151,9 +151,9 @@ public interface CPPTemplateTypeParameterParsersym { "operator", "And", "typename", - "SemiColon", "Plus", "Minus", + "SemiColon", "extern", "bool", "char", @@ -209,8 +209,8 @@ public interface CPPTemplateTypeParameterParsersym { "enum", "struct", "union", - "Comma", "Assign", + "Comma", "RightBrace", "ERROR_TOKEN", "Colon", diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java index 78250638b5c..91765e9ff89 100644 --- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java +++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java @@ -64,12 +64,20 @@ public class UPCLanguageExtensionTests extends TestCase { // test that binding resolution works private IASTTranslationUnit parseAndCheckBindings(String code) { - return ParseHelper.parse(code, getLanguage(), true, true, 0 ); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(true); + options.setCheckPreprocessorProblems(true); + options.setCheckBindings(true); + return ParseHelper.parse(code, getLanguage(), options ); } private IASTTranslationUnit parse(String code) { - return ParseHelper.parse(code, getLanguage(), true, false, 0 ); + ParseHelper.Options options = new ParseHelper.Options(); + options.setCheckSyntaxProblems(true); + options.setCheckPreprocessorProblems(true); + options.setCheckBindings(false); + return ParseHelper.parse(code, getLanguage(), options); } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java index 974d33b2455..43e225898b0 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java @@ -24,6 +24,7 @@ import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; 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.parser.upc.UPCASTNodeFactory; @@ -32,7 +33,6 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; public class UPCExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { @@ -176,8 +176,9 @@ private UPCParserAction action; public UPCExpressionParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu); + action.setParserOptions(options); } @@ -187,10 +188,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -602,13 +603,13 @@ public UPCExpressionParser(String[] mapFrom) { // constructor } // - // Rule 102: labeled_statement ::= case constant_expression : + // Rule 102: labeled_statement ::= case constant_expression : statement // case 102: { action. consumeStatementCase(); break; } // - // Rule 103: labeled_statement ::= default : + // Rule 103: labeled_statement ::= default : statement // case 103: { action. consumeStatementDefault(); break; } @@ -1166,381 +1167,399 @@ public UPCExpressionParser(String[] mapFrom) { // constructor } // - // Rule 279: initializer ::= { <openscope-ast> initializer_list comma_opt } + // Rule 279: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 279: { action. consumeInitializerList(); break; } // - // Rule 284: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 280: initializer ::= { <openscope-ast> } + // + case 280: { action. consumeInitializerList(); break; + } + + // + // Rule 281: start_initializer_list ::= $Empty + // + case 281: { action. initializerListStart(); break; + } + + // + // Rule 282: end_initializer_list ::= $Empty + // + case 282: { action. initializerListEnd(); break; + } + + // + // Rule 287: designated_initializer ::= <openscope-ast> designation = initializer // - case 284: { action. consumeInitializerDesignated(); break; + case 287: { action. consumeInitializerDesignated(); break; } // - // Rule 288: designator_base ::= [ constant_expression ] + // Rule 291: designator_base ::= [ constant_expression ] // - case 288: { action. consumeDesignatorArray(); break; + case 291: { action. consumeDesignatorArray(); break; } // - // Rule 289: designator_base ::= . identifier_or_typedefname + // Rule 292: designator_base ::= . identifier_or_typedefname // - case 289: { action. consumeDesignatorField(); break; + case 292: { action. consumeDesignatorField(); break; } // - // Rule 290: designator ::= [ constant_expression ] + // Rule 293: designator ::= [ constant_expression ] // - case 290: { action. consumeDesignatorArray(); break; + case 293: { action. consumeDesignatorArray(); break; } // - // Rule 291: designator ::= . identifier_or_typedefname + // Rule 294: designator ::= . identifier_or_typedefname // - case 291: { action. consumeDesignatorField(); break; + case 294: { action. consumeDesignatorField(); break; } // - // Rule 292: translation_unit ::= external_declaration_list + // Rule 295: translation_unit ::= external_declaration_list // - case 292: { action. consumeTranslationUnit(); break; + case 295: { action. consumeTranslationUnit(); break; } // - // Rule 293: translation_unit ::= $Empty + // Rule 296: translation_unit ::= $Empty // - case 293: { action. consumeTranslationUnit(); break; + case 296: { action. consumeTranslationUnit(); break; } // - // Rule 298: external_declaration ::= ; + // Rule 301: external_declaration ::= ; // - case 298: { action. consumeDeclarationEmpty(); break; + case 301: { action. consumeDeclarationEmpty(); break; } // - // Rule 299: external_declaration ::= ERROR_TOKEN + // Rule 302: external_declaration ::= ERROR_TOKEN // - case 299: { action. consumeDeclarationProblem(); break; + case 302: { action. consumeDeclarationProblem(); break; } // - // Rule 302: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 305: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 302: { action. consumeFunctionDefinition(true); break; + case 305: { action. consumeFunctionDefinition(true); break; } // - // Rule 303: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 306: function_definition ::= <openscope-ast> function_declarator function_body // - case 303: { action. consumeFunctionDefinition(false); break; + case 306: { action. consumeFunctionDefinition(false); break; } // - // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 304: { action. consumeFunctionDefinitionKnR(); break; + case 307: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 305: function_body ::= { } + // Rule 308: function_body ::= { } // - case 305: { action. consumeStatementCompoundStatement(false); break; + case 308: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 306: function_body ::= { <openscope-ast> block_item_list } + // Rule 309: function_body ::= { <openscope-ast> block_item_list } // - case 306: { action. consumeStatementCompoundStatement(true); break; + case 309: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 308: expression_parser_start ::= ERROR_TOKEN + // Rule 311: expression_parser_start ::= ERROR_TOKEN // - case 308: { action. consumeExpressionProblem(); break; + case 311: { action. consumeExpressionProblem(); break; } // - // Rule 309: literal ::= MYTHREAD + // Rule 312: literal ::= MYTHREAD // - case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 312: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 310: literal ::= THREADS + // Rule 313: literal ::= THREADS // - case 310: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 311: literal ::= UPC_MAX_BLOCKSIZE + // Rule 314: literal ::= UPC_MAX_BLOCKSIZE // - case 311: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 314: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 312: unary_expression ::= upc_localsizeof unary_expression + // Rule 315: unary_expression ::= upc_localsizeof unary_expression // - case 312: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 315: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 313: unary_expression ::= upc_localsizeof ( type_name ) + // Rule 316: unary_expression ::= upc_localsizeof ( type_name ) // - case 313: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 316: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 314: unary_expression ::= upc_blocksizeof unary_expression + // Rule 317: unary_expression ::= upc_blocksizeof unary_expression // - case 314: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 315: unary_expression ::= upc_blocksizeof ( type_name ) + // Rule 318: unary_expression ::= upc_blocksizeof ( type_name ) // - case 315: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 318: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 316: unary_expression ::= upc_elemsizeof unary_expression + // Rule 319: unary_expression ::= upc_elemsizeof unary_expression // - case 316: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 319: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 317: unary_expression ::= upc_elemsizeof ( type_name ) + // Rule 320: unary_expression ::= upc_elemsizeof ( type_name ) // - case 317: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 320: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 321: shared_type_qualifier ::= shared + // Rule 324: shared_type_qualifier ::= shared // - case 321: { action. consumeToken(); break; + case 324: { action. consumeToken(); break; } // - // Rule 322: reference_type_qualifier ::= relaxed + // Rule 325: reference_type_qualifier ::= relaxed // - case 322: { action. consumeToken(); break; + case 325: { action. consumeToken(); break; } // - // Rule 323: reference_type_qualifier ::= strict + // Rule 326: reference_type_qualifier ::= strict // - case 323: { action. consumeToken(); break; + case 326: { action. consumeToken(); break; } // - // Rule 324: layout_qualifier ::= [ constant_expression ] + // Rule 327: layout_qualifier ::= [ constant_expression ] // - case 324: { action. consumeLayoutQualifier(true, false); break; + case 327: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 325: layout_qualifier ::= [ * ] + // Rule 328: layout_qualifier ::= [ * ] // - case 325: { action. consumeLayoutQualifier(false, true); break; + case 328: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 326: layout_qualifier ::= [ ] + // Rule 329: layout_qualifier ::= [ ] // - case 326: { action. consumeLayoutQualifier(false, false); break; + case 329: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 328: synchronization_statement ::= upc_notify expression ; + // Rule 331: synchronization_statement ::= upc_notify expression ; // - case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 329: synchronization_statement ::= upc_notify ; + // Rule 332: synchronization_statement ::= upc_notify ; // - case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 330: synchronization_statement ::= upc_wait expression ; + // Rule 333: synchronization_statement ::= upc_wait expression ; // - case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 331: synchronization_statement ::= upc_wait ; + // Rule 334: synchronization_statement ::= upc_wait ; // - case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 332: synchronization_statement ::= upc_barrier expression ; + // Rule 335: synchronization_statement ::= upc_barrier expression ; // - case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 333: synchronization_statement ::= upc_barrier ; + // Rule 336: synchronization_statement ::= upc_barrier ; // - case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 334: synchronization_statement ::= upc_fence ; + // Rule 337: synchronization_statement ::= upc_fence ; // - case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 335: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 338: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 336: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 339: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 337: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 340: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 338: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 341: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 339: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 339: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 342: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 340: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 343: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 341: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 344: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 341: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 344: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 342: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 345: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 342: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 345: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 343: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 346: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 343: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 346: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 344: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 347: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 344: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 347: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 345: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 348: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 345: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 348: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 346: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 346: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 349: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 347: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 347: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 350: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 351: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 349: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 352: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 349: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 352: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 350: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 353: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 350: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 353: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 351: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 354: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 352: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 355: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 353: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 356: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 354: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 357: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 355: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 355: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 358: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 359: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 357: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 360: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 357: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 360: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 358: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 361: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 358: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 361: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 360: affinity ::= continue + // Rule 363: affinity ::= continue // - case 360: { action. consumeToken(); break; + case 363: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java index 9d802d02b0b..4b9256b0bda 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java @@ -45,7 +45,7 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP 3,1,5,1,3,3,3,3,3,3, 3,3,3,3,3,1,1,2,1,0, 1,3,1,1,1,1,1,1,1,1, - 3,3,2,2,4,1,2,1,1,1, + 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, @@ -62,170 +62,166 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP 4,6,6,3,5,1,1,2,3,4, 1,2,1,3,1,1,3,2,1,1, 1,1,2,1,2,3,1,1,1,3, - 1,2,2,2,3,4,5,1,5,1, - 1,3,3,4,1,1,2,3,2,3, - 2,1,0,1,2,1,1,1,1,1, - 2,4,3,6,2,4,1,1,1,1, - 1,2,4,2,4,2,4,1,1,2, - 1,1,1,3,3,2,1,3,2,3, - 2,3,2,2,11,10,10,9,10,9, - 9,8,10,9,9,8,9,8,8,7, - 10,9,9,8,9,8,8,7,1,1, - -43,0,0,0,0,0,0,-2,0,0, + 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,1,2,4,2,4,2,4, + 1,1,2,1,1,1,3,3,2,1, + 3,2,3,2,3,2,2,11,10,10, + 9,10,9,9,8,10,9,9,8,9, + 8,8,7,10,9,9,8,9,8,8, + 7,1,1,-43,0,0,0,0,0,0, + -40,0,0,0,0,0,0,0,0,0, + 0,0,0,-82,-215,-80,0,0,0,0, + 0,0,-2,-4,-17,-124,0,0,0,0, + -61,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-19, 0,0,0,0,0,0,0,0,0,0, - -82,-4,-80,0,0,0,0,-5,0,0, - 0,0,0,0,0,0,0,-61,0,0, + 0,0,-20,-21,0,0,-22,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,-17,0,-36,0,-6,0, - 0,0,0,0,0,0,0,0,-19,-20, - -88,-21,0,0,0,0,0,0,0,0, - -138,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, - -189,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-62,0,0,0,0,0, + 0,-159,0,0,0,0,0,0,0,0, + 0,-55,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-41,-74,0,-189,-23, + 0,-56,0,0,0,0,0,0,0,0, + 0,0,0,-24,0,0,0,0,-185,0, 0,0,0,0,0,0,0,0,0,0, - -44,0,0,0,0,0,0,0,0,-143, + 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,-25,-26, + 0,-147,-27,0,0,0,-96,-58,0,0, 0,0,0,0,0,0,0,0,0,0, - -22,0,0,-159,-23,-24,0,-56,0,0, + 0,0,0,-28,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-142,0, + 0,0,0,-57,0,0,0,0,0,0, + -129,0,0,0,0,-197,0,0,0,-29, + 0,0,0,0,-97,-36,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -37,-25,0,-184,0,0,0,0,0,0, + 0,0,-206,0,0,0,0,0,0,-75, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-83,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,0,-147,-170,0,-7,0,0,0, - 0,0,-59,0,0,0,0,0,0,0, + 0,0,-59,0,0,0,0,0,0,-176, + 0,0,0,0,0,0,0,0,0,-9, + 0,0,0,0,0,0,0,-123,0,0, 0,0,0,0,0,0,0,0,0,0, - -85,0,0,0,0,0,0,0,0,0, - -62,0,0,0,0,0,0,-26,0,0, - 0,0,0,0,0,0,0,-27,0,0, - 0,-8,0,0,0,0,0,0,0,0, - 0,-15,0,0,0,0,0,0,0,0, - 0,0,0,-3,0,0,0,0,0,0, - -158,0,0,0,0,0,0,0,0,0, - 0,0,0,-123,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-150,-76,-130, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-130,0,0,0,0,0,0, - -28,0,0,0,0,0,0,0,0,0, - 0,0,-29,-97,0,0,-98,-99,-100,-57, 0,0,0,0,0,0,0,0,0,0, - 0,-204,0,0,0,0,0,0,0,0, + -98,0,-99,-143,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-30,0,0,0,0,0,0,-40,0, + 0,0,0,-100,0,0,-30,0,0,0, + 0,0,0,-77,0,0,0,0,0,0, + 0,0,0,0,0,0,-63,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-45,0,0,0,0,0,0,0,0, - -63,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-64,0,0,0, + 0,0,0,-78,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, - -64,0,0,0,0,0,0,-41,0,0, + 0,0,0,0,0,0,-66,0,0,0, + 0,0,0,-79,0,0,0,0,0,0, + 0,0,0,0,0,0,-67,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,-68,0,0,0, + 0,0,0,-127,0,0,0,0,0,0, + 0,0,0,0,0,0,-69,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -66,0,0,0,0,0,0,-74,0,0, + 0,0,0,0,0,0,-70,0,0,0, + 0,0,0,-145,0,0,0,0,0,0, + 0,0,0,0,0,0,-71,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -67,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-72,0,0,0, + 0,0,0,-173,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, - -68,0,0,0,0,0,0,-75,0,0, + 0,0,0,0,0,0,-164,0,0,0, + 0,0,0,-195,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, - -69,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-188,0,0,0, + 0,0,0,-101,0,0,0,0,0,0, + 0,0,0,0,0,-203,0,0,0,0, + 0,0,-102,0,0,0,0,0,0,0, + 0,0,0,0,-209,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -70,0,0,0,0,0,0,-76,0,0, + 0,0,0,-213,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, + 0,0,-223,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -72,0,0,0,0,0,0,-77,0,0, + 0,-137,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,0, + -87,-146,-103,-85,-37,-91,-104,0,0,-49, + 0,0,0,0,0,0,-86,0,0,0, + -92,-120,-94,0,0,0,0,-88,0,-187, + 0,-198,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-168,0,0,0, + 0,0,0,0,0,0,-122,0,-132,-166, + 0,0,-105,0,0,0,0,-106,0,0, 0,0,0,0,0,0,0,0,0,0, - -163,0,0,0,0,0,0,-78,0,0, + 0,0,-144,0,0,0,0,0,0,0, + -200,0,0,0,0,0,0,0,-5,0, + 0,0,0,0,-222,0,0,0,0,0, + -107,0,-50,0,0,0,0,0,0,-134, + 0,0,0,0,-171,-108,0,0,0,0, + 0,0,0,0,-6,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-7,0, + 0,0,0,0,0,-51,0,0,0,0, + 0,0,-135,0,0,0,-38,-139,-152,0, + -154,0,0,0,0,0,0,0,0,-8, + 0,0,0,0,0,0,0,-52,0,0, + 0,0,0,0,0,0,0,0,-53,0, + 0,0,0,0,0,-89,0,0,-54,0, + 0,0,0,0,0,-84,0,0,-157,-160, + -193,-175,0,-90,-179,0,0,-158,0,0, + 0,0,-109,-194,-110,0,-191,-111,0,0, + 0,0,0,0,0,-208,0,0,0,0, + -93,0,-184,0,0,0,0,0,0,0, + -112,0,0,0,0,-95,-10,0,0,0, + 0,0,0,0,0,0,0,0,0,-113, + -42,0,0,0,0,0,0,0,0,0, + 0,0,-15,0,0,0,0,0,0,0, + 0,0,-44,0,0,0,0,0,0,0, + 0,-45,0,0,0,0,0,0,-207,0, + -16,0,0,0,0,0,0,0,0,0, + -126,0,0,0,0,0,0,-163,-227,-224, + 0,-114,-115,0,-151,0,0,0,0,0, + 0,-180,0,-167,0,0,0,0,0,0, + 0,0,0,0,-205,-216,0,-11,0,0, + 0,0,0,0,-116,0,0,0,0,0, + 0,0,0,-12,0,0,0,0,0,0, + -13,0,0,0,0,0,0,-14,0,0, + 0,0,0,0,-18,0,-31,-172,-212,-121, + -117,0,-156,0,0,-32,-118,0,0,-218, + -169,-204,0,-39,-219,0,-119,0,0,0, + 0,0,0,0,0,0,0,0,0,-140, + -33,0,0,0,0,-34,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -164,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-131, + -35,0,0,0,-220,-133,0,0,0,0, + -136,0,-148,-161,0,-181,-125,-182,-186,0, + 0,0,-128,-214,0,0,0,0,0,0, + 0,0,-46,0,0,0,0,0,0,0, + 0,0,0,0,0,-47,0,0,0,0, + 0,0,-48,0,0,0,0,0,0,-81, + 0,0,0,0,0,0,-141,-170,-190,-226, + -199,0,-153,-196,0,0,-201,0,0,0, + 0,-155,0,-221,0,0,-162,-202,0,0, + 0,0,0,0,0,0,0,-174,0,0, + 0,0,0,0,0,-183,0,-178,0,0, + 0,0,0,-1,0,-211,-217,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -187,0,0,0,0,0,0,-101,0,0, - 0,0,0,0,0,0,0,0,0,-201, - 0,0,0,0,0,0,-102,0,0,0, - 0,0,0,0,0,0,0,0,-207,0, + 0,0,0,0,0,0,0,0,-149,0, + 0,0,-177,-225,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-192,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,-211,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,-137,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-174,-146,-144,-86,-79,-202, - -168,0,0,-58,0,0,0,0,0,0, - -103,0,0,0,0,0,0,0,0,0, - 0,0,0,-213,0,0,0,-104,-210,0, - 0,0,0,0,0,0,0,0,0,-167, - -91,0,0,0,0,0,0,-49,0,0, - 0,0,0,0,-127,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-92, - -96,-196,0,0,0,-105,0,0,0,0, - 0,0,0,-106,0,0,0,0,0,0, - -175,-94,-120,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-125,0,0, - 0,0,0,0,0,-198,-107,0,0,0, - 0,-122,0,0,-188,0,-108,0,0,-124, - 0,0,0,0,0,0,0,0,-55,0, - 0,0,0,0,0,-142,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-109, - 0,-145,-132,-134,-87,0,-220,0,0,0, - 0,-110,-150,0,-50,0,0,0,0,0, - 0,0,0,0,0,-135,-139,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-111,0,0,0,0,0,0,0,0, - -16,0,0,0,0,0,0,0,-165,0, - -112,0,-51,0,0,0,0,0,0,-113, - 0,0,0,-52,0,0,0,0,0,0, - 0,0,0,0,-114,-89,0,0,-53,0, - 0,0,0,0,0,-121,0,0,-54,0, - 0,0,0,0,0,-84,0,0,0,0, - 0,0,0,-90,-178,-129,-152,-179,0,0, - 0,0,0,0,0,0,-9,0,0,0, - 0,0,0,-214,0,0,0,0,0,0, - -93,0,0,0,0,0,0,0,0,0, - -186,0,0,0,0,-95,-10,0,0,0, - 0,0,0,0,0,0,0,-172,0,-115, - -42,0,-203,0,0,0,0,0,0,0, - 0,0,0,-116,-117,0,-118,0,0,0, - 0,0,-126,0,0,0,0,0,0,0, - -151,0,0,0,0,0,0,-166,0,0, - 0,0,0,0,0,-222,0,0,0,0, - -154,-157,0,-160,-208,-140,0,0,0,0, - 0,-119,-131,0,-11,0,0,0,0,0, - 0,-12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-13, - 0,0,0,0,0,0,-14,0,0,0, - 0,0,0,-18,-133,-171,-136,-31,0,-193, - 0,-32,0,-183,0,-33,0,-206,0,-169, - -195,-197,0,-199,0,-200,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-34,0,0,0, - -35,0,0,0,0,0,0,0,0,0, - -46,0,0,0,0,0,0,0,-128,-191, - -192,0,-148,0,0,0,0,0,0,-180, - 0,-47,0,0,0,0,0,0,-141,0, - 0,0,0,-215,0,-48,0,0,0,0, - 0,0,-81,0,0,0,0,0,0,-218, - -153,0,0,0,0,-155,-205,0,-181,-173, - 0,0,0,-216,0,-156,0,-194,0,0, - 0,0,-177,-185,0,-219,0,0,0,0, - 0,-212,0,-209,-149,0,0,-223,0,0, - 0,0,0,0,-217,0,-1,0,0,0, - -182,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-161,0,0,0,0, - 0,0,0,0,0,0,0,0,-162,0, - 0,0,0,0,-190,-176,0,0,0,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,-39,-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,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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; @@ -235,198 +231,195 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface BaseAction { public final static char baseAction[] = { - 85,7,22,22,20,20,31,31,70,70, + 86,7,22,22,20,20,30,30,71,71, 1,1,1,1,2,2,2,3,3,4, - 4,4,4,4,4,4,4,54,54,71, - 71,5,5,5,5,5,5,5,5,5, + 4,4,4,4,4,4,4,54,54,72, + 72,5,5,5,5,5,5,5,5,5, 5,5,6,6,8,8,8,8,9,9, 9,10,10,10,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,96,30,28,86, - 86,73,73,45,97,97,97,97,97,97, - 97,98,98,98,99,99,104,104,105,105, - 100,100,101,101,101,107,107,102,102,102, - 102,103,103,103,103,103,106,106,21,21, - 21,21,21,33,33,33,79,79,74,74, - 74,74,75,75,75,76,76,76,77,77, - 77,78,78,78,108,108,109,109,110,34, + 19,19,19,19,19,19,98,31,28,87, + 87,74,74,45,99,99,99,99,99,99, + 99,100,100,100,101,101,106,106,107,107, + 102,102,103,103,103,109,109,104,104,104, + 104,105,105,105,105,105,108,108,21,21, + 21,21,21,33,33,33,80,80,75,75, + 75,75,76,76,76,77,77,77,78,78, + 78,79,79,79,110,110,111,111,112,34, 36,36,36,36,36,55,57,57,57,57, - 57,57,57,57,57,57,57,57,67,67, - 32,32,64,64,64,64,65,65,65,58, - 58,59,59,51,51,51,27,87,87,80, - 81,81,81,66,66,82,82,83,83,68, - 68,23,24,24,24,35,50,50,37,37, + 57,57,57,57,57,57,57,57,68,68, + 32,32,65,65,65,65,66,66,66,58, + 58,59,59,51,51,51,27,88,88,81, + 82,82,82,67,67,83,83,84,84,69, + 69,23,24,24,24,35,50,50,37,37, 37,37,40,40,42,38,38,39,43,43, - 111,111,41,112,112,88,88,29,29,29, - 29,29,29,29,29,29,84,52,52,52, + 113,113,41,114,114,89,89,29,29,29, + 29,29,29,29,29,29,85,52,52,52, 52,61,61,60,60,60,62,62,53,53, - 89,89,44,44,63,63,63,46,46,46, + 90,90,44,44,63,63,63,46,46,46, 47,48,48,48,49,49,49,49,56,56, - 72,72,72,72,69,90,91,91,92,92, - 93,93,113,113,114,114,115,115,115,115, - 117,117,116,116,116,118,118,85,85,1, - 1,1,5,5,5,5,5,5,23,23, - 25,25,26,26,94,94,94,97,119,119, - 119,119,119,119,119,102,102,102,102,102, - 102,102,102,102,102,102,102,102,102,102, - 102,102,102,102,102,102,102,102,102,120, - 120,1,14,19,15,415,713,44,33,430, - 429,511,432,516,515,618,532,701,628,74, - 91,65,51,472,134,211,318,319,830,14, - 19,15,415,316,136,133,135,159,800,14, - 19,15,415,42,44,20,430,429,511,432, - 516,515,618,532,1390,1149,138,138,165,860, - 14,19,15,415,314,142,145,148,151,74, - 430,359,186,1416,382,1325,1406,1434,1461,1476, - 1231,734,14,19,15,415,713,44,514,430, - 429,511,432,516,515,618,532,701,628,74, - 278,734,14,19,15,415,713,44,514,430, - 429,511,432,516,515,618,532,701,628,74, - 278,800,14,19,15,415,42,44,23,718, - 440,14,19,15,415,713,44,280,430,429, - 511,432,516,515,618,532,701,628,74,1379, - 281,73,238,661,780,173,184,280,800,14, - 19,15,415,42,44,320,430,429,511,1287, - 281,138,285,1545,486,14,19,15,415,713, - 44,514,430,429,511,432,516,515,618,532, - 701,628,74,278,394,14,19,15,415,713, - 44,1268,430,429,511,432,516,515,618,532, - 701,628,74,1290,340,65,237,890,14,19, - 15,415,312,800,14,19,15,415,42,44, - 282,430,429,511,432,516,1362,134,211,318, - 319,302,22,283,1724,1285,286,136,133,135, - 159,800,14,19,15,415,42,44,126,430, - 429,511,432,516,515,618,1405,1232,350,138, - 272,165,920,14,19,15,415,40,142,145, - 148,151,950,14,19,15,415,33,1325,1406, - 1434,1461,1476,1231,800,14,19,15,415,713, - 44,654,430,429,511,432,516,515,618,532, - 701,628,74,91,980,14,19,15,415,713, - 44,1679,430,429,511,432,516,515,618,532, - 701,628,74,1306,612,14,19,15,415,42, - 44,162,430,429,511,432,516,515,618,532, - 701,628,93,109,1010,1604,326,1050,435,471, - 800,14,19,15,415,42,44,382,430,429, - 511,1320,767,14,19,15,415,713,44,1333, - 430,429,511,432,516,515,618,532,701,628, - 74,278,800,14,19,15,415,713,44,573, - 430,429,511,432,516,515,618,532,701,628, - 74,92,800,14,19,15,415,42,44,1693, - 719,800,14,19,15,415,713,44,284,430, - 429,511,432,516,515,618,532,701,628,74, - 85,800,14,19,15,415,713,44,573,430, - 429,511,432,516,515,618,532,701,628,74, - 84,800,14,19,15,415,713,44,16,430, - 429,511,432,516,515,618,532,701,628,74, - 83,800,14,19,15,415,713,44,573,430, - 429,511,432,516,515,618,532,701,628,74, - 82,800,14,19,15,415,713,44,1490,430, - 429,511,432,516,515,618,532,701,628,74, - 81,800,14,19,15,415,713,44,573,430, - 429,511,432,516,515,618,532,701,628,74, - 80,800,14,19,15,415,713,44,1504,430, - 429,511,432,516,515,618,532,701,628,74, - 79,800,14,19,15,415,713,44,573,430, - 429,511,432,516,515,618,532,701,628,74, - 78,800,14,19,15,415,713,44,1505,430, - 429,511,432,516,515,618,532,701,628,74, - 77,800,14,19,15,415,713,44,573,430, - 429,511,432,516,515,618,532,701,628,74, - 76,800,14,19,15,415,713,44,1507,430, - 429,511,432,516,515,618,532,701,628,74, - 75,800,14,19,15,415,713,44,573,430, - 429,511,432,516,515,618,532,701,628,74, - 1660,800,14,19,15,415,713,44,1552,430, - 429,511,432,516,515,618,532,701,628,74, - 1661,800,14,19,15,415,42,44,86,430, - 429,511,432,516,515,618,532,701,628,93, - 800,14,19,15,415,42,44,200,430,429, - 511,432,516,515,618,532,701,628,93,800, - 14,19,15,415,42,44,1707,430,429,511, - 432,516,515,618,532,701,628,93,800,14, - 19,15,415,42,44,210,430,429,511,432, - 516,515,618,532,701,628,93,800,14,19, - 15,415,42,44,1714,430,429,511,432,516, - 515,618,532,701,628,93,800,14,19,15, - 415,42,44,201,430,429,511,432,516,515, - 618,532,701,628,73,480,543,292,369,573, - 605,709,202,575,800,14,19,15,415,42, - 44,249,430,429,511,432,516,515,1332,21, - 252,211,318,319,446,271,183,273,287,525, - 226,1454,1670,216,1161,219,1610,221,222,227, - 135,663,264,1158,601,269,260,1718,800,14, - 19,15,415,42,44,573,430,429,1048,261, - 274,216,1161,219,1610,221,222,227,208,271, - 805,340,1033,1553,1600,270,354,216,1161,219, - 1610,221,222,227,474,258,264,1158,601,269, - 1600,240,835,6,134,211,318,319,1276,193, - 441,271,1595,1215,137,133,135,159,121,217, - 1161,219,1610,221,222,227,405,532,266,1158, - 601,269,64,1454,1597,812,139,244,165,1546, - 472,251,211,318,319,143,146,149,152,800, - 14,19,15,415,42,44,472,430,429,511, - 432,1277,239,216,1161,219,1610,221,222,227, - 301,194,573,6,6,516,1732,405,241,1157, - 1701,1706,572,472,1454,800,14,19,15,415, - 42,44,276,430,429,1067,6,235,134,211, - 318,319,490,1716,1766,324,197,199,141,133, - 135,159,610,1189,216,1161,219,1610,221,222, - 227,950,14,19,15,415,32,1732,287,472, - 140,426,165,800,14,19,15,415,42,44, - 219,430,429,1171,800,14,19,15,415,42, - 44,240,430,429,1188,618,1059,198,199,800, - 14,19,15,415,42,44,1074,430,1236,800, - 14,19,15,415,42,44,1148,430,1244,134, - 211,318,319,1659,1091,480,599,6,692,144, - 133,135,159,1735,1710,271,274,800,14,19, - 15,415,42,39,65,271,275,134,211,318, - 319,1101,266,1158,601,269,182,147,133,135, - 159,605,264,1158,601,269,1133,800,14,19, - 15,415,42,38,134,211,318,319,573,1215, - 280,517,1616,692,150,133,135,159,381,134, - 211,318,319,289,577,619,1536,620,277,153, - 133,135,159,566,14,19,15,415,42,35, - 271,566,14,19,15,415,42,35,566,14, - 19,15,415,42,35,244,78,264,1158,601, - 269,6,6,325,6,654,121,1684,1723,1751, - 245,461,656,665,263,800,14,19,15,415, - 42,37,800,14,19,15,415,42,36,251, - 211,318,319,217,1161,219,1610,221,222,227, - 800,14,19,15,415,42,35,800,14,19, - 15,415,42,34,6,699,712,700,6,1745, - 573,361,6,574,480,361,6,1779,605,361, - 866,599,480,361,480,196,480,1156,1734,196, - 223,1491,87,196,808,1491,87,196,808,1491, - 87,229,808,1491,87,26,808,6,759,225, - 291,6,848,185,361,184,888,203,361,257, - 928,800,14,19,15,415,42,47,196,478, - 472,472,196,653,1491,87,574,808,1491,87, - 114,808,800,14,19,15,415,42,46,121, - 1156,968,242,243,480,1008,800,14,19,15, - 415,42,45,701,14,19,15,415,42,43, - 573,55,251,211,318,319,112,472,574,693, - 169,1416,256,574,472,204,536,574,478,1322, - 228,1663,196,283,228,574,596,196,1251,288, - 574,196,452,1251,597,342,290,1251,647,1156, - 1157,574,574,1918,196,480,232,658,1670,1918, - 1251,536,191,1918,654,1156,1156,191,1918,1155, - 1786,191,1918,1001,1435,1786,121,1918,1612,1786, - 1232,256,1918,1918,191,87,279,307,1322,349, - 1663,1614,1786,1670,207,425,226,256,256,251, - 211,318,319,574,1700,1488,1663,1663,1438,1709, - 1918,1918,252,211,318,319,1918,196,252,211, - 318,319,1918,1251,476,1918,6,6,1918,207, - 1918,654,1726,654,654,1918,1918,1785,1918,1918, - 1918,1918,368,1493,1709,1918,1918,192,1918,1918, - 1918,1918,89,1918,87,87,383,1381,1918,1918, - 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918, - 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918, - 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918, - 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918, - 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918, - 1159,1918,0,321,694,0,17,179,0,18, - 178,0,1,2142,0,1,2153,0 + 56,64,91,73,73,73,73,70,92,93, + 93,94,94,95,95,115,115,116,116,117, + 117,117,117,119,119,118,118,118,120,120, + 86,86,1,1,1,5,5,5,5,5, + 5,23,23,25,25,26,26,96,96,96, + 99,121,121,121,121,121,121,121,104,104, + 104,104,104,104,104,104,104,104,104,104, + 104,104,104,104,104,104,104,104,104,104, + 104,104,122,122,1,14,19,15,395,640, + 44,597,433,420,437,434,534,520,580,579, + 604,583,74,91,282,654,479,134,211,321, + 322,1720,1556,277,62,1141,479,136,133,135, + 159,823,14,19,15,395,42,44,20,433, + 420,437,434,534,520,580,579,1470,239,138, + 250,165,216,1611,219,1728,221,222,227,142, + 145,148,151,78,128,1044,1600,288,394,1191, + 1396,1414,1441,1456,587,730,14,19,15,395, + 640,44,492,433,420,437,434,534,520,580, + 579,604,583,74,278,792,14,19,15,395, + 640,44,492,433,420,437,434,534,520,580, + 579,604,583,74,278,823,14,19,15,395, + 42,44,708,433,420,437,434,534,520,580, + 1532,283,823,14,19,15,395,42,44,1674, + 433,420,437,434,1301,284,597,597,1418,712, + 352,283,823,14,19,15,395,42,44,1674, + 433,420,437,1316,339,284,16,1533,1615,486, + 14,19,15,395,640,44,492,433,420,437, + 434,534,520,580,579,604,583,74,278,396, + 14,19,15,395,640,44,1677,433,420,437, + 434,534,520,580,579,604,583,74,396,33, + 52,237,341,119,1679,519,289,341,823,14, + 19,15,395,42,44,285,433,420,437,434, + 534,520,1425,1674,978,134,211,321,322,286, + 134,211,321,322,290,136,133,135,159,479, + 137,133,135,159,823,14,19,15,395,42, + 44,603,433,420,437,1423,603,138,1799,165, + 51,241,139,1776,165,1033,313,142,145,148, + 151,275,143,146,149,152,229,1191,1396,1414, + 1441,1456,587,761,14,19,15,395,640,44, + 597,433,420,437,434,534,520,580,579,604, + 583,74,278,823,14,19,15,395,640,44, + 1565,433,420,437,434,534,520,580,579,604, + 583,74,91,823,14,19,15,395,42,44, + 163,433,420,437,434,534,1428,1281,23,287, + 823,14,19,15,395,42,39,1674,1003,14, + 19,15,395,640,44,1727,433,420,437,434, + 534,520,580,579,604,583,74,619,479,597, + 612,14,19,15,395,42,44,394,433,420, + 437,434,534,520,580,579,604,583,93,1601, + 327,1072,329,302,441,14,19,15,395,640, + 44,194,433,420,437,434,534,520,580,579, + 604,583,74,1250,343,748,238,823,14,19, + 15,395,640,44,597,433,420,437,434,534, + 520,580,579,604,583,74,92,823,14,19, + 15,395,640,44,1607,433,420,437,434,534, + 520,580,579,604,583,74,85,823,14,19, + 15,395,640,44,597,433,420,437,434,534, + 520,580,579,604,583,74,84,823,14,19, + 15,395,640,44,1617,433,420,437,434,534, + 520,580,579,604,583,74,83,823,14,19, + 15,395,640,44,597,433,420,437,434,534, + 520,580,579,604,583,74,82,823,14,19, + 15,395,640,44,21,433,420,437,434,534, + 520,580,579,604,583,74,81,823,14,19, + 15,395,640,44,597,433,420,437,434,534, + 520,580,579,604,583,74,80,823,14,19, + 15,395,640,44,270,433,420,437,434,534, + 520,580,579,604,583,74,79,823,14,19, + 15,395,640,44,597,433,420,437,434,534, + 520,580,579,604,583,74,78,823,14,19, + 15,395,640,44,276,433,420,437,434,534, + 520,580,579,604,583,74,77,823,14,19, + 15,395,640,44,597,433,420,437,434,534, + 520,580,579,604,583,74,76,823,14,19, + 15,395,640,44,277,433,420,437,434,534, + 520,580,579,604,583,74,75,823,14,19, + 15,395,640,44,597,433,420,437,434,534, + 520,580,579,604,583,74,1411,823,14,19, + 15,395,640,44,223,433,420,437,434,534, + 520,580,579,604,583,74,1424,823,14,19, + 15,395,42,44,334,433,420,437,434,534, + 520,580,579,604,583,93,823,14,19,15, + 395,42,44,373,433,420,437,434,534,520, + 580,579,604,583,93,823,14,19,15,395, + 42,44,1509,433,420,437,434,534,520,580, + 579,604,583,93,823,14,19,15,395,42, + 44,210,433,420,437,434,534,520,580,579, + 604,583,93,823,14,19,15,395,42,44, + 1610,433,420,437,434,534,520,580,579,604, + 583,93,823,14,19,15,395,42,44,201, + 433,420,437,434,534,520,580,579,604,583, + 73,517,543,482,662,313,85,541,202,1315, + 823,14,19,15,395,42,44,496,433,420, + 1084,142,31,199,134,211,321,322,666,445, + 532,271,620,272,141,133,135,159,1660,216, + 1611,219,1728,221,222,227,273,79,264,1207, + 1194,269,260,1666,1734,1671,140,63,165,31, + 479,271,292,600,1630,261,1733,274,604,217, + 1611,219,1728,221,222,227,271,22,266,1207, + 1194,269,240,291,216,1611,219,1728,221,222, + 227,369,258,264,1207,1194,269,1044,1556,853, + 14,19,15,395,319,369,252,211,321,322, + 924,453,1556,823,14,19,15,395,42,44, + 31,433,420,1103,323,282,188,1742,216,1611, + 219,1728,221,222,227,883,14,19,15,395, + 317,1684,216,1611,219,1728,221,222,227,913, + 14,19,15,395,315,1684,823,14,19,15, + 395,42,44,31,433,420,1193,471,234,31, + 1603,31,197,199,683,1747,1758,1222,1768,1599, + 943,14,19,15,395,40,198,199,823,14, + 19,15,395,42,44,89,433,420,1197,823, + 14,19,15,395,42,44,1079,433,1253,823, + 14,19,15,395,42,44,449,433,1258,31, + 31,479,645,1683,1111,645,1766,1729,742,134, + 211,321,322,245,479,408,274,31,1039,144, + 133,135,159,242,465,271,532,134,211,321, + 322,1118,183,645,884,182,243,147,133,135, + 159,6,264,1207,1194,269,1150,823,14,19, + 15,395,42,38,134,211,321,322,294,924, + 981,577,1443,26,150,133,135,159,384,134, + 211,321,322,973,14,19,15,395,33,153, + 133,135,159,823,14,19,15,395,42,44, + 271,773,823,14,19,15,395,42,44,479, + 794,973,14,19,15,395,32,264,1207,1194, + 269,567,14,19,15,395,42,35,348,58, + 473,291,295,546,263,567,14,19,15,395, + 42,35,837,244,567,14,19,15,395,42, + 35,252,211,321,322,837,282,328,823,14, + 19,15,395,42,37,770,245,217,1611,219, + 1728,221,222,227,823,14,19,15,395,42, + 36,823,14,19,15,395,42,35,823,14, + 19,15,395,42,34,31,1748,31,835,176, + 665,771,364,519,364,582,31,774,1530,1777, + 479,833,532,364,31,742,196,775,196,1192, + 279,683,1471,87,1471,87,516,196,516,271, + 177,31,293,1471,87,1676,31,516,364,371, + 226,517,87,364,1676,386,266,1207,1194,269, + 670,257,196,251,211,321,322,196,1471,87, + 802,31,516,1471,87,597,806,516,364,1804, + 193,828,207,494,831,749,290,177,863,536, + 804,208,196,644,450,228,1542,1678,1471,87, + 582,1528,516,823,14,19,15,395,42,47, + 251,211,321,322,1192,844,823,14,19,15, + 395,42,46,823,14,19,15,395,42,45, + 699,14,19,15,395,42,43,177,707,645, + 642,645,1883,56,644,1600,256,645,1273,1883, + 582,582,113,964,428,1673,1883,177,645,582, + 251,211,321,322,196,1192,1883,225,170,280, + 710,185,774,196,232,582,519,184,284,710, + 251,211,321,322,657,582,307,645,203,196, + 1883,683,1883,582,191,710,1222,256,1273,196, + 1883,1412,1803,191,964,710,1673,1192,1676,651, + 1415,1803,87,227,645,310,582,204,1818,191, + 582,1883,1037,1883,1883,1883,1731,1803,426,191, + 1192,1883,1883,1883,196,31,1737,1803,1883,256, + 710,1883,683,1883,1529,207,1665,1883,1673,1883, + 1883,252,211,321,322,1883,1883,1883,1883,1555, + 1678,1883,256,87,192,1883,1451,1883,1883,1004, + 393,1673,1883,1883,1883,1744,1883,0,324,750, + 0,17,179,0,18,178,0,1,2107,0, + 1,2118,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -439,129 +432,129 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP 0,1,2,3,4,0,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,0,0,33,34,35,36,37,38,39, + 0,31,0,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 0,51,52,53,0,1,0,3,0,5, - 6,7,8,0,0,11,12,13,4,6, - 7,8,0,0,11,12,13,0,1,2, - 0,4,9,10,30,0,0,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,54,51,52,53,0,55, - 56,0,1,0,3,0,5,6,7,8, - 0,89,11,12,13,0,6,7,8,57, - 58,11,12,13,0,1,2,0,1,5, - 3,30,57,58,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,0,51,52,53,31,55,56,0,1, - 0,3,0,5,6,7,8,69,0,11, - 12,13,69,0,50,0,14,79,80,81, - 82,83,84,85,86,87,88,72,30,0, - 0,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,0,51, - 52,53,0,55,56,0,1,0,3,0, - 5,6,7,8,0,74,11,12,13,0, - 6,7,8,0,5,11,12,13,0,64, - 65,66,67,70,71,30,57,58,33,34, + 0,0,52,53,54,0,1,0,3,0, + 5,0,0,8,9,10,0,12,13,14, + 8,9,10,68,12,13,14,0,0,1, + 2,4,0,5,0,1,31,3,33,34, 35,36,37,38,39,40,41,42,43,44, - 45,46,47,48,49,0,51,52,53,0, - 55,56,0,1,0,3,0,5,6,7, - 8,0,74,11,12,13,69,6,7,8, - 0,0,11,12,13,57,58,64,65,66, - 67,32,30,0,75,33,34,35,36,37, + 45,46,47,48,49,73,51,52,53,54, + 32,56,0,1,30,3,55,5,0,69, + 8,9,10,72,12,13,14,0,50,79, + 80,81,82,83,84,85,86,87,88,62, + 63,0,1,31,3,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,31,51,52,53,0,55,56,0, - 1,0,3,57,58,6,7,8,0,0, - 11,12,13,0,6,7,8,73,0,11, - 12,13,9,10,64,65,66,67,0,30, - 2,0,33,34,35,36,37,38,39,40, - 41,42,43,44,45,46,47,48,49,31, - 51,52,53,0,1,2,3,4,5,31, - 0,60,9,10,0,1,2,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,0,0,77,78,0,0, - 6,7,8,4,0,11,12,13,4,0, - 1,2,3,4,5,0,1,2,9,10, - 0,0,59,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 0,0,68,0,4,0,5,0,0,0, - 5,4,9,10,5,0,1,2,3,4, - 5,62,63,68,9,10,62,63,59,14, + 48,49,0,51,52,53,54,5,56,0, + 1,30,3,0,5,0,0,8,9,10, + 5,12,13,14,8,9,10,0,12,13, + 14,64,65,66,67,77,78,0,0,1, + 31,3,33,34,35,36,37,38,39,40, + 41,42,43,44,45,46,47,48,49,0, + 51,52,53,54,0,56,0,1,30,3, + 55,5,0,0,8,9,10,75,12,13, + 14,8,9,10,0,12,13,14,0,0, + 75,64,65,66,67,6,7,31,0,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,0,51,52,53, + 54,0,56,0,1,4,3,0,5,0, + 0,8,9,10,0,12,13,14,8,9, + 10,0,12,13,14,4,0,1,64,65, + 66,67,0,1,31,3,33,34,35,36, + 37,38,39,40,41,42,43,44,45,46, + 47,48,49,0,51,52,53,54,0,56, + 0,1,0,3,57,58,4,0,8,9, + 10,0,12,13,14,8,9,10,69,12, + 13,14,11,62,63,89,60,73,0,1, + 2,31,0,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 57,58,52,53,54,0,1,2,3,4, + 5,6,7,0,62,63,11,0,70,71, 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,0,0,32,2,68, - 4,6,7,8,0,50,11,12,13,5, - 59,0,62,63,55,0,1,60,3,0, - 55,0,0,1,2,30,4,31,33,34, - 35,36,37,38,39,40,41,42,43,44, - 45,46,47,48,49,0,1,2,3,4, - 5,0,0,31,9,10,0,5,54,14, + 25,26,27,28,29,0,31,0,0,57, + 58,0,5,8,9,10,68,12,13,14, + 0,1,2,3,4,5,6,7,0,0, + 2,11,0,5,59,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 0,31,0,1,2,5,4,50,0,72, + 32,0,55,5,0,0,1,2,3,4, + 5,6,7,0,0,0,11,2,50,59, 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,0,0,1,0,75, - 5,70,71,5,0,1,0,3,32,0, - 0,0,1,2,3,4,5,0,0,0, - 9,10,50,14,59,14,15,16,17,18, + 25,26,27,28,29,30,0,68,0,1, + 50,3,70,71,8,9,10,32,12,13, + 14,0,1,0,3,0,51,59,57,58, + 0,0,0,1,2,0,4,31,55,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,0,1,2,3, + 4,5,6,7,32,30,0,11,2,0, + 4,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,57,58,0, + 0,5,0,0,69,6,7,5,32,6, + 7,0,1,2,3,4,5,6,7,0, + 1,2,11,4,0,59,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 29,0,1,72,3,50,0,1,50,54, - 32,32,0,0,0,0,60,0,1,2, - 3,4,0,1,0,3,9,10,0,0, - 59,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,32,0,0, - 73,0,0,0,32,0,32,0,0,0, - 0,1,2,3,4,0,54,54,0,9, - 10,0,0,56,14,15,16,17,18,19, + 29,0,1,0,0,0,50,4,0,5, + 0,32,50,0,1,2,0,1,2,3, + 4,0,6,7,0,0,2,11,4,0, + 59,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,0,0,1,0, + 3,5,0,32,0,51,32,32,0,1, + 2,3,4,60,6,7,0,0,2,11, + 60,0,56,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,0, + 1,2,3,4,0,6,7,51,32,32, + 11,0,0,32,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 0,1,2,3,4,0,6,7,61,0, + 0,11,61,0,0,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 32,32,32,0,1,2,3,4,0,31, - 0,0,9,10,0,54,54,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,0,0,32,0,1,2,3, - 4,60,0,0,0,9,10,0,0,0, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,0,0,32,0, - 1,2,3,4,0,1,0,3,9,10, - 31,0,0,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,0, - 1,2,3,4,0,1,32,3,9,10, - 61,0,31,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,0, - 1,2,3,4,0,0,32,2,9,10, - 0,0,61,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,0, - 1,2,3,4,0,0,31,0,9,10, - 0,0,0,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,0, - 1,2,3,4,0,0,0,0,9,10, - 0,0,0,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,0, - 1,2,3,4,0,0,0,0,9,10, - 0,0,0,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,0, - 1,2,3,4,0,0,0,0,9,10, - 0,0,0,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,0, - 0,2,0,4,5,6,7,8,0,0, - 11,12,13,0,0,0,0,0,0,0, - 0,0,0,1,2,0,4,0,0,30, + 30,0,1,2,3,4,55,6,7,30, + 30,0,11,30,30,0,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,0,1,2,3,4,0,6,7, + 0,30,0,11,0,30,0,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,1,2,3,4,30,6,7, + 30,0,0,11,32,0,0,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,1,2,3,4,0,6,7, + 0,55,0,11,60,0,0,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,1,2,3,4,55,6,7, + 0,0,0,11,0,0,0,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,1,2,3,4,0,6,7, + 0,0,0,11,0,0,0,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,1,2,3,4,0,6,7, + 0,0,0,11,0,0,0,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,1,2,3,4,0,6,7, + 0,0,0,11,0,0,0,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,0,0,2,0,4,5,0,0, + 8,9,10,0,12,13,14,0,0,11, + 0,74,0,0,74,0,0,0,0,0, + 0,0,0,31,32,33,34,35,36,37, + 0,0,0,2,0,4,5,0,0,8, + 9,10,50,12,13,14,8,9,10,0, + 12,13,14,0,0,0,0,0,0,0, + 0,0,31,32,33,34,35,36,37,31, + 0,33,34,35,36,37,0,0,8,9, + 10,50,12,13,14,8,9,10,0,12, + 13,14,0,0,0,0,0,0,0,0, + 0,31,2,33,34,35,36,37,31,0, + 33,34,35,36,37,15,16,8,9,10, + 0,12,13,14,0,0,0,0,0,0, + 0,0,32,0,0,0,0,0,0,0, 31,0,33,34,35,36,37,0,0,0, - 0,2,0,4,5,6,7,8,0,50, - 11,12,13,31,6,7,8,0,0,11, - 12,13,0,0,0,2,0,4,0,30, - 31,0,33,34,35,36,37,0,30,0, - 0,33,34,35,36,37,6,7,8,50, - 0,11,12,13,31,0,6,7,8,0, - 0,11,12,13,0,0,0,0,0,0, - 30,0,0,33,34,35,36,37,0,0, - 30,0,0,33,34,35,36,37,6,7, - 8,0,0,11,12,13,0,0,0,2, - 2,0,5,0,0,0,0,0,0,0, - 0,0,30,15,16,33,34,35,36,37, - 0,0,0,0,0,0,0,0,31,31, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,50,0,0, - 0,0,0,0,0,0,0,0,0,61, + 0,61,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,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,0,0,0,0 + 0,0,0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -569,129 +562,128 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface TermAction { public final static char termAction[] = {0, - 1918,714,1594,717,1580,1,2130,2131,2132,1562, - 1555,2240,431,2241,1587,1371,642,632,1928,1929, - 1930,1931,1477,1447,2227,2228,2229,577,419,388, - 2080,1918,1918,2081,2079,2133,2082,2078,2085,2090, - 2089,2087,2088,2086,2091,2092,2084,2093,2094,2095, - 88,1252,1230,1201,1918,1,1918,1,1918,190, - 1,1,1,247,1918,1,1,1,1282,1, - 1,1,54,51,1,1,1,1918,2142,1184, - 1918,1347,772,481,1,58,1918,1,1,1, + 1883,645,1595,771,1581,1883,1574,1558,2095,2096, + 2097,1588,2208,1218,2209,1511,1483,1370,1893,1894, + 1895,1896,1457,720,2195,2196,2197,1339,1325,1289, + 1,2045,68,2046,2044,2098,2047,2043,2050,2055, + 2054,2052,2053,2051,2056,2057,2049,2058,2059,2060, + 42,66,1213,1211,1196,1883,1,282,1,1883, + 190,88,247,1,1,1,1883,1,1,1, + 1,1,1,1172,1,1,1,48,1,1877, + 1237,1713,1883,1888,1883,2063,1,2064,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,752,1,1,1,42,190, - 2113,1918,1,209,1,1918,190,1,1,1, - 1918,1902,1,1,1,66,2130,2131,2132,1409, - 1419,2240,431,2241,1,1912,1200,1918,1947,1923, - 1948,1,1409,1419,1,1,1,1,1,1, + 1,1,1,1,1,588,190,1,1,1, + 559,2078,1883,1,1249,1,797,190,72,1017, + 1,1,1,703,1,1,1,59,1887,997, + 977,957,937,917,877,897,857,837,817,1706, + 1693,1883,2063,1,2064,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,70,1,1,1,554,190,2113,1918,1, - 1918,1,64,190,1,1,1,981,1918,1, - 1,1,1060,62,1922,59,1299,961,941,921, - 901,881,841,861,821,801,781,583,1,57, - 1918,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,71,1, - 1,1,1918,190,2113,1918,1,1918,1,1918, - 189,1,1,1,248,611,1,1,1,1, - 1,1,1,61,1927,1,1,1,56,1394, - 1383,1335,1208,720,518,1,1409,1419,1,1, + 1,1,1,190,1,1,1,1892,2078,1883, + 1,1310,1,1883,190,1883,1883,1,1,1, + 1892,1,1,1,2095,2096,2097,61,2208,1218, + 2209,1378,1346,1303,1200,401,1825,1883,1883,2063, + 1,2064,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1883, + 190,1,1,1,1883,2078,1883,1,1353,1, + 1295,189,1883,248,1,1,1,1891,1,1, + 1,1,1,1,60,1,1,1,1883,51, + 1891,1378,1346,1303,1200,1502,1493,1,1883,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1918,1,1,1,317, - 189,2113,1918,1,68,1,55,190,1,1, - 1,246,611,1,1,1,732,2130,2131,2132, - 60,268,2240,431,2241,1409,1419,1394,1383,1335, - 1208,1253,1,1918,1926,1,1,1,1,1, + 1,1,1,1,1,1,1883,189,1,1, + 1,1883,2078,1883,1,1247,1,54,190,209, + 246,1,1,1,69,1,1,1,2095,2096, + 2097,50,2208,1218,2209,1713,1,1880,1378,1346, + 1303,1200,1883,1912,1,1913,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,554,1,1,1,1918,190,2113,1918, - 2097,1,2096,1409,1419,2130,2131,2132,249,72, - 2240,431,2241,53,2130,2131,2132,1164,321,2240, - 431,2241,772,481,1394,1383,1335,1208,267,2080, - 1436,1918,2081,2079,2133,2082,2078,2085,2090,2089, - 2087,2088,2086,2091,2092,2084,2093,2094,2095,1903, - 1252,1230,1201,1,1935,1594,1936,1513,1921,554, - 1918,2173,1562,1555,1,2142,1184,1587,1371,642, - 632,1928,1929,1930,1931,1477,1447,2227,2228,2229, - 577,419,388,674,250,1918,398,1817,1918,48, - 2130,2131,2132,1686,50,2240,431,2241,1686,1918, - 1935,1594,1936,1528,1921,1,2142,1184,1562,1555, - 1918,200,1920,1587,1371,642,632,1928,1929,1930, - 1931,1477,1447,2227,2228,2229,577,419,388,1021, - 49,1918,1098,52,1686,1,1921,1,1918,1918, - 90,1282,772,481,1925,1,1935,1594,1936,1580, - 27,1672,1651,1136,1562,1555,1672,1651,1920,1587, - 1371,642,632,1928,1929,1930,1931,1477,1447,2227, - 2228,2229,577,419,388,128,262,1544,1426,1117, - 1,2130,2131,2132,1918,90,2240,431,2241,1927, - 1920,63,1672,1651,1924,206,2098,2173,2099,1918, - 27,1918,259,2142,1200,2080,1,554,2081,2079, - 2133,2082,2078,2085,2090,2089,2087,2088,2086,2091, - 2092,2084,2093,2094,2095,1918,1935,1594,1936,1580, - 1921,67,1918,554,1562,1555,315,1923,1327,1587, - 1371,642,632,1928,1929,1930,1931,1477,1447,2227, - 2228,2229,577,419,388,1918,1,1915,1,1926, - 1923,720,518,1923,1918,2098,1918,2099,1253,65, - 1918,1918,1935,1594,1936,1521,1921,69,313,41, - 1562,1555,1922,1299,1920,1587,1371,642,632,1928, - 1929,1930,1931,1477,1447,2227,2228,2229,577,419, - 388,205,1160,583,1160,1922,1918,2154,1922,1738, - 1253,1253,253,28,1918,1918,2173,1918,1,1, - 1,1,1918,2098,187,2099,1,1,1918,1918, - 1920,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1253,1918,1918, - 1164,28,205,1918,1323,1918,1437,1918,186,188, - 1918,1935,1594,1936,1580,1918,1596,534,218,1562, - 1555,1,1918,2226,1587,1371,642,632,1928,1929, - 1930,1931,1477,1447,2227,2228,2229,577,419,388, - 1541,1542,1253,1,1935,1594,1936,1580,1918,554, - 1918,1918,1562,1555,1918,1945,2920,1587,1371,642, - 632,1928,1929,1930,1931,1477,1447,2227,2228,2229, - 577,419,388,1918,1918,1544,1918,1935,1594,1936, - 1580,2172,1918,1918,1918,1562,1555,1918,1918,1918, - 1587,1371,642,632,1928,1929,1930,1931,1477,1447, - 2227,2228,2229,577,419,388,1918,1918,1544,1918, - 1935,1594,1936,1580,1918,2098,1918,2099,1562,1555, - 1041,285,1918,1587,1371,642,632,1928,1929,1930, - 1931,1477,1447,2227,2228,2229,577,419,388,1918, - 1935,1598,1936,1580,1918,2098,1324,2099,1562,1555, - 1471,1918,1079,1587,1371,642,632,1928,1929,1930, - 1931,1477,1447,2227,2228,2229,577,419,388,1918, - 1935,1602,1936,1580,1918,220,1346,1611,1562,1555, - 1918,1918,1608,1587,1371,642,632,1928,1929,1930, - 1931,1477,1447,2227,2228,2229,577,419,388,1918, - 1935,1606,1936,1580,1918,1918,554,1918,1562,1555, - 1918,1918,1918,1587,1371,642,632,1928,1929,1930, - 1931,1477,1447,2227,2228,2229,577,419,388,1918, - 1935,1637,1936,1580,1918,1918,1918,1918,1562,1555, - 1918,1918,1918,1587,1371,642,632,1928,1929,1930, - 1931,1477,1447,2227,2228,2229,577,419,388,1918, - 1935,1641,1936,1580,1918,1918,1918,1918,1562,1555, - 1918,1918,1918,1587,1371,642,632,1928,1929,1930, - 1931,1477,1447,2227,2228,2229,577,419,388,1, - 1935,1594,1936,1580,1918,1918,1918,1918,1562,1555, - 1918,1918,1918,1587,1371,642,632,1928,1929,1930, - 1931,1477,1447,2227,2228,2229,577,419,388,17, - 1918,1906,1918,1906,1906,179,179,179,1918,1918, - 179,179,179,1918,1918,1918,1918,1918,1918,1918, - 1918,1918,265,2142,1200,1918,1347,1918,1918,179, - 1906,1918,179,179,179,179,179,1918,1918,18, - 1918,1909,1918,1909,1909,178,178,178,129,1906, - 178,178,178,554,2130,2131,2132,1918,1918,2240, - 431,2241,1918,265,1918,1426,1918,1347,1918,178, - 1909,1918,178,178,178,178,178,1918,2080,1918, - 130,2081,2079,2133,2082,2078,2130,2131,2132,1909, - 131,2240,431,2241,554,1918,2130,2131,2132,1918, - 1918,2240,431,2241,1918,1918,1918,1918,1918,1918, - 2080,1918,1918,2081,2079,2133,2082,2078,1918,1918, - 2080,1918,132,2081,2079,2133,2082,2078,2130,2131, - 2132,1918,1918,2240,431,2241,1918,1,31,1426, - 1814,1918,1923,1918,1918,1918,1918,1918,1918,1918, - 1918,1918,2080,1942,1943,2081,2079,2133,2082,2078, - 1918,1918,1918,1918,1918,1918,1918,1918,554,1816, - 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918, - 1918,1918,1918,1918,1918,1918,1918,1922,1918,1918, - 1918,1918,1918,1918,1918,1918,1918,1918,1918,531, - 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918, - 1918,1918,1918,1918,417 + 1,1,1,58,190,1,1,1,62,2078, + 1883,2062,49,2061,1389,1399,1713,249,2095,2096, + 2097,64,2208,1218,2209,2095,2096,2097,1096,2208, + 1218,2209,502,1706,1693,1867,2138,588,1,2107, + 385,2045,57,2046,2044,2098,2047,2043,2050,2055, + 2054,2052,2053,2051,2056,2057,2049,2058,2059,2060, + 1389,1399,1213,1211,1196,1,1900,1595,1901,1521, + 1886,1574,1558,1883,1706,1693,1588,67,624,522, + 1511,1483,1370,1893,1894,1895,1896,1457,720,2195, + 2196,2197,1339,1325,1289,250,728,1883,1883,1389, + 1399,1883,1888,2095,2096,2097,1134,2208,1218,2209, + 1883,1900,1595,1901,1544,1886,1574,1558,1,200, + 1406,1588,63,1888,1885,1511,1483,1370,1893,1894, + 1895,1896,1457,720,2195,2196,2197,1339,1325,1289, + 1,1057,1883,2107,385,90,1358,1887,1883,703, + 559,56,1730,1886,1883,1,1900,1595,1901,1581, + 27,1574,1558,253,1883,267,1588,631,1887,1885, + 1511,1483,1370,1893,1894,1895,1896,1457,720,2195, + 2196,2197,1339,1325,1289,2933,128,1153,206,2063, + 90,2064,624,522,2095,2096,2097,559,2208,1218, + 2209,1883,2063,1883,2064,1883,27,1885,1389,1399, + 55,1883,259,2107,1237,320,1,2045,1598,2046, + 2044,2098,2047,2043,2050,2055,2054,2052,2053,2051, + 2056,2057,2049,2058,2059,2060,1883,1900,1595,1901, + 1581,1886,1574,1558,559,1212,262,1588,1406,1883, + 1,1511,1483,1370,1893,1894,1895,1896,1457,720, + 2195,2196,2197,1339,1325,1289,1883,1389,1399,53, + 1883,1888,1,52,663,1502,1493,1888,559,1502, + 1493,1883,1900,1595,1901,1535,1886,1574,1558,265, + 2107,1237,1588,1358,1883,1885,1511,1483,1370,1893, + 1894,1895,1896,1457,720,2195,2196,2197,1339,1325, + 1289,1883,2119,1,1883,1883,1887,1247,1883,1890, + 1,559,1887,1,2107,385,1883,1,1,1, + 1,268,1,1,265,324,1406,1,1358,1883, + 1885,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,281,205,1612,1883, + 1612,1410,1883,559,1883,1889,559,1868,1883,1900, + 1595,1901,1581,2138,1574,1558,220,1883,636,1588, + 2138,288,2194,1511,1483,1370,1893,1894,1895,1896, + 1457,720,2195,2196,2197,1339,1325,1289,1212,1, + 1900,1595,1901,1581,1883,1574,1558,1410,559,1077, + 1588,28,1883,1115,1511,1483,1370,1893,1894,1895, + 1896,1457,720,2195,2196,2197,1339,1325,1289,2933, + 1883,1900,1595,1901,1581,1883,1574,1558,1220,318, + 316,1588,1436,41,1883,1511,1483,1370,1893,1894, + 1895,1896,1457,720,2195,2196,2197,1339,1325,1289, + 2933,1,1900,1595,1901,1581,539,1574,1558,1212, + 1212,187,1588,1212,1212,186,1511,1483,1370,1893, + 1894,1895,1896,1457,720,2195,2196,2197,1339,1325, + 1289,2933,1883,1900,1595,1901,1581,188,1574,1558, + 1883,1359,218,1588,1,1361,28,1511,1483,1370, + 1893,1894,1895,1896,1457,720,2195,2196,2197,1339, + 1325,1289,1883,1900,1597,1901,1581,1409,1574,1558, + 1427,1883,205,1588,559,1883,1883,1511,1483,1370, + 1893,1894,1895,1896,1457,720,2195,2196,2197,1339, + 1325,1289,1883,1900,1606,1901,1581,1883,1574,1558, + 1883,1910,1883,1588,2137,1883,1883,1511,1483,1370, + 1893,1894,1895,1896,1457,720,2195,2196,2197,1339, + 1325,1289,1883,1900,1631,1901,1581,2934,1574,1558, + 1883,1883,1883,1588,1883,1883,1883,1511,1483,1370, + 1893,1894,1895,1896,1457,720,2195,2196,2197,1339, + 1325,1289,1883,1900,1636,1901,1581,1883,1574,1558, + 1883,1883,1883,1588,1883,1883,1883,1511,1483,1370, + 1893,1894,1895,1896,1457,720,2195,2196,2197,1339, + 1325,1289,1883,1900,1661,1901,1581,70,1574,1558, + 71,1883,1883,1588,1883,1883,1883,1511,1483,1370, + 1893,1894,1895,1896,1457,720,2195,2196,2197,1339, + 1325,1289,1,1900,1595,1901,1581,1883,1574,1558, + 1883,1883,1883,1588,1883,1883,1883,1511,1483,1370, + 1893,1894,1895,1896,1457,720,2195,2196,2197,1339, + 1325,1289,17,1883,1871,1883,1871,1871,65,1883, + 179,179,179,1883,179,179,179,1883,1883,502, + 1883,485,1883,1883,485,1883,1883,1883,1883,1883, + 1883,1883,1883,179,1871,179,179,179,179,179, + 1883,18,1883,1874,1883,1874,1874,1883,129,178, + 178,178,1871,178,178,178,2095,2096,2097,1883, + 2208,1218,2209,1883,1883,1883,1883,1883,1883,1883, + 1883,1883,178,1874,178,178,178,178,178,2045, + 130,2046,2044,2098,2047,2043,1883,131,2095,2096, + 2097,1874,2208,1218,2209,2095,2096,2097,1883,2208, + 1218,2209,1883,1883,1883,1883,1883,1883,1883,1883, + 31,2045,1357,2046,2044,2098,2047,2043,2045,132, + 2046,2044,2098,2047,2043,1907,1908,2095,2096,2097, + 1883,2208,1218,2209,1883,1883,1883,1883,1883,1883, + 1883,1883,1614,1883,1883,1883,1883,1883,1883,1883, + 2045,1883,2046,2044,2098,2047,2043,1883,1883,1883, + 1883,1883,1883,1883,1883,1883,1883,1883,1883,1883, + 1883,1195,1883,1883,1883,1883,1883,1883,1883,1883, + 1883,1883,1883,1883,1883,1883,646 }; }; public final static char termAction[] = TermAction.termAction; @@ -699,29 +691,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Asb { public final static char asb[] = {0, - 463,1,168,41,168,168,168,168,168,168, - 168,168,168,168,168,168,3,55,378,375, - 382,380,388,386,390,389,392,391,10,168, - 55,55,55,55,55,360,360,487,168,240, - 240,315,55,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,240,240,240,240,240,240,45, - 135,319,159,327,238,237,287,48,299,299, - 155,155,299,155,299,75,191,191,375,375, - 380,380,380,380,378,378,386,382,382,389, - 388,424,391,390,363,363,363,363,157,133, - 315,307,162,45,98,106,240,426,330,106, - 403,254,403,254,321,403,168,133,307,98, - 98,45,105,159,240,313,75,239,332,45, - 106,254,254,254,254,321,321,323,251,133, - 98,307,168,168,45,106,327,419,418,319, - 332,240,254,284,243,254,254,284,323,458, - 323,321,284,131,461,360,168,250,133,307, - 45,45,240,426,330,313,284,245,284,284, - 168,360,323,135,45,360,168,323,332,399, - 168,398,187,319,284,45,284,240,239,245, - 168,187,361 + 488,1,89,41,89,89,89,89,89,89, + 89,89,89,89,89,89,3,238,403,400, + 407,405,413,411,415,414,417,416,10,89, + 238,238,238,238,238,385,385,327,89,161, + 161,225,238,89,89,89,89,89,89,89, + 89,89,89,89,89,89,89,89,89,89, + 89,89,89,89,89,89,89,89,89,89, + 89,89,89,161,161,161,161,161,161,45, + 56,229,80,352,159,158,197,231,209,209, + 76,76,209,76,209,258,112,112,400,400, + 405,405,405,405,403,403,411,407,407,414, + 413,449,416,415,388,388,388,388,78,54, + 225,217,83,45,281,172,161,456,355,172, + 428,288,428,288,321,428,89,54,217,281, + 281,45,171,80,161,223,258,160,357,45, + 172,288,288,288,288,321,321,323,49,318, + 78,281,217,89,89,45,172,352,444,443, + 229,357,161,288,318,164,288,288,318,323, + 451,323,321,318,52,454,385,89,48,318, + 54,217,45,45,161,456,355,223,318,166, + 318,318,89,385,323,56,45,385,89,54, + 357,424,89,423,108,229,318,45,323,161, + 160,166,89,108,318,386,323 }; }; public final static char asb[] = Asb.asb; @@ -729,57 +721,57 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Asr { public final static byte asr[] = {0, - 89,0,75,31,2,61,76,15,16,14, - 4,9,10,62,63,57,58,64,65,66, - 67,70,71,72,73,74,77,78,55,69, + 89,0,75,32,2,61,76,15,16,11, + 4,6,7,62,63,57,58,64,65,66, + 67,70,71,72,73,74,77,78,51,69, 79,80,81,82,83,85,84,86,87,88, - 68,50,89,54,59,5,0,5,68,54, - 59,50,75,31,17,18,19,20,21,2, - 15,16,14,4,9,10,22,23,24,25, - 26,27,28,29,3,1,51,52,53,46, - 38,43,41,42,40,39,44,45,47,48, - 49,37,34,30,33,36,35,6,7,8, - 12,11,13,0,30,59,5,15,16,14, - 4,9,10,22,23,17,27,28,29,2, - 1,3,18,19,20,21,24,25,26,0, - 5,55,31,61,15,16,14,4,9,10, - 22,23,17,27,28,29,2,18,19,20, - 21,24,25,26,1,3,32,0,59,5, - 30,6,7,8,11,12,13,18,19,20, - 21,24,25,26,3,15,16,14,9,10, - 22,23,17,27,28,29,4,2,1,0, - 7,30,37,8,36,35,34,6,33,11, - 12,13,61,76,15,16,14,9,10,62, - 63,57,58,64,65,66,67,70,71,72, - 73,74,77,78,69,79,80,81,82,83, - 84,85,86,87,88,4,2,31,54,50, - 5,0,75,5,4,1,2,68,0,69, - 31,61,0,33,38,6,39,51,34,40, - 35,41,42,36,7,43,44,30,52,37, - 53,45,46,8,47,48,49,1,3,11, - 12,13,56,55,5,0,46,38,43,41, + 68,50,89,55,59,5,0,69,32,61, + 0,5,51,32,61,15,16,11,4,6, + 7,22,23,17,27,28,29,2,18,19, + 20,21,24,25,26,1,3,30,0,59, + 5,31,8,9,10,12,13,14,18,19, + 20,21,24,25,26,3,15,16,11,6, + 7,22,23,17,27,28,29,4,2,1, + 0,9,31,37,10,36,35,34,8,33, + 12,13,14,61,76,15,16,11,6,7, + 62,63,57,58,64,65,66,67,70,71, + 72,73,74,77,78,69,79,80,81,82, + 83,84,85,86,87,88,4,2,32,55, + 50,5,0,75,5,4,1,2,68,0, + 31,59,5,15,16,11,4,6,7,22, + 23,17,27,28,29,2,1,3,18,19, + 20,21,24,25,26,0,46,38,43,41, 42,40,39,44,45,47,48,49,68,75, - 37,34,30,33,36,35,6,7,8,11, - 12,13,54,1,5,50,2,31,4,0, - 1,3,5,55,54,0,4,2,31,50, - 5,33,38,6,39,51,34,40,35,41, - 42,36,7,43,44,30,52,37,53,45, - 46,8,47,48,49,11,12,13,60,3, - 1,0,69,79,80,81,82,83,84,85, - 86,87,88,32,4,62,63,9,10,58, - 57,64,65,66,67,70,71,14,72,73, - 74,59,50,55,89,77,78,68,75,5, - 54,0,33,6,34,35,36,7,30,37, - 8,1,4,11,12,13,32,2,5,54, - 50,75,31,68,0,33,38,6,39,51, - 34,40,35,41,42,36,7,43,44,30, - 52,37,53,45,46,8,47,48,49,1, - 3,11,12,13,60,4,0,5,54,55, - 69,0,17,18,19,20,21,1,3,2, - 15,16,14,4,9,10,22,23,24,25, - 26,27,28,29,56,0,5,50,17,18, - 19,20,21,1,3,2,15,16,14,4, - 9,10,22,23,24,25,26,27,28,29, + 37,34,31,33,36,35,8,9,10,12, + 13,14,55,1,5,50,2,32,4,0, + 5,68,55,59,50,75,32,17,18,19, + 20,21,2,15,16,11,4,6,7,22, + 23,24,25,26,27,28,29,3,1,52, + 53,54,46,38,43,41,42,40,39,44, + 45,47,48,49,37,34,31,33,36,35, + 8,9,10,13,12,14,0,33,38,8, + 39,52,34,40,35,41,42,36,9,43, + 44,31,53,37,54,45,46,10,47,48, + 49,1,3,12,13,14,56,5,51,0, + 1,3,5,51,55,0,5,50,17,18, + 19,20,21,1,3,2,15,16,11,4, + 6,7,22,23,24,25,26,27,28,29, + 0,4,2,32,50,5,33,38,8,39, + 52,34,40,35,41,42,36,9,43,44, + 31,53,37,54,45,46,10,47,48,49, + 12,13,14,60,3,1,0,69,79,80, + 81,82,83,84,85,86,87,88,30,4, + 62,63,6,7,58,57,64,65,66,67, + 70,71,11,72,73,74,59,50,51,89, + 77,78,68,75,5,55,0,33,8,34, + 35,36,9,31,37,10,1,4,12,13, + 14,30,2,5,55,50,75,32,68,0, + 5,55,51,69,0,33,38,8,39,52, + 34,40,35,41,42,36,9,43,44,31, + 53,37,54,45,46,10,47,48,49,1, + 3,12,13,14,60,4,0,17,18,19, + 20,21,1,3,2,15,16,11,4,6, + 7,22,23,24,25,26,27,28,29,56, 0 }; }; @@ -788,29 +780,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Nasb { public final static byte nasb[] = {0, - 82,8,17,8,17,17,17,17,17,17, - 17,17,17,17,17,17,8,66,8,8, - 8,8,8,8,8,8,8,8,8,17, - 66,66,66,66,66,9,9,89,67,64, - 64,59,1,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,67, - 17,17,17,17,17,17,17,17,17,17, - 17,17,17,64,64,64,64,64,64,21, - 17,72,19,58,23,23,44,11,45,45, - 38,38,45,38,45,40,8,8,8,8, + 87,8,16,8,16,16,16,16,16,16, + 16,16,16,16,16,16,8,73,8,8, + 8,8,8,8,8,8,8,8,8,16, + 73,73,73,73,73,32,32,59,74,30, + 30,63,1,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,74, + 16,16,16,16,16,16,16,16,16,16, + 16,16,16,30,30,30,30,30,30,20, + 16,81,18,62,40,40,26,44,27,27, + 42,42,27,42,27,22,8,8,8,8, 8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,80, - 60,80,16,21,50,20,64,70,63,20, - 8,80,8,80,80,8,17,16,80,50, - 50,21,20,29,64,32,2,8,79,21, - 20,80,74,80,74,38,80,25,13,80, - 50,29,17,17,21,20,31,23,23,72, - 79,64,74,27,47,85,74,27,25,8, - 8,38,27,15,8,38,17,56,16,29, - 21,21,64,70,63,33,27,52,27,27, - 17,38,25,17,21,38,17,25,78,48, - 17,8,52,72,27,21,27,64,64,52, - 17,35,8 + 8,8,8,8,8,8,8,8,8,92, + 64,92,37,20,77,19,30,79,29,19, + 8,92,8,92,92,8,16,14,92,77, + 77,20,19,53,30,47,2,8,91,20, + 19,92,83,92,83,42,92,69,9,92, + 8,77,53,16,16,20,19,46,40,40, + 81,91,30,83,67,34,94,83,67,69, + 8,8,42,67,13,8,42,16,11,67, + 92,53,20,20,30,79,29,48,67,55, + 67,67,16,42,69,15,20,42,16,14, + 90,35,16,8,55,81,67,20,69,30, + 30,55,16,50,67,8,71 }; }; public final static byte nasb[] = Nasb.nasb; @@ -818,16 +810,16 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface Nasr { public final static char nasr[] = {0, - 4,79,78,77,76,75,74,0,71,0, - 94,0,91,0,69,7,4,0,7,4, - 22,0,29,0,54,0,31,0,23,0, - 20,7,48,47,40,38,0,32,0,64, - 65,66,67,55,33,0,7,70,0,61, - 0,7,40,38,0,93,0,20,7,48, - 47,0,7,20,0,27,7,30,0,7, - 21,52,0,59,7,27,0,88,21,7, - 0,7,85,0,7,27,51,0,7,86, - 0 + 4,80,79,78,77,76,75,0,93,0, + 95,0,70,7,64,4,0,7,4,22, + 0,65,66,67,68,55,33,0,7,20, + 0,72,0,7,71,0,4,7,0,29, + 0,32,0,96,0,20,7,48,47,40, + 38,0,23,0,7,40,38,0,7,87, + 0,20,7,48,47,0,30,0,54,0, + 91,0,27,7,31,0,61,0,7,21, + 52,0,59,7,27,0,7,86,0,89, + 21,7,0,7,27,51,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -835,12 +827,12 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface TerminalIndex { public final static char terminalIndex[] = {0, - 85,2,86,9,87,48,64,76,10,11, - 96,97,98,8,6,7,68,81,82,83, - 84,12,13,93,94,95,100,101,102,69, - 1,3,44,55,60,63,72,47,52,56, + 85,2,86,9,87,10,11,48,64,76, + 8,96,97,98,6,7,68,81,82,83, + 84,12,13,93,94,95,100,101,102,3, + 69,1,44,55,60,63,72,47,52,56, 61,62,66,67,74,75,78,79,80,90, - 54,70,73,42,91,107,16,17,89,30, + 91,54,70,73,42,107,16,17,89,30, 4,14,15,18,19,20,21,29,31,22, 23,24,25,26,92,5,27,28,32,33, 34,35,36,37,38,39,40,41,108,45, @@ -855,16 +847,17 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public final static char nonterminalIndex[] = {0, 0,0,0,115,119,120,0,121,122,123, 124,125,126,127,128,129,130,131,132,111, - 136,110,143,0,0,0,154,0,163,114, - 112,135,142,0,0,0,159,161,0,162, + 136,110,143,0,0,0,154,0,163,112, + 114,135,142,0,0,0,159,161,0,162, 0,0,0,117,134,172,173,174,0,151, 153,160,169,0,145,150,0,0,152,164, - 167,168,171,146,147,148,149,158,175,113, - 116,118,133,137,138,139,140,141,144,156, - 0,0,157,166,109,0,155,165,170,176, - 177,0,178,179,0,0,0,0,0,0, + 167,168,171,0,146,147,148,149,158,175, + 113,116,118,133,137,138,139,140,141,144, + 156,0,0,157,166,109,0,155,165,170, + 0,176,177,0,178,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,0,0,0,0 + 0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -872,12 +865,12 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopePrefix { public final static char scopePrefix[] = { - 214,118,57,67,125,145,151,188,26,33, - 85,103,157,162,73,6,12,16,38,81, - 50,135,210,229,233,50,50,197,50,1, - 1,1,42,45,90,113,45,237,20,139, - 204,179,204,131,167,167,167,167,167,93, - 93,93 + 218,120,59,69,129,149,155,26,192,35, + 87,105,161,166,75,6,12,16,40,83, + 52,139,214,233,237,52,52,201,52,1, + 1,1,44,47,92,115,47,241,20,143, + 208,183,208,135,171,171,171,171,171,95, + 95,95 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -885,12 +878,12 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopeSuffix { public final static char scopeSuffix[] = { - 31,31,4,4,31,31,31,194,31,10, - 4,10,31,31,78,10,10,10,10,4, - 4,133,10,10,4,54,78,201,63,4, - 4,4,10,48,4,10,116,10,23,142, - 207,182,222,133,169,171,173,175,177,100, - 95,108 + 127,127,4,4,127,127,127,32,198,10, + 4,10,127,127,80,10,10,10,10,4, + 4,137,10,10,4,56,80,205,65,4, + 4,4,10,50,4,10,118,10,23,146, + 211,186,226,137,173,175,177,179,181,102, + 97,110 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -898,11 +891,11 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopeLhs { public final static char scopeLhs[] = { - 4,66,29,29,66,64,64,101,56,49, - 29,43,64,64,29,5,5,5,49,29, - 29,51,5,4,4,29,29,18,29,94, - 93,92,47,63,29,40,50,2,69,51, - 6,102,4,51,78,77,76,75,74,43, + 4,67,29,29,67,65,65,56,103,49, + 29,43,65,65,29,5,5,5,49,29, + 29,51,5,4,4,29,29,18,29,96, + 95,94,47,63,29,40,50,2,70,51, + 6,104,4,51,79,78,77,76,75,43, 41,43 }; }; @@ -911,11 +904,11 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopeLa { public final static byte scopeLa[] = { - 55,55,59,59,55,55,55,95,55,50, - 59,50,55,55,18,50,50,50,50,59, - 59,75,50,50,59,4,18,68,30,59, + 51,51,59,59,51,51,51,51,95,50, + 59,50,51,51,18,50,50,50,50,59, + 59,75,50,50,59,4,18,68,31,59, 59,59,50,2,59,50,1,50,69,1, - 50,101,50,75,3,51,52,52,46,2, + 50,101,50,75,3,52,53,53,46,2, 2,2 }; }; @@ -924,7 +917,7 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopeStateSet { public final static byte scopeStateSet[] = { - 36,21,25,25,21,21,21,-1,96,29, + 36,21,25,25,21,21,21,96,-1,29, 25,11,21,21,25,36,36,36,29,25, 25,5,36,36,36,25,25,70,25,19, 1,3,29,31,25,11,13,36,97,5, @@ -937,30 +930,31 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopeRhs { public final static char scopeRhs[] = {0, - 152,31,0,110,0,151,2,29,0,111, - 0,151,2,28,0,151,2,27,0,197, - 114,0,31,150,0,161,179,114,32,0, - 112,0,167,114,2,154,0,167,114,2, - 0,170,2,0,159,114,0,172,0,191, - 114,31,0,9,110,0,126,30,191,114, - 31,0,69,132,110,0,126,191,114,30, - 31,0,191,114,30,31,0,132,110,0, - 126,30,31,0,126,191,114,31,0,126, - 31,0,147,0,2,0,165,111,0,2, - 111,0,167,114,2,147,0,2,0,164, - 111,0,157,2,0,159,0,161,189,114, - 32,139,51,0,161,189,114,32,51,0, - 134,0,113,0,194,114,134,0,114,134, - 0,155,113,0,165,114,32,139,53,0, - 165,114,32,139,52,0,165,114,32,53, - 0,165,114,32,52,0,186,0,149,0, - 148,0,147,0,146,0,145,0,204,94, - 0,77,2,114,111,113,0,204,127,137, - 2,98,0,53,0,0,137,78,124,0, - 29,131,0,151,2,0,111,120,0,151, - 2,17,0,161,179,114,32,127,151,2, - 0,111,3,0,118,0,112,0,193,2, - 111,0,137,31,111,0,137,2,0 + 152,32,0,110,0,151,2,29,0,111, + 0,151,2,28,0,151,2,27,0,199, + 114,0,31,150,0,161,180,114,30,171, + 0,112,0,0,167,114,2,154,0,167, + 114,2,0,170,2,0,159,114,0,172, + 0,192,114,32,0,9,110,0,126,31, + 192,114,32,0,69,132,110,0,126,192, + 114,31,32,0,192,114,31,32,0,132, + 110,0,126,31,32,0,126,192,114,32, + 0,126,32,0,147,0,2,0,165,111, + 0,2,111,0,167,114,2,147,0,2, + 0,164,111,0,157,2,0,159,0,161, + 190,114,30,139,52,0,112,0,161,190, + 114,30,52,0,134,0,113,0,195,114, + 134,0,114,134,0,155,113,0,165,114, + 30,139,54,0,165,114,30,139,53,0, + 165,114,30,54,0,165,114,30,53,0, + 187,0,149,0,148,0,147,0,146,0, + 145,0,206,94,0,77,2,114,111,113, + 0,206,127,138,2,98,0,53,0,0, + 138,78,124,0,29,131,0,151,2,0, + 111,120,0,151,2,17,0,161,180,114, + 30,127,151,2,0,111,3,0,118,0, + 112,0,194,2,111,0,138,32,111,0, + 138,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -968,16 +962,16 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface ScopeState { public final static char scopeState[] = {0, - 1285,0,514,0,1723,1786,1710,1706,1701,0, - 1536,1232,1327,1184,1276,1200,1156,0,431,0, - 1231,574,361,0,1610,1161,1158,601,1232,1416, - 1200,1156,1426,1491,0,1371,642,632,577,419, - 388,1528,1521,1513,1693,611,398,583,1164,720, - 518,1299,1419,1409,1394,1383,1335,1208,1686,1672, - 1651,772,481,1587,1580,1562,1555,1477,1447,1117, - 1098,1079,1060,1041,1021,1001,490,1136,694,674, - 554,981,961,941,921,901,881,861,841,821, - 801,781,361,752,654,732,461,534,441,0 + 519,0,492,0,1768,1803,1758,1742,1733,0, + 1530,1222,1295,385,1281,1237,1192,0,1218,0, + 587,582,364,0,1728,1611,1207,1194,1222,1600, + 1237,1192,1406,1471,0,1511,1483,1370,1339,1325, + 1289,1544,1535,1521,1720,485,401,703,588,624, + 522,502,1399,1389,1378,1346,1303,1200,1713,1706, + 1693,1502,1493,1588,1581,1574,1558,1457,720,1153, + 1134,1115,1096,1077,1057,1037,774,1172,750,728, + 559,1017,997,977,957,937,917,897,877,857, + 837,817,364,797,683,663,465,539,445,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -985,29 +979,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public interface InSymb { public final static char inSymb[] = {0, - 0,192,114,180,29,28,27,17,23,22, - 10,9,4,14,16,15,111,2,116,115, - 118,117,120,119,122,121,124,123,112,54, - 2,2,2,2,2,76,61,2,31,151, - 137,134,114,10,9,63,62,4,67,66, - 65,64,57,58,14,71,70,73,72,78, + 0,193,114,181,29,28,27,17,23,22, + 7,6,4,11,16,15,111,2,116,115, + 118,117,120,119,122,121,124,123,112,55, + 2,2,2,2,2,76,61,2,32,151, + 138,134,114,7,6,63,62,4,67,66, + 65,64,57,58,11,71,70,73,72,78, 77,74,88,87,86,84,85,83,82,81, - 80,79,69,151,151,151,151,151,193,137, - 127,114,31,2,155,154,181,12,182,183, - 53,52,184,51,185,186,1,3,115,115, + 80,79,69,151,151,151,151,151,194,138, + 127,114,32,2,155,154,182,13,183,184, + 54,53,185,52,186,187,1,3,115,115, 117,117,117,117,116,116,119,118,118,121, - 120,137,123,122,127,127,127,127,127,32, - 159,4,30,126,114,4,170,114,2,31, - 139,32,139,32,32,139,68,114,4,114, - 114,126,191,168,167,128,114,169,114,152, - 4,32,114,32,114,114,32,179,114,32, - 114,168,191,30,126,4,2,145,147,114, - 54,167,114,165,134,166,114,165,189,139, - 190,114,161,54,197,61,31,198,114,168, - 126,126,157,114,2,159,165,114,165,161, - 69,54,189,69,152,61,31,179,114,194, - 68,157,2,114,161,152,161,167,195,54, - 68,159,54 + 120,138,123,122,127,127,127,127,127,30, + 159,4,31,126,114,4,170,114,2,32, + 139,30,139,30,30,139,68,114,4,114, + 114,126,192,168,167,128,114,169,114,152, + 4,30,114,30,114,114,30,180,114,30, + 171,114,168,192,31,126,4,2,145,147, + 114,55,167,114,165,134,166,114,165,190, + 139,191,114,161,55,199,61,32,200,114, + 30,168,126,126,157,114,2,159,165,114, + 165,161,69,55,190,69,152,61,32,114, + 114,195,68,157,2,114,161,152,180,167, + 196,55,68,159,161,55,137 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1217,20 +1211,20 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 223, + NUM_STATES = 227, NT_OFFSET = 107, - LA_STATE_OFFSET = 2278, + LA_STATE_OFFSET = 2246, MAX_LA = 2, - NUM_RULES = 360, - NUM_NONTERMINALS = 120, - NUM_SYMBOLS = 227, + NUM_RULES = 363, + NUM_NONTERMINALS = 122, + NUM_SYMBOLS = 229, SEGMENT_SIZE = 8192, - START_STATE = 1747, + START_STATE = 1774, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, - ACCEPT_ACTION = 1902, - ERROR_ACTION = 1918; + ACCEPT_ACTION = 1867, + ERROR_ACTION = 1883; public final static boolean BACKTRACK = true; diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java index c9c99f54e91..48dd697416a 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java @@ -19,13 +19,13 @@ public interface UPCExpressionParsersym { TK_break = 90, TK_case = 91, TK_char = 38, - TK_const = 6, + TK_const = 8, TK_continue = 92, TK_default = 93, TK_do = 94, TK_double = 39, TK_else = 95, - TK_enum = 51, + TK_enum = 52, TK_extern = 34, TK_float = 40, TK_for = 96, @@ -35,19 +35,19 @@ public interface UPCExpressionParsersym { TK_int = 41, TK_long = 42, TK_register = 36, - TK_restrict = 7, + TK_restrict = 9, TK_return = 99, TK_short = 43, TK_signed = 44, TK_sizeof = 17, - TK_static = 30, - TK_struct = 52, + TK_static = 31, + TK_struct = 53, TK_switch = 100, TK_typedef = 37, - TK_union = 53, + TK_union = 54, TK_unsigned = 45, TK_void = 46, - TK_volatile = 8, + TK_volatile = 10, TK_while = 101, TK__Bool = 47, TK__Complex = 48, @@ -60,17 +60,17 @@ public interface UPCExpressionParsersym { TK_Completion = 3, TK_EndOfCompletion = 5, TK_Invalid = 102, - TK_LeftBracket = 31, + TK_LeftBracket = 32, TK_LeftParen = 2, - TK_LeftBrace = 32, + TK_LeftBrace = 30, TK_Dot = 61, TK_Arrow = 76, TK_PlusPlus = 15, TK_MinusMinus = 16, - TK_And = 14, + TK_And = 11, TK_Star = 4, - TK_Plus = 9, - TK_Minus = 10, + TK_Plus = 6, + TK_Minus = 7, TK_Tilde = 22, TK_Bang = 23, TK_Slash = 62, @@ -101,17 +101,17 @@ public interface UPCExpressionParsersym { TK_AndAssign = 86, TK_CaretAssign = 87, TK_OrAssign = 88, - TK_Comma = 54, + TK_Comma = 55, TK_RightBracket = 59, TK_RightParen = 50, - TK_RightBrace = 55, + TK_RightBrace = 51, TK_SemiColon = 75, TK_MYTHREAD = 24, TK_THREADS = 25, TK_UPC_MAX_BLOCKSIZE = 26, - TK_relaxed = 11, - TK_shared = 12, - TK_strict = 13, + TK_relaxed = 12, + TK_shared = 13, + TK_strict = 14, TK_upc_barrier = 103, TK_upc_localsizeof = 27, TK_upc_blocksizeof = 28, @@ -130,15 +130,15 @@ public interface UPCExpressionParsersym { "Completion", "Star", "EndOfCompletion", + "Plus", + "Minus", "const", "restrict", "volatile", - "Plus", - "Minus", + "And", "relaxed", "shared", "strict", - "And", "PlusPlus", "MinusMinus", "sizeof", @@ -154,9 +154,9 @@ public interface UPCExpressionParsersym { "upc_localsizeof", "upc_blocksizeof", "upc_elemsizeof", + "LeftBrace", "static", "LeftBracket", - "LeftBrace", "auto", "extern", "inline", @@ -175,11 +175,11 @@ public interface UPCExpressionParsersym { "_Complex", "_Imaginary", "RightParen", + "RightBrace", "enum", "struct", "union", "Comma", - "RightBrace", "ERROR_TOKEN", "RightShift", "LeftShift", diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java index 2246467b429..776a747049e 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java @@ -24,6 +24,7 @@ import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; 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.parser.upc.UPCASTNodeFactory; @@ -32,7 +33,6 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; public class UPCNoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { @@ -176,8 +176,9 @@ private UPCParserAction action; public UPCNoCastExpressionParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu); + action.setParserOptions(options); } @@ -187,10 +188,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -596,13 +597,13 @@ public UPCNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 101: labeled_statement ::= case constant_expression : + // Rule 101: labeled_statement ::= case constant_expression : statement // case 101: { action. consumeStatementCase(); break; } // - // Rule 102: labeled_statement ::= default : + // Rule 102: labeled_statement ::= default : statement // case 102: { action. consumeStatementDefault(); break; } @@ -1160,381 +1161,399 @@ public UPCNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 278: initializer ::= { <openscope-ast> initializer_list comma_opt } + // Rule 278: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 278: { action. consumeInitializerList(); break; } // - // Rule 283: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 279: initializer ::= { <openscope-ast> } + // + case 279: { action. consumeInitializerList(); break; + } + + // + // Rule 280: start_initializer_list ::= $Empty + // + case 280: { action. initializerListStart(); break; + } + + // + // Rule 281: end_initializer_list ::= $Empty + // + case 281: { action. initializerListEnd(); break; + } + + // + // Rule 286: designated_initializer ::= <openscope-ast> designation = initializer // - case 283: { action. consumeInitializerDesignated(); break; + case 286: { action. consumeInitializerDesignated(); break; } // - // Rule 287: designator_base ::= [ constant_expression ] + // Rule 290: designator_base ::= [ constant_expression ] // - case 287: { action. consumeDesignatorArray(); break; + case 290: { action. consumeDesignatorArray(); break; } // - // Rule 288: designator_base ::= . identifier_or_typedefname + // Rule 291: designator_base ::= . identifier_or_typedefname // - case 288: { action. consumeDesignatorField(); break; + case 291: { action. consumeDesignatorField(); break; } // - // Rule 289: designator ::= [ constant_expression ] + // Rule 292: designator ::= [ constant_expression ] // - case 289: { action. consumeDesignatorArray(); break; + case 292: { action. consumeDesignatorArray(); break; } // - // Rule 290: designator ::= . identifier_or_typedefname + // Rule 293: designator ::= . identifier_or_typedefname // - case 290: { action. consumeDesignatorField(); break; + case 293: { action. consumeDesignatorField(); break; } // - // Rule 291: translation_unit ::= external_declaration_list + // Rule 294: translation_unit ::= external_declaration_list // - case 291: { action. consumeTranslationUnit(); break; + case 294: { action. consumeTranslationUnit(); break; } // - // Rule 292: translation_unit ::= $Empty + // Rule 295: translation_unit ::= $Empty // - case 292: { action. consumeTranslationUnit(); break; + case 295: { action. consumeTranslationUnit(); break; } // - // Rule 297: external_declaration ::= ; + // Rule 300: external_declaration ::= ; // - case 297: { action. consumeDeclarationEmpty(); break; + case 300: { action. consumeDeclarationEmpty(); break; } // - // Rule 298: external_declaration ::= ERROR_TOKEN + // Rule 301: external_declaration ::= ERROR_TOKEN // - case 298: { action. consumeDeclarationProblem(); break; + case 301: { action. consumeDeclarationProblem(); break; } // - // Rule 301: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 301: { action. consumeFunctionDefinition(true); break; + case 304: { action. consumeFunctionDefinition(true); break; } // - // Rule 302: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 305: function_definition ::= <openscope-ast> function_declarator function_body // - case 302: { action. consumeFunctionDefinition(false); break; + case 305: { action. consumeFunctionDefinition(false); break; } // - // Rule 303: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 306: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 303: { action. consumeFunctionDefinitionKnR(); break; + case 306: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 304: function_body ::= { } + // Rule 307: function_body ::= { } // - case 304: { action. consumeStatementCompoundStatement(false); break; + case 307: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 305: function_body ::= { <openscope-ast> block_item_list } + // Rule 308: function_body ::= { <openscope-ast> block_item_list } // - case 305: { action. consumeStatementCompoundStatement(true); break; + case 308: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 307: no_cast_start ::= ERROR_TOKEN + // Rule 310: no_cast_start ::= ERROR_TOKEN // - case 307: { action. consumeExpressionProblem(); break; + case 310: { action. consumeExpressionProblem(); break; } // - // Rule 308: literal ::= MYTHREAD + // Rule 311: literal ::= MYTHREAD // - case 308: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 311: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 309: literal ::= THREADS + // Rule 312: literal ::= THREADS // - case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 312: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 310: literal ::= UPC_MAX_BLOCKSIZE + // Rule 313: literal ::= UPC_MAX_BLOCKSIZE // - case 310: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 311: unary_expression ::= upc_localsizeof unary_expression + // Rule 314: unary_expression ::= upc_localsizeof unary_expression // - case 311: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 314: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 312: unary_expression ::= upc_localsizeof ( type_name ) + // Rule 315: unary_expression ::= upc_localsizeof ( type_name ) // - case 312: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 315: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 313: unary_expression ::= upc_blocksizeof unary_expression + // Rule 316: unary_expression ::= upc_blocksizeof unary_expression // - case 313: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 316: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 314: unary_expression ::= upc_blocksizeof ( type_name ) + // Rule 317: unary_expression ::= upc_blocksizeof ( type_name ) // - case 314: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 317: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 315: unary_expression ::= upc_elemsizeof unary_expression + // Rule 318: unary_expression ::= upc_elemsizeof unary_expression // - case 315: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 316: unary_expression ::= upc_elemsizeof ( type_name ) + // Rule 319: unary_expression ::= upc_elemsizeof ( type_name ) // - case 316: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 319: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 320: shared_type_qualifier ::= shared + // Rule 323: shared_type_qualifier ::= shared // - case 320: { action. consumeToken(); break; + case 323: { action. consumeToken(); break; } // - // Rule 321: reference_type_qualifier ::= relaxed + // Rule 324: reference_type_qualifier ::= relaxed // - case 321: { action. consumeToken(); break; + case 324: { action. consumeToken(); break; } // - // Rule 322: reference_type_qualifier ::= strict + // Rule 325: reference_type_qualifier ::= strict // - case 322: { action. consumeToken(); break; + case 325: { action. consumeToken(); break; } // - // Rule 323: layout_qualifier ::= [ constant_expression ] + // Rule 326: layout_qualifier ::= [ constant_expression ] // - case 323: { action. consumeLayoutQualifier(true, false); break; + case 326: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 324: layout_qualifier ::= [ * ] + // Rule 327: layout_qualifier ::= [ * ] // - case 324: { action. consumeLayoutQualifier(false, true); break; + case 327: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 325: layout_qualifier ::= [ ] + // Rule 328: layout_qualifier ::= [ ] // - case 325: { action. consumeLayoutQualifier(false, false); break; + case 328: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 327: synchronization_statement ::= upc_notify expression ; + // Rule 330: synchronization_statement ::= upc_notify expression ; // - case 327: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 328: synchronization_statement ::= upc_notify ; + // Rule 331: synchronization_statement ::= upc_notify ; // - case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 329: synchronization_statement ::= upc_wait expression ; + // Rule 332: synchronization_statement ::= upc_wait expression ; // - case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 330: synchronization_statement ::= upc_wait ; + // Rule 333: synchronization_statement ::= upc_wait ; // - case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 331: synchronization_statement ::= upc_barrier expression ; + // Rule 334: synchronization_statement ::= upc_barrier expression ; // - case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 332: synchronization_statement ::= upc_barrier ; + // Rule 335: synchronization_statement ::= upc_barrier ; // - case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 333: synchronization_statement ::= upc_fence ; + // Rule 336: synchronization_statement ::= upc_fence ; // - case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 334: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 334: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 337: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 335: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 338: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 336: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 339: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 340: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 337: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 340: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 338: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 338: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 341: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 339: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 339: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 342: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 340: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 343: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 341: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 344: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 341: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 344: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 342: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 345: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 342: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 345: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 343: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 346: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 343: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 346: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 344: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 347: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 344: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 347: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 345: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 348: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 345: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 348: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 346: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 346: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 349: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 347: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 347: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 350: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 351: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 349: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 352: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 349: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 352: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 350: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 350: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 353: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 351: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 354: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 352: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 355: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 356: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 353: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 356: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 354: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 354: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 357: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 355: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 355: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 358: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 359: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 357: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 360: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 357: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 360: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 359: affinity ::= continue + // Rule 362: affinity ::= continue // - case 359: { action. consumeToken(); break; + case 362: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java index c919965ad79..e8338145b2d 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java @@ -45,7 +45,7 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 1,5,1,3,3,3,3,3,3,3, 3,3,3,3,1,1,2,1,0,1, 3,1,1,1,1,1,1,1,1,3, - 3,2,2,4,1,2,1,1,1,2, + 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, @@ -62,164 +62,165 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 6,6,3,5,1,1,2,3,4,1, 2,1,3,1,1,3,2,1,1,1, 1,2,1,2,3,1,1,1,3,1, - 2,2,2,3,4,5,1,5,1,1, - 3,3,4,1,1,2,3,2,3,2, - 1,0,1,2,1,1,1,1,1,2, - 4,3,6,2,4,1,1,1,1,1, - 2,4,2,4,2,4,1,1,2,1, - 1,1,3,3,2,1,3,2,3,2, - 3,2,2,11,10,10,9,10,9,9, - 8,10,9,9,8,9,8,8,7,10, - 9,9,8,9,8,8,7,1,1,-38, - 0,0,0,0,0,0,0,-2,0,0, - 0,0,0,0,0,0,0,0,0,-78, - -4,-87,0,0,0,0,-5,0,0,0, - 0,0,0,0,0,0,-60,0,0,0, - 0,0,0,0,-141,0,0,0,0,0, - 0,0,0,0,0,-18,0,-6,0,0, + 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,1,2,4,2,4,2,4,1, + 1,2,1,1,1,3,3,2,1,3, + 2,3,2,3,2,2,11,10,10,9, + 10,9,9,8,10,9,9,8,9,8, + 8,7,10,9,9,8,9,8,8,7, + 1,1,-38,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,-135, + 0,0,-78,-212,-87,0,0,0,0,0, + 0,-2,-4,-18,-19,0,0,0,0,-60, + 0,0,0,0,0,0,-172,0,0,0, + 0,0,0,0,0,0,0,0,-39,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-186, + 0,-20,-21,0,0,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,0,0,-193, - -9,0,0,0,0,0,0,-30,0,0, + 0,0,0,-207,0,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,0,-156,-19,-20,0,0,0,0,0, - 0,0,0,-84,0,0,0,0,0,0, - 0,0,-181,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, - 0,0,-79,0,0,0,0,0,0,0, + -54,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-36,-73,0,-156,-40,0, + -55,0,0,0,0,0,0,0,0,0, + 0,0,-22,0,0,0,0,-182,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-144,0,-7,0,0,0,0,0, - -57,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-21, - -81,0,0,0,0,0,0,0,0,-61, + 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,-22,-23,0,0,0, - -8,0,0,0,0,0,0,0,0,0, - -15,0,0,0,0,0,0,0,0,0, - 0,0,-3,0,0,0,0,0,0,0, - -167,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,-155,0,-144, + -165,-5,0,0,0,0,0,0,-23,-24, + 0,-25,-88,0,-6,0,0,0,0,0, + 0,0,0,0,0,0,-90,0,0,0, + 0,0,0,0,0,0,-85,0,0,0, + 0,0,0,0,0,0,0,0,0,-26, + 0,0,-27,-74,0,-28,0,-29,0,0, + 0,0,0,0,0,0,0,0,-77,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-127,0,0,0,0,0,0,0, - -24,0,0,0,0,0,0,0,0,0, - 0,-25,0,0,-48,0,0,0,0,0, - 0,0,-26,0,0,0,-27,-96,-140,0, + -203,0,0,0,0,0,0,-75,0,0, 0,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, - -201,0,0,0,0,0,0,0,-73,0, + -57,0,0,0,0,0,0,-93,0,0, + 0,0,0,0,0,-168,0,-9,0,0, + 0,0,0,0,0,-120,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,-94,-76,-127,0,0, 0,0,0,0,0,0,0,0,0,0, - -43,0,0,0,0,0,0,0,-63,0, + 0,0,0,0,0,0,0,0,0,-140, + 0,0,0,0,0,0,-97,0,0,0, + 0,0,0,0,0,0,0,0,0,-98, + 0,0,-30,0,0,0,0,0,0,-95, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-64,0, - 0,0,0,0,0,0,-74,0,0,0, - 0,0,0,0,0,0,0,0,-65,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,0,-66,0, - 0,0,0,0,0,0,-75,0,0,0, - 0,0,0,0,0,0,0,0,-67,0, + 0,0,-63,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,-68,0, - 0,0,0,0,0,0,-76,0,0,0, - 0,0,0,0,0,0,0,0,-69,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,-70,0, - 0,0,0,0,0,0,-95,0,0,0, - 0,0,0,0,0,0,0,0,-71,0, + 0,0,-65,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,-72,0, - 0,0,0,0,0,0,-124,0,0,0, - 0,0,0,0,0,0,0,0,-160,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,0,0,0,-161,0, - 0,0,0,0,0,0,-142,0,0,0, - 0,0,0,0,0,0,0,0,-184,0, + 0,0,-67,0,0,0,0,0,0,-170, 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,-39,0,0,0,0, - 0,0,0,0,0,0,-16,0,0,0, - 0,0,0,-52,0,0,0,0,0,0, - 0,-28,0,-204,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,-208,0,0,0,0,0,0,0, - -40,0,0,0,0,0,0,0,0,0, - 0,-29,-77,-93,-94,-155,0,0,-53,0, - 0,0,0,0,0,0,-97,0,-218,0, + 0,0,-69,0,0,0,0,0,0,-192, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-134,0,0, - 0,0,0,0,0,-82,0,0,0,0, - 0,0,0,0,0,0,-143,-122,-88,0, - -98,0,0,-159,0,-58,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-165, - 0,0,0,0,0,-187,0,0,0,0, - 0,-85,-164,0,0,0,0,0,0,0, - 0,0,0,0,0,-99,0,0,0,0, - 0,0,0,-172,0,0,0,0,0,0, - 0,0,-171,-92,0,0,0,0,-90,0, - 0,0,0,0,0,0,-117,0,0,0, - 0,0,0,-119,0,0,0,0,0,0, - -199,0,0,-37,-195,0,0,0,0,0, - 0,0,0,-54,0,0,0,0,0,0, - 0,-217,0,0,0,0,-1,-100,0,0, - 0,0,0,0,0,-121,-101,0,0,0, + 0,0,-70,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-102,-185,0,0,0,0,0,0, - 0,0,0,0,0,-139,0,-169,0,-147, - -176,0,-55,0,0,0,0,0,0,0, - -129,0,0,0,0,0,0,0,0,-175, - 0,0,-83,-44,0,0,0,0,0,0, - 0,0,0,-56,0,0,0,0,0,0, + 0,0,-71,0,0,0,0,0,0,-217, + 0,0,0,0,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,-161,0,0,0,0,0,0,-99, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-162,0,0,0,0,0,0,-186, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-185,0,0,0,0,0,0,-100, + 0,0,0,0,0,0,0,0,0,0, + 0,-200,0,0,0,0,0,0,-101,0, + 0,0,0,0,0,0,0,0,0,0, + -7,0,0,0,0,0,0,-48,0,0, + 0,0,0,0,-102,0,0,0,-206,0, 0,0,0,0,0,0,0,0,0,0, - -162,-188,-189,-202,0,0,0,0,0,-49, 0,0,0,0,0,0,0,-210,0,0, - -41,0,0,0,0,0,0,0,0,0, - -50,0,0,0,0,0,0,0,-211,0, - 0,-51,0,0,0,0,0,0,0,0, - 0,0,-86,-80,0,0,0,0,0,0, - 0,0,-126,-192,-131,-183,-132,0,-166,-89, - 0,0,0,0,0,0,0,0,0,-103, - -104,0,0,0,-91,0,0,0,0,-137, - 0,-190,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,0,-49,0,0,0,0,0,0, + -224,0,0,0,-220,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-123,0,0,0,0,0,0,-148,0, - 0,0,0,0,0,-163,0,0,0,0, - 0,0,0,-219,-136,-149,-151,-154,-180,0, - 0,-200,0,0,0,0,0,-10,0,0, - 0,0,0,0,-11,0,0,0,0,0, - 0,-12,0,0,0,0,0,0,0,-105, - 0,0,0,0,0,0,0,-13,0,0, - 0,0,0,0,-14,0,0,0,0,0, - 0,-17,-31,-157,-213,0,-106,-215,-107,0, - 0,0,-32,-33,-168,-207,-203,-108,-42,-109, + 0,0,0,-134,0,0,0,0,0,0, + -84,0,0,0,0,0,0,0,0,0, + 0,0,-143,-213,-81,-184,-177,-82,0,0, + -58,0,0,0,0,0,0,-176,0,0, + 0,0,0,0,-15,0,0,0,0,0, + 0,-125,0,-92,-195,0,-166,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,-119,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-197,0, + 0,0,0,0,0,0,0,-173,0,-96, + 0,0,0,0,0,-219,-103,-104,0,0, + 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,-34,-125,0, + 0,0,-16,0,0,0,0,0,0,-83, + -121,-105,0,0,0,0,0,0,0,-167, + -129,-126,-131,-1,-106,0,-86,0,0,0, + 0,0,0,0,0,0,-107,-108,0,0, + 0,0,0,0,0,0,0,0,-132,0, + 0,0,0,0,0,0,0,0,-136,0, + 0,0,0,-109,0,0,0,-50,0,0, + 0,0,0,0,-110,0,0,0,-51,0, + 0,0,0,0,0,-181,0,0,0,-52, + 0,0,0,0,0,0,-89,0,0,-53, + 0,0,0,0,0,0,-80,0,0,0, + -111,-37,-91,0,0,-112,-202,-141,0,0, + 0,0,0,-139,-113,-114,0,-115,-147,0, + 0,0,0,-116,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-45,0,0,0,0,0,0,0, - 0,0,0,-194,0,-196,0,0,0,-46, - 0,0,0,0,0,0,-47,0,0,0, - 0,0,0,-138,-197,0,0,-205,-150,-110, - 0,0,-212,0,-152,0,0,-170,0,-111, - 0,-112,0,-174,-113,0,0,0,0,0, - 0,0,-191,-214,0,0,0,-114,-206,0, - 0,0,0,-115,0,0,0,-153,-146,-59, - 0,-179,-116,-128,0,-130,0,0,-118,0, - 0,0,-133,0,0,0,0,0,0,-216, - 0,-145,0,0,0,0,0,-177,0,0, - 0,0,0,0,0,0,0,0,-158,0, - -178,0,0,-182,0,-209,-220,0,0,0, - 0,0,0,0,0,0,0,0,0,-173, + -163,0,0,0,0,-128,0,0,0,0, + -43,0,0,0,0,0,0,-130,0,0, + 0,0,-133,-145,0,-44,0,0,0,0, + 0,0,-158,0,-123,0,0,0,0,0, + 0,-148,0,0,0,0,0,0,-164,0, + 0,0,0,0,0,0,-221,-149,-151,-154, + -157,-42,0,-178,0,0,0,0,0,0, + -10,0,0,0,0,0,0,-11,0,0, + 0,0,0,0,-12,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -13,0,0,0,0,0,0,-14,0,0, + 0,0,0,0,-17,-179,-31,-169,-188,-209, + -194,0,-187,0,0,0,-32,0,-33,-183, + -41,-190,-196,0,-205,0,0,0,0,0, + 0,0,-34,0,0,0,0,0,0,0, + 0,0,0,0,-218,0,0,0,0,0, + 0,0,-122,0,0,0,0,-211,-216,0, + 0,-223,0,0,0,0,-201,0,-45,0, + 0,0,0,0,0,0,0,0,0,-138, + 0,0,-46,0,0,0,0,0,0,-47, + 0,0,0,0,0,0,0,0,0,-150, + -198,-152,0,0,0,0,0,0,0,-191, + -204,-171,0,0,0,-59,0,-175,0,0, + -193,0,0,0,0,-208,0,0,0,0, + 0,0,0,0,0,0,-199,0,0,0, + 0,-146,0,-118,0,0,0,0,0,0, + 0,0,0,0,-153,-214,-215,0,0,0, + 0,-180,0,0,0,0,-222,0,0,0, + 0,0,0,0,-137,0,0,0,0,0, + 0,-159,0,0,0,0,0,0,0,0, + 0,0,-160,0,0,0,-189,0,0,0, + 0,0,-174,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,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; @@ -229,192 +230,194 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 85,8,21,21,20,20,30,30,70,70, + 86,7,21,21,20,20,29,29,71,71, 1,1,1,1,2,2,2,3,3,4, - 4,4,4,4,4,4,4,54,54,71, - 71,5,5,5,5,5,5,5,5,5, - 5,5,6,7,7,7,7,9,9,9, + 4,4,4,4,4,4,4,54,54,72, + 72,5,5,5,5,5,5,5,5,5, + 5,5,6,8,8,8,8,9,9,9, 10,10,10,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,96,31,29,86,86, - 73,73,44,97,97,97,97,97,97,97, - 98,98,98,99,99,104,104,105,105,100, - 100,101,101,101,107,107,102,102,102,102, - 103,103,103,103,103,106,106,22,22,22, - 22,22,33,33,33,79,79,74,74,74, - 74,75,75,75,76,76,76,77,77,77, - 78,78,78,108,108,109,109,110,34,36, + 19,19,19,19,19,98,31,30,87,87, + 74,74,44,99,99,99,99,99,99,99, + 100,100,100,101,101,106,106,107,107,102, + 102,103,103,103,109,109,104,104,104,104, + 105,105,105,105,105,108,108,22,22,22, + 22,22,33,33,33,80,80,75,75,75, + 75,76,76,76,77,77,77,78,78,78, + 79,79,79,110,110,111,111,112,34,36, 36,36,36,36,55,57,57,57,57,57, - 57,57,57,57,57,57,57,67,67,32, - 32,64,64,64,64,65,65,65,58,58, - 59,59,51,51,51,27,87,87,80,81, - 81,81,66,66,82,82,83,83,68,68, + 57,57,57,57,57,57,57,68,68,32, + 32,65,65,65,65,66,66,66,58,58, + 59,59,51,51,51,27,88,88,81,82, + 82,82,67,67,83,83,84,84,69,69, 23,24,24,24,35,50,50,37,37,37, - 37,40,40,42,38,38,39,43,43,111, - 111,41,112,112,88,88,28,28,28,28, - 28,28,28,28,28,84,52,52,52,52, - 61,61,60,60,60,62,62,53,53,89, - 89,49,49,63,63,63,45,45,45,46, - 47,47,47,48,48,48,48,56,56,72, - 72,72,72,69,90,91,91,92,92,93, - 93,113,113,114,114,115,115,115,115,117, - 117,116,116,116,118,118,85,85,1,1, - 1,5,5,5,5,5,5,23,23,25, - 25,26,26,94,94,94,97,119,119,119, - 119,119,119,119,102,102,102,102,102,102, - 102,102,102,102,102,102,102,102,102,102, - 102,102,102,102,102,102,102,102,120,120, - 1,14,19,15,416,1132,43,515,314,514, - 626,600,701,627,723,712,1092,727,73,90, - 105,38,182,133,210,317,318,784,14,19, - 15,416,315,135,132,134,158,752,14,19, - 15,416,42,43,515,238,514,626,600,701, - 627,723,712,1700,1734,137,67,164,816,14, - 19,15,416,313,141,144,147,150,251,210, - 317,318,1739,381,1373,1222,1453,1470,1485,1254, - 688,14,19,15,416,1132,43,515,513,514, - 626,600,701,627,723,712,1092,727,73,277, - 688,14,19,15,416,1132,43,515,513,514, - 626,600,701,627,723,712,1092,727,73,277, - 595,752,14,19,15,416,42,39,752,14, - 19,15,416,1132,43,515,279,514,626,600, - 701,627,723,712,1092,727,73,91,270,280, - 528,528,1136,516,243,307,279,216,1210,218, - 1469,220,221,226,525,265,1176,601,268,280, - 1133,16,1688,480,14,19,15,416,1132,43, - 515,513,514,626,600,701,627,723,712,1092, - 727,73,277,394,14,19,15,416,1132,43, - 515,1188,514,626,600,701,627,723,712,1092, - 727,73,1316,340,236,848,14,19,15,416, - 311,752,14,19,15,416,42,43,515,281, - 514,626,600,701,627,1618,133,210,317,318, - 72,514,282,1774,1334,285,135,132,134,158, - 752,14,19,15,416,42,43,515,319,514, - 626,600,701,627,723,1702,140,357,137,271, - 164,880,14,19,15,416,40,141,144,147, - 150,752,14,19,15,416,33,1373,1222,1453, - 1470,1485,1254,752,14,19,15,416,1132,43, - 515,105,514,626,600,701,627,723,712,1092, - 727,73,90,912,14,19,15,416,1132,43, - 515,1684,514,626,600,701,627,723,712,1092, - 727,73,1346,605,14,19,15,416,42,43, - 515,71,514,626,600,701,627,723,712,1092, - 727,92,126,480,325,752,14,19,15,416, - 42,43,515,228,514,1236,381,287,598,437, - 14,19,15,416,1132,43,515,1350,514,626, - 600,701,627,723,712,1092,727,73,1401,20, - 237,720,14,19,15,416,1132,43,515,528, - 514,626,600,701,627,723,712,1092,727,73, - 277,752,14,19,15,416,1132,43,515,1705, - 514,626,600,701,627,723,712,1092,727,73, - 84,752,14,19,15,416,42,43,1147,752, - 14,19,15,416,1132,43,515,283,514,626, - 600,701,627,723,712,1092,727,73,83,752, - 14,19,15,416,1132,43,515,528,514,626, - 600,701,627,723,712,1092,727,73,82,752, - 14,19,15,416,1132,43,515,1718,514,626, - 600,701,627,723,712,1092,727,73,81,752, - 14,19,15,416,1132,43,515,528,514,626, - 600,701,627,723,712,1092,727,73,80,752, - 14,19,15,416,1132,43,515,1724,514,626, - 600,701,627,723,712,1092,727,73,79,752, - 14,19,15,416,1132,43,515,528,514,626, - 600,701,627,723,712,1092,727,73,78,752, - 14,19,15,416,1132,43,515,1733,514,626, - 600,701,627,723,712,1092,727,73,77,752, - 14,19,15,416,1132,43,515,528,514,626, - 600,701,627,723,712,1092,727,73,76,752, - 14,19,15,416,1132,43,515,21,514,626, - 600,701,627,723,712,1092,727,73,75,752, - 14,19,15,416,1132,43,515,528,514,626, - 600,701,627,723,712,1092,727,73,74,752, - 14,19,15,416,1132,43,515,269,514,626, - 600,701,627,723,712,1092,727,73,1402,752, - 14,19,15,416,1132,43,515,528,514,626, - 600,701,627,723,712,1092,727,73,1403,752, - 14,19,15,416,42,43,515,275,514,626, - 600,701,627,723,712,1092,727,92,752,14, - 19,15,416,42,43,515,353,514,626,600, - 701,627,723,712,1092,727,92,752,14,19, - 15,416,32,1404,752,14,19,15,416,42, - 43,515,51,1480,752,14,19,15,416,42, - 43,515,209,514,626,600,701,627,723,712, - 1092,727,92,752,14,19,15,416,42,43, - 515,353,514,626,600,701,627,723,712,1092, - 727,92,887,531,944,981,495,23,1605,752, - 14,19,15,416,42,43,515,426,1481,752, - 14,19,15,416,42,43,515,200,514,626, - 600,701,627,723,712,1092,727,92,752,14, - 19,15,416,42,43,515,57,514,626,600, - 701,627,723,712,1092,727,72,471,124,239, - 1549,538,22,201,295,661,752,14,19,15, - 416,42,43,515,272,514,626,600,701,1620, - 1006,250,210,317,318,270,352,251,210,317, - 318,1736,993,427,215,1210,218,1469,220,221, - 226,1713,263,1176,601,268,344,259,225,251, - 210,317,318,273,529,133,210,317,318,405, - 260,270,1285,1005,340,143,132,134,158,296, - 215,1210,218,1469,220,221,226,6,263,1176, - 601,268,729,1492,68,440,257,133,210,317, - 318,726,1490,182,431,366,987,136,132,134, - 158,1743,380,1439,752,14,19,15,416,42, - 43,515,366,514,626,600,1580,648,513,138, - 1439,164,270,1758,193,653,598,515,142,145, - 148,151,215,1210,218,1469,220,221,226,263, - 1176,601,268,638,982,1776,86,238,306,215, - 1210,218,1469,220,221,226,598,262,528,207, - 598,640,1776,752,14,19,15,416,42,43, - 515,6,514,626,1607,196,198,240,276,1689, - 1005,323,1616,512,752,14,19,15,416,42, - 43,1191,197,198,752,14,19,15,416,42, - 43,515,368,514,626,1609,133,210,317,318, - 181,598,598,598,598,1685,140,132,134,158, - 752,14,19,15,416,42,43,515,80,514, - 1308,680,239,241,242,287,1439,286,139,653, - 164,752,14,19,15,416,42,43,515,105, - 514,1317,752,14,19,15,416,42,43,515, - 88,514,1333,1030,474,215,1210,218,1469,220, - 221,226,1639,681,681,6,726,6,1492,945, - 1042,1729,1719,1695,273,1728,133,210,317,318, - 602,642,270,274,228,1073,146,132,134,158, - 124,1544,528,133,210,317,318,224,288,263, - 1176,601,268,149,132,134,158,947,133,210, - 317,318,222,250,210,317,318,987,152,132, - 134,158,562,14,19,15,416,42,35,562, - 14,19,15,416,42,35,562,14,19,15, - 416,42,35,243,308,181,6,6,6,1005, - 324,1194,640,1769,1698,1704,1732,244,752,14, - 19,15,416,42,38,752,14,19,15,416, - 42,37,752,14,19,15,416,42,36,26, - 612,216,1210,218,1469,220,221,226,752,14, - 19,15,416,42,35,752,14,19,15,416, - 42,34,6,6,6,598,1693,129,528,186, - 360,360,460,6,6,793,957,726,656,6, - 390,360,360,573,195,195,289,653,227,1284, - 1284,86,86,511,511,195,195,1187,6,643, - 1284,1284,86,86,511,511,360,573,86,290, - 728,510,759,752,14,19,15,416,42,46, - 195,1187,827,867,1005,1284,1005,86,256,511, - 752,14,19,15,416,42,45,752,14,19, - 15,416,42,44,124,1005,192,907,495,55, - 162,1739,255,1005,184,112,183,573,169,1027, - 149,1752,337,573,283,763,573,250,210,317, - 318,195,573,643,1005,202,1244,195,789,698, - 195,573,1244,203,790,1244,195,573,445,285, - 6,1244,445,794,795,1187,821,573,653,637, - 190,1187,1714,822,278,405,190,1253,1790,190, - 486,1187,200,1370,1790,190,1664,1790,17,86, - 1758,1690,1666,1790,1758,480,255,270,999,124, - 231,863,255,1027,400,1752,526,644,1859,1608, - 1859,1752,255,1859,265,1176,601,268,1859,1348, - 226,1752,250,210,317,318,206,1859,573,1859, - 206,1859,1859,1859,1859,1859,1859,1750,1859,1859, - 1351,1771,195,1859,1552,1771,1859,1244,1859,1859, - 1859,1859,1859,1859,1859,1859,1859,1859,1859,1859, - 1216,1859,1859,1859,1859,1859,1859,1859,1859,1859, - 1859,191,1859,0,320,693,0,17,178,0, - 18,177,0,1,2082,0,1,2093,0 + 37,40,40,42,38,38,39,43,43,113, + 113,41,114,114,89,89,28,28,28,28, + 28,28,28,28,28,85,52,52,52,52, + 61,61,60,60,60,62,62,53,53,90, + 90,49,49,63,63,63,45,45,45,46, + 47,47,47,48,48,48,48,56,56,56, + 64,91,73,73,73,73,70,92,93,93, + 94,94,95,95,115,115,116,116,117,117, + 117,117,119,119,118,118,118,120,120,86, + 86,1,1,1,5,5,5,5,5,5, + 23,23,25,25,26,26,96,96,96,99, + 121,121,121,121,121,121,121,104,104,104, + 104,104,104,104,104,104,104,104,104,104, + 104,104,104,104,104,104,104,104,104,104, + 104,122,122,1,14,19,15,394,638,43, + 296,432,395,533,433,590,589,630,592,636, + 633,73,90,558,693,196,133,210,320,321, + 649,1224,353,466,1115,172,135,132,134,158, + 753,14,19,15,394,42,43,692,432,395, + 533,433,590,589,630,592,1451,1496,137,241, + 164,215,1257,218,1360,220,221,226,141,144, + 147,150,139,6,960,1744,182,393,1350,617, + 1367,1437,1453,1254,654,14,19,15,394,638, + 43,518,432,395,533,433,590,589,630,592, + 636,633,73,277,720,14,19,15,394,638, + 43,518,432,395,533,433,590,589,630,592, + 636,633,73,277,753,14,19,15,394,42, + 43,23,432,395,533,433,590,589,630,1456, + 282,753,14,19,15,394,42,43,1523,432, + 395,533,433,1352,283,296,296,578,369,241, + 282,753,14,19,15,394,42,43,1523,432, + 395,533,1365,24,283,16,1465,1659,467,14, + 19,15,394,638,43,518,432,395,533,433, + 590,589,630,592,636,633,73,277,396,14, + 19,15,394,638,43,1653,432,395,533,433, + 590,589,630,592,636,633,73,1351,908,236, + 341,991,786,14,19,15,394,318,1721,168, + 229,22,239,310,284,819,14,19,15,394, + 316,273,1523,133,210,320,321,367,285,270, + 1620,1060,288,135,132,134,158,1009,215,1257, + 218,1360,220,221,226,1508,263,1228,1225,268, + 559,960,1426,454,296,137,402,164,1026,1513, + 133,210,320,321,840,141,144,147,150,231, + 143,132,134,158,1466,1350,617,1367,1437,1453, + 1254,687,14,19,15,394,638,43,296,432, + 395,533,433,590,589,630,592,636,633,73, + 277,753,14,19,15,394,638,43,1468,432, + 395,533,433,590,589,630,592,636,633,73, + 90,753,14,19,15,394,42,43,951,432, + 395,533,433,590,589,1378,558,286,753,14, + 19,15,394,42,39,1523,918,14,19,15, + 394,638,43,1680,432,395,533,433,590,589, + 630,592,636,633,73,1464,971,296,586,14, + 19,15,394,42,43,393,432,395,533,433, + 590,589,630,592,636,633,92,1474,1255,328, + 431,14,19,15,394,638,43,253,432,395, + 533,433,590,589,630,592,636,633,73,1491, + 522,237,1469,753,14,19,15,394,638,43, + 296,432,395,533,433,590,589,630,592,636, + 633,73,91,753,14,19,15,394,638,43, + 21,432,395,533,433,590,589,630,592,636, + 633,73,84,753,14,19,15,394,638,43, + 296,432,395,533,433,590,589,630,592,636, + 633,73,83,753,14,19,15,394,638,43, + 269,432,395,533,433,590,589,630,592,636, + 633,73,82,753,14,19,15,394,638,43, + 296,432,395,533,433,590,589,630,592,636, + 633,73,81,753,14,19,15,394,638,43, + 275,432,395,533,433,590,589,630,592,636, + 633,73,80,753,14,19,15,394,638,43, + 296,432,395,533,433,590,589,630,592,636, + 633,73,79,753,14,19,15,394,638,43, + 276,432,395,533,433,590,589,630,592,636, + 633,73,78,753,14,19,15,394,638,43, + 296,432,395,533,433,590,589,630,592,636, + 633,73,77,753,14,19,15,394,638,43, + 222,432,395,533,433,590,589,630,592,636, + 633,73,76,753,14,19,15,394,638,43, + 296,432,395,533,433,590,589,630,592,636, + 633,73,75,753,14,19,15,394,638,43, + 227,432,395,533,433,590,589,630,592,636, + 633,73,74,753,14,19,15,394,638,43, + 298,432,395,533,433,590,589,630,592,636, + 633,73,1622,753,14,19,15,394,638,43, + 569,432,395,533,433,590,589,630,592,636, + 633,73,1710,753,14,19,15,394,42,43, + 314,432,395,533,433,590,589,630,592,636, + 633,92,753,14,19,15,394,42,43,407, + 432,395,533,433,590,589,630,592,636,633, + 92,852,14,19,15,394,314,1711,753,14, + 19,15,394,42,43,503,432,395,1040,753, + 14,19,15,394,42,43,209,432,395,533, + 433,590,589,630,592,636,633,92,753,14, + 19,15,394,42,43,289,432,395,533,433, + 590,589,630,592,636,633,92,885,14,19, + 15,394,40,1757,753,14,19,15,394,42, + 43,58,432,395,1080,753,14,19,15,394, + 42,43,200,432,395,533,433,590,589,630, + 592,636,633,92,753,14,19,15,394,42, + 43,343,432,395,533,433,590,589,630,592, + 636,633,72,83,558,259,527,909,115,201, + 716,753,14,19,15,394,42,43,692,432, + 395,533,433,590,1404,753,14,19,15,394, + 33,270,892,271,341,140,272,639,291,580, + 215,1257,218,1360,220,221,226,181,263,1228, + 1225,268,278,259,1223,25,1547,133,210,320, + 321,1737,444,270,69,225,260,136,132,134, + 158,1775,216,1257,218,1360,220,221,226,127, + 265,1228,1225,268,1744,255,1224,322,125,138, + 604,164,880,257,1514,1299,127,174,345,142, + 145,148,151,1224,753,14,19,15,394,42, + 43,20,432,395,533,1377,215,1257,218,1360, + 220,221,226,753,14,19,15,394,32,1658, + 501,604,557,215,1257,218,1360,220,221,226, + 286,25,660,25,621,339,1658,1022,1700,1742, + 1702,681,238,133,210,320,321,373,626,193, + 196,198,274,140,132,134,158,1610,224,25, + 133,210,320,321,86,309,1755,197,198,183, + 146,132,134,158,763,139,1782,164,753,14, + 19,15,394,42,43,659,432,395,1099,753, + 14,19,15,394,42,43,692,432,395,1125, + 753,14,19,15,394,42,43,1054,432,1317, + 753,14,19,15,394,42,43,1047,432,1318, + 392,441,254,1067,1252,26,632,909,240,383, + 133,210,320,321,604,620,672,273,738,604, + 149,132,134,158,771,270,133,210,320,321, + 270,251,210,320,321,240,152,132,134,158, + 326,604,263,1228,1225,268,804,263,1228,1225, + 268,753,14,19,15,394,42,43,837,777, + 840,1756,239,870,478,262,753,14,19,15, + 394,42,43,903,790,551,14,19,15,394, + 42,35,551,14,19,15,394,42,35,551, + 14,19,15,394,42,35,243,473,25,25, + 25,25,25,327,728,1712,1718,1762,1613,681, + 244,753,14,19,15,394,42,38,753,14, + 19,15,394,42,37,753,14,19,15,394, + 42,36,86,1310,216,1257,218,1360,220,221, + 226,753,14,19,15,394,42,35,753,14, + 19,15,394,42,34,25,928,25,764,25, + 520,660,363,692,363,580,464,25,1726,25, + 758,524,604,692,363,527,363,195,681,195, + 1223,228,1452,25,1452,86,515,86,515,195, + 363,195,279,241,1452,998,1452,86,515,86, + 515,88,184,126,370,195,516,293,661,908, + 1452,256,419,86,515,231,634,527,668,753, + 14,19,15,394,42,46,250,210,320,321, + 126,192,747,753,14,19,15,394,42,45, + 753,14,19,15,394,42,44,1872,1872,1554, + 56,692,113,250,210,320,321,580,800,580, + 604,604,170,1767,1458,1872,25,1872,284,580, + 1872,892,195,681,195,580,51,1308,580,1308, + 183,242,290,580,195,1872,207,692,770,1308, + 195,1458,731,1223,500,1308,86,1415,1223,580, + 1872,190,1872,190,1872,513,692,604,407,1803, + 1238,1803,513,190,1223,1033,202,692,1872,190, + 1623,1803,270,1255,255,126,1701,1803,292,255, + 1872,880,126,1514,1872,203,1000,1554,1514,265, + 1228,1225,268,297,1554,255,1181,354,250,210, + 320,321,920,227,1514,250,210,320,321,1872, + 580,1872,1872,1872,1872,1645,251,210,320,321, + 251,210,320,321,206,195,1872,1872,1872,1872, + 1308,206,1872,1872,1872,1872,1793,1872,1227,1606, + 1872,1872,1872,1797,1872,1457,1606,1872,1872,1872, + 1872,1872,1872,1872,191,1872,0,323,748,0, + 17,178,0,18,177,0,1,2095,0,1, + 2106,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -425,123 +428,128 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermCheck { public final static byte termCheck[] = {0, 0,1,2,3,4,0,6,7,8,9, - 10,11,12,13,14,15,0,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,0,38,39, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,0,0,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, - 0,51,52,53,0,1,0,3,2,5, - 6,7,8,9,10,11,0,0,2,15, - 0,0,16,6,7,8,9,10,11,0, - 1,2,16,17,18,69,32,33,34,35, - 36,54,38,39,40,41,42,43,44,45, - 46,47,48,49,0,51,52,53,4,55, - 56,0,1,0,3,0,5,6,7,8, - 9,10,11,0,74,0,15,61,0,6, - 7,8,9,10,11,64,65,66,67,0, - 70,71,76,32,33,34,35,36,0,38, - 39,40,41,42,43,44,45,46,47,48, - 49,0,51,52,53,0,55,56,0,1, - 0,3,0,5,6,7,8,9,10,11, - 0,0,1,15,3,0,6,7,8,9, - 10,11,64,65,66,67,57,58,73,0, - 32,33,34,35,36,0,38,39,40,41, - 42,43,44,45,46,47,48,49,37,51, - 52,53,74,55,56,0,1,0,3,68, - 5,6,7,8,9,10,11,0,0,1, - 15,3,0,6,7,8,9,10,11,64, - 65,66,67,54,12,13,0,32,33,34, - 35,36,0,38,39,40,41,42,43,44, - 45,46,47,48,49,37,51,52,53,0, - 55,56,0,1,0,3,0,5,6,7, - 8,9,10,11,0,0,1,15,3,72, - 6,7,8,9,10,11,0,0,1,2, - 4,4,0,0,32,33,34,35,36,0, + 0,1,52,53,54,0,1,0,3,0, + 5,6,7,8,9,10,11,0,0,64, + 65,66,67,18,6,7,8,9,10,11, + 57,58,0,1,2,0,4,0,33,34, + 35,36,37,38,39,40,41,42,43,44, + 45,46,47,48,49,23,51,52,53,54, + 60,56,0,1,0,3,2,5,6,7, + 8,9,10,11,0,0,0,1,2,5, + 18,6,7,8,9,10,11,23,0,0, + 1,2,4,4,0,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,37,51,52,53,0,55,56,0, - 1,0,3,0,60,6,7,8,9,10, - 11,0,0,1,15,3,0,6,7,8, - 9,10,11,77,78,0,1,2,62,63, - 14,32,33,34,35,36,0,38,39,40, - 41,42,43,44,45,46,47,48,49,0, - 51,52,53,0,1,2,3,4,5,0, - 57,58,89,14,0,12,13,14,15,73, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,0,0,1,2,4, - 0,5,2,68,4,0,0,1,2,3, - 4,5,16,0,0,1,16,3,12,13, - 14,15,59,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,69,0, - 0,1,2,0,4,2,50,0,5,0, - 1,2,3,4,5,0,16,62,63,16, - 5,12,13,14,0,59,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,0,0,0,0,0,37,6,7,8, - 9,10,11,50,0,0,15,0,0,16, - 0,16,5,5,55,50,0,0,0,54, - 16,4,0,32,33,34,35,36,54,38, - 39,40,41,42,43,44,45,46,47,48, - 49,0,1,2,3,4,5,37,0,57, - 58,57,58,12,13,14,61,50,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,68,0,1,2,0,4,62, - 63,0,5,75,0,1,2,3,4,5, - 16,0,0,12,13,0,12,13,14,0, - 59,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,0,0,2,0, - 4,0,0,0,1,0,4,0,1,2, - 3,4,16,12,13,0,59,0,0,12, - 13,14,0,59,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,0, - 0,70,71,0,5,5,0,0,1,2, - 3,4,0,54,57,58,0,0,1,12, - 13,14,60,56,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,0, - 1,2,3,4,37,0,1,72,3,50, - 50,12,13,14,0,0,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,0,1,2,3,4,37,60,0,1, - 0,3,0,12,13,14,0,0,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,0,1,2,3,4,0,0, - 0,0,0,0,0,12,13,14,0,37, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,0,1,2,3,4, - 0,0,0,0,0,37,37,12,13,14, - 37,37,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,0,1,2, - 3,4,60,0,0,0,0,37,37,12, - 13,14,0,0,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,0, - 1,2,3,4,0,0,0,0,0,0, - 0,12,13,14,0,0,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,0,1,2,3,4,54,0,0,0, - 0,0,0,12,13,14,0,0,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,0,0,2,2,4,5,6, - 7,8,9,10,11,69,0,0,15,16, - 16,5,0,0,0,79,80,81,82,83, - 84,85,86,87,88,32,33,34,35,36, - 0,0,2,0,4,5,6,7,8,9, - 10,11,0,50,0,15,16,16,6,7, - 8,9,10,11,0,0,0,15,0,5, - 54,0,32,33,34,35,36,0,0,0, - 0,16,0,0,32,33,34,35,36,0, - 50,75,0,0,0,6,7,8,9,10, - 11,0,61,0,15,0,0,6,7,8, - 9,10,11,0,0,0,15,0,0,55, - 0,32,33,34,35,36,0,0,0,0, - 0,0,0,32,33,34,35,36,6,7, - 8,9,10,11,0,0,0,15,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,32,33,34,35,36,0, + 48,49,23,51,52,53,54,0,56,0, + 1,0,3,0,5,6,7,8,9,10, + 11,14,0,12,13,12,13,18,6,7, + 8,9,10,11,68,0,1,0,3,75, + 62,63,33,34,35,36,37,38,39,40, + 41,42,43,44,45,46,47,48,49,24, + 51,52,53,54,0,56,0,1,0,3, + 0,5,6,7,8,9,10,11,0,0, + 0,1,0,3,18,6,7,8,9,10, + 11,0,0,0,24,2,4,4,0,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,23,51,52,53, + 54,23,56,0,1,0,3,2,5,6, + 7,8,9,10,11,0,0,0,70,71, + 5,18,6,7,8,9,10,11,23,0, + 1,73,3,0,62,63,33,34,35,36, + 37,38,39,40,41,42,43,44,45,46, + 47,48,49,24,51,52,53,54,0,56, + 0,1,0,3,0,50,6,7,8,9, + 10,11,0,0,57,58,12,13,18,6, + 7,8,9,10,11,23,0,1,0,3, + 57,58,0,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 24,23,52,53,54,0,1,2,3,4, + 5,0,64,65,66,67,0,12,13,14, + 15,16,17,18,19,20,21,22,0,1, + 25,26,27,28,29,30,31,32,0,61, + 0,1,2,3,4,5,64,65,66,67, + 0,89,12,13,14,15,16,17,18,19, + 20,21,22,0,59,25,26,27,28,29, + 30,31,32,57,58,0,0,1,2,3, + 4,5,0,1,2,74,4,0,12,13, + 14,15,16,17,0,19,20,21,22,59, + 24,25,26,27,28,29,30,31,32,0, + 0,2,0,4,0,0,6,7,8,9, + 10,11,0,1,74,3,0,51,18,0, + 55,0,23,0,5,4,0,1,5,3, + 77,78,55,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 0,1,2,3,4,5,0,0,0,57, + 58,4,12,13,14,15,16,17,0,19, + 20,21,22,50,55,25,26,27,28,29, + 30,31,32,62,63,0,1,2,3,4, + 5,23,0,1,75,3,0,12,13,14, + 15,16,17,0,19,20,21,22,5,59, + 25,26,27,28,29,30,31,32,0,0, + 0,1,2,3,4,0,70,71,0,61, + 72,0,12,13,14,15,16,17,0,19, + 20,21,22,24,59,25,26,27,28,29, + 30,31,32,0,1,2,3,4,0,0, + 0,23,59,0,5,12,13,14,15,16, + 17,0,19,20,21,22,56,24,25,26, + 27,28,29,30,31,32,0,1,2,3, + 4,0,0,1,2,24,5,72,12,13, + 14,15,16,17,73,19,20,21,22,50, + 24,25,26,27,28,29,30,31,32,0, + 1,2,3,4,0,0,68,0,68,5, + 0,12,13,14,15,16,17,0,19,20, + 21,22,51,24,25,26,27,28,29,30, + 31,32,0,1,2,3,4,0,0,0, + 0,24,0,0,12,13,14,15,16,17, + 0,19,20,21,22,51,14,25,26,27, + 28,29,30,31,32,0,1,2,3,4, + 60,0,0,0,24,0,69,12,13,14, + 15,16,17,0,19,20,21,22,0,0, + 25,26,27,28,29,30,31,32,0,1, + 2,3,4,60,0,0,69,24,0,0, + 12,13,14,15,16,17,0,19,20,21, + 22,0,0,25,26,27,28,29,30,31, + 32,0,1,2,3,4,0,0,0,0, + 24,0,0,12,13,14,15,16,17,0, + 19,20,21,22,0,0,25,26,27,28, + 29,30,31,32,0,1,2,3,4,0, + 0,0,0,24,0,4,12,13,14,15, + 16,17,0,19,20,21,22,0,0,25, + 26,27,28,29,30,31,32,0,1,2, + 3,4,0,0,0,0,24,0,0,12, + 13,14,15,16,17,0,19,20,21,22, + 0,0,25,26,27,28,29,30,31,32, + 0,60,2,0,4,5,6,7,8,9, + 10,11,55,55,0,0,0,0,18,0, + 0,0,2,23,4,5,6,7,8,9, + 10,11,55,33,34,35,36,37,18,0, + 0,1,2,23,0,5,0,0,0,0, + 50,0,5,33,34,35,36,37,0,0, + 0,0,0,23,6,7,8,9,10,11, + 50,0,0,0,0,0,18,6,7,8, + 9,10,11,0,0,0,0,0,0,18, + 50,33,34,35,36,37,0,50,2,0, + 0,5,55,0,33,34,35,36,37,6, + 7,8,9,10,11,0,0,0,0,23, + 0,18,6,7,8,9,10,11,0,0, + 0,0,0,0,18,0,33,34,35,36, + 37,0,0,0,69,0,50,0,0,33, + 34,35,36,37,79,80,81,82,83,84, + 85,86,87,88,0,0,2,0,0,0, + 0,0,0,0,0,0,0,0,0,15, + 16,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,0,0,0, + 0,0,0,0,0,61,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,0,0,0,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; @@ -549,117 +557,126 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 1859,1134,1602,1135,1588,1,2070,2071,2072,2180, - 524,2181,1572,1565,1595,2020,208,1077,641,631, - 1869,1870,1871,1872,1558,481,2167,2168,2169,575, - 418,387,2021,2019,2073,2022,2018,87,2025,2030, - 2029,2027,2028,2026,2031,2032,2024,2033,2034,2035, - 69,1259,1189,382,1859,1,266,1,1463,189, - 1,1,1,1,1,1,31,246,1421,1, - 61,58,553,1,1,1,1,1,1,1, - 2082,1418,1619,1883,1884,1058,1,1,1,1, - 1,488,1,1,1,1,1,1,1,1, - 1,1,1,1,1859,1,1,1,1274,189, - 2053,1859,1,1859,1,1859,189,1,1,1, - 1,1,1,1859,610,67,1,1121,60,2070, - 2071,2072,2180,524,2181,1442,1431,1410,715,53, - 1384,1353,1066,1,1,1,1,1,70,1, + 1872,708,1605,746,1591,58,2083,2084,2085,2196, + 1211,2197,1575,1568,1598,1343,1245,1167,2033,1882, + 1883,1884,1885,53,1,1561,718,2183,2184,2185, + 1111,595,582,2034,2032,2086,2035,2031,2038,2043, + 2042,2040,2041,2039,2044,2045,2037,2046,2047,2048, + 1,1869,607,593,385,1872,1,281,1,1872, + 189,1,1,1,1,1,1,1872,246,1419, + 1408,1174,1118,1,1,1,1,1,1,1, + 1430,1440,258,2095,581,1872,1,1872,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,558,189,1,1,1, + 2126,2066,1872,1,266,1,1362,189,1,1, + 1,1,1,1,1,1872,1,2095,384,1881, + 1,2083,2084,2085,2196,1211,2197,558,47,264, + 2095,581,1690,1399,1872,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1859,1,1,1,1859,189,2053,1859,1, - 1859,1,1859,189,1,1,1,1,1,1, - 247,1859,2038,1,2039,59,1,1,1,1, - 1,1,1442,1431,1410,715,1084,1139,581,252, - 1,1,1,1,1,1859,1,1,1,1, - 1,1,1,1,1,1,1,1,1361,1, - 1,1,610,189,2053,1859,1,65,1,1168, - 188,1,1,1,1,1,1,245,1859,2038, - 1,2039,50,2070,2071,2072,2180,524,2181,1442, - 1431,1410,715,1615,1374,791,1859,1,1,1, - 1,1,1859,1,1,1,1,1,1,1, - 1,1,1,1,1,1465,1,1,1,1859, - 188,2053,1859,1,1,1,71,189,1,1, - 1,1,1,1,248,1859,2038,1,2039,1196, - 2070,2071,2072,2180,524,2181,47,1859,2082,1418, - 1677,1545,1859,1859,1,1,1,1,1,1859, + 1,1,558,189,1,1,1,63,2066,1872, + 1,50,1,52,189,1,1,1,1,1, + 1,501,247,1516,1501,1516,1501,1,1,1, + 1,1,1,1,1148,1872,2051,1872,2052,1880, + 1683,1669,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1361, + 189,1,1,1,1872,2066,1872,1,61,1, + 1872,188,1,1,1,1,1,1,67,245, + 1872,1901,1872,1902,1,2083,2084,2085,2196,1211, + 2197,1872,49,261,1275,1447,1690,1,267,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1467,1,1,1,68,189,2053,1859, - 2037,1859,2036,57,2113,2070,2071,2072,2180,524, - 2181,249,1859,1888,2020,1889,63,2070,2071,2072, - 2180,524,2181,397,1730,1,2082,1418,1670,1653, - 1294,2021,2019,2073,2022,2018,1859,2025,2030,2029, - 2027,2028,2026,2031,2032,2024,2033,2034,2035,64, - 1259,1189,382,1,1876,1602,1877,1522,1862,1859, - 1084,1139,1843,1294,1859,1572,1565,1595,673,581, - 1077,641,631,1869,1870,1871,1872,1558,481,2167, - 2168,2169,575,418,387,49,1,1853,1223,1677, - 261,1864,1454,1113,1,1859,1859,1876,1602,1877, - 1536,1862,553,1859,205,2038,553,2039,1572,1565, - 1595,1019,1861,1077,641,631,1869,1870,1871,1872, - 1558,481,2167,2168,2169,575,418,387,751,1859, - 258,2082,1223,1,1,1454,1863,1859,1864,1, - 1876,1602,1877,1588,27,1859,553,1670,1653,553, - 1864,1572,1565,1595,28,1861,1077,641,631,1869, - 1870,1871,1872,1558,481,2167,2168,2169,575,418, - 387,127,56,267,55,1859,1604,2070,2071,2072, - 2180,524,2181,1863,320,199,2020,1859,1,553, - 1859,1039,1864,1868,27,1863,1859,48,1859,1777, - 1844,1677,1859,2021,2019,2073,2022,2018,533,2025, - 2030,2029,2027,2028,2026,2031,2032,2024,2033,2034, - 2035,1859,1876,1602,1877,1588,1862,1267,1859,1084, - 1139,1084,1139,1572,1565,1595,1466,1863,1077,641, - 631,1869,1870,1871,1872,1558,481,2167,2168,2169, - 575,418,387,1149,264,2082,1223,1859,1545,1670, - 1653,52,1862,1867,1859,1876,1602,1877,1529,1862, - 553,62,1859,1374,791,1859,1572,1565,1595,1859, - 1861,1077,641,631,1869,1870,1871,1872,1558,481, - 2167,2168,2169,575,418,387,264,54,1454,28, - 1545,51,1,1859,2094,1859,1274,1859,1,1, - 1,1,553,1374,791,66,1861,1859,1859,1, - 1,1,1859,1861,1,1,1,1,1,1, + 1,1,1,1,1,1,558,188,1,1, + 1,558,2066,1872,1,219,1,1611,189,1, + 1,1,1,1,1,1872,248,57,1324,521, + 1877,1,2083,2084,2085,2196,1211,2197,558,1872, + 2051,701,2052,56,1683,1669,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1384,1353,1859,89,1864,1859,1,1876,1602, - 1877,1588,1859,1886,1084,1139,1859,1,1856,1572, - 1565,1595,2113,2166,1077,641,631,1869,1870,1871, - 1872,1558,481,2167,2168,2169,575,418,387,1859, - 1876,1602,1877,1588,1604,1859,2038,1196,2039,89, - 1863,1572,1565,1595,1859,1859,1077,641,631,1869, - 1870,1871,1872,1558,481,2167,2168,2169,575,418, - 387,1859,1876,1602,1877,1588,1604,2113,204,1281, - 1859,1281,316,1572,1565,1595,1859,1859,1077,641, - 631,1869,1870,1871,1872,1558,481,2167,2168,2169, - 575,418,387,1859,1876,1603,1877,1588,314,312, - 1859,1859,1,41,186,1572,1565,1595,1859,1267, - 1077,641,631,1869,1870,1871,1872,1558,481,2167, - 2168,2169,575,418,387,1859,1876,1613,1877,1588, - 185,187,1859,1859,1859,1267,1267,1572,1565,1595, - 1267,1546,1077,641,631,1869,1870,1871,1872,1558, - 481,2167,2168,2169,575,418,387,1859,1876,1614, - 1877,1588,2112,1859,1859,1859,1859,1547,1548,1572, - 1565,1595,204,1859,1077,641,631,1869,1870,1871, - 1872,1558,481,2167,2168,2169,575,418,387,1859, - 1876,1638,1877,1588,1859,1859,42,1859,1859,1859, - 1859,1572,1565,1595,1859,1859,1077,641,631,1869, - 1870,1871,1872,1558,481,2167,2168,2169,575,418, - 387,1,1876,1602,1877,1588,2977,1859,1859,1859, - 1859,1859,1859,1572,1565,1595,1859,1859,1077,641, - 631,1869,1870,1871,1872,1558,481,2167,2168,2169, - 575,418,387,17,219,1847,1464,1847,1847,178, - 178,178,178,178,178,979,1859,1859,178,1847, - 553,1868,1859,1859,1859,959,939,919,899,879, - 839,859,819,799,771,178,178,178,178,178, - 18,284,1850,1859,1850,1850,177,177,177,177, - 177,177,128,1847,1859,177,1850,1094,2070,2071, - 2072,2180,524,2181,1859,217,1859,2020,1859,1866, - 1302,1859,177,177,177,177,177,1859,1859,1859, - 1859,553,1859,1859,2021,2019,2073,2022,2018,129, - 1850,1867,1859,1859,1859,2070,2071,2072,2180,524, - 2181,130,1617,1859,2020,1859,1859,2070,2071,2072, - 2180,524,2181,1859,1859,1859,2020,1859,1859,1865, - 1859,2021,2019,2073,2022,2018,1859,1859,1859,1859, - 1859,1859,131,2021,2019,2073,2022,2018,2070,2071, - 2072,2180,524,2181,1859,1859,1859,2020,1859,1859, - 1859,1859,1859,1859,1859,1859,1859,1859,1859,1859, - 1859,1859,1859,1859,2021,2019,2073,2022,2018 + 1,1,1,1363,189,1,1,1,60,2066, + 1872,2050,323,2049,51,1876,2083,2084,2085,2196, + 1211,2197,1872,249,1430,1440,1516,1501,2033,2083, + 2084,2085,2196,1211,2197,1857,1872,2051,1872,2052, + 1430,1440,59,2034,2032,2086,2035,2031,2038,2043, + 2042,2040,2041,2039,2044,2045,2037,2046,2047,2048, + 1389,1073,607,593,385,1,1889,1605,1890,1525, + 1875,69,1419,1408,1174,1118,55,1575,1568,1598, + 1343,1245,1167,726,1882,1883,1884,1885,1872,2107, + 1561,718,2183,2184,2185,1111,595,582,1872,1226, + 1872,1889,1605,1890,1539,1875,1419,1408,1174,1118, + 70,1856,1575,1568,1598,1343,1245,1167,1053,1882, + 1883,1884,1885,71,1874,1561,718,2183,2184,2185, + 1111,595,582,1430,1440,87,1,1889,1605,1890, + 1591,27,1872,2095,384,484,1399,252,1575,1568, + 1598,1343,1245,1167,1872,1882,1883,1884,1885,1874, + 2959,1561,718,2183,2184,2185,1111,595,582,264, + 127,1447,54,1399,1872,1872,2083,2084,2085,2196, + 1211,2197,205,2051,484,2052,1872,27,2033,1872, + 793,48,558,1,1881,1690,1872,2051,89,2052, + 400,1716,1608,2034,2032,2086,2035,2031,2038,2043, + 2042,2040,2041,2039,2044,2045,2037,2046,2047,2048, + 1872,1889,1605,1890,1591,1875,62,1872,65,1430, + 1440,1284,1575,1568,1598,1343,1245,1167,287,1882, + 1883,1884,1885,89,1316,1561,718,2183,2184,2185, + 1111,595,582,1683,1669,1872,1889,1605,1890,1532, + 1875,1129,204,1667,1880,1667,1872,1575,1568,1598, + 1343,1245,1167,1872,1882,1883,1884,1885,1875,1874, + 1561,718,2183,2184,2185,1111,595,582,1872,319, + 1872,1,1,1,1,66,1324,521,1872,1625, + 1231,68,1,1,1,1,1,1,217,1, + 1,1,1,1275,1874,1,1,1,1,1, + 1,1,1,1,1889,1605,1890,1591,1872,1, + 199,558,1874,1872,1877,1575,1568,1598,1343,1245, + 1167,317,1882,1883,1884,1885,2182,2959,1561,718, + 2183,2184,2185,1111,595,582,1872,1889,1605,1890, + 1591,1872,1,2095,384,1275,1879,1231,1575,1568, + 1598,1343,1245,1167,701,1882,1883,1884,1885,1876, + 2959,1561,718,2183,2184,2185,1111,595,582,1, + 1889,1605,1890,1591,280,1872,1204,208,1185,1551, + 1,1575,1568,1598,1343,1245,1167,315,1882,1883, + 1884,1885,1878,2959,1561,718,2183,2184,2185,1111, + 595,582,1872,1889,1605,1890,1591,1872,1872,1872, + 1872,1275,64,1,1575,1568,1598,1343,1245,1167, + 41,1882,1883,1884,1885,1551,501,1561,718,2183, + 2184,2185,1111,595,582,1872,1889,1607,1890,1591, + 2126,1872,1872,1872,1275,1872,1092,1575,1568,1598, + 1343,1245,1167,186,1882,1883,1884,1885,1872,1872, + 1561,718,2183,2184,2185,1111,595,582,1872,1889, + 1617,1890,1591,2125,1872,1872,661,1548,1872,1872, + 1575,1568,1598,1343,1245,1167,185,1882,1883,1884, + 1885,1872,1872,1561,718,2183,2184,2185,1111,595, + 582,1872,1889,1619,1890,1591,1872,1872,1872,1872, + 1549,1872,1872,1575,1568,1598,1343,1245,1167,187, + 1882,1883,1884,1885,1872,1872,1561,718,2183,2184, + 2185,1111,595,582,1872,1889,1633,1890,1591,1872, + 1872,1,1872,1550,1872,1284,1575,1568,1598,1343, + 1245,1167,1872,1882,1883,1884,1885,28,28,1561, + 718,2183,2184,2185,1111,595,582,1,1889,1605, + 1890,1591,1872,1872,1872,1872,1609,204,1872,1575, + 1568,1598,1343,1245,1167,1872,1882,1883,1884,1885, + 1872,1872,1561,718,2183,2184,2185,1111,595,582, + 17,2126,1860,1872,1860,1860,178,178,178,178, + 178,178,538,1899,1872,1872,1872,1872,178,1872, + 18,1872,1863,1860,1863,1863,177,177,177,177, + 177,177,2827,178,178,178,178,178,177,1872, + 1,1866,581,1863,1872,1877,1872,1872,1872,1872, + 1860,1872,1877,177,177,177,177,177,128,1872, + 1872,1872,1872,558,2083,2084,2085,2196,1211,2197, + 1863,129,1872,1872,1872,42,2033,2083,2084,2085, + 2196,1211,2197,1872,1872,1872,1872,1872,1872,2033, + 1876,2034,2032,2086,2035,2031,1,1876,1447,1872, + 1872,1877,1662,130,2034,2032,2086,2035,2031,2083, + 2084,2085,2196,1211,2197,1872,131,1872,1872,558, + 1872,2033,2083,2084,2085,2196,1211,2197,1872,1872, + 1872,1872,1872,1872,2033,1872,2034,2032,2086,2035, + 2031,1872,1872,1872,1013,1872,1876,1872,1872,2034, + 2032,2086,2035,2031,993,973,953,933,913,873, + 893,853,833,813,31,1872,1621,1872,1872,1872, + 1872,1872,1872,1872,1872,1872,1872,1872,1872,1896, + 1897,1872,1872,1872,1872,1872,1872,1552,1872,1872, + 1872,1872,1872,1872,1872,1872,1872,1872,1872,1872, + 1872,1872,1872,1872,1872,1872,1872,1872,1872,1872, + 1872,1872,1872,1872,1872,1872,1872,1872,1872,1872, + 1872,1872,1872,1872,1872,519,1872,1872,1872,1872, + 1872,1872,1872,1872,1872,1872,1872,1872,1872,1872, + 419 }; }; public final static char termAction[] = TermAction.termAction; @@ -667,28 +684,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 250,1,142,41,142,142,142,142,142,142, - 142,142,142,142,142,142,55,3,459,456, - 463,461,469,467,471,470,473,472,10,142, - 55,55,55,55,240,240,339,55,403,403, - 345,142,142,142,142,142,142,142,142,142, - 142,142,142,142,142,142,142,142,142,142, - 142,142,142,142,142,142,142,142,142,142, - 142,142,240,240,240,240,131,343,133,370, - 238,237,311,48,323,323,129,129,323,129, - 323,75,191,191,240,45,456,456,461,461, - 461,461,459,459,467,463,463,470,469,505, - 472,471,444,444,444,444,107,339,331,136, - 45,98,166,240,412,373,166,484,278,484, - 278,406,484,142,107,331,98,98,45,165, - 133,240,337,75,239,375,45,166,278,278, - 278,278,406,406,408,275,107,98,331,142, - 142,45,166,370,500,499,343,375,240,278, - 308,243,278,278,308,408,507,408,406,308, - 105,510,403,142,274,107,331,45,45,240, - 412,373,337,308,245,308,308,142,403,408, - 109,45,403,142,408,375,480,142,479,161, - 343,308,45,308,240,239,245,142,161,404 + 353,1,85,41,85,85,85,85,85,85, + 85,85,85,85,85,85,197,3,434,431, + 438,436,444,442,446,445,448,447,10,85, + 197,197,197,197,157,157,314,197,416,416, + 487,85,85,85,85,85,85,85,85,85, + 85,85,85,85,85,85,85,85,85,85, + 85,85,85,85,85,85,85,85,85,85, + 85,85,157,157,157,157,74,318,76,383, + 155,154,286,190,298,298,72,72,298,72, + 298,217,108,108,157,45,431,431,436,436, + 436,436,434,434,442,438,438,445,444,480, + 447,446,419,419,419,419,50,314,306,79, + 45,240,161,157,247,386,161,459,320,459, + 320,377,459,85,50,306,240,240,45,160, + 76,157,312,217,156,388,45,161,320,320, + 320,320,377,377,379,187,350,74,240,306, + 85,85,45,161,383,475,474,318,388,157, + 320,350,279,320,320,350,379,482,379,377, + 350,48,485,416,85,186,350,50,306,45, + 45,157,247,386,312,350,281,350,350,85, + 416,379,52,45,416,85,50,388,455,85, + 454,104,318,350,45,379,157,156,281,85, + 104,350,417,379 }; }; public final static char asb[] = Asb.asb; @@ -696,57 +714,57 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 89,0,75,16,2,61,76,17,18,14, + 89,0,75,23,2,61,76,15,16,14, 4,12,13,62,63,57,58,64,65,66, - 67,70,71,72,73,74,77,78,55,69, + 67,70,71,72,73,74,77,78,51,69, 79,80,81,82,83,85,84,86,87,88, - 68,50,89,54,59,5,0,5,68,54, - 59,50,75,16,19,20,21,22,23,2, - 17,18,14,4,12,13,24,25,26,27, - 28,29,30,31,3,1,51,52,53,46, - 38,43,41,42,40,39,44,45,47,48, - 49,36,33,15,32,35,34,6,7,8, - 10,9,11,0,5,55,16,61,17,18, - 14,4,12,13,24,25,19,29,30,31, - 2,20,21,22,23,26,27,28,1,3, - 37,0,59,5,15,6,7,8,9,10, - 11,20,21,22,23,26,27,28,3,17, - 18,14,12,13,24,25,19,29,30,31, - 4,2,1,0,15,59,5,17,18,14, - 4,12,13,24,25,19,29,30,31,2, - 1,3,20,21,22,23,26,27,28,0, - 7,15,36,8,35,34,33,6,32,9, - 10,11,61,76,17,18,14,12,13,62, - 63,57,58,64,65,66,67,70,71,72, - 73,74,77,78,69,79,80,81,82,83, - 84,85,86,87,88,4,2,16,54,50, - 5,0,75,5,4,1,2,68,0,19, - 20,21,22,23,1,3,2,17,18,14, - 4,12,13,24,25,26,27,28,29,30, - 31,56,0,69,16,61,0,32,38,6, - 39,51,33,40,34,41,42,35,7,43, - 44,15,52,36,53,45,46,8,47,48, - 49,1,3,9,10,11,56,55,5,0, - 46,38,43,41,42,40,39,44,45,47, - 48,49,68,75,36,33,15,32,35,34, - 6,7,8,9,10,11,54,1,5,50, - 2,16,4,0,5,50,19,20,21,22, - 23,1,3,2,17,18,14,4,12,13, - 24,25,26,27,28,29,30,31,0,4, - 2,16,50,5,32,38,6,39,51,33, - 40,34,41,42,35,7,43,44,15,52, - 36,53,45,46,8,47,48,49,9,10, - 11,60,3,1,0,1,3,5,55,54, - 0,32,38,6,39,51,33,40,34,41, - 42,35,7,43,44,15,52,36,53,45, - 46,8,47,48,49,1,3,9,10,11, - 60,4,0,69,79,80,81,82,83,84, - 85,86,87,88,37,4,62,63,12,13, - 58,57,64,65,66,67,70,71,14,72, - 73,74,59,50,55,89,77,78,68,75, - 5,54,0,32,6,33,34,35,7,15, - 36,8,1,4,9,10,11,37,2,5, - 54,50,75,16,68,0,5,54,55,69, + 68,50,89,55,59,5,0,5,51,23, + 61,15,16,14,4,12,13,25,26,17, + 30,31,32,2,19,20,21,22,27,28, + 29,1,3,24,0,59,5,18,6,7, + 8,9,10,11,19,20,21,22,27,28, + 29,3,15,16,14,12,13,25,26,17, + 30,31,32,4,2,1,0,7,18,37, + 8,36,35,34,6,33,9,10,11,61, + 76,15,16,14,12,13,62,63,57,58, + 64,65,66,67,70,71,72,73,74,77, + 78,69,79,80,81,82,83,84,85,86, + 87,88,4,2,23,55,50,5,0,18, + 59,5,15,16,14,4,12,13,25,26, + 17,30,31,32,2,1,3,19,20,21, + 22,27,28,29,0,69,23,61,0,5, + 68,55,59,50,75,23,17,19,20,21, + 22,2,15,16,14,4,12,13,25,26, + 27,28,29,30,31,32,3,1,52,53, + 54,46,38,43,41,42,40,39,44,45, + 47,48,49,37,34,18,33,36,35,6, + 7,8,10,9,11,0,33,38,6,39, + 52,34,40,35,41,42,36,7,43,44, + 18,53,37,54,45,46,8,47,48,49, + 1,3,9,10,11,60,4,0,75,5, + 4,1,2,68,0,46,38,43,41,42, + 40,39,44,45,47,48,49,68,75,37, + 34,18,33,36,35,6,7,8,9,10, + 11,55,1,5,50,2,23,4,0,33, + 38,6,39,52,34,40,35,41,42,36, + 7,43,44,18,53,37,54,45,46,8, + 47,48,49,1,3,9,10,11,56,5, + 51,0,17,19,20,21,22,1,3,2, + 15,16,14,4,12,13,25,26,27,28, + 29,30,31,32,56,0,1,3,5,51, + 55,0,4,2,23,50,5,33,38,6, + 39,52,34,40,35,41,42,36,7,43, + 44,18,53,37,54,45,46,8,47,48, + 49,9,10,11,60,3,1,0,69,79, + 80,81,82,83,84,85,86,87,88,24, + 4,62,63,12,13,58,57,64,65,66, + 67,70,71,14,72,73,74,59,50,51, + 89,77,78,68,75,5,55,0,33,6, + 34,35,36,7,18,37,8,1,4,9, + 10,11,24,2,5,55,50,75,23,68, + 0,5,55,51,69,0,5,50,17,19, + 20,21,22,1,3,2,15,16,14,4, + 12,13,25,26,27,28,29,30,31,32, 0 }; }; @@ -755,28 +773,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static byte nasb[] = {0, - 56,8,19,8,19,19,19,19,19,19, - 19,19,19,19,19,19,72,8,8,8, - 8,8,8,8,8,8,8,8,8,19, - 72,72,72,72,70,70,65,1,27,27, - 61,73,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,73,19, - 19,19,19,19,19,19,19,19,19,19, - 19,19,70,70,70,70,8,78,21,64, - 25,25,49,15,50,50,9,9,50,9, - 50,45,8,8,70,23,8,8,8,8, + 67,8,20,8,20,20,20,20,20,20, + 20,20,20,20,20,20,77,8,8,8, + 8,8,8,8,8,8,8,8,8,20, + 77,77,77,77,65,65,71,1,13,13, + 81,78,20,20,20,20,20,20,20,20, + 20,20,20,20,20,20,20,20,78,20, + 20,20,20,20,20,20,20,20,20,20, + 20,20,65,65,65,65,8,48,22,70, + 44,44,54,42,55,55,9,9,55,9, + 55,50,8,8,65,24,8,8,8,8, 8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,86,66,86,18, - 23,31,22,70,76,69,22,8,86,8, - 86,86,8,19,18,86,31,31,23,22, - 11,70,34,2,8,85,23,22,86,80, - 86,80,9,86,29,13,86,31,11,19, - 19,23,22,33,25,25,78,85,70,80, - 43,40,88,80,43,29,8,8,9,43, - 17,8,9,19,59,18,11,23,23,70, - 76,69,35,43,52,43,43,19,9,29, - 19,23,9,19,29,84,41,19,8,52, - 78,43,23,43,70,70,52,19,37,8 + 8,8,8,8,8,8,92,72,92,35, + 24,84,23,65,46,64,23,8,92,8, + 92,92,8,20,18,92,84,84,24,23, + 75,65,29,2,8,91,24,23,92,86, + 92,86,9,92,26,15,92,8,84,75, + 20,20,24,23,28,44,44,48,91,65, + 86,11,61,94,86,11,26,8,8,9, + 11,17,8,9,20,38,11,92,75,24, + 24,65,46,64,30,11,57,11,11,20, + 9,26,19,24,9,20,18,90,62,20, + 8,57,48,11,24,26,65,65,57,20, + 32,11,8,40 }; }; public final static byte nasb[] = Nasb.nasb; @@ -784,16 +803,16 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 4,79,78,77,76,75,74,0,32,0, - 23,0,91,0,94,0,69,8,4,0, - 8,4,21,0,28,0,71,0,54,0, - 61,0,20,8,47,46,40,38,0,8, - 70,0,30,0,64,65,66,67,55,33, - 0,8,40,38,0,8,85,0,93,0, - 8,86,0,20,8,47,46,0,8,20, - 0,27,8,31,0,8,22,52,0,59, - 8,27,0,88,22,8,0,8,27,51, - 0 + 4,80,79,78,77,76,75,0,32,0, + 29,0,72,0,93,0,70,7,64,4, + 0,7,4,21,0,54,0,20,7,47, + 46,40,38,0,4,7,0,95,0,91, + 0,96,0,28,0,7,22,52,0,65, + 66,67,68,55,33,0,7,40,38,0, + 7,71,0,7,20,0,7,86,0,20, + 7,47,46,0,23,0,27,7,31,0, + 7,87,0,61,0,59,7,27,0,89, + 22,7,0,7,27,51,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -802,11 +821,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, 85,2,86,9,87,48,64,76,96,97, - 98,10,11,8,69,1,6,7,68,81, - 82,83,84,12,13,93,94,95,100,101, - 102,44,55,60,63,72,3,47,52,56, + 98,10,11,8,6,7,68,69,81,82, + 83,84,1,3,12,13,93,94,95,100, + 101,102,44,55,60,63,72,47,52,56, 61,62,66,67,74,75,78,79,80,90, - 54,70,73,42,91,107,16,17,89,30, + 91,54,70,73,42,107,16,17,89,30, 4,14,15,18,19,20,21,29,31,22, 23,24,25,26,92,5,27,28,32,33, 34,35,36,37,38,39,40,41,108,45, @@ -819,18 +838,19 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 0,0,0,115,119,120,121,0,122,123, + 0,0,0,115,119,120,0,121,122,123, 124,125,126,127,128,129,130,131,132,111, - 110,136,143,0,0,0,154,163,0,112, + 110,136,143,0,0,0,154,163,112,0, 114,135,142,0,0,0,159,161,0,162, 0,0,0,134,172,173,174,0,117,151, 153,160,169,0,145,150,0,0,152,164, - 167,168,171,146,147,148,149,158,175,113, - 116,118,133,137,138,139,140,141,144,156, - 0,0,157,166,109,0,155,165,170,176, - 177,0,178,179,0,0,0,0,0,0, + 167,168,171,0,146,147,148,149,158,175, + 113,116,118,133,137,138,139,140,141,144, + 156,0,0,157,166,109,0,155,165,170, + 0,176,177,0,178,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,0,0,0,0, + 0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -838,12 +858,12 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 208,118,57,67,125,145,151,188,26,33, - 85,103,157,162,73,6,12,16,38,81, - 50,135,204,226,230,50,50,197,50,1, - 1,1,42,45,90,113,45,234,20,139, - 179,216,131,167,167,167,167,167,93,93, - 93 + 212,120,59,69,129,149,155,26,192,35, + 87,105,161,166,75,6,12,16,40,83, + 52,139,208,230,234,52,52,201,52,1, + 1,1,44,47,92,115,47,238,20,143, + 183,220,135,171,171,171,171,171,95,95, + 95 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -851,12 +871,12 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 31,31,4,4,31,31,31,194,31,10, - 4,10,31,31,78,10,10,10,10,4, - 4,133,10,10,4,54,78,201,63,4, - 4,4,10,48,4,10,116,10,23,142, - 182,219,133,169,171,173,175,177,100,95, - 108 + 127,127,4,4,127,127,127,32,198,10, + 4,10,127,127,80,10,10,10,10,4, + 4,137,10,10,4,56,80,205,65,4, + 4,4,10,50,4,10,118,10,23,146, + 186,223,137,173,175,177,179,181,102,97, + 110 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -864,11 +884,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 4,66,28,28,66,64,64,101,56,48, - 28,43,64,64,28,5,5,5,48,28, - 28,51,5,4,4,28,28,18,28,94, - 93,92,46,63,28,40,50,2,69,51, - 102,4,51,78,77,76,75,74,43,41, + 4,67,28,28,67,65,65,56,103,48, + 28,43,65,65,28,5,5,5,48,28, + 28,51,5,4,4,28,28,18,28,96, + 95,94,46,63,28,40,50,2,70,51, + 104,4,51,79,78,77,76,75,43,41, 43 }; }; @@ -877,11 +897,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 55,55,59,59,55,55,55,95,55,50, - 59,50,55,55,20,50,50,50,50,59, - 59,75,50,50,59,4,20,68,15,59, + 51,51,59,59,51,51,51,51,95,50, + 59,50,51,51,19,50,50,50,50,59, + 59,75,50,50,59,4,19,68,18,59, 59,59,50,2,59,50,1,50,69,1, - 101,50,75,3,51,52,52,46,2,2, + 101,50,75,3,52,53,53,46,2,2, 2 }; }; @@ -890,7 +910,7 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static byte scopeStateSet[] = { - 36,21,25,25,21,21,21,-1,95,29, + 36,21,25,25,21,21,21,95,-1,29, 25,11,21,21,25,36,36,36,29,25, 25,5,36,36,36,25,25,69,25,19, 1,3,29,31,25,11,13,36,96,5, @@ -903,30 +923,30 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 151,16,0,110,0,156,2,31,0,111, - 0,156,2,30,0,156,2,29,0,197, - 115,0,31,150,0,161,179,115,37,0, - 112,0,167,115,2,153,0,167,115,2, - 0,170,2,0,159,115,0,172,0,191, - 115,16,0,9,110,0,126,15,191,115, - 16,0,69,132,110,0,126,191,115,15, - 16,0,191,115,15,16,0,132,110,0, - 126,15,16,0,126,191,115,16,0,126, - 16,0,147,0,2,0,165,111,0,2, - 111,0,167,115,2,147,0,2,0,164, - 111,0,157,2,0,159,0,161,189,115, - 37,139,51,0,161,189,115,37,51,0, - 134,0,113,0,194,115,134,0,115,134, - 0,155,113,0,165,115,37,139,53,0, - 165,115,37,139,52,0,165,115,37,53, - 0,165,115,37,52,0,186,0,149,0, - 148,0,147,0,146,0,145,0,204,94, - 0,77,2,114,111,113,0,204,127,138, - 2,98,0,53,0,0,138,78,124,0, - 29,131,0,156,2,19,0,161,179,115, - 37,127,156,2,0,156,2,0,111,3, - 0,118,0,112,0,193,2,111,0,138, - 16,111,0,138,2,0 + 151,23,0,110,0,156,2,32,0,111, + 0,156,2,31,0,156,2,30,0,199, + 114,0,31,150,0,161,180,114,24,171, + 0,112,0,0,167,114,2,153,0,167, + 114,2,0,170,2,0,159,114,0,172, + 0,192,114,23,0,9,110,0,126,18, + 192,114,23,0,69,132,110,0,126,192, + 114,18,23,0,192,114,18,23,0,132, + 110,0,126,18,23,0,126,192,114,23, + 0,126,23,0,147,0,2,0,165,111, + 0,2,111,0,167,114,2,147,0,2, + 0,164,111,0,157,2,0,159,0,161, + 190,114,24,139,52,0,112,0,161,190, + 114,24,52,0,134,0,113,0,195,114, + 134,0,114,134,0,155,113,0,165,114, + 24,139,54,0,165,114,24,139,53,0, + 165,114,24,54,0,165,114,24,53,0, + 187,0,149,0,148,0,147,0,146,0, + 145,0,206,94,0,77,2,114,111,113, + 0,206,127,138,2,98,0,53,0,0, + 138,78,124,0,29,131,0,156,2,17, + 0,161,180,114,24,127,156,2,0,156, + 2,0,111,3,0,118,0,112,0,194, + 2,111,0,138,23,111,0,138,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -934,16 +954,16 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1334,0,513,0,1704,1790,1698,1695,1689,0, - 1544,480,1302,1418,1285,1223,1187,0,524,0, - 1254,573,360,0,1469,1210,1176,601,480,1739, - 1223,1187,1454,1284,0,1536,1529,1522,610,397, - 1196,581,1384,1353,1294,1139,1084,1442,1431,1410, - 715,1677,1670,1653,1374,791,1077,641,1595,1588, - 1572,1565,1558,481,631,575,418,387,1149,1113, - 1094,1058,1039,1019,999,729,1168,693,673,553, - 979,959,939,919,899,879,859,839,819,799, - 771,360,488,653,751,460,533,440,0 + 1060,0,518,0,1718,1803,1712,1702,1700,0, + 1547,1255,1316,384,1299,581,1223,0,1211,0, + 1254,580,363,0,1360,1257,1228,1225,1255,1744, + 581,1223,1447,1452,0,1539,1532,1525,484,400, + 1231,701,1324,521,501,1440,1430,1419,1408,1174, + 1118,1690,1683,1669,1516,1501,1343,1245,1598,1591, + 1575,1568,1561,718,1167,1111,595,582,1185,1148, + 1129,1092,1073,1053,1033,770,1204,748,726,558, + 1013,993,973,953,933,913,893,873,853,833, + 813,363,793,681,661,464,538,444,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -951,28 +971,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,192,115,180,31,30,29,19,25,24, - 13,12,4,14,18,17,2,111,116,114, - 118,117,120,119,122,121,124,123,112,54, - 2,2,2,2,156,138,134,115,76,61, - 2,16,13,12,63,62,4,67,66,65, + 0,193,114,181,32,31,30,17,26,25, + 13,12,4,14,16,15,2,111,116,115, + 118,117,120,119,122,121,124,123,112,55, + 2,2,2,2,156,138,134,114,76,61, + 2,23,13,12,63,62,4,67,66,65, 64,57,58,14,71,70,73,72,78,77, 74,88,87,86,84,85,83,82,81,80, - 79,69,156,156,156,156,127,115,16,2, - 154,153,181,10,182,183,53,52,184,51, - 185,186,1,3,193,138,114,114,117,117, + 79,69,156,156,156,156,127,114,23,2, + 154,153,182,10,183,184,54,53,185,52, + 186,187,1,3,194,138,115,115,117,117, 117,117,116,116,119,118,118,121,120,138, - 123,122,127,127,127,127,37,159,4,15, - 126,115,4,170,115,2,16,139,37,139, - 37,37,139,68,115,4,115,115,126,191, - 168,167,129,115,169,115,151,4,37,115, - 37,115,115,37,179,115,37,115,168,191, - 15,126,4,2,145,147,115,54,167,115, - 165,134,166,115,165,189,139,190,115,161, - 54,197,61,16,198,115,168,126,126,157, - 115,2,159,165,115,165,161,69,54,189, - 69,151,61,16,179,115,194,68,157,2, - 115,161,151,161,167,195,54,68,159,54 + 123,122,127,127,127,127,24,159,4,18, + 126,114,4,170,114,2,23,139,24,139, + 24,24,139,68,114,4,114,114,126,192, + 168,167,129,114,169,114,151,4,24,114, + 24,114,114,24,180,114,24,171,114,168, + 192,18,126,4,2,145,147,114,55,167, + 114,165,134,166,114,165,190,139,191,114, + 161,55,199,61,23,200,114,24,168,126, + 126,157,114,2,159,165,114,165,161,69, + 55,190,69,151,61,23,114,114,195,68, + 157,2,114,161,151,180,167,196,55,68, + 159,161,55,136 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1182,20 +1203,20 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 220, + NUM_STATES = 224, NT_OFFSET = 107, - LA_STATE_OFFSET = 2218, + LA_STATE_OFFSET = 2234, MAX_LA = 2, - NUM_RULES = 359, - NUM_NONTERMINALS = 120, - NUM_SYMBOLS = 227, + NUM_RULES = 362, + NUM_NONTERMINALS = 122, + NUM_SYMBOLS = 229, SEGMENT_SIZE = 8192, - START_STATE = 1307, + START_STATE = 1364, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, - ACCEPT_ACTION = 1843, - ERROR_ACTION = 1859; + ACCEPT_ACTION = 1856, + ERROR_ACTION = 1872; public final static boolean BACKTRACK = true; diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java index 7ff98639ba5..bcd5881f4ff 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java @@ -15,7 +15,7 @@ package org.eclipse.cdt.internal.core.dom.parser.upc; public interface UPCNoCastExpressionParsersym { public final static int - TK_auto = 32, + TK_auto = 33, TK_break = 90, TK_case = 91, TK_char = 38, @@ -25,26 +25,26 @@ public interface UPCNoCastExpressionParsersym { TK_do = 94, TK_double = 39, TK_else = 95, - TK_enum = 51, - TK_extern = 33, + TK_enum = 52, + TK_extern = 34, TK_float = 40, TK_for = 96, TK_goto = 97, TK_if = 98, - TK_inline = 34, + TK_inline = 35, TK_int = 41, TK_long = 42, - TK_register = 35, + TK_register = 36, TK_restrict = 7, TK_return = 99, TK_short = 43, TK_signed = 44, - TK_sizeof = 19, - TK_static = 15, - TK_struct = 52, + TK_sizeof = 17, + TK_static = 18, + TK_struct = 53, TK_switch = 100, - TK_typedef = 36, - TK_union = 53, + TK_typedef = 37, + TK_union = 54, TK_unsigned = 45, TK_void = 46, TK_volatile = 8, @@ -52,27 +52,27 @@ public interface UPCNoCastExpressionParsersym { TK__Bool = 47, TK__Complex = 48, TK__Imaginary = 49, - TK_integer = 20, - TK_floating = 21, - TK_charconst = 22, - TK_stringlit = 23, + TK_integer = 19, + TK_floating = 20, + TK_charconst = 21, + TK_stringlit = 22, TK_identifier = 1, TK_Completion = 3, TK_EndOfCompletion = 5, TK_Invalid = 102, - TK_LeftBracket = 16, + TK_LeftBracket = 23, TK_LeftParen = 2, - TK_LeftBrace = 37, + TK_LeftBrace = 24, TK_Dot = 61, TK_Arrow = 76, - TK_PlusPlus = 17, - TK_MinusMinus = 18, + TK_PlusPlus = 15, + TK_MinusMinus = 16, TK_And = 14, TK_Star = 4, TK_Plus = 12, TK_Minus = 13, - TK_Tilde = 24, - TK_Bang = 25, + TK_Tilde = 25, + TK_Bang = 26, TK_Slash = 62, TK_Percent = 63, TK_RightShift = 57, @@ -101,21 +101,21 @@ public interface UPCNoCastExpressionParsersym { TK_AndAssign = 86, TK_CaretAssign = 87, TK_OrAssign = 88, - TK_Comma = 54, + TK_Comma = 55, TK_RightBracket = 59, TK_RightParen = 50, - TK_RightBrace = 55, + TK_RightBrace = 51, TK_SemiColon = 75, - TK_MYTHREAD = 26, - TK_THREADS = 27, - TK_UPC_MAX_BLOCKSIZE = 28, + TK_MYTHREAD = 27, + TK_THREADS = 28, + TK_UPC_MAX_BLOCKSIZE = 29, TK_relaxed = 9, TK_shared = 10, TK_strict = 11, TK_upc_barrier = 103, - TK_upc_localsizeof = 29, - TK_upc_blocksizeof = 30, - TK_upc_elemsizeof = 31, + TK_upc_localsizeof = 30, + TK_upc_blocksizeof = 31, + TK_upc_elemsizeof = 32, TK_upc_notify = 104, TK_upc_fence = 105, TK_upc_wait = 106, @@ -139,15 +139,16 @@ public interface UPCNoCastExpressionParsersym { "Plus", "Minus", "And", - "static", - "LeftBracket", "PlusPlus", "MinusMinus", "sizeof", + "static", "integer", "floating", "charconst", "stringlit", + "LeftBracket", + "LeftBrace", "Tilde", "Bang", "MYTHREAD", @@ -161,7 +162,6 @@ public interface UPCNoCastExpressionParsersym { "inline", "register", "typedef", - "LeftBrace", "char", "double", "float", @@ -175,11 +175,11 @@ public interface UPCNoCastExpressionParsersym { "_Complex", "_Imaginary", "RightParen", + "RightBrace", "enum", "struct", "union", "Comma", - "RightBrace", "ERROR_TOKEN", "RightShift", "LeftShift", diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java index 7e0ebad6e12..46ce1b9fe3e 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java @@ -24,6 +24,7 @@ import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; 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.parser.upc.UPCASTNodeFactory; @@ -32,7 +33,6 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; public class UPCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { @@ -176,8 +176,9 @@ private UPCParserAction action; public UPCParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu); + action.setParserOptions(options); } @@ -187,10 +188,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -602,13 +603,13 @@ public UPCParser(String[] mapFrom) { // constructor } // - // Rule 102: labeled_statement ::= case constant_expression : + // Rule 102: labeled_statement ::= case constant_expression : statement // case 102: { action. consumeStatementCase(); break; } // - // Rule 103: labeled_statement ::= default : + // Rule 103: labeled_statement ::= default : statement // case 103: { action. consumeStatementDefault(); break; } @@ -1166,375 +1167,393 @@ public UPCParser(String[] mapFrom) { // constructor } // - // Rule 279: initializer ::= { <openscope-ast> initializer_list comma_opt } + // Rule 279: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 279: { action. consumeInitializerList(); break; } // - // Rule 284: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 280: initializer ::= { <openscope-ast> } + // + case 280: { action. consumeInitializerList(); break; + } + + // + // Rule 281: start_initializer_list ::= $Empty + // + case 281: { action. initializerListStart(); break; + } + + // + // Rule 282: end_initializer_list ::= $Empty + // + case 282: { action. initializerListEnd(); break; + } + + // + // Rule 287: designated_initializer ::= <openscope-ast> designation = initializer // - case 284: { action. consumeInitializerDesignated(); break; + case 287: { action. consumeInitializerDesignated(); break; } // - // Rule 288: designator_base ::= [ constant_expression ] + // Rule 291: designator_base ::= [ constant_expression ] // - case 288: { action. consumeDesignatorArray(); break; + case 291: { action. consumeDesignatorArray(); break; } // - // Rule 289: designator_base ::= . identifier_or_typedefname + // Rule 292: designator_base ::= . identifier_or_typedefname // - case 289: { action. consumeDesignatorField(); break; + case 292: { action. consumeDesignatorField(); break; } // - // Rule 290: designator ::= [ constant_expression ] + // Rule 293: designator ::= [ constant_expression ] // - case 290: { action. consumeDesignatorArray(); break; + case 293: { action. consumeDesignatorArray(); break; } // - // Rule 291: designator ::= . identifier_or_typedefname + // Rule 294: designator ::= . identifier_or_typedefname // - case 291: { action. consumeDesignatorField(); break; + case 294: { action. consumeDesignatorField(); break; } // - // Rule 292: translation_unit ::= external_declaration_list + // Rule 295: translation_unit ::= external_declaration_list // - case 292: { action. consumeTranslationUnit(); break; + case 295: { action. consumeTranslationUnit(); break; } // - // Rule 293: translation_unit ::= $Empty + // Rule 296: translation_unit ::= $Empty // - case 293: { action. consumeTranslationUnit(); break; + case 296: { action. consumeTranslationUnit(); break; } // - // Rule 298: external_declaration ::= ; + // Rule 301: external_declaration ::= ; // - case 298: { action. consumeDeclarationEmpty(); break; + case 301: { action. consumeDeclarationEmpty(); break; } // - // Rule 299: external_declaration ::= ERROR_TOKEN + // Rule 302: external_declaration ::= ERROR_TOKEN // - case 299: { action. consumeDeclarationProblem(); break; + case 302: { action. consumeDeclarationProblem(); break; } // - // Rule 302: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 305: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 302: { action. consumeFunctionDefinition(true); break; + case 305: { action. consumeFunctionDefinition(true); break; } // - // Rule 303: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 306: function_definition ::= <openscope-ast> function_declarator function_body // - case 303: { action. consumeFunctionDefinition(false); break; + case 306: { action. consumeFunctionDefinition(false); break; } // - // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 307: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 304: { action. consumeFunctionDefinitionKnR(); break; + case 307: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 305: function_body ::= { } + // Rule 308: function_body ::= { } // - case 305: { action. consumeStatementCompoundStatement(false); break; + case 308: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 306: function_body ::= { <openscope-ast> block_item_list } + // Rule 309: function_body ::= { <openscope-ast> block_item_list } // - case 306: { action. consumeStatementCompoundStatement(true); break; + case 309: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 307: literal ::= MYTHREAD + // Rule 310: literal ::= MYTHREAD // - case 307: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 310: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 308: literal ::= THREADS + // Rule 311: literal ::= THREADS // - case 308: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 311: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 309: literal ::= UPC_MAX_BLOCKSIZE + // Rule 312: literal ::= UPC_MAX_BLOCKSIZE // - case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 312: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 310: unary_expression ::= upc_localsizeof unary_expression + // Rule 313: unary_expression ::= upc_localsizeof unary_expression // - case 310: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 313: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 311: unary_expression ::= upc_localsizeof ( type_name ) + // Rule 314: unary_expression ::= upc_localsizeof ( type_name ) // - case 311: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 314: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 312: unary_expression ::= upc_blocksizeof unary_expression + // Rule 315: unary_expression ::= upc_blocksizeof unary_expression // - case 312: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 315: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 313: unary_expression ::= upc_blocksizeof ( type_name ) + // Rule 316: unary_expression ::= upc_blocksizeof ( type_name ) // - case 313: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 316: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 314: unary_expression ::= upc_elemsizeof unary_expression + // Rule 317: unary_expression ::= upc_elemsizeof unary_expression // - case 314: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 317: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 315: unary_expression ::= upc_elemsizeof ( type_name ) + // Rule 318: unary_expression ::= upc_elemsizeof ( type_name ) // - case 315: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 318: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 319: shared_type_qualifier ::= shared + // Rule 322: shared_type_qualifier ::= shared // - case 319: { action. consumeToken(); break; + case 322: { action. consumeToken(); break; } // - // Rule 320: reference_type_qualifier ::= relaxed + // Rule 323: reference_type_qualifier ::= relaxed // - case 320: { action. consumeToken(); break; + case 323: { action. consumeToken(); break; } // - // Rule 321: reference_type_qualifier ::= strict + // Rule 324: reference_type_qualifier ::= strict // - case 321: { action. consumeToken(); break; + case 324: { action. consumeToken(); break; } // - // Rule 322: layout_qualifier ::= [ constant_expression ] + // Rule 325: layout_qualifier ::= [ constant_expression ] // - case 322: { action. consumeLayoutQualifier(true, false); break; + case 325: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 323: layout_qualifier ::= [ * ] + // Rule 326: layout_qualifier ::= [ * ] // - case 323: { action. consumeLayoutQualifier(false, true); break; + case 326: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 324: layout_qualifier ::= [ ] + // Rule 327: layout_qualifier ::= [ ] // - case 324: { action. consumeLayoutQualifier(false, false); break; + case 327: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 326: synchronization_statement ::= upc_notify expression ; + // Rule 329: synchronization_statement ::= upc_notify expression ; // - case 326: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 327: synchronization_statement ::= upc_notify ; + // Rule 330: synchronization_statement ::= upc_notify ; // - case 327: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 328: synchronization_statement ::= upc_wait expression ; + // Rule 331: synchronization_statement ::= upc_wait expression ; // - case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 329: synchronization_statement ::= upc_wait ; + // Rule 332: synchronization_statement ::= upc_wait ; // - case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 330: synchronization_statement ::= upc_barrier expression ; + // Rule 333: synchronization_statement ::= upc_barrier expression ; // - case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 331: synchronization_statement ::= upc_barrier ; + // Rule 334: synchronization_statement ::= upc_barrier ; // - case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 332: synchronization_statement ::= upc_fence ; + // Rule 335: synchronization_statement ::= upc_fence ; // - case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 333: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 333: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 336: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 334: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 334: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 337: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 335: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 338: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 339: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 336: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 339: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 337: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 340: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 337: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 340: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 338: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 338: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 341: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 339: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 342: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 339: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 342: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 340: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 343: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 340: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 343: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 341: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 344: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 341: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 344: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 342: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 345: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 342: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 345: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 343: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 346: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 343: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 346: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 344: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 347: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 344: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 347: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 345: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 348: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 345: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 348: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 346: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 346: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 349: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 347: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 350: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 347: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 350: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 348: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 351: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 348: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 351: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 349: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 349: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 352: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 350: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 350: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 353: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 351: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 354: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 355: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 352: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 355: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 353: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 356: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 353: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 356: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 354: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 354: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 357: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 355: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 358: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 355: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 358: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 356: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 359: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 356: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 359: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 358: affinity ::= continue + // Rule 361: affinity ::= continue // - case 358: { action. consumeToken(); break; + case 361: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java index 2bcb9843a89..30a875cef9f 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java @@ -45,7 +45,7 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym 3,1,5,1,3,3,3,3,3,3, 3,3,3,3,3,1,1,2,1,0, 1,3,1,1,1,1,1,1,1,1, - 3,3,2,2,4,1,2,1,1,1, + 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, @@ -62,315 +62,318 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym 4,6,6,3,5,1,1,2,3,4, 1,2,1,3,1,1,3,2,1,1, 1,1,2,1,2,3,1,1,1,3, - 1,2,2,2,3,4,5,1,5,1, - 1,3,3,4,1,1,2,3,2,3, - 2,1,0,1,2,1,1,1,1,1, - 2,4,3,6,2,4,1,1,1,2, - 4,2,4,2,4,1,1,2,1,1, - 1,3,3,2,1,3,2,3,2,3, - 2,2,11,10,10,9,10,9,9,8, - 10,9,9,8,9,8,8,7,10,9, - 9,8,9,8,8,7,1,1,-107,-83, - 0,-2,0,0,0,0,0,0,-19,0, - 0,-22,0,0,0,0,-20,0,-4,0, - 0,-215,0,-39,-276,0,0,0,0,0, - 0,-74,0,0,0,0,0,-24,-8,0, - 0,0,-26,-6,0,0,0,0,0,-29, - 0,0,0,0,0,0,-25,0,-3,0, - -40,0,0,0,0,-11,0,0,0,0, - 0,-41,0,0,0,0,-32,0,0,-43, - 0,0,0,0,0,0,0,0,0,-162, - 0,-17,0,0,0,0,0,-124,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-88,0,0,0,0,0, - -59,0,0,-87,0,0,0,-60,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-241,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -61,0,0,0,-51,0,-12,-141,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-30,-89,0,0,0,-288,0,-27,0, - 0,0,0,0,0,0,0,0,0,-254, - -33,0,0,0,-62,0,-98,0,0,0, - 0,-102,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-14,0,0,0,0, - 0,0,0,0,-106,0,0,0,0,0, - -296,0,-110,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-42,-1,0,0,0,0, - 0,0,0,-146,0,-28,0,0,-214,0, - -80,0,-31,0,0,0,0,0,0,0, - -143,0,0,0,-38,0,0,0,0,0, - -9,-37,0,0,0,0,0,0,0,0, - 0,0,0,-117,0,0,0,-119,0,0, - 0,0,0,0,-152,0,0,0,0,-36, - 0,0,-142,0,0,0,0,0,0,0, - -79,0,0,0,0,0,-5,0,0,-34, - 0,-63,0,0,0,0,0,-150,0,0, - 0,0,0,-64,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-23,0, - -65,0,0,0,0,0,0,0,-45,0, - 0,-70,0,0,0,0,0,0,-66,0, - 0,-173,0,0,0,0,0,0,0,0, - 0,-72,0,-35,-84,0,-67,0,0,0, - 0,0,0,0,0,0,0,0,-68,0, - 0,0,-52,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-75,0,-154,0,0,0,0,0, - 0,0,0,0,0,0,0,-76,0,0, - 0,0,-47,0,-147,-220,0,0,0,0, - 0,0,0,0,0,0,0,-168,0,-144, - 0,0,0,0,0,0,0,-69,0,0, - -71,0,0,0,0,-55,0,-82,0,0, - 0,0,0,0,0,0,0,0,0,0, - -225,0,0,-189,0,0,0,0,0,0, - -95,0,0,0,0,0,0,0,-96,0, - 0,-92,-219,0,0,0,0,0,0,0, - 0,0,0,-94,0,0,-315,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -108,0,0,0,0,0,-240,0,0,0, - 0,0,-257,0,0,0,0,0,0,-104, - 0,-97,0,0,0,0,0,0,0,-118, - 0,0,-163,0,0,0,0,-53,0,0, - -187,0,0,0,0,0,0,0,0,0, - 0,0,-218,0,0,-109,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -221,0,-90,0,0,0,0,-93,-159,0, - 0,0,0,0,0,-227,0,-99,0,0, - 0,0,0,0,0,-239,0,0,0,-155, - 0,0,0,-190,0,0,0,0,0,0, - -101,-100,0,0,0,0,0,0,-228,0, - -103,0,0,0,0,0,0,0,-300,0, - 0,-253,0,0,0,0,-158,0,0,-197, - 0,0,0,0,0,0,0,0,0,0, - 0,-229,0,0,0,0,0,0,0,0, - 0,-105,0,0,-298,-148,0,0,0,-167, - 0,0,-149,-245,0,0,0,0,0,0, - 0,0,0,0,-230,0,-157,0,0,0, - 0,0,0,0,-191,0,0,-161,-164,0, - 0,0,-272,0,0,-224,0,0,0,0, - 0,0,0,0,0,0,0,-231,0,-165, - -192,0,0,0,0,0,0,-166,0,0, - 0,-176,0,0,0,-169,0,0,0,-120, - 0,0,0,0,0,0,0,0,0,0, - -232,0,-180,0,0,0,0,0,0,0, - -193,0,0,-183,-184,0,0,0,-54,0, - 0,-185,0,0,0,0,0,0,0,0, - 0,0,0,-233,0,-198,-194,0,0,0, - 0,0,0,-199,0,0,0,-200,0,0, - 0,-56,0,-81,0,0,0,0,0,0, - 0,0,0,0,0,0,-234,0,-201,-195, - 0,0,0,0,0,0,-202,0,0,0, - -203,0,0,0,-204,0,0,-271,-317,-73, - 0,-170,-196,0,0,0,0,0,0,-235, - 0,0,0,0,0,0,0,0,0,-205, - 0,0,-206,0,0,0,0,-226,0,-171, - -207,0,0,0,0,-208,0,0,0,0, - 0,0,-236,0,0,-216,0,0,0,0, - 0,0,-217,0,0,-209,-222,0,0,0, - -210,0,0,0,0,0,0,-172,0,0, - 0,0,0,0,0,-237,0,0,0,0, - 0,0,0,0,0,-211,0,0,0,-212, - 0,0,0,-111,0,0,-213,0,0,0, - 0,0,0,0,0,0,0,0,-252,0, - -248,-247,0,0,0,0,0,0,-249,0, - 0,0,-258,0,0,0,-121,0,0,-275, - 0,0,0,0,0,0,0,0,0,0, - 0,-265,0,-259,-250,0,0,0,0,0, - 0,-255,0,0,0,-260,0,0,0,-122, + 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,2,4,2,4,2,4,1,1, + 2,1,1,1,3,3,2,1,3,2, + 3,2,3,2,2,11,10,10,9,10, + 9,9,8,10,9,9,8,9,8,8, + 7,10,9,9,8,9,8,8,7,1, + 1,-107,-6,-294,0,0,0,0,0,0, + 0,-8,0,-2,0,-126,0,0,-19,0, + 0,0,0,0,0,-77,0,0,0,0, + 0,0,0,0,-20,0,0,0,0,0, + -30,-4,0,0,0,0,0,-82,0,0, + 0,0,0,0,0,0,0,-3,0,0, + 0,0,0,0,-22,0,-55,0,-299,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -102,0,0,0,0,0,0,0,0,0, + 0,0,0,-24,0,0,0,-17,0,0, + 0,0,0,-135,-33,-74,-26,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-36,0,-11,0, + 0,0,0,0,0,0,0,-279,0,-221, + 0,0,0,0,0,0,0,-32,0,0, + 0,0,0,0,-141,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,0,0,-291,0,-242,0,0,0, + 0,0,0,0,0,0,0,0,-29,0, + 0,-106,0,0,0,0,0,-25,0,0, + 0,0,0,0,0,0,0,-156,0,0, + -88,0,0,0,-27,0,-83,0,-40,0, + 0,0,-315,0,0,-41,0,0,0,0, + 0,0,-39,0,0,0,0,0,0,-28, + 0,0,0,0,0,0,0,-43,0,0, + 0,0,0,0,0,-12,0,0,0,0, + -31,0,0,0,0,0,0,0,0,-80, + 0,-14,0,0,0,0,0,0,0,-59, + 0,-34,0,0,0,0,-42,-78,0,0, + -89,0,0,0,0,0,0,0,0,0, + 0,0,-60,0,0,0,0,-87,0,0, + 0,-84,-35,-143,0,0,0,0,0,0, + 0,-38,0,-151,0,-61,0,0,0,0, + 0,-258,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-79,0,0,0, + 0,0,-181,0,0,0,0,-62,0,0, + 0,0,-63,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -64,0,0,0,-152,-142,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-339,-92,0,0,0,0,0,0, + 0,0,-93,0,0,0,-65,0,0,0, + 0,0,0,-183,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-5,0,0, + 0,0,0,0,0,0,0,0,0,-23, + -37,0,-66,0,0,0,0,0,0,-94, + 0,-85,0,-338,0,0,-45,-70,0,0, 0,0,-261,0,0,0,0,0,0,0, - 0,0,0,0,-269,-244,-262,0,0,0, - 0,0,0,0,-266,0,0,-268,-297,0, - 0,0,-312,0,-290,0,-283,0,0,0, - -267,0,0,0,0,0,0,-270,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-123,0,0,-293,0, - 0,0,0,0,0,0,0,0,0,0, - -292,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-246,0, - 0,0,-140,0,0,0,0,0,0,0, - 0,0,0,-299,-264,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-278,0,0,-280,0,0,0,-282,-289, - 0,0,0,0,0,0,-318,0,0,0, - 0,0,0,0,0,0,0,0,0,-294, - -313,0,0,0,0,0,-44,0,0,0, - 0,0,-274,0,0,0,0,0,0,0, - 0,0,0,-302,0,0,0,0,0,0, - 0,0,0,0,-91,0,0,0,0,0, - -305,0,0,0,-86,0,0,0,0,-308, - -78,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -145,0,-179,0,0,0,-310,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -295,-316,0,0,-311,0,0,0,-251,0, - 0,0,-48,-314,0,0,0,0,0,0, - 0,0,0,0,-138,0,0,0,0,0, - 0,0,0,0,0,0,-320,-325,0,0, - 0,0,-323,0,0,0,0,0,0,0, - -332,0,-160,0,-328,0,0,-263,0,-336, - 0,0,0,0,0,0,0,0,0,0, - -337,0,0,0,0,-330,0,0,-18,0, - -334,0,0,0,0,0,0,0,0,0, - -256,0,0,0,0,-238,0,-340,0,0, - 0,0,0,0,-354,0,0,0,0,0, - 0,-342,-346,0,0,0,0,-156,0,0, - 0,0,0,0,0,0,0,0,-348,-351, - -356,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-16,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-139,0,0,-360,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-21,0,-364,0, - 0,0,0,-301,0,-367,0,0,0,0, - 0,0,0,0,-369,0,-377,0,-188,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-10,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-136, - -153,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-137,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-181,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-284,0,0,0,-49,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-286,0,0,0,-50,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -287,0,0,0,-57,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-319,0, - 0,0,-58,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-324,0,0,0, - 0,-242,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-335,0,0,0,0,-243, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-338,0,0,0,0,-277,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -339,0,0,0,0,-279,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-341,0, - 0,0,0,-281,0,0,0,0,0,0, + 0,0,0,-72,0,-154,0,0,0,0, + 0,0,0,0,0,-101,0,0,0,-67, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-169,0, + -144,0,0,0,0,0,0,0,-68,0, + -108,0,-69,0,0,-75,0,-1,0,0, + 0,0,0,-95,0,0,0,0,0,0, + 0,-227,0,0,-189,0,0,0,0,0, + 0,-109,0,-117,0,0,0,0,-76,0, + 0,0,-174,0,0,0,0,0,0,0, + 0,0,0,0,-146,0,0,0,-104,0, + 0,-147,0,0,0,0,0,0,-168,0, + 0,0,-51,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-220,0,-159,0,0,0,0,0,0, + 0,-222,0,0,0,-96,0,0,-170,-118, + 0,0,0,-97,0,0,-191,0,0,0, + 0,0,0,0,-229,0,0,-99,0,0, + 0,0,0,0,0,0,-298,0,-127,0, + 0,-192,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-230,0,-163, + 0,0,0,0,0,0,0,0,0,-155, + 0,-158,0,0,0,0,0,0,0,0, + 0,-244,0,0,0,0,0,0,0,0, + -231,0,0,-100,0,0,0,0,0,0, + -216,0,0,0,-103,0,0,-47,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-232,0,-257,0,0,0,0, + 0,0,0,-171,0,0,0,-276,0,0, + 0,0,0,0,0,0,0,-317,-193,0, + 0,0,0,0,0,0,-233,0,0,0, + 0,0,0,0,0,0,-172,0,0,0, + -105,0,0,-48,-199,-148,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-234, + 0,-149,-218,0,0,0,0,0,0,-173, + 0,0,0,-52,0,0,-219,0,0,0, + 0,0,0,0,-194,0,0,0,0,0, + 0,0,-235,0,0,-243,0,0,0,0, + 0,0,0,0,-157,0,-53,0,0,-271, + 0,0,0,0,0,0,0,-195,0,0, + 0,0,0,0,0,-236,0,0,-161,0, + 0,0,0,0,0,0,0,-164,0,-54, + 0,0,-312,0,0,0,0,0,0,0, + -196,0,0,0,0,0,0,0,-237,0, + 0,-319,0,0,0,0,0,0,-247,0, + 0,0,-56,0,0,-165,0,0,0,0, + 0,0,-166,-197,0,0,0,0,0,0, + 0,-238,0,0,-314,0,0,0,0,0, + 0,-249,0,0,0,-111,0,0,-337,0, + 0,0,0,0,0,0,-198,0,0,0, + 0,0,0,0,-239,0,0,-167,0,0, + 0,0,0,0,0,0,-226,0,-121,0, + 0,-177,0,0,0,0,0,0,0,-241, + 0,0,0,0,0,0,0,-256,0,-162, + 0,0,0,0,0,0,0,-224,0,-275, + 0,-250,0,0,-182,0,0,0,0,-71, + 0,0,-185,0,0,0,0,0,0,0, + -269,0,0,-186,0,0,0,0,0,0, + -252,0,-187,0,-253,0,0,0,0,0, + 0,-268,0,0,0,-259,0,0,0,0, + 0,0,0,-273,0,0,-200,0,0,0, + 0,0,0,-281,0,0,0,-122,0,0, + -201,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-274,0,0,0, + 0,0,0,0,0,0,-283,0,0,0, + -292,0,0,-285,-296,0,-202,-203,-73,0, + 0,-310,0,0,0,0,0,0,0,-295, + 0,0,-204,0,0,0,0,0,0,-301, + 0,0,0,-205,0,0,-304,-307,0,0, + -309,0,0,0,-313,0,0,0,0,0, + 0,0,-318,0,0,-206,0,0,0,0, + 0,0,-207,0,-297,0,-123,0,0,-7, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-342,-340,0,0,0, + 0,0,0,0,0,-324,0,0,0,-208, + 0,0,-209,0,0,0,0,0,-210,0, + -321,0,0,0,0,0,0,0,-225,-341, + 0,0,0,0,0,0,-44,0,0,0, + -326,0,-223,-153,0,0,-211,0,0,-329, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-212,0,0,0,0,-120,0,0, + 0,-86,0,0,0,-333,0,0,0,0, + 0,0,-331,0,0,0,0,-345,0,0, + 0,0,0,0,0,0,0,0,-90,0, + 0,0,-213,0,0,-180,0,0,0,0, + 0,0,0,0,0,-362,-335,0,0,-214, + -215,0,0,0,0,0,0,0,0,0, + 0,0,0,-359,-347,0,-46,0,0,0, + -254,0,0,0,0,0,-119,0,-251,0, + 0,-262,0,0,0,0,-150,0,0,0, + 0,0,0,0,0,0,-263,-264,0,0, + -160,0,-265,0,-91,0,0,0,-267,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-49,0,0,0,0,0,0,0, + 0,0,-266,-270,0,0,0,0,0,0, + 0,0,0,0,0,-272,0,0,0,0, + -351,0,-112,0,-311,0,0,-240,0,-316, + 0,0,0,0,0,-139,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-16, + 0,0,0,0,0,0,0,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,0,0,0,0,0, + 0,0,-21,0,0,0,0,0,0,0, + -353,0,0,0,0,-245,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-18,0,0,0,0,0,0,-246,0, + 0,0,0,0,0,0,0,-356,0,0, + 0,0,0,-138,0,-136,0,0,0,0, + 0,0,0,0,0,-361,0,0,0,0, + 0,0,0,0,0,0,-366,0,0,0, + 0,0,0,0,0,-370,0,0,-228,0, + 0,0,0,-373,0,0,-10,-176,0,0, + 0,-137,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-255,0, + 0,0,-13,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-287,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -289,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-290,0,0,0, + -15,-375,-383,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-320,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-325,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-336,0,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,0,0,0,0,0,0,0, 0,0,0,0,0,0,-344,0,0,0, - 0,-303,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-345,0,0,0,0,-306, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-347,0,0,0,0,-307,0,0, + 0,0,-346,0,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,0,0,0,0, - -350,0,0,0,0,-309,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-355,0, - 0,0,0,-331,0,0,0,0,0,0, + 0,0,0,0,-350,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-357,0,0,0, - 0,-333,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-358,0,0,0,0,-175, + -352,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-355,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-359,0,0,0,0,-177,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-360,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -361,0,0,0,0,-178,0,0,0,0, + 0,0,0,0,0,0,0,0,-363,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-362,0, - 0,0,0,-285,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-363,0,0,0, + 0,0,0,0,-364,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-365,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,-367,0,0,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,-368,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -368,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-369,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,0,0,0,-371,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-372,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -372,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-373,0,0,0,0,0, + 0,0,0,0,0,0,-374,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-374,0,0,0,0,0,0,0, + 0,0,-377,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-378,0, 0,0,0,0,0,0,0,0,0,0, - -375,0,0,0,0,0,0,-77,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-376,0, - 0,0,0,0,0,-151,0,0,0,0, + 0,0,0,0,-379,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-378,0,0,0, - 0,0,0,0,-182,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-134,0,0,0,0,0, + -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,-291,0, - 0,0,0,0,0,0,0,-135,0,0, + 0,0,0,0,0,0,-381,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -7,-128,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-382,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-125, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-126,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-129,0,0,0,0,0,0, - 0,0,0,0,0,0,-130,0,0,0, - 0,0,0,0,0,0,0,0,0,-131, - 0,0,0,0,0,0,0,0,0,-13, - 0,0,-132,-15,0,0,0,0,0,0, - 0,0,0,0,0,-133,0,0,0,0, - 0,0,0,0,0,-85,0,0,0,0, + 0,0,0,0,0,0,0,0,-384,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,-46,0,0,0,0, + 0,0,0,0,-134,-217,0,0,0,0, + 0,0,0,0,0,0,-278,0,0,0, + 0,0,0,-113,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-127,0,0,0,0, - 0,0,0,0,0,0,0,0,-112,0, - 0,0,-113,0,0,0,-114,0,0,0, - 0,0,0,0,0,0,0,0,-304,0, - 0,0,-115,0,0,0,-116,0,0,0, - 0,0,0,0,0,0,0,-273,0,0, - 0,0,0,0,0,0,0,0,0,-174, - 0,0,0,-223,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-186,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-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,-321,0,0,0,0,0,0,0,-322, - 0,0,0,0,0,0,0,-326,0,0, - 0,0,0,0,0,-327,0,0,0,0, - 0,0,0,0,0,0,0,-329,0,0, - 0,0,0,0,0,0,0,0,0,-343, - 0,0,0,0,0,0,0,-349,0,0, - 0,0,0,0,0,-352,0,0,0,0, - 0,0,0,-353,0,0,0,0,0,0, - 0,0,0,0,0,-370,0,0,0,0, + 0,-128,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-280,0, + 0,0,-129,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,-131,0, + 0,0,0,0,0,0,0,0,0,0, + -132,0,0,0,0,0,0,0,0,0, + 0,0,-133,0,0,0,0,0,0,0, + 0,0,0,0,-124,0,0,0,0,0, + 0,0,0,0,-125,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-190,0, + 0,0,-110,0,0,0,-140,0,0,-114, + 0,0,0,-115,0,0,0,0,0,0, + 0,0,0,0,-188,0,0,0,0,0, + 0,0,0,0,-116,0,0,0,0,0, + -260,0,0,-145,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, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-81,0,0,0,0,0,0,0, + 0,-175,0,0,0,-293,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,0,0,0,-58,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,0,-303,0,0, + 0,0,0,0,0,0,0,0,0,-322, + 0,0,0,0,-323,0,0,0,0,0, + 0,0,0,0,0,0,-327,0,0,0, + 0,0,-328,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-330,0,0, + 0,0,0,0,0,0,0,0,0,-348, + 0,0,0,0,-354,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-357, + 0,0,0,0,-358,0,0,0,0,0, + 0,0,0,0,0,0,-376,0,0,0, + 0,-248,0,0,0,0,0,0,0,0, + 0,-282,0,0,0,0,-284,0,0,0, + 0,-286,0,0,0,0,0,0,0,0, + 0,-302,0,0,0,0,-305,0,0,0, + 0,-306,0,0,0,0,-308,0,0,0, + 0,-332,0,0,0,0,-334,0,0,0, + 0,-178,0,0,0,0,0,0,-179,0, + 0,0,0,-288,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 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; @@ -380,344 +383,348 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface BaseAction { public final static char baseAction[] = { - 106,1,39,39,10,10,43,43,2,2, + 107,1,39,39,10,10,40,40,2,2, 4,4,4,4,5,5,5,6,6,7, - 7,7,7,7,7,7,7,72,72,92, - 92,8,8,8,8,8,8,8,8,8, - 8,8,9,9,11,11,11,11,12,12, - 12,15,15,15,16,16,16,16,16,17, - 17,17,19,19,28,28,29,29,30,30, + 7,7,7,7,7,7,7,73,73,93, + 93,8,8,8,8,8,8,8,8,8, + 8,8,9,9,11,11,11,11,13,13, + 13,15,15,15,16,16,16,16,16,26, + 26,26,27,27,28,28,29,29,30,30, 31,31,32,32,34,34,34,34,34,34, - 34,34,34,34,34,34,20,14,3,107, - 107,94,94,57,21,21,21,21,21,21, - 21,22,22,22,18,18,95,95,73,73, - 23,23,24,24,24,65,65,25,25,25, - 25,26,26,26,26,26,50,50,33,33, - 33,33,33,52,52,52,87,87,82,82, - 82,82,83,83,83,84,84,84,85,85, - 85,86,86,86,96,96,88,88,89,53, + 34,34,34,34,34,34,18,14,3,108, + 108,95,95,57,19,19,19,19,19,19, + 19,20,20,20,17,17,96,96,74,74, + 21,21,22,22,22,65,65,23,23,23, + 23,24,24,24,24,24,50,50,33,33, + 33,33,33,52,52,52,88,88,83,83, + 83,83,84,84,84,85,85,85,86,86, + 86,87,87,87,97,97,89,89,90,53, 55,55,55,55,55,66,68,68,68,68, - 68,68,68,68,68,68,68,68,77,77, - 13,13,74,74,74,74,75,75,75,78, - 78,79,79,69,69,69,45,108,108,97, - 98,98,98,76,76,99,99,100,100,90, - 90,35,36,36,36,54,56,56,46,46, - 46,46,40,40,41,47,47,48,42,42, - 101,101,49,110,110,109,109,51,51,51, - 51,51,51,51,51,51,102,58,58,58, - 58,80,80,70,70,70,71,71,60,60, - 111,111,59,59,81,81,81,61,61,61, + 68,68,68,68,68,68,68,68,78,78, + 12,12,75,75,75,75,76,76,76,79, + 79,80,80,69,69,69,45,109,109,98, + 99,99,99,77,77,100,100,101,101,91, + 91,35,36,36,36,54,56,56,46,46, + 46,46,41,41,42,47,47,48,43,43, + 102,102,49,111,111,110,110,51,51,51, + 51,51,51,51,51,51,103,58,58,58, + 58,81,81,70,70,70,71,71,60,60, + 112,112,59,59,82,82,82,61,61,61, 62,63,63,63,64,64,64,64,67,67, - 93,93,93,93,91,112,113,113,114,114, - 115,115,106,106,116,116,103,103,103,103, - 117,117,104,104,104,105,105,4,4,4, - 8,8,8,8,8,8,35,35,37,37, - 38,38,118,118,118,21,27,27,27,27, - 27,27,27,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,25,25,25, - 25,25,25,25,25,25,25,44,44,359, - 399,561,1814,14,19,15,481,1117,44,363, - 488,565,2117,1597,521,724,712,2270,759,1822, - 1887,126,1977,561,1950,2053,127,741,789,777, - 858,74,2129,91,134,211,316,317,2039,1840, - 710,222,227,2271,1815,1096,216,774,219,221, - 2435,136,133,135,159,305,158,355,861,2265, - 452,1963,710,222,227,138,384,165,216,774, - 219,221,2442,142,145,148,151,2055,1455,398, - 1819,2921,661,1926,3030,3034,1848,223,155,421, - 2598,651,1967,1194,134,211,316,317,2771,377, - 222,230,14,19,15,481,42,44,304,488, - 1216,136,133,135,159,1822,848,331,87,197, - 199,1825,207,595,2253,138,332,165,1966,1100, - 1545,835,1103,142,145,148,151,1459,1059,286, - 301,2921,661,1926,3030,3034,1848,2646,385,303, - 542,14,19,15,481,1117,44,318,488,565, - 404,1885,521,724,712,2771,759,388,2269,14, - 19,15,481,42,39,741,789,777,858,74, - 403,278,1955,1822,848,329,87,2646,385,355, - 1270,14,19,15,481,1117,44,1166,488,565, - 2114,1967,521,724,712,1980,759,430,848,110, - 86,183,2117,1673,280,741,789,777,858,74, - 1092,278,377,222,231,95,392,1041,1162,94, - 96,97,98,99,325,1822,2855,126,281,410, - 1400,2457,385,1841,971,14,19,15,481,1117, - 44,271,488,565,280,104,521,724,712,1641, - 759,266,1034,884,269,1967,1806,419,298,741, - 789,777,858,74,2269,278,355,392,281,2269, - 1591,2354,1818,2303,2798,14,19,15,481,1117, - 44,2336,488,565,271,1815,521,724,712,379, - 759,1982,355,868,264,1034,884,269,282,741, - 789,777,858,74,2196,1030,297,182,2185,848, - 237,89,185,3056,263,2926,134,211,316,317, - 2111,1234,283,1822,382,194,134,211,316,317, - 229,2111,1941,136,133,135,159,1877,419,298, - 2060,229,2112,144,133,135,159,138,2129,165, - 252,211,316,317,1813,142,145,148,151,294, - 296,1096,362,2921,661,1926,3030,3034,1848,2522, - 379,2513,707,14,19,15,481,42,44,2183, - 488,565,355,1533,521,724,712,297,759,2122, - 302,225,1822,359,2180,87,23,741,789,777, - 858,93,355,1671,2445,2572,1446,2094,324,14, - 19,15,481,1117,44,1273,488,565,322,1970, - 521,724,712,2771,759,595,749,14,19,15, - 481,42,38,741,789,777,858,74,207,278, - 295,296,2152,355,718,2821,3174,836,1103,14, - 19,15,481,1117,44,226,488,565,2914,2826, - 521,724,712,2671,759,68,68,14,19,15, - 481,314,157,741,789,777,858,74,2771,1136, - 2164,651,14,19,15,481,1117,44,2110,488, - 565,1948,651,521,724,712,2547,759,355,651, - 14,19,15,481,42,35,741,789,777,858, - 74,2407,91,196,2553,14,19,15,481,1117, - 44,2447,488,565,196,693,521,724,712,2450, - 759,595,2253,2191,123,323,693,1323,1471,741, - 789,777,858,74,2191,1268,1096,2572,300,192, - 238,14,19,15,481,1117,44,1338,488,565, - 191,2055,521,724,712,272,759,2775,651,528, - 850,3189,1194,2111,1465,741,789,777,858,74, - 2771,278,2451,275,14,19,15,481,42,44, - 2196,488,565,355,507,521,724,712,2771,759, - 1753,1967,14,19,15,481,42,37,741,789, - 777,858,93,2771,284,450,2055,14,19,15, - 481,42,44,208,488,565,16,257,521,724, - 712,2932,759,1822,848,327,87,1183,2253,2055, - 122,741,789,777,858,93,2771,1272,2482,228, - 14,19,15,481,1117,44,1967,488,565,560, - 2183,521,724,712,2274,759,252,211,316,317, - 210,2253,2519,111,741,789,777,858,74,2771, - 85,2446,22,14,19,15,481,1117,44,2800, - 488,565,355,547,521,724,712,2547,759,239, - 2183,14,19,15,481,42,35,741,789,777, - 858,74,2771,84,1603,273,14,19,15,481, - 1117,44,2576,488,565,2191,2602,521,724,712, - 2253,759,330,212,2109,848,244,87,289,20, - 741,789,777,858,74,2771,83,1812,115,14, - 19,15,481,1117,44,2055,488,565,1834,1965, - 521,724,712,2547,759,1393,2183,14,19,15, - 481,42,35,741,789,777,858,74,2771,82, - 2599,2055,14,19,15,481,1117,44,73,488, - 565,1414,1845,521,724,712,2253,759,328,1569, - 355,848,245,87,287,241,741,789,777,858, - 74,2771,81,2601,1070,14,19,15,481,1117, - 44,2055,488,565,2015,2846,521,724,712,2771, - 759,1426,2858,14,19,15,481,42,36,741, - 789,777,858,74,2771,80,2195,2055,14,19, - 15,481,1117,44,2256,488,565,1433,1968,521, - 724,712,2771,759,2159,651,14,19,15,481, - 42,34,741,789,777,858,74,2771,79,1976, - 2055,14,19,15,481,1117,44,1900,488,565, - 1447,1958,521,724,712,2360,759,1753,2183,2191, - 2020,651,2253,2055,326,741,789,777,858,74, - 2771,78,291,21,14,19,15,481,1117,44, - 2434,488,565,2438,256,521,724,712,2938,759, - 2253,2440,125,196,1009,1128,2344,240,741,789, - 777,858,74,2771,77,693,2269,14,19,15, - 481,1117,44,2269,488,565,2166,2052,521,724, - 712,2609,759,252,211,316,317,232,2253,191, - 121,741,789,777,858,74,2771,76,634,850, - 14,19,15,481,1117,44,2612,488,565,184, - 2802,521,724,712,2771,759,203,2777,14,19, - 15,481,42,35,741,789,777,858,74,2771, - 75,2606,2055,14,19,15,481,1117,44,2055, - 488,565,2035,2607,521,724,712,2771,759,2063, - 2852,14,19,15,481,42,47,741,789,777, - 858,74,2771,92,2610,2055,14,19,15,481, - 42,44,2055,488,565,2091,2611,521,724,712, - 2771,759,270,2864,14,19,15,481,42,46, - 741,789,777,858,93,2771,2253,2866,2264,14, - 19,15,481,1117,44,2855,488,565,396,2750, - 521,724,712,2856,759,2159,651,2109,848,201, - 87,2269,1701,741,789,777,858,74,2771,1499, - 3380,115,14,19,15,481,1117,44,3380,488, - 565,3380,3380,521,724,712,2771,759,1753,2183, - 14,19,15,481,42,45,741,789,777,858, - 74,2771,1590,3380,204,14,19,15,481,42, - 44,3380,488,565,3380,256,521,724,712,2253, - 759,1467,1677,2092,651,1714,1128,3380,242,741, - 789,777,858,93,2771,2849,3380,193,14,19, - 15,481,42,44,3380,488,565,3380,3380,521, - 724,712,2253,759,2292,2253,196,2320,202,2253, - 2055,2376,741,789,777,858,93,2771,693,3380, - 276,14,19,15,481,42,44,3380,488,565, - 2183,2852,521,724,712,3380,759,217,359,110, - 86,1702,191,1837,3380,741,789,777,858,93, - 1092,639,850,3380,2253,95,3222,1041,108,94, - 96,97,98,99,325,1822,848,124,87,243, - 595,2253,3380,3238,1771,1,359,110,86,1300, - 2253,1955,2404,710,222,227,3380,109,1092,217, - 774,219,221,95,271,1041,108,94,96,97, - 98,99,325,1760,266,1034,884,269,595,3380, - 106,2236,651,288,359,110,86,2253,306,2432, - 3380,710,222,227,3380,109,1092,217,774,219, - 221,95,1635,1041,108,94,96,97,98,99, - 325,2269,2183,3380,196,2055,595,3380,107,145, - 359,110,86,2696,2055,1781,693,14,19,15, - 481,312,1092,109,277,355,848,95,87,1041, - 108,94,96,97,98,99,325,2055,2055,1360, - 191,288,595,2253,279,3270,106,2203,2287,1316, - 850,2055,105,1828,1026,2253,3380,3278,2771,109, - 2269,2399,14,19,15,481,42,44,1709,488, - 565,2183,3380,521,724,712,2253,759,3286,399, - 561,2253,107,117,3380,3380,741,789,777,858, - 73,2439,651,710,222,227,1816,3158,2055,216, - 774,219,221,26,271,2253,274,3306,2427,260, - 290,3380,2055,2055,264,1034,884,269,2920,710, - 222,227,2455,2511,1753,216,774,219,221,2055, - 2055,2055,3380,3380,261,437,710,222,227,2539, - 2595,2679,216,774,219,221,3380,271,2336,560, - 3380,256,437,251,211,316,317,264,1034,884, - 269,1570,1128,2771,258,3380,2055,14,19,15, - 481,42,44,3380,488,565,2707,1422,521,724, - 712,3380,759,134,211,316,317,399,625,2055, - 3380,741,789,1367,2857,848,2055,87,1298,2735, - 137,133,135,159,2119,2055,2763,2055,357,1886, - 1791,3380,3380,3380,139,2791,165,2847,3380,274, - 881,3380,143,146,149,152,2054,710,222,432, - 3380,3380,3380,216,774,219,440,3380,1737,3380, - 2771,2259,651,158,14,19,15,481,42,44, - 3380,488,565,3380,3380,521,724,712,3380,759, - 271,134,211,316,317,3380,3380,3380,741,1331, - 264,1034,884,269,1753,154,421,3380,147,133, - 135,159,3380,384,3380,3380,3380,2771,655,3380, - 1422,14,19,15,481,42,44,662,488,565, - 3380,256,521,724,712,3380,759,473,848,110, - 86,1009,1128,3380,3380,1356,3380,3380,3380,3380, - 1092,3380,3380,3380,3380,95,3380,1041,101,94, - 96,97,98,99,325,516,848,110,86,2721, - 3380,3380,3380,14,19,15,481,310,1092,3380, - 1327,3380,3380,95,3380,1041,118,94,96,97, - 98,99,325,559,848,110,86,2746,3380,3380, - 3380,14,19,15,481,40,1092,3380,3380,3380, - 3380,95,3380,1041,114,94,96,97,98,99, - 325,602,848,110,86,2796,3380,3380,3380,14, - 19,15,481,33,1092,3380,3380,3380,3380,95, - 3380,1041,1463,94,96,97,98,99,325,645, - 848,110,86,2796,3380,3380,3380,14,19,15, - 481,32,1092,3380,3380,3380,3380,95,3380,1041, - 356,94,96,97,98,99,325,688,848,110, - 86,3380,1822,848,2208,87,3380,3380,3380,3380, - 1092,3380,3380,3380,3380,95,1562,1041,348,94, - 96,97,98,99,325,731,848,110,86,3380, - 1822,848,2236,87,3380,3380,3380,3380,1092,3380, - 3380,3380,3380,95,1565,1041,113,94,96,97, - 98,99,325,774,848,110,86,3380,1822,848, - 1894,87,3380,3380,3380,3380,1092,3380,3380,3380, - 3380,95,1614,1041,355,94,96,97,98,99, - 325,817,848,110,86,3380,1822,848,3139,87, - 3380,3380,3380,3380,1092,3380,3380,3380,3380,95, - 1631,1041,354,94,96,97,98,99,325,860, - 848,110,86,3380,1822,848,2348,87,3380,3380, - 3380,3380,1092,3380,3380,3380,3380,95,1640,1041, - 352,94,96,97,98,99,325,903,848,110, - 86,3380,1822,848,3230,87,3380,3380,3380,3380, - 1092,3380,3380,3380,3380,95,1743,1041,347,94, - 96,97,98,99,325,946,848,110,86,3380, - 1822,848,3246,87,3380,3380,3380,3380,1092,3380, - 3380,3380,3380,95,1755,1041,346,94,96,97, - 98,99,325,989,848,110,86,3380,1822,848, - 3258,87,3380,3380,3380,3380,1092,3380,3380,3380, - 3380,95,1776,1041,344,94,96,97,98,99, - 325,1032,848,110,86,3380,2109,848,3380,87, - 3380,3380,3380,3380,1092,3380,3380,3380,3380,95, - 115,1041,340,94,96,97,98,99,325,1075, - 848,110,86,3380,1822,848,3294,87,3380,3380, - 3380,3380,1092,3380,3380,3380,3380,95,1805,1041, - 120,94,96,97,98,99,325,1118,848,110, - 86,3380,2109,848,3380,87,3380,3380,3380,3380, - 1092,1751,3380,3380,3380,95,115,1041,353,94, - 96,97,98,99,325,1161,848,110,86,3380, - 355,848,3380,87,3380,3380,3380,3380,1092,3380, - 3380,3380,3380,95,1382,1041,351,94,96,97, - 98,99,325,1204,848,110,86,3380,355,848, - 3380,87,3380,3380,3380,3380,1092,1831,3380,3380, - 3380,95,1389,1041,350,94,96,97,98,99, - 325,1247,848,110,86,3380,355,848,3380,87, - 3380,3380,3380,3380,1092,3380,3380,3380,3380,95, - 1415,1041,345,94,96,97,98,99,325,1290, - 848,110,86,3380,355,848,3380,87,3380,3380, - 3380,3380,1092,3380,3380,3380,3380,95,1705,1041, - 343,94,96,97,98,99,325,1333,848,110, - 86,3380,3380,3380,3380,3380,3380,3380,3380,3380, - 1092,3380,3380,3380,3380,95,3380,1041,342,94, - 96,97,98,99,325,1376,848,110,86,3380, - 3380,3380,3380,3380,3380,3380,3380,3380,1092,3380, - 3380,3380,3380,95,3380,1041,339,94,96,97, - 98,99,325,1419,848,110,86,3380,3380,3380, - 3380,3380,3380,3380,3380,3380,1092,3380,3380,3380, - 3380,95,3380,1041,338,94,96,97,98,99, - 325,1462,848,110,86,3380,3380,3380,3380,3380, - 3380,3380,3380,3380,1092,3380,3380,3380,3380,95, - 3380,1041,336,94,96,97,98,99,325,1505, - 848,110,86,3380,3380,3380,3380,3380,3380,3380, - 3380,3380,1092,3380,3380,3380,3380,95,3380,1041, - 119,94,96,97,98,99,325,1548,848,110, - 86,3380,3380,3380,3380,3380,3380,3380,3380,3380, - 1092,3380,3380,3380,3380,95,3380,1041,349,94, - 96,97,98,99,325,1591,848,110,86,3380, - 3380,3380,3380,3380,3380,3380,3380,3380,1092,3380, - 3380,3380,3380,95,3380,1041,341,94,96,97, - 98,99,325,1634,848,110,86,3380,3380,3380, - 3380,3380,3380,3380,3380,3380,1092,3380,3380,3380, - 3380,95,3380,1041,337,94,96,97,98,99, - 325,1677,848,110,86,3380,3380,3380,2920,3380, - 3380,3380,3380,3380,1092,3380,3380,3380,3380,95, - 3380,1041,335,94,96,97,98,99,325,1720, - 848,110,86,3380,3380,3380,2920,3380,3380,3380, - 3380,3380,1092,251,211,316,317,95,3380,1041, - 334,94,96,97,98,99,325,1763,848,110, - 86,3380,3380,3380,3380,399,561,3380,3380,3380, - 1092,251,211,316,317,95,3380,1041,333,94, - 96,97,98,99,325,2771,3380,3380,685,14, - 19,15,481,42,44,3380,488,565,3380,3380, - 521,724,712,3380,1306,710,222,227,3380,1977, - 561,216,774,219,221,3380,1001,3380,2771,3380, - 3380,158,14,19,15,481,42,44,3380,488, - 565,2443,2771,521,724,1326,14,19,15,481, - 42,44,3380,488,565,3380,3380,521,1257,710, - 222,227,3380,154,421,216,774,219,221,3380, - 3380,384,3380,3380,3380,1455,134,211,316,317, - 2771,3380,3380,3380,14,19,15,481,42,44, - 3380,488,1224,141,133,135,159,2771,3380,3380, - 3380,14,19,15,481,42,44,140,1228,165, - 3380,3380,3380,3380,2771,3380,198,199,14,19, - 15,481,42,44,3380,488,565,2771,3380,521, - 1261,14,19,15,481,42,44,3380,488,565, - 2771,3380,1265,3380,14,19,15,481,42,44, - 2126,488,565,2771,2198,1290,3380,14,19,15, - 481,42,44,3380,488,565,2771,3380,1293,3380, - 14,19,15,481,42,44,1955,488,565,3380, - 3380,1301,3380,3380,3380,134,211,316,317,134, - 211,316,317,3380,3380,3380,355,359,3380,87, - 3380,3380,150,133,135,159,153,133,135,159, - 986,3380,3380,3380,3380,3380,710,222,1150,3380, - 3380,3380,217,774,219,1129,2771,3380,3380,196, - 14,19,15,481,42,44,3380,1249,3380,355, - 359,603,87,355,359,3380,87,355,359,3380, - 87,3380,3380,986,3380,931,3380,986,3380,2857, - 848,986,87,355,359,3380,87,355,359,2147, - 87,3380,196,357,3380,3380,196,986,2439,651, - 196,986,3380,3380,603,3380,3380,3380,603,3380, - 2109,359,603,87,2920,3380,196,3380,1125,3380, - 196,3380,1151,1738,115,3380,1191,3380,603,2621, - 3380,1753,603,14,19,15,481,42,43,3380, - 3380,3380,1217,595,3380,3380,1250,3380,3380,251, - 211,316,317,3380,3380,3380,1603,3380,256,3380, - 1104,3380,2857,848,3380,87,3380,3380,1570,1128, - 2857,848,2231,87,3380,1529,357,3380,2857,848, - 2259,87,3380,3380,357,3380,2857,848,2315,87, - 3380,3380,357,3380,1298,3380,2343,3380,2857,848, - 357,87,3380,3380,3380,3380,1798,3380,2371,3380, - 2857,848,357,87,1812,3380,1445,3380,2857,848, - 2483,87,1813,3380,357,3380,2857,848,2567,87, - 1829,3380,357,3380,2857,848,2623,87,3380,3380, - 357,3380,1830,3380,2651,3380,2857,848,357,87, - 3380,3380,3380,3380,1866,3380,2819,3380,3380,3380, - 357,3380,1889,3380,3380,3380,3380,3380,3380,3380, - 1896,3380,3380,3380,3380,3380,3380,3380,1905,3380, - 3380,3380,3380,3380,3380,3380,3380,3380,3380,3380, - 1907,3380,0,319,739,0,179,224,0,3387, - 1,0,1,3615,0,7,9,0,179,17, - 0,178,18,0,1,3604,0,112,2175,0 + 67,72,113,94,94,94,94,92,114,115, + 115,116,116,117,117,107,107,118,118,104, + 104,104,104,119,119,105,105,105,106,106, + 4,4,4,8,8,8,8,8,8,35, + 35,37,37,38,38,120,120,120,19,25, + 25,25,25,25,25,25,23,23,23,23, + 23,23,23,23,23,23,23,23,23,23, + 23,23,23,23,23,23,23,23,23,23, + 44,44,359,1901,2063,475,14,19,15,660, + 1245,44,1926,683,1900,738,2907,706,761,363, + 14,19,15,660,42,44,3056,1517,743,833, + 797,909,880,913,74,2356,91,134,211,319, + 320,2041,1908,1893,126,662,222,227,355,694, + 216,693,219,221,136,133,135,159,2351,468, + 1804,251,211,319,320,2203,1637,2633,138,2139, + 165,14,19,15,660,42,35,142,145,148, + 151,572,395,222,231,1580,1860,1987,2013,2091, + 1850,2203,1706,134,211,319,320,1423,303,395, + 222,230,198,199,2125,308,326,765,2053,306, + 136,133,135,159,2907,2053,2215,2521,14,19, + 15,660,42,44,138,683,165,738,1186,706, + 761,104,321,142,145,148,151,2197,3083,384, + 1647,1580,1860,1987,2013,2091,1850,229,2732,429, + 2277,464,14,19,15,660,1245,44,2141,683, + 363,738,1186,706,761,2355,401,1400,223,430, + 899,110,86,668,743,833,797,909,880,913, + 74,1181,278,1830,1302,289,95,876,1382,94, + 96,97,98,99,328,2757,429,2992,694,14, + 19,15,660,1245,44,183,683,207,738,2533, + 706,761,1908,2797,126,283,972,1202,355,1420, + 1278,743,833,797,909,880,913,74,3056,278, + 1771,1908,899,334,87,355,1519,399,475,2049, + 284,208,1047,2543,429,979,2535,14,19,15, + 660,1245,44,2036,683,127,738,257,706,761, + 355,476,283,251,211,319,320,1278,1905,743, + 833,797,909,880,913,74,388,278,662,222, + 227,2389,386,216,693,219,221,284,477,1283, + 2440,588,392,158,14,19,15,660,1245,44, + 1911,683,2146,738,569,706,761,2053,2041,1979, + 285,1908,899,332,87,1278,743,833,797,909, + 880,913,74,2052,1080,1019,155,599,2339,237, + 335,932,2658,2363,2422,286,14,19,15,660, + 1245,44,1901,683,3056,738,1971,706,761,662, + 222,227,2200,225,217,693,219,221,743,833, + 797,909,880,913,74,842,278,2197,1644,134, + 211,319,320,473,899,110,86,229,2066,251, + 211,319,320,2198,226,1181,136,133,135,159, + 95,876,103,94,96,97,98,99,328,157, + 138,1899,165,271,1278,3062,1908,2816,194,142, + 145,148,151,266,1052,1027,269,1580,1860,1987, + 2013,2091,1850,2782,2339,1643,123,14,19,15, + 660,1245,44,2339,683,122,738,2429,706,761, + 252,211,319,320,516,899,110,86,305,743, + 833,797,909,880,913,74,1181,278,1963,418, + 301,95,876,101,94,96,97,98,99,328, + 2608,355,408,2208,14,19,15,660,42,44, + 2277,683,2041,738,386,706,761,2269,355,3007, + 287,402,1210,2197,3096,1278,743,833,797,909, + 880,913,93,275,355,3044,2957,1629,300,327, + 14,19,15,660,1245,44,2339,683,111,738, + 2180,706,761,662,222,1323,325,847,217,693, + 219,1316,743,833,797,909,880,913,74,2907, + 1377,2250,694,14,19,15,660,1245,44,2056, + 683,2141,738,2196,706,761,355,1757,1892,418, + 301,3025,298,299,2536,743,833,797,909,880, + 913,74,2493,91,196,2053,14,19,15,660, + 1245,44,2141,683,2282,738,766,706,761,3050, + 704,402,16,1908,362,1929,87,279,743,833, + 797,909,880,913,74,2355,1410,1309,300,2907, + 192,238,68,14,19,15,660,42,44,2339, + 683,333,738,2907,706,761,572,14,19,15, + 660,42,39,712,1423,743,833,797,909,880, + 913,93,2907,1906,2141,182,14,19,15,660, + 42,44,68,683,228,738,2568,706,761,2339, + 2282,331,297,299,2605,374,1415,2639,743,833, + 797,909,880,913,93,2907,818,23,2683,14, + 19,15,660,1245,44,1217,683,2988,738,2907, + 706,761,2360,14,19,15,660,42,44,210, + 1518,743,833,797,909,880,913,74,2907,85, + 355,1236,14,19,15,660,1245,44,272,683, + 2269,738,2633,706,761,1250,14,19,15,660, + 42,35,355,508,743,833,797,909,880,913, + 74,2907,84,273,2687,14,19,15,660,1245, + 44,2355,683,22,738,2662,706,761,2807,239, + 1335,244,14,19,15,660,317,743,833,797, + 909,880,913,74,2907,83,355,555,14,19, + 15,660,1245,44,2339,683,329,738,2633,706, + 761,185,14,19,15,660,42,35,2277,2141, + 743,833,797,909,880,913,74,2907,82,1752, + 292,14,19,15,660,1245,44,2339,683,125, + 738,2938,706,761,2832,2269,2761,245,14,19, + 15,660,315,743,833,797,909,880,913,74, + 2907,81,212,2355,14,19,15,660,1245,44, + 2339,683,121,738,2907,706,761,2355,14,19, + 15,660,42,38,20,2141,743,833,797,909, + 880,913,74,2907,80,1767,2355,14,19,15, + 660,1245,44,184,683,1898,738,2907,706,761, + 2355,14,19,15,660,42,37,203,2141,743, + 833,797,909,880,913,74,2907,79,1768,1920, + 14,19,15,660,1245,44,280,683,2688,738, + 2907,706,761,2988,14,19,15,660,42,36, + 204,2141,743,833,797,909,880,913,74,2907, + 78,1773,2936,14,19,15,660,1245,44,2339, + 683,3277,738,2907,706,761,2051,14,19,15, + 660,42,34,2691,2141,743,833,797,909,880, + 913,74,2907,77,1803,2355,14,19,15,660, + 1245,44,2339,683,3282,738,2907,706,761,2355, + 14,19,15,660,42,35,1349,2141,743,833, + 797,909,880,913,74,2907,76,21,73,14, + 19,15,660,1245,44,844,683,2269,738,2907, + 706,761,1931,14,19,15,660,42,47,26, + 2053,743,833,797,909,880,913,74,2907,75, + 2684,694,14,19,15,660,1245,44,2138,683, + 2269,738,2141,706,761,2990,241,307,232,290, + 2034,694,2035,2101,743,833,797,909,880,913, + 74,2907,92,572,2982,14,19,15,660,42, + 44,2141,683,2994,738,2141,706,761,2827,240, + 304,2061,2985,196,193,2087,2141,743,833,797, + 909,880,913,93,2907,766,270,2281,14,19, + 15,660,1245,44,2339,683,3292,738,2907,706, + 761,2342,14,19,15,660,42,46,201,191, + 743,833,797,909,880,913,74,2907,1515,525, + 901,14,19,15,660,1245,44,2339,683,3297, + 738,2141,706,761,2339,2269,3307,2054,2062,2106, + 694,276,2141,743,833,797,909,880,913,74, + 2907,1575,1717,1986,14,19,15,660,42,44, + 2339,683,3170,738,2044,706,761,2339,2339,3187, + 3312,2339,196,3317,242,2141,743,833,797,909, + 880,913,93,2907,766,277,2446,14,19,15, + 660,42,44,2520,683,2269,738,2907,706,761, + 2529,14,19,15,660,42,45,202,191,743, + 833,797,909,880,913,93,2907,2269,965,901, + 14,19,15,660,42,44,2339,683,3220,738, + 2524,706,761,2526,243,134,211,319,320,2528, + 1597,2141,743,833,797,909,880,913,93,3056, + 2277,2191,141,133,135,159,291,217,362,110, + 86,2141,294,3068,2345,694,140,2252,165,1181, + 2339,2269,3225,1716,95,876,108,94,96,97, + 98,99,328,2695,251,211,319,320,355,899, + 572,87,1,362,110,86,2141,1771,252,211, + 319,320,1185,2339,1181,3240,2373,109,2141,95, + 876,108,94,96,97,98,99,328,2399,1908, + 899,330,87,2606,256,572,288,362,110,86, + 1979,106,309,1144,1004,1269,2269,2339,1181,117, + 2991,2913,109,95,876,108,94,96,97,98, + 99,328,1464,1672,2339,2141,3257,355,362,572, + 87,145,362,110,86,2425,107,2271,899,2698, + 89,942,2693,1181,1408,293,109,2215,95,876, + 108,94,96,97,98,99,328,3000,3002,1186, + 196,1914,1390,3009,572,1908,899,124,87,2907, + 106,105,3003,14,19,15,660,42,44,1177, + 683,109,738,2857,706,761,911,14,19,15, + 660,313,1741,3011,3001,743,833,797,909,880, + 913,73,662,222,227,107,396,216,693,219, + 221,2141,271,355,362,2599,87,260,1902,3057, + 2811,2477,264,1052,1027,269,2907,942,274,3412, + 14,19,15,660,42,44,3412,683,207,738, + 2422,706,761,261,3412,1357,196,1012,1202,3412, + 2068,3412,743,833,797,909,1721,3412,3003,662, + 222,227,3412,3412,216,693,219,221,3412,271, + 3412,3412,1159,258,518,134,211,319,320,264, + 1052,1027,269,399,667,134,211,319,320,3412, + 3412,2141,137,133,135,159,1908,899,2909,87, + 1456,2503,144,133,135,159,139,3412,165,3412, + 1474,3412,399,475,3412,143,146,149,152,1908, + 899,3272,87,3412,662,222,606,3412,2141,216, + 693,219,628,1507,355,899,2907,87,2555,158, + 14,19,15,660,42,44,2141,683,1720,738, + 3412,706,761,662,222,227,2633,2141,216,693, + 219,221,743,833,797,1663,2141,2659,518,3074, + 3412,3412,154,599,2141,3412,2685,2140,355,899, + 613,87,2907,3412,2711,702,14,19,15,660, + 42,44,1412,683,831,738,3412,706,761,559, + 899,110,86,2212,252,211,319,320,743,833, + 1703,1181,134,211,319,320,95,876,102,94, + 96,97,98,99,328,602,899,110,86,147, + 133,135,159,3412,3412,3412,3412,1181,134,211, + 319,320,95,876,118,94,96,97,98,99, + 328,645,899,110,86,150,133,135,159,3412, + 3412,3412,3412,1181,3412,3412,3412,3412,95,876, + 114,94,96,97,98,99,328,688,899,110, + 86,2284,2141,2141,3412,3412,3412,3412,3412,1181, + 3412,3412,2737,2789,95,876,1825,94,96,97, + 98,99,328,731,899,110,86,3412,3412,3412, + 3412,3412,3412,3412,3412,1181,134,211,319,320, + 95,876,359,94,96,97,98,99,328,774, + 899,110,86,153,133,135,159,3412,3412,3412, + 3412,1181,3412,3412,3412,3412,95,876,351,94, + 96,97,98,99,328,817,899,110,86,3412, + 3412,3412,3412,3412,3412,3412,3412,1181,3412,3412, + 3412,3412,95,876,113,94,96,97,98,99, + 328,860,899,110,86,3412,3412,3412,3412,3412, + 3412,3412,3412,1181,3412,3412,3412,3412,95,876, + 358,94,96,97,98,99,328,903,899,110, + 86,3412,3412,3412,3412,3412,3412,3412,3412,1181, + 3412,3412,3412,3412,95,876,357,94,96,97, + 98,99,328,946,899,110,86,3412,3412,3412, + 3412,3412,3412,3412,3412,1181,3412,3412,3412,3412, + 95,876,355,94,96,97,98,99,328,989, + 899,110,86,3412,3412,3412,3412,3412,3412,3412, + 3412,1181,3412,3412,3412,3412,95,876,350,94, + 96,97,98,99,328,1032,899,110,86,3412, + 3412,3412,3412,3412,3412,3412,3412,1181,3412,3412, + 3412,3412,95,876,349,94,96,97,98,99, + 328,1075,899,110,86,3412,3412,3412,3412,3412, + 3412,3412,3412,1181,3412,3412,3412,3412,95,876, + 347,94,96,97,98,99,328,1118,899,110, + 86,3412,3412,3412,3412,3412,3412,3412,3412,1181, + 3412,3412,3412,3412,95,876,343,94,96,97, + 98,99,328,1161,899,110,86,3412,3412,3412, + 3412,3412,3412,3412,3412,1181,3412,3412,3412,3412, + 95,876,120,94,96,97,98,99,328,1204, + 899,110,86,3412,3412,3412,3412,3412,3412,3412, + 3412,1181,3412,3412,3412,3412,95,876,356,94, + 96,97,98,99,328,1247,899,110,86,3412, + 3412,3412,3412,3412,3412,3412,3412,1181,3412,3412, + 3412,3412,95,876,354,94,96,97,98,99, + 328,1290,899,110,86,3412,3412,3412,3412,3412, + 3412,3412,3412,1181,3412,3412,3412,3412,95,876, + 353,94,96,97,98,99,328,1333,899,110, + 86,3412,3412,3412,3412,3412,3412,3412,3412,1181, + 3412,3412,3412,3412,95,876,348,94,96,97, + 98,99,328,1376,899,110,86,3412,3412,3412, + 3412,3412,3412,3412,3412,1181,3412,3412,3412,3412, + 95,876,346,94,96,97,98,99,328,1419, + 899,110,86,3412,3412,3412,3412,3412,3412,3412, + 3412,1181,3412,3412,3412,3412,95,876,345,94, + 96,97,98,99,328,1462,899,110,86,3412, + 3412,3412,3412,3412,3412,3412,3412,1181,3412,3412, + 3412,3412,95,876,342,94,96,97,98,99, + 328,1505,899,110,86,3412,3412,3412,3412,3412, + 3412,3412,3412,1181,3412,3412,3412,3412,95,876, + 341,94,96,97,98,99,328,1548,899,110, + 86,3412,3412,3412,3412,3412,3412,3412,3412,1181, + 3412,3412,3412,3412,95,876,339,94,96,97, + 98,99,328,1591,899,110,86,3412,3412,3412, + 3412,3412,3412,3412,3412,1181,3412,3412,3412,3412, + 95,876,119,94,96,97,98,99,328,1634, + 899,110,86,3412,3412,3412,3412,3412,3412,3412, + 3412,1181,3412,3412,3412,3412,95,876,352,94, + 96,97,98,99,328,1677,899,110,86,3412, + 3412,3412,3412,3412,3412,3412,3412,1181,3412,3412, + 3412,3412,95,876,344,94,96,97,98,99, + 328,1720,899,110,86,3412,3412,3412,3412,3412, + 3412,3412,3412,1181,3412,3412,3412,3412,95,876, + 340,94,96,97,98,99,328,1763,899,110, + 86,3412,3412,3412,3412,3412,3412,3412,3412,1181, + 3412,3412,3412,3412,95,876,338,94,96,97, + 98,99,328,1806,899,110,86,3412,3412,3412, + 3412,3412,3412,3412,3412,1181,3412,3412,3412,3412, + 95,876,337,94,96,97,98,99,328,1849, + 899,110,86,3412,3412,3412,3412,399,475,3412, + 3412,1181,3412,3412,3412,3412,95,876,336,94, + 96,97,98,99,328,2907,2063,475,3412,14, + 19,15,660,42,44,3412,683,1923,738,3412, + 706,761,3412,3412,355,362,3412,87,662,222, + 227,743,1619,216,693,219,221,3412,942,3412, + 3412,3412,3412,158,3412,3412,3412,662,222,227, + 3412,3412,216,693,219,221,3412,196,662,222, + 227,3412,1804,217,693,219,221,2882,271,3003, + 3412,14,19,15,660,40,154,599,266,1052, + 1027,269,2907,1225,613,3412,14,19,15,660, + 42,44,3412,683,3412,738,3412,706,1533,1908, + 899,3135,87,2907,197,199,3412,14,19,15, + 660,42,44,1540,683,1452,738,2907,706,1544, + 3412,14,19,15,660,42,44,3412,683,2907, + 738,3412,1566,14,19,15,660,42,44,3412, + 683,2907,738,3412,1573,14,19,15,660,42, + 44,3412,683,2907,738,3412,1610,14,19,15, + 660,42,44,3412,683,2907,738,3412,1613,14, + 19,15,660,42,44,2907,683,3412,1467,14, + 19,15,660,42,44,3412,683,3412,1481,1972, + 3041,3412,3412,1927,935,3412,3412,2178,694,274, + 355,362,3412,87,355,362,3412,87,3412,3412, + 3412,3412,3412,3412,942,2707,3412,3412,942,14, + 19,15,660,42,43,355,362,3412,87,3412, + 196,2525,694,196,2322,694,3412,196,3412,942, + 271,3412,766,3412,271,3003,3412,2525,694,3003, + 264,1052,1027,269,264,1052,1027,269,196,1258, + 3412,3412,3412,1291,1771,3412,191,196,3412,3412, + 3003,1456,3412,2245,694,263,1111,901,3412,766, + 1771,3412,2195,362,1324,87,2245,694,3412,712, + 3412,256,3412,3412,3412,3412,115,3412,3412,3412, + 3412,1511,1269,191,2932,2827,1771,256,14,19, + 15,660,33,1203,901,572,2932,1511,1269,1771, + 14,19,15,660,32,2993,899,3412,87,3412, + 3412,3412,3262,256,3412,2113,3412,3412,3412,360, + 3412,3412,3412,1004,1269,3412,256,1342,2993,899, + 3412,87,3412,3412,3412,3412,1555,1269,2139,3412, + 2993,899,360,87,3412,2993,899,3412,87,1621, + 2217,3412,3412,3412,360,2243,3412,2993,899,360, + 87,3412,3412,2993,899,3412,87,2295,3412,3412, + 3412,360,1641,2321,3412,3412,3412,360,2993,899, + 3412,87,3412,3412,1688,3412,3412,3412,2347,1735, + 2993,899,360,87,3412,2993,899,3412,87,3412, + 2451,1821,3412,3412,360,2529,3412,1901,3412,360, + 2993,899,3412,87,3412,2993,899,3412,87,3412, + 2581,3412,1938,3412,360,2607,3412,2993,899,360, + 87,3412,2195,899,1967,87,3412,2763,3412,1976, + 3412,360,1908,899,3158,87,115,1908,899,3302, + 87,3412,2195,899,1984,87,1547,3412,3412,2092, + 3412,1548,1908,899,3175,87,115,1908,899,3193, + 87,2093,1908,899,3208,87,1606,2195,899,3412, + 87,1650,1908,899,3245,87,1683,2195,899,3412, + 87,115,355,899,3412,87,1734,1514,3412,355, + 899,115,87,3412,355,899,1441,87,3412,3412, + 3412,3412,3412,1445,3412,3412,3412,1551,1522,3412, + 3412,3412,3412,3412,3412,3412,3412,3412,3412,3412, + 3412,3412,3412,3412,3412,3412,3412,3412,3412,3412, + 3412,3412,1676,3412,3412,3412,3412,3412,3412,3412, + 3412,3412,1956,3412,0,322,830,0,179,224, + 0,3419,1,0,1,3647,0,7,9,0, + 179,17,0,178,18,0,1,3636,0,112, + 2165,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -908,130 +915,144 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,0,1,2,3,4, - 5,0,0,0,0,0,1,2,0,4, - 6,0,4,0,0,4,2,0,1,2, - 25,26,5,0,10,11,0,1,2,0, - 0,5,2,25,0,5,25,0,43,44, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,41, + 42,0,1,2,3,4,5,0,0,0, + 0,0,1,2,0,4,6,0,4,0, + 0,4,2,0,1,2,25,26,5,0, + 10,11,0,1,2,0,0,5,2,25, + 0,5,25,0,43,44,45,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 59,60,61,62,63,64,65,66,28,68, + 69,70,0,1,2,3,4,5,67,0, + 0,0,75,2,73,4,72,67,87,75, + 67,83,84,85,86,0,87,25,26,67, + 80,72,67,67,97,98,99,100,101,102, + 103,104,105,106,94,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,59,60,61,62,63,64,65,66,0, + 68,69,70,0,1,0,3,4,67,4, + 0,1,2,0,73,5,76,77,0,87, + 0,0,0,0,4,0,5,5,5,26, + 25,0,0,1,2,0,5,0,83,84, + 85,86,7,8,0,25,43,44,45,46, + 47,48,49,50,51,52,53,54,55,56, + 57,58,59,60,61,62,63,64,65,66, + 0,68,69,70,71,0,1,72,3,4, + 43,44,45,46,47,48,49,50,51,52, + 53,54,72,75,0,75,83,84,85,86, + 6,26,81,82,81,82,74,0,0,0, + 0,4,81,82,4,0,91,2,43,44, 45,46,47,48,49,50,51,52,53,54, 55,56,57,58,59,60,61,62,63,64, - 65,66,28,68,69,70,0,1,2,3, - 4,5,67,0,0,0,75,2,73,4, - 72,67,87,75,67,83,84,85,86,0, - 87,25,26,67,80,72,67,67,97,98, - 99,100,101,102,103,104,105,106,94,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,58,59,60,61,62,63, - 64,65,66,0,68,69,70,0,1,0, - 3,4,67,4,0,1,2,0,73,5, - 76,77,0,87,0,0,0,0,4,0, - 5,5,5,26,25,0,0,1,2,0, - 5,0,83,84,85,86,7,8,0,25, + 65,66,72,68,69,70,71,0,1,0, + 3,4,43,44,45,46,47,48,49,50, + 51,52,53,54,0,0,0,0,4,0, + 4,2,0,26,5,67,4,0,0,72, + 73,0,67,73,0,1,9,3,80,25, 43,44,45,46,47,48,49,50,51,52, 53,54,55,56,57,58,59,60,61,62, 63,64,65,66,0,68,69,70,71,0, - 1,72,3,4,43,44,45,46,47,48, - 49,50,51,52,53,54,72,75,0,75, - 83,84,85,86,6,26,81,82,81,82, - 74,0,0,0,0,4,81,82,4,0, - 91,2,43,44,45,46,47,48,49,50, + 1,0,3,4,43,44,45,46,47,48, + 49,50,51,52,53,54,67,73,0,73, + 0,92,4,71,4,26,0,1,0,3, + 0,0,1,0,3,88,89,7,8,0, + 95,96,43,44,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,59,60, - 61,62,63,64,65,66,72,68,69,70, - 71,0,1,0,3,4,43,44,45,46, - 47,48,49,50,51,52,53,54,0,0, - 0,0,4,0,4,2,0,26,5,67, - 4,0,0,72,73,0,67,73,0,1, - 9,3,80,25,43,44,45,46,47,48, + 61,62,63,64,65,66,0,68,69,70, + 71,0,1,79,3,4,43,44,45,46, + 47,48,49,50,51,52,53,54,0,88, + 89,0,4,73,0,1,78,26,7,8, + 0,1,2,3,0,0,0,2,4,0, + 4,2,0,25,43,44,45,46,47,48, 49,50,51,52,53,54,55,56,57,58, 59,60,61,62,63,64,65,66,0,68, - 69,70,71,0,1,0,3,4,43,44, - 45,46,47,48,49,50,51,52,53,54, - 67,73,0,73,0,92,4,71,4,26, - 0,1,0,3,0,0,1,0,3,88, - 89,7,8,0,95,96,43,44,45,46, - 47,48,49,50,51,52,53,54,55,56, - 57,58,59,60,61,62,63,64,65,66, - 0,68,69,70,71,0,1,79,3,4, - 43,44,45,46,47,48,49,50,51,52, - 53,54,0,88,89,0,4,73,0,1, - 78,26,7,8,0,1,2,3,0,0, - 0,2,4,0,0,2,6,25,43,44, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,60,61,62,63,64, - 65,66,0,68,69,70,71,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65, - 66,0,68,69,70,0,1,79,3,71, - 67,0,1,0,3,43,44,45,46,47, - 48,0,9,0,1,2,3,4,5,0, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,43,44, - 45,46,47,48,49,50,51,52,53,54, - 55,56,57,58,59,60,61,62,63,64, - 65,66,49,68,69,70,0,1,2,3, - 4,5,0,7,8,9,10,11,12,13, + 69,70,71,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 60,61,62,63,64,65,66,0,68,69, + 70,0,1,79,3,71,67,71,0,67, + 0,43,44,45,46,47,48,0,0,0, + 1,2,3,4,5,0,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,43,44,45,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 59,60,61,62,63,64,65,66,49,68, + 69,70,0,1,2,3,4,5,0,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,78,90,0, + 0,76,77,0,0,0,6,0,0,5, + 0,1,0,3,0,0,9,2,6,0, + 6,49,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,0,0,2, + 78,43,44,45,46,47,48,49,50,51, + 52,53,54,55,56,57,58,59,60,61, + 62,63,64,65,66,76,77,0,0,76, + 77,76,77,79,0,0,2,0,1,2, + 3,4,5,71,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,0,1,2,3,4,5,0,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,0,1,2, + 3,0,5,6,7,8,9,10,11,12, + 13,14,15,16,17,18,19,20,21,22, + 23,24,0,0,2,78,0,0,2,6, + 0,93,0,6,0,90,6,0,6,2, + 0,0,0,0,0,67,0,1,2,3, + 78,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,78,0,0,0,76,77,0,0,0, - 6,0,0,5,0,0,0,6,2,0, - 0,2,2,0,0,49,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, + 24,0,1,2,3,74,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,0,1,2,3, + 0,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,0,0,2,78,43,44,45,46,47, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,61,62,63,64,65,66,76, - 77,67,0,76,77,76,77,79,0,74, - 2,0,1,2,3,4,5,71,7,8, + 24,0,1,2,3,91,5,6,7,8, 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,0,1,2,3, - 4,5,0,7,8,9,10,11,12,13, + 0,5,0,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,0,1,2,3,0,5,6,7,8, + 24,0,1,2,3,75,5,0,7,8, 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,0,0,0,78, - 0,0,90,6,6,0,0,2,0,0, - 0,0,6,0,0,6,6,0,0,67, - 0,1,2,3,78,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,0,1,2,3,74, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 0,1,2,3,74,5,75,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,0,1,2,3,91, - 5,90,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 0,1,2,3,0,5,0,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,0,1,2,3,0, - 5,0,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 0,1,2,3,0,5,0,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,0,1,2,3,0, - 5,0,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 0,1,2,3,75,5,0,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,0,1,2,0,4, - 5,0,4,79,0,0,0,0,1,2, - 4,4,5,0,0,0,67,0,92,6, - 25,6,0,25,0,74,0,0,0,80, - 0,0,25,27,0,0,0,0,43,44, - 45,46,47,48,49,50,51,52,53,54, - 43,44,45,46,47,48,49,50,51,52, - 53,54,67,0,0,0,0,0,73,0, - 72,0,0,72,67,0,0,0,74,73, - 73,0,0,0,0,0,0,0,74,0, - 0,74,0,0,0,0,0,0,93,0, - 0,0,0,0,0,0,43,44,45,46, - 47,48,43,44,45,46,47,48,43,44, + 19,20,21,22,23,24,0,1,2,3, + 0,5,0,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,0,1,2,3,75,5,0,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,0,1,2,3, + 0,5,0,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,0,1,2,3,0,5,0,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,0,1,2,3, + 0,5,0,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,0,1,2,0,4,5,0,4,0, + 0,0,0,0,1,2,4,4,5,0, + 0,0,67,0,92,6,25,6,0,25, + 0,74,0,0,6,80,6,0,25,27, + 0,0,0,0,43,44,45,46,47,48, + 49,50,51,52,53,54,43,44,45,46, + 47,48,49,50,51,52,53,54,67,0, + 0,0,0,0,73,0,72,0,0,72, + 67,0,0,74,74,73,73,0,0,0, + 79,0,0,0,74,0,0,74,0,0, + 0,0,0,0,0,0,74,0,0,0, + 0,0,43,44,45,46,47,48,43,44, 45,46,47,48,43,44,45,46,47,48, - 43,44,45,46,47,48,0,0,0,0, + 43,44,45,46,47,48,43,44,45,46, + 47,48,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0 + 0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1039,305 +1060,319 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface TermAction { public final static char termAction[] = {0, - 3380,6606,1,6603,1158,1,572,1,1,1, + 3412,6786,1,6777,1368,1,451,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3388,3480,1008,952,902, - 950,1051,567,899,914,1042,1625,1018,475,1003, - 484,543,891,1,1,1,1,1,1,1, + 1,1,1,1,1,3420,3512,793,1024,784, + 969,1115,529,1016,840,1104,1775,1038,591,1699, + 688,671,924,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,28,1,1, - 1,3386,7,3365,3365,3365,3365,3365,3365,3365, - 3365,3365,3365,3365,3365,3365,3365,3365,3365,3365, - 3365,3365,3365,3365,3365,3365,3365,3365,3365,3365, - 3365,3365,3365,3365,3365,3365,3365,3365,3365,3365, - 3365,3365,3365,3365,3365,3365,3365,3365,3365,3365, - 3365,3365,3365,3365,3365,3365,3365,3365,3365,3365, - 3365,3365,3365,3365,3365,3365,3365,3365,3365,3407, - 3365,3365,3365,3365,3380,6606,1,6603,1158,1, - 572,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3388, - 3480,1008,952,902,950,1051,567,899,914,1042, - 1625,1018,475,1003,484,543,891,1,1,1, - 1,1,1,1,1,1,1,1,1,1, + 1,3418,7,3397,3397,3397,3397,3397,3397,3397, + 3397,3397,3397,3397,3397,3397,3397,3397,3397,3397, + 3397,3397,3397,3397,3397,3397,3397,3397,3397,3397, + 3397,3397,3397,3397,3397,3397,3397,3397,3397,3397, + 3397,3397,3397,3397,3397,3397,3397,3397,3397,3397, + 3397,3397,3397,3397,3397,3397,3397,3397,3397,3397, + 3397,3397,3397,3397,3397,3397,3397,3397,3397,3439, + 3397,3397,3397,3397,3412,6786,1,6777,1368,1, + 451,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3420, + 3512,793,1024,784,969,1115,529,1016,840,1104, + 1775,1038,591,1699,688,671,924,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,205,1,1,1,3386,3380,6606,1,6603, - 3389,1,572,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,3388,3480,1008,952,902,950,1051,567,899, - 914,1042,1625,1018,475,1003,484,543,891,1, + 1,205,1,1,1,3418,3412,6786,1,6777, + 3421,1,451,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,3420,3512,793,1024,784,969,1115,529,1016, + 840,1104,1775,1038,591,1699,688,671,924,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,6080,1,1,1,3380,6606,1, - 6603,3389,1,572,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3388,3480,1008,952,902,950,1051,567, - 899,914,1042,1625,1018,475,1003,484,543,891, + 1,1,1,6304,1,1,1,3412,6786,1, + 6777,3421,1,451,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,3420,3512,793,1024,784,969,1115,529, + 1016,840,1104,1775,1038,591,1699,688,671,924, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3380,1195, - 3076,1202,179,1364,3356,1199,968,1232,2123,2095, - 2067,3390,3391,3392,3393,793,525,3687,3688,3689, - 2039,1713,833,3380,3560,3380,3561,3380,3560,417, - 3561,3380,3560,549,3561,3380,3616,636,1,3604, - 1779,3592,3593,3594,3700,399,3701,3542,3543,3541, - 3595,3544,3540,3547,3552,3551,3549,3550,3548,3553, - 3554,3546,3555,3556,3557,3380,586,527,426,3380, - 6606,1,6603,3389,1,572,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3388,3480,1008,952,902,950, - 1051,567,899,914,1042,1625,1018,475,1003,484, - 543,891,3380,6606,1,6603,3389,1,572,1, + 1,1,1,1,1,1,1,1,3412,1434, + 1737,1443,179,1346,3388,1280,1247,1313,3126,3114, + 2877,3422,3423,3424,3425,1214,983,3722,3723,3724, + 1793,1184,1118,3412,3592,282,3593,3412,3592,578, + 3593,3412,3592,595,3593,3412,3648,620,1,3636, + 1922,3624,3625,3626,3735,372,3736,3574,3575,3573, + 3627,3576,3572,3579,3584,3583,3581,3582,3580,3585, + 3586,3578,3587,3588,3589,3412,652,636,499,3412, + 6786,1,6777,3421,1,451,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3388,3480,1008, - 952,902,950,1051,567,899,914,1042,1625,1018, - 475,1003,484,543,891,3380,6606,1,6603,3389, - 1,572,1,1,1,1,1,1,1,1, + 1,1,1,1,3420,3512,793,1024,784,969, + 1115,529,1016,840,1104,1775,1038,591,1699,688, + 671,924,3412,6786,1,6777,3421,1,451,1, 1,1,1,1,1,1,1,1,1,1, - 3388,3480,1008,952,902,950,1051,567,899,914, - 1042,1625,1018,475,1003,484,543,891,3380,6606, - 1,6603,3389,1,572,1,1,1,1,1, + 1,1,1,1,1,1,1,3420,3512,793, + 1024,784,969,1115,529,1016,840,1104,1775,1038, + 591,1699,688,671,924,3412,6786,1,6777,3421, + 1,451,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3388,3480,1008,952,902,950,1051, - 567,899,914,1042,1625,1018,475,1003,484,543, - 891,3380,6606,1,6603,3389,1,572,1,1, + 3420,3512,793,1024,784,969,1115,529,1016,840, + 1104,1775,1038,591,1699,688,671,924,3412,6786, + 1,6777,3421,1,451,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3388,3480,1008,952, - 902,950,1051,567,899,914,1042,1625,1018,475, - 1003,484,543,891,3380,6606,1,6603,3389,1, - 572,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3388, - 3480,1008,952,902,950,1051,567,899,914,1042, - 1625,1018,475,1003,484,543,891,3380,6606,1, - 6603,3389,1,572,1,1,1,1,1,1, + 1,1,1,3420,3512,793,1024,784,969,1115, + 529,1016,840,1104,1775,1038,591,1699,688,671, + 924,3412,6786,1,6777,3421,1,451,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3388,3480,1008,952,902,950,1051,567, - 899,914,1042,1625,1018,475,1003,484,543,891, - 3380,6606,1,6603,3389,1,572,1,1,1, + 1,1,1,1,1,1,3420,3512,793,1024, + 784,969,1115,529,1016,840,1104,1775,1038,591, + 1699,688,671,924,3412,6786,1,6777,3421,1, + 451,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3420, + 3512,793,1024,784,969,1115,529,1016,840,1104, + 1775,1038,591,1699,688,671,924,3412,6786,1, + 6777,3421,1,451,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3388,3480,1008,952,902, - 950,1051,567,899,914,1042,1625,1018,475,1003, - 484,543,891,3380,6606,1,6603,3389,1,572, + 1,1,3420,3512,793,1024,784,969,1115,529, + 1016,840,1104,1775,1038,591,1699,688,671,924, + 3412,6786,1,6777,3421,1,451,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3388,3480, - 1008,952,902,950,1051,567,899,914,1042,1625, - 1018,475,1003,484,543,891,3380,6606,1,6603, - 3389,1,572,1,1,1,1,1,1,1, + 1,1,1,1,1,3420,3512,793,1024,784, + 969,1115,529,1016,840,1104,1775,1038,591,1699, + 688,671,924,3412,6786,1,6777,3421,1,451, 1,1,1,1,1,1,1,1,1,1, - 1,3388,3480,1008,952,902,950,1051,567,899, - 914,1042,1625,1018,475,1003,484,543,891,3380, - 6606,1,6603,3389,1,572,1,1,1,1, + 1,1,1,1,1,1,1,1,3420,3512, + 793,1024,784,969,1115,529,1016,840,1104,1775, + 1038,591,1699,688,671,924,3412,6786,1,6777, + 3421,1,451,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3388,3480,1008,952,902,950, - 1051,567,899,914,1042,1625,1018,475,1003,484, - 543,891,3380,6606,1,6603,3389,1,572,1, + 1,3420,3512,793,1024,784,969,1115,529,1016, + 840,1104,1775,1038,591,1699,688,671,924,3412, + 6786,1,6777,3421,1,451,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3388,3480,1008, - 952,902,950,1051,567,899,914,1042,1625,1018, - 475,1003,484,543,891,3380,6606,1,6603,3389, - 1,572,1,1,1,1,1,1,1,1, + 1,1,1,1,3420,3512,793,1024,784,969, + 1115,529,1016,840,1104,1775,1038,591,1699,688, + 671,924,3412,6786,1,6777,3421,1,451,1, 1,1,1,1,1,1,1,1,1,1, - 3388,3480,1008,952,902,950,1051,567,899,914, - 1042,1625,1018,475,1003,484,543,891,3380,6606, - 1,6603,3389,1,572,1,1,1,1,1, + 1,1,1,1,1,1,1,3420,3512,793, + 1024,784,969,1115,529,1016,840,1104,1775,1038, + 591,1699,688,671,924,3412,6786,1,6777,3421, + 1,451,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3388,3480,1008,952,902,950,1051, - 567,899,914,1042,1625,1018,475,1003,484,543, - 891,3380,6606,1,6603,3389,1,572,1,1, + 3420,3512,793,1024,784,969,1115,529,1016,840, + 1104,1775,1038,591,1699,688,671,924,3412,6786, + 1,6777,3421,1,451,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3388,3480,1008,952, - 902,950,1051,567,899,914,1042,1625,1018,475, - 1003,484,543,891,3380,6606,1,6603,3389,1, - 572,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3388, - 3480,1008,952,902,950,1051,567,899,914,1042, - 1625,1018,475,1003,484,543,891,3380,6606,1, - 6603,3389,1,572,1,1,1,1,1,1, + 1,1,1,3420,3512,793,1024,784,969,1115, + 529,1016,840,1104,1775,1038,591,1699,688,671, + 924,3412,6786,1,6777,3421,1,451,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3388,3480,1008,952,902,950,1051,567, - 899,914,1042,1625,1018,475,1003,484,543,891, - 3380,6606,1,6603,3389,1,572,1,1,1, + 1,1,1,1,1,1,3420,3512,793,1024, + 784,969,1115,529,1016,840,1104,1775,1038,591, + 1699,688,671,924,3412,6786,1,6777,3421,1, + 451,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3420, + 3512,793,1024,784,969,1115,529,1016,840,1104, + 1775,1038,591,1699,688,671,924,3412,6786,1, + 6777,3421,1,451,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3388,3480,1008,952,902, - 950,1051,567,899,914,1042,1625,1018,475,1003, - 484,543,891,3380,6606,1,6603,3389,1,572, + 1,1,3420,3512,793,1024,784,969,1115,529, + 1016,840,1104,1775,1038,591,1699,688,671,924, + 3412,6786,1,6777,3421,1,451,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3388,3480, - 1008,952,902,950,1051,567,899,914,1042,1625, - 1018,475,1003,484,543,891,3380,6606,1,6603, - 3389,1,572,1,1,1,1,1,1,1, + 1,1,1,1,1,3420,3512,793,1024,784, + 969,1115,529,1016,840,1104,1775,1038,591,1699, + 688,671,924,3412,6786,1,6777,3421,1,451, 1,1,1,1,1,1,1,1,1,1, - 1,3388,3480,1008,952,902,950,1051,567,899, - 914,1042,1625,1018,475,1003,484,543,891,3380, - 6606,1,6603,3389,1,572,1,1,1,1, + 1,1,1,1,1,1,1,1,3420,3512, + 793,1024,784,969,1115,529,1016,840,1104,1775, + 1038,591,1699,688,671,924,3412,6786,1,6777, + 3421,1,451,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3388,3480,1008,952,902,950, - 1051,567,899,914,1042,1625,1018,475,1003,484, - 543,891,3380,6606,1,6603,3389,1,572,1, + 1,3420,3512,793,1024,784,969,1115,529,1016, + 840,1104,1775,1038,591,1699,688,671,924,3412, + 6786,1,6777,3421,1,451,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3388,3480,1008, - 952,902,950,1051,567,899,914,1042,1625,1018, - 475,1003,484,543,891,3380,6606,1,6603,3389, - 1,572,1,1,1,1,1,1,1,1, + 1,1,1,1,3420,3512,793,1024,784,969, + 1115,529,1016,840,1104,1775,1038,591,1699,688, + 671,924,3412,6786,1,6777,3421,1,451,1, 1,1,1,1,1,1,1,1,1,1, - 3388,3480,1008,952,902,950,1051,567,899,914, - 1042,1625,1018,475,1003,484,543,891,3380,6606, - 1,6603,3389,1,572,1,1,1,1,1, + 1,1,1,1,1,1,1,3420,3512,793, + 1024,784,969,1115,529,1016,840,1104,1775,1038, + 591,1699,688,671,924,3412,6786,1,6777,3421, + 1,451,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3388,3480,1008,952,902,950,1051, - 567,899,914,1042,1625,1018,475,1003,484,543, - 891,3380,6606,1,6603,3389,1,572,1,1, + 3420,3512,793,1024,784,969,1115,529,1016,840, + 1104,1775,1038,591,1699,688,671,924,3412,6786, + 1,6777,3421,1,451,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3388,3480,1008,952, - 902,950,1051,567,899,914,1042,1625,1018,475, - 1003,484,543,891,3380,6606,1,6603,3389,1, - 572,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3388, - 3480,1008,952,902,950,1051,567,899,914,1042, - 1625,1018,475,1003,484,543,891,3380,6606,1, - 6603,3389,1,572,1,1,1,1,1,1, + 1,1,1,3420,3512,793,1024,784,969,1115, + 529,1016,840,1104,1775,1038,591,1699,688,671, + 924,3412,6786,1,6777,3421,1,451,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,3388,3480,1008,952,902,950,1051,567, - 899,914,1042,1625,1018,475,1003,484,543,891, - 3380,6606,1,6603,3389,1,572,1,1,1, + 1,1,1,1,1,1,3420,3512,793,1024, + 784,969,1115,529,1016,840,1104,1775,1038,591, + 1699,688,671,924,3412,6786,1,6777,3421,1, + 451,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3420, + 3512,793,1024,784,969,1115,529,1016,840,1104, + 1775,1038,591,1699,688,671,924,3412,6786,1, + 6777,3421,1,451,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3388,3480,1008,952,902, - 950,1051,567,899,914,1042,1625,1018,475,1003, - 484,543,891,3380,6606,1,6603,3389,1,572, + 1,1,3420,3512,793,1024,784,969,1115,529, + 1016,840,1104,1775,1038,591,1699,688,671,924, + 3412,6786,1,6777,3421,1,451,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3388,3480, - 1008,952,902,950,1051,567,899,914,1042,1625, - 1018,475,1003,484,543,891,3380,6606,1,6603, - 3389,1,572,1,1,1,1,1,1,1, + 1,1,1,1,1,3420,3512,793,1024,784, + 969,1115,529,1016,840,1104,1775,1038,591,1699, + 688,671,924,3412,6786,1,6777,3421,1,451, 1,1,1,1,1,1,1,1,1,1, - 1,3388,3480,1008,952,902,950,1051,567,899, - 914,1042,1625,1018,475,1003,484,543,891,3380, - 6606,1,6603,3389,1,572,1,1,1,1, + 1,1,1,1,1,1,1,1,3420,3512, + 793,1024,784,969,1115,529,1016,840,1104,1775, + 1038,591,1699,688,671,924,3412,6786,1,6777, + 3421,1,451,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3388,3480,1008,952,902,950, - 1051,567,899,914,1042,1625,1018,475,1003,484, - 543,891,3380,6606,1,6603,3389,1,572,1, + 1,3420,3512,793,1024,784,969,1115,529,1016, + 840,1104,1775,1038,591,1699,688,671,924,3412, + 6786,1,6777,3421,1,451,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3388,3480,1008, - 952,902,950,1051,567,899,914,1042,1625,1018, - 475,1003,484,543,891,3380,1,1,1,3389, - 1,42,59,3380,3380,1,3374,1796,233,3385, - 372,1,221,3380,31,3389,678,259,3604,1796, - 3388,3679,1,253,3404,3405,265,3604,1796,319, - 262,828,1909,221,3380,1,3388,3380,1,1, + 1,1,1,1,3420,3512,793,1024,784,969, + 1115,529,1016,840,1104,1775,1038,591,1699,688, + 671,924,3412,6786,1,6777,3421,1,451,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3420,3512,793, + 1024,784,969,1115,529,1016,840,1104,1775,1038, + 591,1699,688,671,924,3412,6786,1,6777,3421, + 1,451,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1381,1,1,1,3380,1,1,1, - 3389,1,641,3380,54,1,1346,1909,3384,3385, - 221,1170,293,221,641,3046,3033,3020,3007,61, - 3352,3388,3679,641,960,937,3353,641,1313,1280, - 1247,1214,1181,1115,1148,1082,1049,1016,674,1, + 3420,3512,793,1024,784,969,1115,529,1016,840, + 1104,1775,1038,591,1699,688,671,924,3412,6786, + 1,6777,3421,1,451,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,3420,3512,793,1024,784,969,1115, + 529,1016,840,1104,1775,1038,591,1699,688,671, + 924,3412,1,1,1,3421,1,42,59,3412, + 3412,1,3406,1828,233,3417,425,1,221,3412, + 31,3421,1747,259,3636,1828,3420,3714,1,253, + 3436,3437,265,3636,1828,322,262,949,2999,221, + 3412,1,3420,3412,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3380,1,1,1,3380,1,3380, - 1,190,641,3389,3380,3604,1779,60,3384,828, - 458,2960,156,292,234,48,3380,50,221,68, - 1496,643,1496,3575,3388,49,1,3604,1779,51, - 1496,129,3046,3033,3020,3007,3106,2977,3380,221, + 1,1,1,1,1,1,1,1,1749,1, + 1,1,3412,1,1,1,3421,1,650,3412, + 54,1,1365,2999,3416,3417,221,1668,296,221, + 650,2963,2951,2939,2927,61,3384,3420,3714,650, + 1020,557,3385,650,1332,1299,1266,1233,1200,1134, + 1167,1101,1068,1035,944,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3412, + 1,1,1,3412,1,3412,1,190,650,3421, + 3412,3636,1922,60,3416,949,2975,2985,156,295, + 234,48,3412,50,221,68,1577,641,1577,3607, + 3420,49,1,3636,1922,51,1577,129,2963,2951, + 2939,2927,1049,376,3412,221,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,88,1,1,1,190,3380, - 1,360,1,190,3592,3593,3594,3700,399,3701, - 3542,3543,3541,3595,3544,3540,221,775,187,221, - 3046,3033,3020,3007,752,3575,1430,1397,1430,1397, - 1412,3380,3380,130,3380,3385,1430,1397,3385,220, - 1987,701,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1379,1,1,1, - 190,3380,1,70,1,190,3592,3593,3594,3700, - 399,3701,3542,3543,3541,3595,3544,3540,1,72, - 1,62,116,265,3385,1909,1,3575,828,1544, - 3359,64,3380,1458,3384,131,641,3384,206,3560, - 2908,3561,1095,116,1,1,1,1,1,1, + 88,1,1,1,190,3412,1,597,1,190, + 3624,3625,3626,3735,372,3736,3574,3575,3573,3627, + 3576,3572,221,692,187,221,2963,2951,2939,2927, + 848,3607,1478,1379,1478,1379,1431,3412,3412,130, + 3412,3417,1478,1379,3417,220,1992,727,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,190,3380,1,63,1,189,3592,3593, - 3594,3700,399,3701,3542,3543,3541,3595,3544,3540, - 641,116,3380,3384,1,1940,3383,3386,90,3575, - 3380,3560,3380,3561,53,3380,3409,132,3410,2994, - 2922,3106,2977,3380,1863,1725,1,1,1,1, + 1,1,1398,1,1,1,190,3412,1,70, + 1,190,3624,3625,3626,3735,372,3736,3574,3575, + 3573,3627,3576,3572,1,72,1,62,116,265, + 3417,2999,1,3607,949,1563,3391,64,3412,1816, + 3416,131,650,3416,206,3592,474,3593,1158,116, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3380,1,1,1,189,3380,1,3635,1,190, - 3592,3593,3594,3700,399,3701,3542,3543,3541,3595, - 3544,3540,3380,2994,2922,52,3389,90,1,3362, - 3382,3575,3106,2977,1,369,1779,3558,3380,3380, - 186,690,3387,267,3380,943,772,3388,1,1, + 1,1,1,1,1,1,1,1,190,3412, + 1,63,1,189,3624,3625,3626,3735,372,3736, + 3574,3575,3573,3627,3576,3572,650,116,3412,3416, + 1,1946,3415,3418,90,3607,3412,3592,3412,3593, + 53,3412,3441,132,3442,2913,2892,1049,376,3412, + 1836,1944,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,3412,1,1,1, + 189,3412,1,3667,1,190,3624,3625,3626,3735, + 372,3736,3574,3575,3573,3627,3576,3572,3412,2913, + 2892,52,3421,90,1,3394,3414,3607,1049,376, + 1,379,1922,3590,3412,3412,281,497,3419,267, + 1070,853,218,3420,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,247,1,1,1,190,3592,3593,3594, - 3700,399,3701,3542,3543,3541,3595,3544,3540,3547, - 3552,3551,3549,3550,3548,3553,3554,3546,3555,3556, - 3557,3380,586,527,426,3380,3559,3635,3558,3386, - 641,205,903,65,903,1,1,1,1,1, - 1,3380,2908,1,3397,3076,3398,3383,1067,58, - 1199,968,1232,2123,2095,2067,3390,3391,3392,3393, - 793,525,3687,3688,3689,2039,1713,833,3592,3593, - 3594,3700,399,3701,3542,3543,3541,3595,3544,3540, - 3547,3552,3551,3549,3550,3548,3553,3554,3546,3555, - 3556,3557,815,586,527,426,3380,3397,3076,3398, - 3383,1133,3380,1199,968,1232,2123,2095,2067,3390, - 3391,3392,3393,793,525,3687,3688,3689,2039,1713, - 833,3382,3380,57,188,458,2960,56,1,55, - 813,227,128,643,218,3380,3380,230,762,3380, - 3380,3170,2460,3380,3380,1478,1,3397,3076,3398, - 27,1364,963,1199,968,1232,2123,2095,2067,3390, - 3391,3392,3393,793,525,3687,3688,3689,2039,1713, - 833,3380,3380,2488,3382,3592,3593,3594,3700,399, - 3701,3542,3543,3541,3595,3544,3540,3547,3552,3551, - 3549,3550,3548,3553,3554,3546,3555,3556,3557,458, - 2960,641,66,458,2960,458,2960,3635,3380,3483, - 2516,3380,3397,3076,3398,3383,866,27,1199,968, - 1232,2123,2095,2067,3390,3391,3392,3393,793,525, - 3687,3688,3689,2039,1713,833,3380,3397,3076,3398, - 3383,1364,268,1199,968,1232,2123,2095,2067,3390, - 3391,3392,3393,793,525,3687,3688,3689,2039,1713, - 833,3380,3397,3076,3398,3380,1364,963,1199,968, - 1232,2123,2095,2067,3390,3391,3392,3393,793,525, - 3687,3688,3689,2039,1713,833,3380,1,227,3382, - 3380,209,2875,572,231,3380,315,2544,69,313, - 311,67,1062,3380,3380,1062,1062,3380,3380,641, - 3380,3397,3076,3398,3382,1364,1062,1199,968,1232, - 2123,2095,2067,3390,3391,3392,3393,793,525,3687, - 3688,3689,2039,1713,833,1,3397,3076,3398,2007, - 1364,963,1199,968,1232,2123,2095,2067,3390,3391, - 3392,3393,793,525,3687,3688,3689,2039,1713,833, - 3380,3397,3119,3398,3482,1364,983,1199,968,1232, - 2123,2095,2067,3390,3391,3392,3393,793,525,3687, - 3688,3689,2039,1713,833,3380,3397,3123,3398,1987, - 1364,2875,1199,968,1232,2123,2095,2067,3390,3391, - 3392,3393,793,525,3687,3688,3689,2039,1713,833, - 3380,3397,3127,3398,3380,1364,3380,1199,968,1232, - 2123,2095,2067,3390,3391,3392,3393,793,525,3687, - 3688,3689,2039,1713,833,3380,3397,3143,3398,3380, - 1364,3380,1199,968,1232,2123,2095,2067,3390,3391, - 3392,3393,793,525,3687,3688,3689,2039,1713,833, - 3380,3397,3076,3398,1,1364,71,1199,968,1232, - 2123,2095,2067,3390,3391,3392,3393,793,525,3687, - 3688,3689,2039,1713,833,3380,3397,3147,3398,285, - 1364,3380,1199,968,1232,2123,2095,2067,3390,3391, - 3392,3393,793,525,3687,3688,3689,2039,1713,833, - 1,3397,3076,3398,917,1364,3380,1199,968,1232, - 2123,2095,2067,3390,3391,3392,3393,793,525,3687, - 3688,3689,2039,1713,833,17,179,3368,3380,3368, - 3368,28,3389,3634,200,112,1,18,178,3371, - 3385,3371,3371,41,1,3380,1577,1,1940,1062, - 3368,1062,3380,3388,3380,1758,3380,3380,3380,1269, - 3380,3380,3371,3738,3380,3380,3380,3380,179,179, - 179,179,179,179,179,179,179,179,179,179, - 178,178,178,178,178,178,178,178,178,178, - 178,178,3368,248,3380,3380,3380,3380,3368,3380, - 2899,3380,3380,601,3371,249,3380,3380,1511,3384, - 3371,250,3380,3380,3380,3380,3380,246,3561,3380, - 3380,3560,3380,3380,3380,3380,3380,3380,3377,3380, - 3380,3380,3380,3380,3380,3380,1,1,1,1, - 1,1,3592,3593,3594,3700,399,3701,3592,3593, - 3594,3700,399,3701,3592,3593,3594,3700,399,3701, - 3592,3593,3594,3700,399,3701 + 1,1,1,1,1,1,1,1,247,1, + 1,1,190,3624,3625,3626,3735,372,3736,3574, + 3575,3573,3627,3576,3572,3579,3584,3583,3581,3582, + 3580,3585,3586,3578,3587,3588,3589,3412,652,636, + 499,3412,3591,3667,3590,3418,650,1070,66,650, + 3412,1,1,1,1,1,1,3412,3412,1, + 3429,1737,3430,3415,1082,58,1280,1247,1313,3126, + 3114,2877,3422,3423,3424,3425,1214,983,3722,3723, + 3724,1793,1184,1118,3624,3625,3626,3735,372,3736, + 3574,3575,3573,3627,3576,3572,3579,3584,3583,3581, + 3582,3580,3585,3586,3578,3587,3588,3589,866,652, + 636,499,3412,3429,1737,3430,3415,1148,3412,1280, + 1247,1313,3126,3114,2877,3422,3423,3424,3425,1214, + 983,3722,3723,3724,1793,1184,1118,3414,2815,57, + 186,2975,2985,56,1,55,864,65,128,641, + 205,510,188,510,227,3412,474,953,916,3412, + 230,1497,1,3429,1737,3430,27,1346,6130,1280, + 1247,1313,3126,3114,2877,3422,3423,3424,3425,1214, + 983,3722,3723,3724,1793,1184,1118,3412,3412,3092, + 3414,3624,3625,3626,3735,372,3736,3574,3575,3573, + 3627,3576,3572,3579,3584,3583,3581,3582,3580,3585, + 3586,3578,3587,3588,3589,2975,2985,3412,112,2975, + 2985,2975,2985,3667,3412,67,1988,3412,3429,1737, + 3430,3415,427,27,1280,1247,1313,3126,3114,2877, + 3422,3423,3424,3425,1214,983,3722,3723,3724,1793, + 1184,1118,3412,3429,1737,3430,3415,1346,268,1280, + 1247,1313,3126,3114,2877,3422,3423,3424,3425,1214, + 983,3722,3723,3724,1793,1184,1118,3412,3429,1737, + 3430,3412,1346,6130,1280,1247,1313,3126,3114,2877, + 3422,3423,3424,3425,1214,983,3722,3723,3724,1793, + 1184,1118,3412,1,3322,3414,3412,3412,3329,451, + 227,3409,318,1092,69,2815,231,3412,1136,3334, + 3412,3412,3412,3412,3412,650,3412,3429,1737,3430, + 3414,1346,1136,1280,1247,1313,3126,3114,2877,3422, + 3423,3424,3425,1214,983,3722,3723,3724,1793,1184, + 1118,1,3429,1737,3430,733,1346,6130,1280,1247, + 1313,3126,3114,2877,3422,3423,3424,3425,1214,983, + 3722,3723,3724,1793,1184,1118,1,3429,1737,3430, + 209,1346,6130,1280,1247,1313,3126,3114,2877,3422, + 3423,3424,3425,1214,983,3722,3723,3724,1793,1184, + 1118,3412,3429,1737,3430,1992,1346,6130,1280,1247, + 1313,3126,3114,2877,3422,3423,3424,3425,1214,983, + 3722,3723,3724,1793,1184,1118,3412,3429,1823,3430, + 3412,1346,3412,1280,1247,1313,3126,3114,2877,3422, + 3423,3424,3425,1214,983,3722,3723,3724,1793,1184, + 1118,3412,3429,2834,3430,1002,1346,3412,1280,1247, + 1313,3126,3114,2877,3422,3423,3424,3425,1214,983, + 3722,3723,3724,1793,1184,1118,3412,3429,3010,3430, + 3412,1346,3412,1280,1247,1313,3126,3114,2877,3422, + 3423,3424,3425,1214,983,3722,3723,3724,1793,1184, + 1118,3412,3429,3014,3430,783,1346,3412,1280,1247, + 1313,3126,3114,2877,3422,3423,3424,3425,1214,983, + 3722,3723,3724,1793,1184,1118,3412,3429,1737,3430, + 3412,1346,71,1280,1247,1313,3126,3114,2877,3422, + 3423,3424,3425,1214,983,3722,3723,3724,1793,1184, + 1118,3412,3429,3035,3430,288,1346,3412,1280,1247, + 1313,3126,3114,2877,3422,3423,3424,3425,1214,983, + 3722,3723,3724,1793,1184,1118,1,3429,1737,3430, + 3412,1346,3412,1280,1247,1313,3126,3114,2877,3422, + 3423,3424,3425,1214,983,3722,3723,3724,1793,1184, + 1118,17,179,3400,3412,3400,3400,28,3421,3412, + 3412,1,1,18,178,3403,3417,3403,3403,316, + 200,314,1596,1,1946,1136,3400,1136,41,3420, + 3412,804,1,3412,1136,1630,1136,3412,3403,3773, + 3412,3412,3412,3412,179,179,179,179,179,179, + 179,179,179,179,179,179,178,178,178,178, + 178,178,178,178,178,178,178,178,3400,248, + 3412,3412,3412,3412,3400,3412,364,3412,3412,603, + 3403,249,3412,2009,1779,3416,3403,250,3412,3412, + 3666,3412,3412,246,1530,3412,3412,3593,3412,3412, + 3412,3412,3412,3412,3412,3412,3592,3412,3412,3412, + 3412,3412,1,1,1,1,1,1,3624,3625, + 3626,3735,372,3736,3624,3625,3626,3735,372,3736, + 3624,3625,3626,3735,372,3736,3624,3625,3626,3735, + 372,3736 }; }; public final static char termAction[] = TermAction.termAction; @@ -1345,44 +1380,45 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Asb { public final static char asb[] = {0, - 302,1,461,77,302,179,49,26,61,61, - 177,177,61,177,61,463,618,79,65,336, - 79,422,386,3,83,3,83,338,3,79, - 535,546,618,376,377,649,463,179,221,583, - 582,618,116,423,408,443,245,245,245,245, - 245,245,245,245,386,245,245,245,181,198, - 203,201,209,205,212,211,214,213,215,83, - 83,83,83,338,338,535,486,79,649,344, - 651,463,79,272,79,422,222,243,243,243, - 243,222,222,265,336,336,336,225,336,336, - 222,422,24,245,24,77,443,546,546,296, - 245,443,443,443,443,443,265,265,621,245, - 245,245,245,245,245,245,245,245,245,245, - 245,245,245,245,245,245,245,245,245,83, - 113,19,463,83,83,113,340,415,340,338, - 486,535,651,347,408,486,187,386,546,541, - 545,150,270,116,582,420,222,245,222,222, - 222,222,441,441,245,493,245,245,423,24, - 225,79,218,495,495,272,618,646,544,543, - 546,546,546,546,546,546,408,201,201,198, - 198,205,205,203,203,203,203,211,209,213, - 212,24,214,113,21,113,113,245,265,340, - 535,545,486,408,385,344,245,245,245,245, - 245,245,245,245,245,245,245,646,618,651, - 270,243,243,222,243,222,546,336,546,546, - 422,245,270,296,546,588,649,549,549,549, - 549,179,245,221,245,220,113,81,245,245, - 408,386,588,541,340,412,243,222,243,222, - 243,222,243,225,245,225,225,270,546,651, - 21,245,408,408,113,268,586,265,245,411, - 620,222,243,620,222,243,243,222,621,222, - 546,421,340,546,272,408,265,245,225,546, - 620,620,222,225,546,620,620,222,620,222, - 243,546,621,222,225,113,408,225,225,546, - 225,546,620,225,225,546,225,546,620,225, - 546,620,620,222,225,546,225,225,225,546, - 225,225,225,546,225,225,546,225,546,620, - 225,225,225,225,225,225,546,225 + 317,58,429,52,317,492,24,1,36,36, + 490,490,36,490,36,431,659,54,40,351, + 54,390,354,60,126,60,126,187,60,54, + 534,545,659,303,304,590,431,492,299,582, + 581,659,193,391,376,411,103,103,103,103, + 103,103,103,103,354,103,103,103,259,276, + 281,279,287,283,290,289,292,291,293,126, + 126,126,126,187,187,534,454,54,590,227, + 592,431,54,163,54,390,300,101,101,101, + 101,300,300,123,351,351,351,83,351,351, + 300,390,81,103,81,52,411,545,545,623, + 103,411,411,411,411,411,123,123,662,103, + 103,103,103,103,103,103,103,103,103,103, + 103,103,103,103,103,103,103,103,103,126, + 156,76,431,126,126,156,189,379,189,187, + 454,534,592,230,376,454,265,354,545,540, + 544,463,156,492,193,581,388,300,103,300, + 300,300,300,409,409,103,461,103,103,391, + 83,81,83,54,296,494,494,163,659,587, + 543,542,545,545,545,545,545,545,376,279, + 279,276,276,283,283,281,281,281,281,289, + 287,291,290,81,292,156,78,156,156,103, + 123,189,534,544,454,376,353,227,103,103, + 103,103,103,103,103,103,103,103,103,587, + 659,592,156,161,101,101,300,101,300,545, + 351,545,545,390,83,103,161,623,545,629, + 590,548,548,548,548,492,103,299,103,298, + 156,56,103,103,376,354,629,540,161,101, + 300,101,300,101,300,101,83,103,83,83, + 161,545,592,78,103,376,376,189,385,661, + 300,101,661,300,101,101,300,662,300,545, + 389,189,545,156,159,585,123,103,384,83, + 545,661,661,300,83,545,661,661,300,661, + 300,101,545,662,300,83,156,312,163,376, + 123,103,83,83,545,83,545,661,83,83, + 545,83,545,661,83,545,661,661,300,83, + 545,376,83,83,83,545,83,83,83,545, + 83,83,545,83,545,661,83,83,83,83, + 83,83,545,83 }; }; public final static char asb[] = Asb.asb; @@ -1390,75 +1426,75 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Asr { public final static byte asr[] = {0, - 87,0,50,43,51,52,53,44,49,54, - 45,67,72,73,46,47,48,6,25,4, - 5,1,2,74,0,68,12,69,70,13, - 14,15,16,3,10,11,9,7,8,17, - 18,78,19,20,21,22,23,24,63,55, - 60,58,59,57,56,61,62,64,65,66, - 67,74,72,73,50,43,51,52,53,44, - 49,54,45,46,47,48,25,4,5,2, - 1,0,50,55,43,56,68,51,57,52, - 58,59,53,44,60,61,49,69,54,70, - 62,63,45,64,65,66,1,3,46,47, - 48,26,71,4,0,50,55,43,56,68, + 68,12,69,70,13,14,15,16,3,10, + 11,9,7,8,17,18,78,19,20,21, + 22,23,24,63,55,60,58,59,57,56, + 61,62,64,65,66,67,74,72,73,50, + 43,51,52,53,44,49,54,45,46,47, + 48,25,4,5,2,1,0,87,0,50, + 43,51,52,53,44,49,54,45,67,72, + 73,46,47,48,6,25,4,5,1,2, + 74,0,30,31,6,35,37,32,28,33, + 42,34,27,29,36,39,41,38,40,26, + 25,4,2,13,14,15,16,19,20,21, + 10,11,9,5,7,8,17,18,12,22, + 23,24,1,3,0,50,55,43,56,68, 51,57,52,58,59,53,44,60,61,49, 69,54,70,62,63,45,64,65,66,1, - 3,46,47,48,4,75,72,25,0,50, - 55,43,56,68,51,57,52,58,59,53, - 44,60,61,49,69,54,70,62,63,45, - 64,65,66,46,47,48,1,3,6,0, - 67,2,80,94,10,11,75,97,98,99, - 100,101,103,102,104,105,106,5,81,82, - 7,8,77,76,83,84,85,86,88,89, - 9,90,91,92,71,95,96,78,73,74, - 72,25,4,0,30,31,6,35,37,32, - 28,33,42,34,27,29,36,39,41,38, - 40,26,25,4,2,13,14,15,16,19, - 20,21,10,11,9,5,7,8,17,18, - 12,22,23,24,1,3,0,4,71,67, - 80,2,13,14,15,16,19,20,21,1, - 3,10,11,9,5,7,8,17,18,12, - 22,23,24,6,0,4,73,5,2,67, - 0,87,50,55,43,56,68,51,57,52, + 3,46,47,48,26,71,4,0,4,71, + 67,80,2,13,14,15,16,19,20,21, + 1,3,10,11,9,5,7,8,17,18, + 12,22,23,24,6,0,1,3,4,71, + 72,0,50,55,43,56,68,51,57,52, 58,59,53,44,60,61,49,69,54,70, - 62,63,45,64,65,66,1,3,5,46, - 47,48,25,4,26,2,0,1,3,4, - 71,72,0,78,4,49,43,44,45,46, - 47,48,10,11,9,5,7,8,17,18, - 12,22,23,24,2,1,3,13,14,15, - 16,19,20,21,0,2,4,74,75,72, - 73,25,67,0,49,10,11,9,5,7, + 62,63,45,64,65,66,1,3,46,47, + 48,4,75,72,25,0,78,4,49,43, + 44,45,46,47,48,10,11,9,5,7, 8,17,18,12,22,23,24,2,1,3, - 13,14,15,16,19,20,21,78,4,0, - 75,67,80,0,4,72,71,75,0,87, - 93,71,30,31,6,35,37,32,28,33, - 42,34,27,29,36,39,41,38,40,26, - 25,4,12,13,14,15,16,10,11,9, - 7,8,17,18,19,20,21,22,23,24, - 5,2,3,1,68,69,70,63,55,60, - 58,59,57,56,61,62,64,65,66,54, - 51,49,50,53,52,46,48,47,43,44, - 45,0,28,0,49,54,53,52,51,50, - 80,94,10,11,9,7,8,81,82,76, - 77,83,84,85,86,88,89,90,91,92, - 95,96,75,97,98,99,100,101,102,103, - 104,105,106,25,43,44,45,46,47,48, - 5,1,2,67,72,73,4,0,9,5, - 7,8,81,82,76,77,83,84,85,86, - 88,89,90,91,92,95,96,74,97,98, - 99,100,101,102,103,104,105,106,78,73, - 71,6,4,72,25,75,0,50,55,43, + 13,14,15,16,19,20,21,0,67,2, + 80,94,10,11,75,97,98,99,100,101, + 103,102,104,105,106,5,81,82,7,8, + 77,76,83,84,85,86,88,89,9,90, + 91,92,71,95,96,78,73,74,72,25, + 4,0,2,4,74,75,72,73,25,67, + 0,4,72,71,25,0,87,50,55,43, 56,68,51,57,52,58,59,53,44,60, 61,49,69,54,70,62,63,45,64,65, - 66,1,3,46,47,48,79,5,0,27, - 4,73,12,13,14,15,16,1,3,2, - 10,11,9,5,7,8,17,18,19,20, - 21,22,23,24,0,5,2,67,73,4, - 50,55,43,56,68,51,57,52,58,59, - 53,44,60,61,49,69,54,70,62,63, - 45,64,65,66,1,3,46,47,48,79, - 0 + 66,1,3,5,46,47,48,25,4,26, + 2,0,49,10,11,9,5,7,8,17, + 18,12,22,23,24,2,1,3,13,14, + 15,16,19,20,21,78,4,0,4,72, + 71,75,0,75,67,80,0,87,93,71, + 30,31,6,35,37,32,28,33,42,34, + 27,29,36,39,41,38,40,26,25,4, + 12,13,14,15,16,10,11,9,7,8, + 17,18,19,20,21,22,23,24,5,2, + 3,1,68,69,70,63,55,60,58,59, + 57,56,61,62,64,65,66,54,51,49, + 50,53,52,46,48,47,43,44,45,0, + 28,0,50,55,43,56,68,51,57,52, + 58,59,53,44,60,61,49,69,54,70, + 62,63,45,64,65,66,46,47,48,1, + 3,6,0,49,54,53,52,51,50,80, + 94,10,11,9,7,8,81,82,76,77, + 83,84,85,86,88,89,90,91,92,95, + 96,75,97,98,99,100,101,102,103,104, + 105,106,25,43,44,45,46,47,48,5, + 1,2,67,72,73,4,0,9,5,7, + 8,81,82,76,77,83,84,85,86,88, + 89,90,91,92,95,96,74,97,98,99, + 100,101,102,103,104,105,106,78,73,71, + 6,4,72,25,75,0,5,2,67,73, + 4,50,55,43,56,68,51,57,52,58, + 59,53,44,60,61,49,69,54,70,62, + 63,45,64,65,66,1,3,46,47,48, + 79,0,4,73,5,2,67,0,50,55, + 43,56,68,51,57,52,58,59,53,44, + 60,61,49,69,54,70,62,63,45,64, + 65,66,1,3,46,47,48,79,5,0, + 27,4,73,12,13,14,15,16,1,3, + 2,10,11,9,5,7,8,17,18,19, + 20,21,22,23,24,0 }; }; public final static byte asr[] = Asr.asr; @@ -1466,44 +1502,45 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Nasb { public final static char nasb[] = {0, - 48,30,21,12,63,19,123,17,124,124, - 95,95,124,95,124,119,110,104,30,30, - 126,9,53,30,102,30,102,102,30,36, - 102,134,110,67,67,133,102,19,13,30, - 30,110,30,91,54,147,7,7,7,7, - 7,7,7,7,53,7,7,7,30,30, - 30,30,30,30,30,30,30,30,30,102, - 81,102,81,95,102,102,145,129,133,52, - 101,85,104,7,127,97,13,71,71,71, - 71,13,13,95,30,30,30,39,30,30, - 13,9,30,7,30,12,1,134,134,137, - 7,147,147,147,147,147,56,56,58,72, + 71,34,25,18,61,9,131,11,132,132, + 100,100,132,100,132,127,151,140,34,34, + 134,35,51,34,111,34,111,111,34,15, + 111,160,151,54,54,159,111,9,19,34, + 34,151,34,96,52,113,7,7,7,7, + 7,7,7,7,51,7,7,7,34,34, + 34,34,34,34,34,34,34,34,34,111, + 92,111,92,100,111,111,13,137,159,50, + 110,21,140,56,135,106,19,79,79,79, + 79,19,19,100,34,34,34,40,34,34, + 19,35,34,7,34,18,1,160,160,145, + 7,113,113,113,113,113,75,75,117,80, 7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,72,7,81, - 10,12,24,77,81,10,75,30,30,95, - 145,61,141,45,54,145,30,53,134,113, - 30,31,102,30,30,30,13,7,13,13, - 13,13,69,151,72,30,72,72,91,30, - 39,104,30,30,30,7,110,136,67,67, - 134,134,134,134,134,134,54,30,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,30,30,10,104,10,10,7,95,75, - 61,134,145,54,53,61,7,7,7,7, - 7,7,7,7,7,7,7,112,110,101, - 45,71,71,13,153,13,134,30,134,134, - 97,7,102,116,134,108,133,30,30,30, - 30,30,7,13,7,30,10,30,7,7, - 54,53,108,114,75,15,71,13,71,13, - 71,13,153,39,72,39,39,45,134,101, - 104,7,54,54,10,44,30,95,7,89, - 132,13,71,132,13,71,71,13,153,13, - 134,30,75,134,7,54,95,7,39,134, - 132,132,13,39,134,132,132,13,132,13, - 71,134,153,13,39,10,54,39,39,134, - 39,134,132,39,39,134,39,134,132,39, - 134,132,132,13,39,134,39,39,39,134, - 39,39,39,134,39,39,134,39,134,132, - 39,39,39,39,39,39,134,39 + 7,7,7,7,7,7,7,80,7,92, + 36,18,28,67,92,36,83,34,34,100, + 13,59,102,47,52,13,34,51,160,121, + 34,87,111,34,34,34,34,19,7,19, + 19,19,19,77,153,80,34,80,80,96, + 40,34,40,140,34,34,34,7,151,144, + 54,54,160,160,160,160,160,160,52,34, + 34,34,34,34,34,34,34,34,34,34, + 34,34,34,34,34,36,140,36,36,7, + 100,83,59,160,13,52,51,59,7,7, + 7,7,7,7,7,7,7,7,7,120, + 151,110,36,111,79,79,19,155,19,160, + 34,160,160,106,40,7,111,124,160,149, + 159,34,34,34,34,34,7,19,7,34, + 36,34,7,7,52,51,149,122,46,79, + 19,79,19,79,19,155,40,80,40,40, + 46,160,110,140,7,52,52,83,38,158, + 19,79,158,19,79,79,19,155,19,160, + 34,83,160,36,45,34,100,7,85,40, + 160,158,158,19,40,160,158,158,19,158, + 19,79,160,155,19,40,36,65,56,52, + 100,7,40,40,160,40,160,158,40,40, + 160,40,160,158,40,160,158,158,19,40, + 160,52,40,40,40,160,40,40,40,160, + 40,40,160,40,160,158,40,40,40,40, + 40,40,160,40 }; }; public final static char nasb[] = Nasb.nasb; @@ -1511,22 +1548,23 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface Nasr { public final static char nasr[] = {0, - 87,86,85,84,83,82,7,0,1,43, - 0,1,2,0,113,0,118,0,105,0, - 40,1,101,87,86,85,84,83,82,0, - 1,33,50,18,0,40,42,0,13,20, - 1,21,0,91,7,1,0,116,33,1, - 0,1,7,39,0,92,0,1,107,0, - 35,0,33,1,103,0,51,0,33,50, - 2,1,14,0,72,0,1,45,69,0, - 79,1,45,0,33,1,117,0,115,0, - 1,33,20,95,13,0,20,13,73,43, - 33,1,0,47,40,1,0,1,33,58, - 0,10,1,40,47,63,62,0,74,75, - 76,77,66,52,0,1,42,49,40,47, - 0,44,1,10,0,10,62,63,1,0, - 109,1,33,0,80,0,1,45,14,0, - 33,50,1,65,0 + 88,87,86,85,84,83,7,0,106,0, + 120,0,81,0,41,43,0,1,2,0, + 33,1,119,0,41,1,102,88,87,86, + 85,84,83,0,1,40,0,115,0,12, + 18,1,19,0,92,72,7,1,0,1, + 7,39,0,51,0,7,72,0,35,0, + 33,1,104,0,113,0,1,45,69,0, + 118,33,1,0,93,0,33,50,2,1, + 14,0,73,0,117,0,1,33,50,17, + 0,80,1,45,0,1,33,18,96,12, + 0,110,1,33,0,18,12,74,40,33, + 1,0,1,45,14,0,1,108,0,10, + 1,41,47,63,62,0,75,76,77,78, + 66,52,0,1,43,49,41,47,0,47, + 41,1,0,10,62,63,1,0,1,33, + 58,0,33,50,1,65,0,44,1,10, + 0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1553,17 +1591,18 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, 0,112,0,0,0,0,114,118,119,110, - 120,121,137,113,122,123,124,136,125,132, - 135,0,0,0,0,0,0,126,127,128, - 129,130,141,131,149,0,0,0,109,170, - 0,173,111,196,162,167,169,0,171,140, + 120,137,121,113,122,123,136,132,135,0, + 0,0,0,0,0,124,125,126,127,128, + 129,130,141,131,149,0,0,0,109,111, + 170,0,173,196,162,167,169,0,171,140, 172,148,0,0,0,159,134,168,116,181, 184,185,186,0,0,151,158,0,161,174, - 180,0,139,152,153,154,155,0,160,179, - 183,143,144,145,146,147,150,156,157,166, - 187,115,117,133,138,142,164,0,0,165, - 175,178,192,0,194,0,0,163,176,177, - 182,188,189,0,190,191,193,195,0 + 180,0,0,139,152,153,154,155,0,160, + 179,183,143,144,145,146,147,150,156,157, + 166,187,115,117,133,138,142,164,0,0, + 165,175,178,192,0,194,0,0,163,176, + 177,182,0,188,189,0,190,191,193,195, + 0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -1571,12 +1610,12 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 218,118,57,67,125,145,151,188,26,33, - 85,103,157,162,73,6,12,16,38,81, - 50,135,197,214,233,237,50,50,201,50, - 1,1,1,42,45,90,113,45,241,20, - 139,208,179,208,131,167,167,167,167,167, - 93,93,93 + 222,120,59,69,129,149,155,26,192,35, + 87,105,161,166,75,6,12,16,40,83, + 52,139,201,218,237,241,52,52,205,52, + 1,1,1,44,47,92,115,47,245,20, + 143,212,183,212,135,171,171,171,171,171, + 95,95,95 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -1584,12 +1623,12 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 31,31,4,4,31,31,31,194,31,10, - 4,10,31,31,78,10,10,10,10,4, - 4,133,31,10,10,4,54,78,205,63, - 4,4,4,10,48,4,10,116,10,23, - 142,211,182,226,133,169,171,173,175,177, - 100,95,108 + 127,127,4,4,127,127,127,32,198,10, + 4,10,127,127,80,10,10,10,10,4, + 4,137,127,10,10,4,56,80,209,65, + 4,4,4,10,50,4,10,118,10,23, + 146,215,186,230,137,173,175,177,179,181, + 102,97,110 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -1597,12 +1636,12 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 7,76,51,51,76,74,74,24,67,64, - 51,42,74,74,51,8,8,8,64,51, - 51,69,18,8,7,7,51,51,32,51, - 118,115,114,62,81,51,40,56,5,91, - 69,9,25,7,69,86,85,84,83,82, - 42,49,42 + 7,77,51,51,77,75,75,67,22,64, + 51,43,75,75,51,8,8,8,64,51, + 51,69,17,8,7,7,51,51,32,51, + 120,117,116,62,82,51,41,56,5,92, + 69,9,23,7,69,87,86,85,84,83, + 43,49,43 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -1610,7 +1649,7 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeLa { public final static byte scopeLa[] = { - 71,71,78,78,71,71,71,93,71,73, + 71,71,78,78,71,71,71,71,93,73, 78,73,71,71,13,73,73,73,73,78, 78,25,71,73,73,78,5,13,74,49, 78,78,78,73,2,78,73,1,73,75, @@ -1623,12 +1662,12 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 60,143,49,49,143,143,143,12,121,53, - 49,129,143,143,49,60,60,60,53,49, - 49,5,11,60,60,60,49,49,94,49, - 127,1,3,53,55,49,129,134,60,123, - 5,66,12,60,5,144,144,144,144,144, - 129,131,129 + 62,145,51,51,145,145,145,123,12,55, + 51,131,145,145,51,62,62,62,55,51, + 51,5,11,62,62,62,51,51,96,51, + 129,1,3,55,57,51,131,136,62,125, + 5,68,12,62,5,146,146,146,146,146, + 131,133,131 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -1637,30 +1676,30 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, 164,67,0,109,0,166,2,24,0,110, - 0,166,2,23,0,166,2,22,0,219, - 108,0,31,158,0,179,200,108,6,0, - 111,0,177,108,2,169,0,177,108,2, - 0,188,2,0,165,108,0,184,0,209, - 108,67,0,9,109,0,141,49,209,108, - 67,0,69,131,109,0,141,209,108,49, - 67,0,209,108,49,67,0,131,109,0, - 141,49,67,0,141,209,108,67,0,141, - 67,0,147,0,2,0,176,110,0,2, - 110,0,177,108,2,147,0,2,0,174, - 110,0,163,2,0,167,0,179,206,108, - 6,120,68,0,179,206,108,6,68,0, - 152,0,112,0,215,108,152,0,108,152, - 0,163,112,0,185,108,6,120,70,0, - 185,108,6,120,69,0,185,108,6,70, - 0,185,108,6,69,0,194,0,155,0, - 154,0,153,0,152,0,151,0,128,32, - 0,77,2,113,110,112,0,128,117,121, - 2,35,0,53,135,0,202,108,6,0, - 121,96,138,0,29,130,0,166,2,0, - 110,119,0,166,2,12,0,179,200,108, - 6,117,166,2,0,110,3,0,117,0, - 111,0,214,2,114,0,121,67,114,0, - 121,2,0 + 0,166,2,23,0,166,2,22,0,221, + 108,0,31,158,0,180,201,108,6,179, + 0,111,0,0,177,108,2,169,0,177, + 108,2,0,189,2,0,165,108,0,184, + 0,210,108,67,0,9,109,0,141,49, + 210,108,67,0,69,131,109,0,141,210, + 108,49,67,0,210,108,49,67,0,131, + 109,0,141,49,67,0,141,210,108,67, + 0,141,67,0,148,0,2,0,176,110, + 0,2,110,0,177,108,2,148,0,2, + 0,174,110,0,163,2,0,167,0,180, + 207,108,6,119,68,0,111,0,180,207, + 108,6,68,0,152,0,112,0,216,108, + 152,0,108,152,0,163,112,0,186,108, + 6,119,70,0,186,108,6,119,69,0, + 186,108,6,70,0,186,108,6,69,0, + 195,0,155,0,154,0,153,0,152,0, + 151,0,126,32,0,77,2,113,110,112, + 0,126,117,121,2,35,0,53,135,0, + 203,108,6,0,121,96,138,0,29,130, + 0,166,2,0,110,119,0,166,2,12, + 0,180,201,108,6,117,166,2,0,110, + 3,0,117,0,111,0,215,2,114,0, + 121,67,114,0,121,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -1668,21 +1707,21 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface ScopeState { public final static char scopeState[] = {0, - 1059,0,385,0,1671,850,1533,1270,861,0, - 450,2847,2819,2791,2763,2735,2707,2679,2651,2623, - 2595,2567,2539,2511,2483,2455,2427,2399,2371,2343, - 2315,2287,2259,2231,2203,2175,2147,2119,2091,2063, - 2035,1709,2007,1673,567,1635,1597,0,1034,884, - 774,710,1603,560,1796,1909,1753,603,0,2123, - 2095,2067,2039,1713,833,1133,3189,1067,1863,1987, - 1940,2908,2875,3046,3033,3020,3007,2994,2922,3106, - 2977,2960,458,1496,1430,1397,1364,1232,866,1199, - 968,793,525,1577,1544,1511,1478,1445,1412,1758, - 1379,1346,1313,1280,1247,1214,1181,1148,1115,1082, - 1049,1016,881,983,848,815,359,950,641,739, - 917,775,601,547,507,0,399,0,542,419, - 1603,3056,1641,2899,1796,382,2855,1753,360,1887, - 1779,0,1848,651,359,419,0 + 1302,0,429,0,3044,901,3007,1519,1420,0, + 1400,2789,2763,2737,2711,2685,2659,2633,2607,2581, + 2555,2529,2503,2477,2451,2425,2399,2373,2347,2321, + 2295,2269,2243,2217,2191,2165,2139,2113,2087,2061, + 2035,2009,1741,804,733,1706,529,1672,1637,0, + 1052,1027,693,662,2827,712,1828,2999,1771,3003, + 0,3126,3114,2877,1793,1184,1118,1148,3025,1082, + 1836,1992,1946,474,2815,2963,2951,2939,2927,2913, + 2892,1049,376,2985,2975,1577,1478,1379,1346,1313, + 427,1280,1247,1214,983,1596,1563,1530,1497,1464, + 1431,1779,1398,1365,1332,1299,1266,1233,1200,1167, + 1134,1101,1068,1035,932,1002,899,866,362,969, + 650,830,783,692,603,555,508,0,372,0, + 401,418,2827,842,668,364,1828,2816,2797,1771, + 597,1893,1922,0,1850,694,362,418,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -1690,44 +1729,45 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,213,108,140,223,208,189,47,190,191, - 70,69,192,68,193,194,108,2,1,147, - 108,6,67,120,6,120,6,6,120,165, - 5,163,108,147,154,2,217,208,203,196, - 149,108,156,108,164,2,24,23,22,12, + 0,214,108,140,225,209,190,47,191,192, + 70,69,193,68,194,195,108,2,1,148, + 108,6,67,119,6,119,6,6,119,165, + 5,163,108,148,154,2,218,209,204,197, + 150,108,156,108,164,2,24,23,22,12, 18,17,8,7,5,9,11,10,114,118, - 122,119,124,123,135,126,137,136,138,6, + 122,120,133,123,135,134,137,136,138,6, 108,6,108,108,6,5,108,165,2,67, - 108,108,72,75,165,202,40,38,41,39, + 108,108,72,75,165,203,40,38,41,39, 36,29,27,34,42,33,28,32,37,35, - 127,6,31,30,120,140,108,166,121,152, + 125,6,31,30,119,140,108,166,121,152, 5,2,2,2,2,2,94,80,2,67, 82,81,5,76,77,8,7,89,88,86, 85,84,83,90,9,92,91,96,95,108, - 185,152,108,186,108,185,206,120,207,108, - 108,187,108,49,141,108,115,5,177,140, - 178,224,6,156,149,4,121,108,121,121, - 121,120,2,2,2,128,2,2,108,164, - 74,108,201,1,3,117,108,2,170,169, - 166,166,166,166,166,214,121,119,119,118, - 118,123,123,122,122,122,122,126,124,136, - 135,121,137,185,108,185,179,75,72,206, - 187,216,108,141,209,187,106,105,104,102, - 103,101,100,99,98,97,75,2,108,72, - 108,157,109,121,157,172,121,28,121,121, - 202,72,6,165,188,108,2,117,117,117, - 117,117,74,215,74,163,179,72,209,49, - 141,5,108,165,200,108,109,121,109,121, - 109,172,109,117,2,117,117,108,177,108, - 72,74,141,141,179,72,219,80,67,220, - 109,121,109,109,121,109,109,121,109,172, - 121,128,200,177,75,164,80,67,117,151, - 109,109,121,117,151,109,109,121,109,121, - 109,172,109,117,93,179,164,117,117,151, - 117,151,109,117,117,151,117,151,109,117, - 151,109,109,121,117,172,117,117,117,151, - 117,117,117,151,117,117,151,117,151,109, - 117,117,117,117,117,117,151,117 + 186,152,108,187,108,186,207,119,208,108, + 108,188,108,49,141,108,115,5,177,140, + 178,226,6,179,156,150,4,121,108,121, + 121,121,119,2,2,2,126,2,2,108, + 74,164,74,108,202,1,3,117,108,2, + 170,169,166,166,166,166,166,215,121,120, + 120,118,118,123,123,122,122,122,122,134, + 133,136,135,121,137,186,108,186,180,75, + 72,207,188,217,108,141,210,188,106,105, + 104,102,103,101,100,99,98,97,75,2, + 108,72,108,6,157,109,121,157,172,121, + 28,121,121,203,74,72,6,165,189,108, + 2,117,117,117,117,117,74,216,74,163, + 180,72,210,49,141,5,108,165,108,109, + 121,109,121,109,172,109,117,2,117,117, + 108,177,108,72,74,141,141,201,108,109, + 121,109,109,121,109,109,121,109,172,121, + 126,201,177,180,72,221,80,67,222,117, + 151,109,109,121,117,151,109,109,121,109, + 121,109,172,109,117,93,180,147,75,164, + 80,67,117,117,151,117,151,109,117,117, + 151,117,151,109,117,151,109,109,121,117, + 172,164,117,117,117,151,117,117,117,151, + 117,117,151,117,151,109,117,117,117,117, + 117,117,151,117 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1954,20 +1994,20 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 378, + NUM_STATES = 384, NT_OFFSET = 107, - LA_STATE_OFFSET = 3738, + LA_STATE_OFFSET = 3773, MAX_LA = 2147483647, - NUM_RULES = 358, - NUM_NONTERMINALS = 119, - NUM_SYMBOLS = 226, + NUM_RULES = 361, + NUM_NONTERMINALS = 121, + NUM_SYMBOLS = 228, SEGMENT_SIZE = 8192, - START_STATE = 626, + START_STATE = 918, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 87, EOLT_SYMBOL = 87, - ACCEPT_ACTION = 3352, - ERROR_ACTION = 3380; + ACCEPT_ACTION = 3384, + ERROR_ACTION = 3412; public final static boolean BACKTRACK = true; diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java index c986a62f790..593f1aea605 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java @@ -24,6 +24,7 @@ import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; 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.parser.upc.UPCASTNodeFactory; @@ -32,7 +33,6 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement; import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; -import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory; public class UPCSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { @@ -176,8 +176,9 @@ private UPCParserAction action; public UPCSizeofExpressionParser() { // constructor } -private void initActions(IASTTranslationUnit tu) { +private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu); + action.setParserOptions(options); } @@ -187,10 +188,10 @@ public void addToken(IToken token) { } -public IASTCompletionNode parse(IASTTranslationUnit tu) { +public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { // this has to be done, or... kaboom! setStreamLength(getSize()); - initActions(tu); + initActions(tu, options); final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse @@ -596,13 +597,13 @@ public UPCSizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 101: labeled_statement ::= case constant_expression : + // Rule 101: labeled_statement ::= case constant_expression : statement // case 101: { action. consumeStatementCase(); break; } // - // Rule 102: labeled_statement ::= default : + // Rule 102: labeled_statement ::= default : statement // case 102: { action. consumeStatementDefault(); break; } @@ -1160,363 +1161,381 @@ public UPCSizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 278: initializer ::= { <openscope-ast> initializer_list comma_opt } + // Rule 278: initializer ::= start_initializer_list { <openscope-ast> initializer_list comma_opt } end_initializer_list // case 278: { action. consumeInitializerList(); break; } // - // Rule 283: designated_initializer ::= <openscope-ast> designation = initializer + // Rule 279: initializer ::= { <openscope-ast> } + // + case 279: { action. consumeInitializerList(); break; + } + + // + // Rule 280: start_initializer_list ::= $Empty + // + case 280: { action. initializerListStart(); break; + } + + // + // Rule 281: end_initializer_list ::= $Empty + // + case 281: { action. initializerListEnd(); break; + } + + // + // Rule 286: designated_initializer ::= <openscope-ast> designation = initializer // - case 283: { action. consumeInitializerDesignated(); break; + case 286: { action. consumeInitializerDesignated(); break; } // - // Rule 287: designator_base ::= [ constant_expression ] + // Rule 290: designator_base ::= [ constant_expression ] // - case 287: { action. consumeDesignatorArray(); break; + case 290: { action. consumeDesignatorArray(); break; } // - // Rule 288: designator_base ::= . identifier_or_typedefname + // Rule 291: designator_base ::= . identifier_or_typedefname // - case 288: { action. consumeDesignatorField(); break; + case 291: { action. consumeDesignatorField(); break; } // - // Rule 289: designator ::= [ constant_expression ] + // Rule 292: designator ::= [ constant_expression ] // - case 289: { action. consumeDesignatorArray(); break; + case 292: { action. consumeDesignatorArray(); break; } // - // Rule 290: designator ::= . identifier_or_typedefname + // Rule 293: designator ::= . identifier_or_typedefname // - case 290: { action. consumeDesignatorField(); break; + case 293: { action. consumeDesignatorField(); break; } // - // Rule 291: translation_unit ::= external_declaration_list + // Rule 294: translation_unit ::= external_declaration_list // - case 291: { action. consumeTranslationUnit(); break; + case 294: { action. consumeTranslationUnit(); break; } // - // Rule 292: translation_unit ::= $Empty + // Rule 295: translation_unit ::= $Empty // - case 292: { action. consumeTranslationUnit(); break; + case 295: { action. consumeTranslationUnit(); break; } // - // Rule 297: external_declaration ::= ; + // Rule 300: external_declaration ::= ; // - case 297: { action. consumeDeclarationEmpty(); break; + case 300: { action. consumeDeclarationEmpty(); break; } // - // Rule 298: external_declaration ::= ERROR_TOKEN + // Rule 301: external_declaration ::= ERROR_TOKEN // - case 298: { action. consumeDeclarationProblem(); break; + case 301: { action. consumeDeclarationProblem(); break; } // - // Rule 301: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body + // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body // - case 301: { action. consumeFunctionDefinition(true); break; + case 304: { action. consumeFunctionDefinition(true); break; } // - // Rule 302: function_definition ::= <openscope-ast> function_declarator function_body + // Rule 305: function_definition ::= <openscope-ast> function_declarator function_body // - case 302: { action. consumeFunctionDefinition(false); break; + case 305: { action. consumeFunctionDefinition(false); break; } // - // Rule 303: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement + // Rule 306: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement // - case 303: { action. consumeFunctionDefinitionKnR(); break; + case 306: { action. consumeFunctionDefinitionKnR(); break; } // - // Rule 304: function_body ::= { } + // Rule 307: function_body ::= { } // - case 304: { action. consumeStatementCompoundStatement(false); break; + case 307: { action. consumeStatementCompoundStatement(false); break; } // - // Rule 305: function_body ::= { <openscope-ast> block_item_list } + // Rule 308: function_body ::= { <openscope-ast> block_item_list } // - case 305: { action. consumeStatementCompoundStatement(true); break; + case 308: { action. consumeStatementCompoundStatement(true); break; } // - // Rule 307: no_sizeof_type_name_start ::= ERROR_TOKEN + // Rule 310: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 307: { action. consumeExpressionProblem(); break; + case 310: { action. consumeExpressionProblem(); break; } // - // Rule 308: literal ::= MYTHREAD + // Rule 311: literal ::= MYTHREAD // - case 308: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; + case 311: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break; } // - // Rule 309: literal ::= THREADS + // Rule 312: literal ::= THREADS // - case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; + case 312: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break; } // - // Rule 310: literal ::= UPC_MAX_BLOCKSIZE + // Rule 313: literal ::= UPC_MAX_BLOCKSIZE // - case 310: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; + case 313: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break; } // - // Rule 311: unary_expression ::= upc_localsizeof unary_expression + // Rule 314: unary_expression ::= upc_localsizeof unary_expression // - case 311: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; + case 314: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break; } // - // Rule 312: unary_expression ::= upc_blocksizeof unary_expression + // Rule 315: unary_expression ::= upc_blocksizeof unary_expression // - case 312: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; + case 315: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break; } // - // Rule 313: unary_expression ::= upc_elemsizeof unary_expression + // Rule 316: unary_expression ::= upc_elemsizeof unary_expression // - case 313: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; + case 316: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break; } // - // Rule 317: shared_type_qualifier ::= shared + // Rule 320: shared_type_qualifier ::= shared // - case 317: { action. consumeToken(); break; + case 320: { action. consumeToken(); break; } // - // Rule 318: reference_type_qualifier ::= relaxed + // Rule 321: reference_type_qualifier ::= relaxed // - case 318: { action. consumeToken(); break; + case 321: { action. consumeToken(); break; } // - // Rule 319: reference_type_qualifier ::= strict + // Rule 322: reference_type_qualifier ::= strict // - case 319: { action. consumeToken(); break; + case 322: { action. consumeToken(); break; } // - // Rule 320: layout_qualifier ::= [ constant_expression ] + // Rule 323: layout_qualifier ::= [ constant_expression ] // - case 320: { action. consumeLayoutQualifier(true, false); break; + case 323: { action. consumeLayoutQualifier(true, false); break; } // - // Rule 321: layout_qualifier ::= [ * ] + // Rule 324: layout_qualifier ::= [ * ] // - case 321: { action. consumeLayoutQualifier(false, true); break; + case 324: { action. consumeLayoutQualifier(false, true); break; } // - // Rule 322: layout_qualifier ::= [ ] + // Rule 325: layout_qualifier ::= [ ] // - case 322: { action. consumeLayoutQualifier(false, false); break; + case 325: { action. consumeLayoutQualifier(false, false); break; } // - // Rule 324: synchronization_statement ::= upc_notify expression ; + // Rule 327: synchronization_statement ::= upc_notify expression ; // - case 324: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; + case 327: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break; } // - // Rule 325: synchronization_statement ::= upc_notify ; + // Rule 328: synchronization_statement ::= upc_notify ; // - case 325: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; + case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break; } // - // Rule 326: synchronization_statement ::= upc_wait expression ; + // Rule 329: synchronization_statement ::= upc_wait expression ; // - case 326: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; + case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break; } // - // Rule 327: synchronization_statement ::= upc_wait ; + // Rule 330: synchronization_statement ::= upc_wait ; // - case 327: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; + case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break; } // - // Rule 328: synchronization_statement ::= upc_barrier expression ; + // Rule 331: synchronization_statement ::= upc_barrier expression ; // - case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; + case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break; } // - // Rule 329: synchronization_statement ::= upc_barrier ; + // Rule 332: synchronization_statement ::= upc_barrier ; // - case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; + case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break; } // - // Rule 330: synchronization_statement ::= upc_fence ; + // Rule 333: synchronization_statement ::= upc_fence ; // - case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; + case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break; } // - // Rule 331: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement + // Rule 334: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement // - case 331: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 334: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 332: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement + // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement // - case 332: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 335: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 333: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement + // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement // - case 333: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 336: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 334: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement + // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement // - case 334: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 337: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 335: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement + // Rule 338: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement // - case 335: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 338: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 336: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement + // Rule 339: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement // - case 336: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 339: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 337: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement + // Rule 340: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement // - case 337: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 340: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 338: iteration_statement ::= upc_forall ( expression ; ; ; ) statement + // Rule 341: iteration_statement ::= upc_forall ( expression ; ; ; ) statement // - case 338: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 341: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 339: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement + // Rule 342: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement // - case 339: { action. consumeStatementUPCForallLoop(false, true, true, true); break; + case 342: { action. consumeStatementUPCForallLoop(false, true, true, true); break; } // - // Rule 340: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement + // Rule 343: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement // - case 340: { action. consumeStatementUPCForallLoop(false, true, true, false); break; + case 343: { action. consumeStatementUPCForallLoop(false, true, true, false); break; } // - // Rule 341: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement + // Rule 344: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement // - case 341: { action. consumeStatementUPCForallLoop(false, true, false, true); break; + case 344: { action. consumeStatementUPCForallLoop(false, true, false, true); break; } // - // Rule 342: iteration_statement ::= upc_forall ( ; expression ; ; ) statement + // Rule 345: iteration_statement ::= upc_forall ( ; expression ; ; ) statement // - case 342: { action. consumeStatementUPCForallLoop(false, true, false, false); break; + case 345: { action. consumeStatementUPCForallLoop(false, true, false, false); break; } // - // Rule 343: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement + // Rule 346: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement // - case 343: { action. consumeStatementUPCForallLoop(false, false, true, true); break; + case 346: { action. consumeStatementUPCForallLoop(false, false, true, true); break; } // - // Rule 344: iteration_statement ::= upc_forall ( ; ; expression ; ) statement + // Rule 347: iteration_statement ::= upc_forall ( ; ; expression ; ) statement // - case 344: { action. consumeStatementUPCForallLoop(false, false, true, false); break; + case 347: { action. consumeStatementUPCForallLoop(false, false, true, false); break; } // - // Rule 345: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement + // Rule 348: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement // - case 345: { action. consumeStatementUPCForallLoop(false, false, false, true); break; + case 348: { action. consumeStatementUPCForallLoop(false, false, false, true); break; } // - // Rule 346: iteration_statement ::= upc_forall ( ; ; ; ) statement + // Rule 349: iteration_statement ::= upc_forall ( ; ; ; ) statement // - case 346: { action. consumeStatementUPCForallLoop(false, false, false, false); break; + case 349: { action. consumeStatementUPCForallLoop(false, false, false, false); break; } // - // Rule 347: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement + // Rule 350: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement // - case 347: { action. consumeStatementUPCForallLoop(true, true, true, true); break; + case 350: { action. consumeStatementUPCForallLoop(true, true, true, true); break; } // - // Rule 348: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement + // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement // - case 348: { action. consumeStatementUPCForallLoop(true, true, true, false); break; + case 351: { action. consumeStatementUPCForallLoop(true, true, true, false); break; } // - // Rule 349: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement + // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement // - case 349: { action. consumeStatementUPCForallLoop(true, true, false, true); break; + case 352: { action. consumeStatementUPCForallLoop(true, true, false, true); break; } // - // Rule 350: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement + // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement // - case 350: { action. consumeStatementUPCForallLoop(true, true, false, false); break; + case 353: { action. consumeStatementUPCForallLoop(true, true, false, false); break; } // - // Rule 351: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement + // Rule 354: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement // - case 351: { action. consumeStatementUPCForallLoop(true, false, true, true); break; + case 354: { action. consumeStatementUPCForallLoop(true, false, true, true); break; } // - // Rule 352: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement + // Rule 355: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement // - case 352: { action. consumeStatementUPCForallLoop(true, false, true, false); break; + case 355: { action. consumeStatementUPCForallLoop(true, false, true, false); break; } // - // Rule 353: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement + // Rule 356: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement // - case 353: { action. consumeStatementUPCForallLoop(true, false, false, true); break; + case 356: { action. consumeStatementUPCForallLoop(true, false, false, true); break; } // - // Rule 354: iteration_statement ::= upc_forall ( declaration ; ; ) statement + // Rule 357: iteration_statement ::= upc_forall ( declaration ; ; ) statement // - case 354: { action. consumeStatementUPCForallLoop(true, false, false, false); break; + case 357: { action. consumeStatementUPCForallLoop(true, false, false, false); break; } // - // Rule 356: affinity ::= continue + // Rule 359: affinity ::= continue // - case 356: { action. consumeToken(); break; + case 359: { action. consumeToken(); break; } diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java index 06762d0bdf5..f18ccfbc322 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java @@ -45,7 +45,7 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 1,5,1,3,3,3,3,3,3,3, 3,3,3,3,1,1,2,1,0,1, 3,1,1,1,1,1,1,1,1,3, - 3,2,2,4,1,2,1,1,1,2, + 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, @@ -62,156 +62,158 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 6,6,3,5,1,1,2,3,4,1, 2,1,3,1,1,3,2,1,1,1, 1,2,1,2,3,1,1,1,3,1, - 2,2,2,3,4,5,1,5,1,1, - 3,3,4,1,1,2,3,2,3,2, - 1,0,1,2,1,1,1,1,1,2, - 4,3,6,2,4,1,1,1,1,1, - 2,2,2,1,1,2,1,1,1,3, - 3,2,1,3,2,3,2,3,2,2, - 11,10,10,9,10,9,9,8,10,9, - 9,8,9,8,8,7,10,9,9,8, - 9,8,8,7,1,1,-39,0,0,0, - 0,0,0,0,0,-72,0,0,0,0, - 0,0,0,0,0,0,-2,0,0,0, - 0,-4,-17,-19,-77,0,0,0,0,0, - -126,0,0,0,0,0,0,0,0,0, + 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,1,2,2,2,1,1,2,1, + 1,1,3,3,2,1,3,2,3,2, + 3,2,2,11,10,10,9,10,9,9, + 8,10,9,9,8,9,8,8,7,10, + 9,9,8,9,8,8,7,1,1,-39, + 0,0,0,0,0,0,0,0,-72,0, + 0,0,0,0,0,0,0,0,0,-2, + 0,0,0,0,-4,-17,-32,-19,0,0, + 0,0,0,-126,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-5,0,0,0,0,0,0, - 0,0,0,-6,0,0,0,0,0,0, - 0,0,0,0,0,0,-3,0,0,0, + 0,0,0,0,-186,0,-9,0,0,0, + 0,0,0,0,0,0,0,-5,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-20,-21,0,-22, - -23,-24,0,-177,0,0,0,0,0,0, + -36,0,-6,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-172,0,0,0,0,0,0, + 0,0,0,-200,-33,0,0,-198,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-7,0,0,0,0,0,0, - -40,0,0,0,0,0,0,0,0,-25, - -26,-27,-51,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-28,-29,0,-52, - 0,0,0,0,0,0,0,0,-74,0, - 0,0,-75,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-173,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-135,-111,0,0,0,0,0, + 0,0,0,0,0,0,0,-109,-212,-83, + -84,-147,-37,-57,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-89,0, - -90,-78,-32,0,0,0,0,-192,0,0, - 0,0,0,0,0,0,-91,0,0,0, + 0,-20,-21,0,0,0,0,0,0,0, + 0,-80,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-22,0,-75,0,0, 0,0,0,0,0,0,0,0,0,0, - -8,0,0,0,0,0,0,0,0,0, - -9,0,0,0,0,0,0,0,0,0, - 0,0,0,-118,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-135,-111, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-131,0,0,0,0,0, - 0,0,0,-92,0,0,0,0,0,0, - 0,0,0,0,0,-93,0,-30,0,0, - 0,0,0,0,0,0,-112,0,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,-60,0,0, - 0,0,0,0,0,0,-130,0,0,0, - 0,0,0,0,0,0,0,-61,0,0, + 0,0,0,0,0,0,-192,-23,0,0, + 0,0,-194,0,0,0,0,0,0,0, + 0,-74,0,0,0,0,0,0,0,0, + 0,0,0,-24,0,0,-77,0,-81,-70, + -71,-25,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,-62,0,0, - 0,0,0,0,0,0,-138,0,0,0, - 0,0,0,0,0,0,0,-63,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-64,0,0, - 0,0,0,0,0,0,-153,0,0,0, - 0,0,0,0,0,0,0,-65,0,0, + 0,0,0,-146,0,0,-3,0,0,0, + 0,0,0,0,0,-112,0,0,0,0, + 0,0,0,0,0,0,-118,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,-179,0,0,0, - 0,0,0,0,0,0,0,-67,0,0, + 0,0,0,0,0,-115,0,-131,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-68,0,0, - 0,0,0,0,0,0,-94,0,0,0, - 0,0,0,0,0,0,0,-69,0,0, - 0,0,0,0,0,0,-147,0,0,0, - 0,0,0,0,0,0,0,-151,0,0, - 0,0,0,0,0,0,-95,0,0,0, - 0,0,0,0,0,0,0,-152,0,0, - 0,0,0,0,0,0,-146,0,0,0, - 0,0,0,0,0,0,0,-175,0,0, - 0,0,0,0,0,0,-83,0,0,0, - 0,0,0,0,0,0,-189,0,0,0, - 0,0,0,0,0,-167,0,0,0,0, + 0,0,0,0,0,0,0,0,-26,0, + 0,-30,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-49,0,0,0,0,0,0,0,0, + 0,-59,0,0,0,0,0,0,0,0, + -130,0,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,0,0,0, + 0,-61,0,0,0,0,0,0,0,0, + -138,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,0,0, + 0,-63,0,0,0,0,0,0,0,0, + -154,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,-65,0,0,0,0,0,0,0,0, + -181,0,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, + -182,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,-69,0,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,-199, + 0,-152,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-96,-97, - -33,-158,-191,0,-50,0,0,0,0,0, - 0,0,0,-209,0,0,0,0,0,0, + 0,-153,0,0,0,0,0,0,0,0, + -159,0,0,0,0,0,0,0,0,0, + 0,-176,0,0,0,0,0,0,0,0, + -86,0,0,0,0,0,0,0,0,0, + -191,0,0,0,0,0,0,0,0,-168, 0,0,0,0,0,0,0,0,0,0, - 0,0,-125,0,0,0,0,0,0,0, - 0,-98,0,0,0,0,0,0,0,0, - 0,-134,0,-99,-84,0,0,-100,-128,-101, - 0,-57,0,0,0,0,0,0,0,0, + -193,0,-207,-204,0,-49,0,0,0,0, + 0,0,0,0,-197,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-155,-117,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-162, - 0,-41,0,0,0,0,0,0,0,0, - 0,0,-180,0,-196,-86,-36,-159,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,-15,0,0,0,0,0, - 0,0,-88,0,0,-37,0,-58,0,0, - 0,0,0,0,0,0,-174,0,0,0, - 0,0,0,0,0,0,0,0,-194,0, - 0,-81,0,0,0,0,-54,0,0,0, + 0,0,-27,0,0,0,-28,0,-50,0, + 0,0,0,0,0,0,0,-211,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-184,0,0,0,0,0,0,0,-102, - -103,0,0,0,0,0,0,0,0,-55, + 0,0,0,0,0,0,-125,0,0,0, + 0,0,0,0,0,-175,0,0,0,0, + 0,0,0,0,0,-134,-133,-29,-215,-163, + 0,-89,-113,-90,0,-58,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-82,-186,-76,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-208, - -108,-70,-183,-71,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-115,-133,0, + 0,0,0,0,0,0,0,0,-156,-117, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-108,0,-7,0,0,0,0, + 0,-76,0,0,0,0,-91,0,-92,-78, + 0,-157,0,0,0,0,0,0,0,0, + -88,-177,0,0,0,0,0,0,0,-8, 0,0,0,0,0,0,0,0,0,0, - 0,-104,0,0,-190,-79,-166,0,0,-53, - 0,0,0,0,0,0,0,0,-105,0, - 0,-110,-106,-120,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-82, + 0,0,0,0,-54,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-188, + 0,0,0,0,0,-93,0,-206,0,0, + 0,0,0,-94,0,0,0,0,-55,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-110,-210,0,0,0,0,0,0, + 0,0,0,-95,-96,-97,0,-98,0,-51, + 0,0,0,0,0,0,0,0,-161,0, + 0,0,-15,0,0,0,0,0,0,0, + 0,0,0,0,0,-35,-120,-122,-99,-100, + 0,0,0,0,0,0,0,0,-52,0, + 0,0,0,0,0,0,0,-79,0,0, + -53,0,0,0,0,0,0,0,0,-101, + 0,0,-167,-123,0,0,-127,0,0,0, + 0,0,0,0,-102,0,-103,0,0,0, 0,-45,0,0,0,0,0,0,0,0, - -80,0,-10,0,0,0,0,0,0,0, - -210,0,-46,0,0,0,0,0,0,0, - 0,0,0,-47,0,0,0,0,0,0, - 0,0,-85,0,-48,0,0,0,0,0, - 0,0,0,-201,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-107,-38,-122, - -123,-127,0,0,0,0,-87,0,0,0, - 0,-114,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-140,0,0,0, - 0,0,0,-119,0,0,0,0,0,0, - -132,-121,0,0,0,0,-139,0,0,0, - 0,0,0,-154,0,0,0,0,0,0, - 0,0,0,0,0,-124,0,-16,0,0, - 0,0,0,0,-11,0,0,0,0,0, - 0,-12,0,0,0,0,0,0,-13,0, - 0,0,0,0,0,-14,0,0,0,0, - 0,0,-18,-31,-42,0,0,0,0,0, - 0,0,0,-43,0,0,0,0,0,0, - -44,0,0,0,0,0,0,-193,0,0, - -142,-176,-145,-148,-163,-136,0,0,-113,0, - -116,0,0,0,0,0,-129,0,-168,0, - 0,0,-73,0,0,0,0,0,0,0, - 0,0,0,-141,-169,-171,0,0,0,0, - 0,-160,0,0,0,-34,-143,-1,-161,-173, - -204,-165,-156,-181,0,0,0,0,-200,0, - 0,0,0,0,-211,0,0,0,0,0, - 0,0,0,0,0,-109,0,0,0,0, - 0,0,0,0,-182,0,-157,0,-197,0, - 0,0,0,0,0,0,0,0,0,-185, - 0,0,0,0,0,0,0,-137,0,0, - 0,-187,-144,0,0,-170,0,-198,-188,0, - 0,0,0,0,-202,0,0,0,-164,-149, - 0,0,0,0,-150,0,0,0,0,0, - 0,0,-206,0,0,0,0,0,-178,0, + 0,0,-46,0,0,0,0,0,0,0, + 0,0,0,0,-47,0,0,0,0,0, + 0,0,0,-85,0,-48,0,0,0,0, + 0,0,0,0,-203,0,-10,0,0,0, + 0,0,0,0,0,0,0,0,-104,-38, + -105,-106,-107,0,0,0,0,-87,0,-40, + 0,0,0,0,0,0,0,-183,-164,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-140,0,-119,-121,-124,0,0,0, + 0,0,0,0,0,0,0,-41,0,0, + 0,0,0,0,0,-16,0,0,0,0, + 0,0,-139,0,0,0,0,0,0,-155, + 0,0,0,0,0,0,-142,-145,-148,-136, + -149,-169,0,-170,-174,0,0,0,0,0, + -11,0,0,0,0,0,0,-12,0,0, + 0,0,0,0,-13,0,0,0,0,0, + 0,-14,0,0,0,0,0,0,-18,-31, + -42,0,0,0,0,0,0,0,0,-43, + 0,0,0,0,0,0,-44,0,0,0, + 0,0,0,-202,0,0,-214,-56,-179,-116, + -1,0,0,0,-141,-129,0,0,0,0, + 0,0,-128,0,0,-196,0,0,-73,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-158,0,0,0,0,-143,0,0, + 0,0,0,-162,0,0,0,-166,0,-144, + 0,0,0,0,0,-171,0,-184,0,0, + 0,0,0,0,-172,0,0,0,0,0, + -199,0,0,0,-208,0,-137,0,0,0, + 0,0,-185,0,0,0,0,0,0,-150, 0,0,0,0,0,0,0,0,0,0, - -203,0,0,-205,-35,-56,0,0,0,0, - 0,0,0,0,0,0,0,-207,0,0, + 0,0,0,-132,0,0,-34,0,0,0, + 0,0,0,0,0,0,0,0,0,-151, + 0,-165,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-160,0,0,0, + 0,0,0,0,-180,0,-178,0,0,0, + -187,-189,-190,-205,0,0,-213,-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,0,0,0, @@ -225,189 +227,191 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 85,9,20,20,25,25,28,28,69,69, + 86,9,20,20,25,25,28,28,70,70, 1,1,1,1,2,2,2,3,3,4, - 4,4,4,4,4,4,4,53,53,70, - 70,5,5,5,5,5,5,5,5,5, + 4,4,4,4,4,4,4,53,53,71, + 71,5,5,5,5,5,5,5,5,5, 5,6,6,7,7,7,7,8,8,8, 10,10,10,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,96,48,42,86,86, - 73,73,43,97,97,97,97,97,97,97, - 98,98,98,99,99,104,104,105,105,100, - 100,101,101,101,107,107,102,102,102,102, - 103,103,103,103,103,106,106,26,26,26, - 26,26,30,30,30,79,79,74,74,74, - 74,75,75,75,76,76,76,77,77,77, - 78,78,78,108,108,109,109,110,31,33, + 19,19,19,19,19,98,48,42,87,87, + 74,74,43,99,99,99,99,99,99,99, + 100,100,100,101,101,106,106,107,107,102, + 102,103,103,103,109,109,104,104,104,104, + 105,105,105,105,105,108,108,26,26,26, + 26,26,30,30,30,80,80,75,75,75, + 75,76,76,76,77,77,77,78,78,78, + 79,79,79,110,110,111,111,112,31,33, 33,33,33,33,54,56,56,56,56,56, - 56,56,56,56,56,56,56,66,66,29, - 29,63,63,63,63,64,64,64,57,57, - 58,58,50,50,50,34,87,87,80,81, - 81,81,65,65,82,82,83,83,67,67, + 56,56,56,56,56,56,56,67,67,29, + 29,64,64,64,64,65,65,65,57,57, + 58,58,50,50,50,34,88,88,81,82, + 82,82,66,66,83,83,84,84,68,68, 21,22,22,22,32,49,49,35,35,35, - 35,38,38,40,36,36,37,41,41,111, - 111,39,112,112,88,88,27,27,27,27, - 27,27,27,27,27,84,51,51,51,51, - 60,60,59,59,59,61,61,52,52,89, - 89,71,71,62,62,62,44,44,44,45, - 46,46,46,47,47,47,47,55,55,72, - 72,72,72,68,90,91,91,92,92,93, - 93,113,113,114,114,115,115,115,115,117, - 117,116,116,116,118,118,85,85,1,1, - 1,5,5,5,21,21,23,23,24,24, - 94,94,94,97,119,119,119,119,119,119, - 119,102,102,102,102,102,102,102,102,102, - 102,102,102,102,102,102,102,102,102,102, - 102,102,102,102,102,120,120,1,14,19, - 15,383,538,43,457,384,982,460,458,462, - 461,521,520,537,522,73,90,230,133,210, - 314,315,353,920,70,38,20,135,132,134, - 158,710,14,19,15,383,538,43,457,384, - 927,460,458,462,461,521,520,537,522,73, - 277,137,271,164,823,14,19,15,383,313, - 141,144,147,150,823,14,19,15,383,312, - 382,1356,1242,1294,1433,1467,1213,786,14,19, - 15,383,538,43,457,384,279,460,458,462, - 461,521,520,537,522,73,90,483,305,280, - 68,223,333,967,710,14,19,15,383,538, - 43,457,384,927,460,458,462,461,521,520, - 537,522,73,277,470,14,19,15,383,538, - 43,457,384,927,460,458,462,461,521,520, - 537,522,73,277,823,14,19,15,383,311, - 382,786,14,19,15,383,41,43,617,279, - 14,296,105,786,14,19,15,383,41,43, - 457,384,280,460,458,1124,1185,166,228,281, - 786,14,19,15,383,41,43,457,384,441, - 460,1128,282,394,14,19,15,383,538,43, - 457,384,1599,460,458,462,461,521,520,537, - 522,73,707,236,340,860,14,19,15,383, - 538,43,457,384,1607,460,458,462,461,521, - 520,537,522,73,747,133,210,314,315,897, - 1666,919,114,141,135,132,134,158,748,14, - 19,15,383,538,43,457,384,803,460,458, - 462,461,521,520,537,522,73,277,137,272, - 164,823,14,19,15,383,40,141,144,147, - 150,786,14,19,15,383,41,39,1356,1242, - 1294,1433,1467,1213,597,14,19,15,383,41, - 43,457,384,283,460,458,462,461,521,520, - 537,522,92,23,322,432,14,19,15,383, - 538,43,457,384,941,460,458,462,461,521, - 520,537,522,73,827,237,143,787,786,14, - 19,15,383,538,43,457,384,982,460,458, - 462,461,521,520,537,522,73,91,786,14, - 19,15,383,538,43,457,384,238,460,458, - 462,461,521,520,537,522,73,84,786,14, - 19,15,383,538,43,457,384,982,460,458, - 462,461,521,520,537,522,73,83,786,14, - 19,15,383,538,43,457,384,240,460,458, - 462,461,521,520,537,522,73,82,786,14, - 19,15,383,538,43,457,384,982,460,458, - 462,461,521,520,537,522,73,81,786,14, - 19,15,383,538,43,457,384,320,460,458, - 462,461,521,520,537,522,73,80,786,14, - 19,15,383,538,43,457,384,982,460,458, - 462,461,521,520,537,522,73,79,786,14, - 19,15,383,538,43,457,384,239,460,458, - 462,461,521,520,537,522,73,78,786,14, - 19,15,383,538,43,457,384,982,460,458, - 462,461,521,520,537,522,73,77,786,14, - 19,15,383,538,43,457,384,241,460,458, - 462,461,521,520,537,522,73,76,786,14, - 19,15,383,538,43,457,384,198,460,458, - 462,461,521,520,537,522,73,75,786,14, - 19,15,383,538,43,457,384,898,460,458, - 462,461,521,520,537,522,73,74,786,14, - 19,15,383,538,43,457,384,241,460,458, - 462,461,521,520,537,522,73,867,786,14, - 19,15,383,538,43,457,384,880,460,458, - 462,461,521,520,537,522,73,1183,786,14, - 19,15,383,41,43,457,384,317,460,458, - 462,461,521,520,537,522,92,786,14,19, - 15,383,41,43,457,384,946,460,458,462, - 461,521,520,537,522,92,1494,1640,1592,285, - 1626,1588,786,14,19,15,383,41,43,457, - 1070,786,14,19,15,383,41,43,457,384, - 209,460,458,462,461,521,520,537,522,92, - 786,14,19,15,383,41,43,457,384,1709, - 460,458,462,461,521,520,537,522,92,287, - 753,141,441,946,1641,786,14,19,15,383, - 41,43,457,1112,786,14,19,15,383,41, - 43,457,384,200,460,458,462,461,521,520, - 537,522,92,786,14,19,15,383,41,43, - 457,384,791,460,458,462,461,521,520,537, - 522,72,510,1262,544,374,1751,201,412,531, - 469,1072,786,14,19,15,383,41,43,457, - 384,22,460,458,462,461,521,520,1369,270, - 250,210,314,315,1502,400,754,215,1643,218, - 1677,220,221,226,1675,1698,263,602,385,268, - 983,259,786,14,19,15,383,41,43,684, - 273,274,270,982,260,880,652,716,935,1725, - 215,1643,218,1677,220,221,226,574,182,263, - 602,385,268,242,1644,823,14,19,15,383, - 33,257,1613,340,1122,1526,716,1328,786,14, - 19,15,383,41,43,457,384,755,460,458, - 462,461,521,1373,133,210,314,315,1754,755, - 256,16,71,136,132,134,158,786,14,19, - 15,383,41,43,457,384,288,460,458,462, - 461,1270,565,133,210,314,315,138,290,164, - 342,415,143,132,134,158,142,145,148,151, - 786,14,19,15,383,41,43,457,384,270, - 460,458,462,1271,128,727,438,216,1643,218, - 1677,220,221,226,1715,1601,265,602,385,268, - 727,6,716,754,716,133,210,314,315,1715, - 391,273,1679,270,146,132,134,158,716,716, - 215,1643,218,1677,220,221,226,1458,228,21, - 263,602,385,268,1649,215,1643,218,1677,220, - 221,226,580,269,275,755,509,983,1328,1649, - 786,14,19,15,383,41,43,457,384,522, - 460,1130,356,376,6,196,198,133,210,314, - 315,1129,1708,1624,1609,181,140,132,134,158, - 197,198,786,14,19,15,383,41,43,457, - 384,439,696,786,14,19,15,383,41,38, - 139,677,164,786,14,19,15,383,41,43, - 457,384,207,907,786,14,19,15,383,41, - 43,457,384,185,947,786,14,19,15,383, - 41,43,457,384,480,1069,216,1643,218,1677, - 220,221,226,1715,133,210,314,315,162,603, - 6,6,634,149,132,134,158,242,549,1637, - 1703,1720,559,14,19,15,383,41,35,215, - 1643,218,1677,220,221,226,270,6,133,210, - 314,315,243,1644,572,316,1639,152,132,134, - 158,944,610,263,602,385,268,559,14,19, - 15,383,41,35,559,14,19,15,383,41, - 35,262,251,210,314,315,646,321,823,14, - 19,15,383,32,244,786,14,19,15,383, - 41,37,786,14,19,15,383,41,36,786, - 14,19,15,383,41,35,786,14,19,15, - 383,41,34,6,6,786,14,19,15,383, - 41,46,357,357,786,14,19,15,383,41, - 45,786,14,19,15,383,41,44,982,195, - 195,6,948,6,6,280,489,1459,1459,531, - 1642,840,1706,464,1295,86,86,531,287,373, - 574,1216,1216,672,14,19,15,383,41,42, - 250,210,314,315,55,957,983,1122,250,210, - 314,315,716,574,1187,1312,680,112,635,169, - 654,982,283,718,716,437,574,437,574,692, - 195,574,1666,255,26,257,1822,276,1595,1501, - 1329,289,1596,195,193,195,604,1501,195,222, - 225,1595,1822,1595,190,840,1595,171,88,912, - 86,1170,1719,675,574,286,306,190,574,190, - 983,938,190,270,1357,1719,1690,1719,508,1702, - 1719,1122,983,576,224,1122,576,574,980,983, - 265,602,385,268,1822,441,1822,1822,184,226, - 531,1822,1314,377,1122,956,1262,255,574,1822, - 183,255,1609,716,1329,1609,1596,202,1733,968, - 1596,250,210,314,315,195,251,210,314,315, - 255,983,1822,1595,983,6,6,1632,227,1596, - 251,210,314,315,437,437,1411,1768,715,191, - 206,1822,1822,206,1822,1822,1822,192,1822,203, - 1739,1822,278,1822,1822,1006,1625,1822,1073,1625, - 1822,1822,1822,231,1822,1822,1822,86,86,1822, - 1822,1822,1822,366,1352,1822,0,317,654,0, - 17,178,0,18,177,0,1,2045,0,1, - 2056,0 + 35,38,38,40,36,36,37,41,41,113, + 113,39,114,114,89,89,27,27,27,27, + 27,27,27,27,27,85,51,51,51,51, + 60,60,59,59,59,61,61,52,52,90, + 90,72,72,62,62,62,44,44,44,45, + 46,46,46,47,47,47,47,55,55,55, + 63,91,73,73,73,73,69,92,93,93, + 94,94,95,95,115,115,116,116,117,117, + 117,117,119,119,118,118,118,120,120,86, + 86,1,1,1,5,5,5,21,21,23, + 23,24,24,96,96,96,99,121,121,121, + 121,121,121,121,104,104,104,104,104,104, + 104,104,104,104,104,104,104,104,104,104, + 104,104,104,104,104,104,104,104,122,122, + 1,14,19,15,386,1168,43,532,388,909, + 556,533,634,608,739,642,1117,1113,73,90, + 74,133,210,317,318,117,183,125,174,20, + 135,132,134,158,707,14,19,15,386,1168, + 43,532,388,512,556,533,634,608,739,642, + 1117,1113,73,277,137,509,164,821,14,19, + 15,386,41,39,141,144,147,150,858,14, + 19,15,386,316,385,1388,639,1270,1454,1488, + 1241,641,270,858,14,19,15,386,315,282, + 216,1232,218,1663,220,221,226,1561,23,265, + 1230,637,268,283,638,125,1649,674,783,14, + 19,15,386,1168,43,532,388,512,556,533, + 634,608,739,642,1117,1113,73,277,470,14, + 19,15,386,1168,43,532,388,512,556,533, + 634,608,739,642,1117,1113,73,277,354,674, + 564,577,225,641,821,14,19,15,386,41, + 43,532,388,282,556,533,634,608,739,642, + 1481,1561,68,188,192,270,22,283,16,1515, + 1516,1063,750,284,216,1232,218,1663,220,221, + 226,1561,265,1230,637,268,242,285,396,14, + 19,15,386,1168,43,532,388,1173,556,533, + 634,608,739,642,1117,1113,73,686,236,341, + 895,14,19,15,386,1168,43,532,388,1636, + 556,533,634,608,739,642,1117,1113,73,771, + 133,210,317,318,1565,1242,288,533,566,135, + 132,134,158,745,14,19,15,386,1168,43, + 532,388,353,556,533,634,608,739,642,1117, + 1113,73,277,137,250,164,1562,405,319,978, + 641,641,610,141,144,147,150,558,14,19, + 15,386,41,35,1388,639,1270,1454,1488,1241, + 133,210,317,318,271,1483,21,243,286,143, + 132,134,158,508,845,207,1561,821,14,19, + 15,386,1168,43,532,388,909,556,533,634, + 608,739,642,1117,1113,73,90,595,14,19, + 15,386,41,43,532,388,238,556,533,634, + 608,739,642,1117,1113,92,641,325,433,14, + 19,15,386,1168,43,532,388,1695,556,533, + 634,608,739,642,1117,1113,73,851,237,368, + 811,269,821,14,19,15,386,1168,43,532, + 388,385,556,533,634,608,739,642,1117,1113, + 73,91,821,14,19,15,386,1168,43,532, + 388,909,556,533,634,608,739,642,1117,1113, + 73,84,821,14,19,15,386,1168,43,532, + 388,240,556,533,634,608,739,642,1117,1113, + 73,83,821,14,19,15,386,1168,43,532, + 388,909,556,533,634,608,739,642,1117,1113, + 73,82,821,14,19,15,386,1168,43,532, + 388,323,556,533,634,608,739,642,1117,1113, + 73,81,821,14,19,15,386,1168,43,532, + 388,909,556,533,634,608,739,642,1117,1113, + 73,80,821,14,19,15,386,1168,43,532, + 388,239,556,533,634,608,739,642,1117,1113, + 73,79,821,14,19,15,386,1168,43,532, + 388,909,556,533,634,608,739,642,1117,1113, + 73,78,821,14,19,15,386,1168,43,532, + 388,241,556,533,634,608,739,642,1117,1113, + 73,77,821,14,19,15,386,1168,43,532, + 388,909,556,533,634,608,739,642,1117,1113, + 73,76,821,14,19,15,386,1168,43,532, + 388,242,556,533,634,608,739,642,1117,1113, + 73,75,821,14,19,15,386,1168,43,532, + 388,909,556,533,634,608,739,642,1117,1113, + 73,74,821,14,19,15,386,1168,43,532, + 388,290,556,533,634,608,739,642,1117,1113, + 73,891,821,14,19,15,386,1168,43,532, + 388,353,556,533,634,608,739,642,1117,1113, + 73,931,821,14,19,15,386,41,43,532, + 388,602,556,533,634,608,739,642,1117,1113, + 92,821,14,19,15,386,41,43,532,388, + 878,556,533,634,608,739,642,1117,1113,92, + 1517,878,415,845,353,971,821,14,19,15, + 386,41,43,532,1336,821,14,19,15,386, + 41,43,532,388,209,556,533,634,608,739, + 642,1117,1113,92,821,14,19,15,386,41, + 43,532,388,1783,556,533,634,608,739,642, + 1117,1113,92,448,1784,509,1787,182,1298,821, + 14,19,15,386,41,43,532,1338,821,14, + 19,15,386,41,43,532,388,200,556,533, + 634,608,739,642,1117,1113,92,821,14,19, + 15,386,41,43,532,388,533,556,533,634, + 608,739,642,1117,1113,72,476,641,60,16, + 406,201,932,196,955,1011,821,14,19,15, + 386,41,43,532,388,291,556,533,634,608, + 739,1482,275,270,250,210,317,318,182,402, + 679,215,1232,218,1663,220,221,226,1688,1707, + 263,1230,637,268,6,259,858,14,19,15, + 386,314,439,394,273,274,270,195,260,239, + 91,1630,754,1734,215,1232,218,1663,220,221, + 226,341,282,263,1230,637,268,273,1498,270, + 858,14,19,15,386,40,257,272,718,225, + 278,716,133,210,317,318,263,1230,637,268, + 1001,136,132,134,158,821,14,19,15,386, + 41,43,532,388,716,556,533,634,608,1415, + 81,133,210,317,318,138,288,164,909,1064, + 146,132,134,158,319,142,145,148,151,821, + 14,19,15,386,41,43,532,388,292,556, + 533,634,1417,79,81,215,1232,218,1663,220, + 221,226,1643,1064,334,731,640,289,677,1624, + 821,14,19,15,386,41,43,532,388,641, + 556,533,1369,858,14,19,15,386,33,215, + 1232,218,1663,220,221,226,6,6,6,296, + 197,196,198,1624,276,677,1635,1668,464,821, + 14,19,15,386,41,43,532,388,508,556, + 1370,821,14,19,15,386,41,43,532,388, + 245,556,1400,406,6,197,198,307,86,133, + 210,317,318,1680,369,579,1720,751,140,132, + 134,158,821,14,19,15,386,41,43,532, + 388,181,1296,821,14,19,15,386,41,43, + 532,388,139,1304,164,821,14,19,15,386, + 41,43,532,388,1024,1334,821,14,19,15, + 386,41,43,532,388,543,1335,821,14,19, + 15,386,41,38,1064,133,210,317,318,722, + 69,606,718,572,149,132,134,158,1047,622, + 821,14,19,15,386,41,43,1227,641,637, + 215,1232,218,1663,220,221,226,270,1290,133, + 210,317,318,6,1498,716,727,755,152,132, + 134,158,1674,222,263,1230,637,268,821,14, + 19,15,386,41,43,1229,858,14,19,15, + 386,32,262,558,14,19,15,386,41,35, + 558,14,19,15,386,41,35,6,6,6, + 138,756,443,324,880,728,1678,1686,1777,193, + 244,821,14,19,15,386,41,37,821,14, + 19,15,386,41,36,821,14,19,15,386, + 41,35,821,14,19,15,386,41,34,6, + 6,821,14,19,15,386,41,46,360,360, + 821,14,19,15,386,41,45,821,14,19, + 15,386,41,44,726,195,195,615,6,6, + 803,632,1842,1480,1480,56,196,677,468,579, + 677,86,86,196,579,1842,533,513,513,669, + 14,19,15,386,41,42,1166,250,210,317, + 318,195,1842,479,250,210,317,318,113,1499, + 86,441,640,86,170,293,1479,579,284,309, + 415,508,255,579,1842,190,415,579,803,1167, + 224,1560,1170,1752,195,406,1734,579,1842,1842, + 195,51,1499,1750,195,641,1842,766,1499,1562, + 579,1842,1499,679,1166,1562,579,380,190,1842, + 196,982,1701,26,190,1403,1752,1166,190,1842, + 227,1781,1752,1166,364,1782,1752,485,228,415, + 255,250,210,317,318,1842,677,1167,206,1560, + 531,1842,227,255,206,251,210,317,318,255, + 1705,579,1560,1050,1564,1842,1349,804,1560,1061, + 1564,251,210,317,318,1070,579,406,195,88, + 1775,406,406,406,406,1842,1499,406,827,1842, + 1788,1842,1842,1166,1842,1842,251,210,317,318, + 1842,1842,191,1842,1842,279,1842,1842,1842,184, + 183,202,203,231,1842,1169,1842,1842,1842,256, + 1842,1842,1842,1842,641,1842,0,320,697,0, + 17,178,0,18,177,0,1,2065,0,1, + 2076,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -418,114 +422,123 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermCheck { public final static byte termCheck[] = {0, 0,1,2,3,4,0,6,7,8,9, - 10,11,12,0,14,15,16,17,18,19, + 10,11,12,13,14,0,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,0,38,39, 40,41,42,43,44,45,46,47,48,49, - 13,51,52,53,0,1,0,3,0,5, - 6,7,8,9,10,11,12,0,0,0, - 0,17,18,19,20,21,6,7,8,9, - 10,11,12,14,15,0,73,17,18,19, - 20,21,38,39,40,41,42,43,44,45, - 46,47,48,49,0,51,52,53,0,55, - 56,0,1,0,3,2,5,6,7,8, - 9,10,11,12,57,58,13,0,17,18, - 19,20,21,6,7,8,9,10,11,12, - 0,1,0,3,17,18,19,20,21,38, - 39,40,41,42,43,44,45,46,47,48, - 49,0,51,52,53,0,55,56,0,1, - 0,3,2,5,6,7,8,9,10,11, - 12,77,78,13,0,17,18,19,20,21, - 6,7,8,9,10,11,12,0,37,57, - 58,17,18,19,20,21,38,39,40,41, - 42,43,44,45,46,47,48,49,0,51, - 52,53,0,55,56,0,1,0,3,0, - 5,6,7,8,9,10,11,12,16,74, - 0,0,17,18,19,20,21,6,7,8, - 9,10,11,12,57,58,0,1,17,18, - 19,20,21,38,39,40,41,42,43,44, - 45,46,47,48,49,0,51,52,53,0, - 55,56,0,1,5,3,0,5,6,7, - 8,9,10,11,12,0,69,57,58,17, - 18,19,20,21,0,0,79,80,81,82, - 83,84,85,86,87,88,0,1,89,3, + 0,1,52,53,54,0,1,0,3,0, + 5,6,7,8,9,10,11,0,0,14, + 2,4,4,0,19,20,21,22,0,24, + 0,1,2,15,6,7,8,9,10,11, + 0,0,2,38,39,40,41,42,43,44, + 45,46,47,48,49,15,51,52,53,54, + 60,56,0,1,0,3,0,5,6,7, + 8,9,10,11,0,1,14,3,69,62, + 63,19,20,21,22,0,24,0,79,80, + 81,82,83,84,85,86,87,88,68,0, 38,39,40,41,42,43,44,45,46,47, - 48,49,0,51,52,53,0,55,56,0, - 1,0,3,57,58,6,7,8,9,10, - 11,12,0,37,75,0,17,18,19,20, - 21,6,7,8,9,10,11,72,64,65, - 66,67,0,0,1,0,3,38,39,40, + 48,49,89,51,52,53,54,0,56,0, + 1,55,3,0,5,6,7,8,9,10, + 11,0,0,14,2,12,13,0,19,20, + 21,22,55,24,0,0,0,15,4,17, + 18,6,7,8,9,10,11,38,39,40, 41,42,43,44,45,46,47,48,49,0, - 51,52,53,0,1,2,3,4,5,0, - 1,2,70,71,5,12,54,14,15,16, - 37,0,13,72,0,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 16,0,1,2,3,4,5,0,0,2, - 0,69,5,12,4,14,15,16,73,50, - 13,13,59,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,0,0, - 1,2,3,4,5,64,65,66,67,0, - 1,2,0,14,15,16,4,50,0,0, - 59,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,0,0,0, - 1,2,0,4,6,7,8,9,10,11, - 12,0,13,0,55,17,18,19,20,21, - 0,0,64,65,66,67,6,7,8,9, - 10,11,54,0,62,63,38,39,40,41, - 42,43,44,45,46,47,48,49,0,1, - 2,3,4,5,0,1,2,60,4,0, - 0,0,14,15,16,0,1,13,3,0, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,74,0,1,2,3, - 4,5,0,0,2,2,4,4,37,0, - 14,15,16,70,71,13,13,59,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,0,0,1,2,3,4,6, - 7,8,9,10,11,0,37,68,14,15, - 16,0,1,0,3,59,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,0,1,2,3,4,0,1,2,0, - 4,0,37,0,5,14,15,16,37,0, - 56,0,0,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,0, - 1,2,3,4,0,0,0,0,0,5, - 5,0,69,14,15,16,0,1,2,50, - 13,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,0,1,2, - 3,4,0,0,0,1,0,3,5,68, - 0,14,15,16,50,50,14,15,54,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,0,1,2,3,4, - 0,0,0,1,68,3,0,0,0,14, - 15,16,0,50,14,15,4,22,23,24, + 51,52,53,54,0,56,0,1,0,3, + 0,5,6,7,8,9,10,11,0,15, + 14,0,4,61,0,19,20,21,22,0, + 24,64,65,66,67,74,62,63,76,0, + 64,65,66,67,38,39,40,41,42,43, + 44,45,46,47,48,49,0,51,52,53, + 54,0,56,0,1,61,3,0,5,6, + 7,8,9,10,11,0,15,14,57,58, + 62,63,19,20,21,22,0,24,64,65, + 66,67,6,7,8,9,10,11,0,70, + 71,38,39,40,41,42,43,44,45,46, + 47,48,49,0,51,52,53,54,0,56, + 0,1,61,3,57,58,6,7,8,9, + 10,11,0,0,14,2,4,4,0,19, + 20,21,22,0,24,70,71,0,15,6, + 7,8,9,10,11,57,58,0,38,39, + 40,41,42,43,44,45,46,47,48,49, + 57,58,52,53,54,0,1,2,3,4, + 5,0,1,2,0,0,5,12,13,14, + 5,16,17,18,0,1,15,3,23,15, 25,26,27,28,29,30,31,32,33,34, - 35,36,0,1,2,3,4,0,0,0, - 0,0,0,0,0,0,14,15,16,0, - 0,0,0,4,22,23,24,25,26,27, + 35,36,0,1,2,3,4,5,0,72, + 2,0,0,5,12,13,14,0,16,17, + 18,50,0,15,59,23,51,25,26,27, 28,29,30,31,32,33,34,35,36,0, - 1,2,3,4,62,63,0,0,0,0, - 0,0,0,14,15,16,0,0,0,0, - 0,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,0,0,2,60, - 4,5,6,7,8,9,10,11,12,13, - 13,0,1,17,18,19,20,21,0,0, - 2,2,4,5,6,7,8,9,10,11, - 12,13,13,54,0,17,18,19,20,21, - 0,22,23,0,4,0,50,0,0,6, - 7,8,9,10,11,0,0,0,61,0, - 13,6,7,8,9,10,11,0,50,0, - 0,60,0,6,7,8,9,10,11,0, - 61,0,0,0,5,0,5,5,0,0, - 0,0,0,0,60,76,0,0,0,54, - 0,0,62,63,0,0,0,0,61,0, - 54,0,0,0,0,0,0,0,0,0, + 1,2,3,4,5,0,1,2,0,4, + 2,12,13,0,0,16,17,18,50,5, + 15,59,23,15,25,26,27,28,29,30, + 31,32,33,34,35,36,37,0,0,1, + 2,69,4,6,7,8,9,10,11,0, + 51,14,0,15,77,78,19,20,21,22, + 0,24,0,1,50,3,6,7,8,9, + 10,11,0,1,2,38,39,40,41,42, + 43,44,45,46,47,48,49,0,1,2, + 3,4,5,0,1,0,3,0,0,12, + 13,0,5,16,17,18,0,1,0,3, + 23,16,25,26,27,28,29,30,31,32, + 33,34,35,36,0,1,2,3,4,5, + 37,0,1,0,3,0,12,13,37,0, + 16,17,18,37,0,1,59,23,51,25, + 26,27,28,29,30,31,32,33,34,35, + 36,0,1,2,3,4,0,0,37,0, + 0,5,5,12,13,5,0,16,17,18, + 72,12,13,59,23,0,25,26,27,28, + 29,30,31,32,33,34,35,36,0,1, + 2,3,4,0,1,2,0,4,0,74, + 12,13,73,5,16,17,18,56,12,13, + 50,23,55,25,26,27,28,29,30,31, + 32,33,34,35,36,37,0,1,2,3, + 4,75,75,0,1,0,3,0,12,13, + 0,0,16,17,18,0,0,0,50,23, + 0,25,26,27,28,29,30,31,32,33, + 34,35,36,37,0,1,2,3,4,0, + 0,0,37,0,0,0,12,13,0,0, + 16,17,18,37,15,0,16,23,15,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,0,1,2,3,4,57,58,68, + 73,37,37,68,12,13,69,0,16,17, + 18,0,0,0,0,23,4,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 0,1,2,3,4,60,0,0,0,0, + 0,5,12,13,0,0,16,17,18,0, + 0,0,0,23,0,25,26,27,28,29, + 30,31,32,33,34,35,36,0,1,2, + 3,4,60,60,0,0,0,0,0,12, + 13,0,0,16,17,18,50,0,0,0, + 23,55,25,26,27,28,29,30,31,32, + 33,34,35,36,0,1,2,3,4,55, + 0,0,0,0,0,0,12,13,0,0, + 16,17,18,5,0,0,0,23,0,25, + 26,27,28,29,30,31,32,33,34,35, + 36,0,55,2,55,4,5,6,7,8, + 9,10,11,0,0,14,15,0,0,0, + 19,20,21,22,0,24,2,0,4,5, + 6,7,8,9,10,11,0,59,14,15, + 0,0,0,19,20,21,22,0,24,0, + 0,50,0,6,7,8,9,10,11,0, + 0,14,0,0,0,0,19,20,21,22, + 0,24,0,0,50,0,6,7,8,9, + 10,11,0,0,14,0,0,0,0,19, + 20,21,22,0,24,0,0,0,0,6, + 7,8,9,10,11,0,0,14,0,0, + 0,0,19,20,21,22,0,24,0,0, + 0,0,6,7,8,9,10,11,0,0, + 14,0,0,0,0,19,20,21,22,0, + 24,0,0,0,0,6,7,8,9,10, + 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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,54,0,0,0,55,0,0, - 59,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,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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; @@ -533,112 +546,115 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 1822,599,1563,601,1549,1,2033,2034,2035,2140, - 1401,2141,1983,67,1542,1535,1556,1984,1982,2036, - 1985,1981,1528,1205,631,1832,1833,1834,1835,1403, - 641,2130,2131,2132,504,424,414,267,1988,1993, - 1992,1990,1991,1989,1994,1995,1987,1996,1997,1998, - 553,1186,1125,987,1822,1,1822,1,1822,189, - 1,1,1,1,1,1,1,53,1822,50, - 128,1,1,1,1,1,2033,2034,2035,2140, - 1401,2141,1983,1172,511,1822,1247,1984,1982,2036, - 1985,1981,1,1,1,1,1,1,1,1, - 1,1,1,1,71,1,1,1,1822,189, - 2016,1822,1,266,1,1156,189,1,1,1, - 1,1,1,1,1022,1075,553,129,1,1, - 1,1,1,2033,2034,2035,2140,1401,2141,1983, - 1822,1851,57,1852,1984,1982,2036,1985,1981,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1822,1,1,1,69,189,2016,1822,1, - 219,1,1313,189,1,1,1,1,1,1, - 1,1132,1756,553,130,1,1,1,1,1, - 2033,2034,2035,2140,1401,2141,1983,56,1311,1022, - 1075,1984,1982,2036,1985,1981,1,1,1,1, - 1,1,1,1,1,1,1,1,1822,1, - 1,1,63,189,2016,1822,1,41,1,1822, - 188,1,1,1,1,1,1,1,523,1218, - 55,131,1,1,1,1,1,2033,2034,2035, - 2140,1401,2141,1983,1022,1075,1822,2057,1984,1982, - 2036,1985,1981,1,1,1,1,1,1,1, - 1,1,1,1,1,1822,1,1,1,1, - 188,2016,1822,1,1831,1,54,189,1,1, - 1,1,1,1,1,65,918,1022,1075,1, - 1,1,1,1,58,1822,898,878,858,838, - 818,778,798,758,738,718,1822,2001,1806,2002, + 1842,1172,1599,1174,1585,1,2053,2054,2055,2163, + 542,2164,1578,1571,2003,281,1592,1536,1353,2004, + 2002,2056,2005,1250,2001,1852,1853,1854,1855,1467, + 417,2153,2154,2155,1216,443,428,1842,2008,2013, + 2012,2010,2011,2009,2014,2015,2007,2016,2017,2018, + 1,1839,1031,511,510,1842,1,1842,1,41, + 189,1,1,1,1,1,1,47,261,1, + 1222,1617,1,1842,1,1,1,1,246,1, + 1,2065,1465,558,1,1,1,1,1,1, + 266,1842,1200,1,1,1,1,1,1,1, + 1,1,1,1,1,558,189,1,1,1, + 2096,2036,1842,1,1842,1,87,189,1,1, + 1,1,1,1,1842,1871,1,1872,962,1610, + 1601,1,1,1,1,1842,1,252,942,922, + 902,882,862,822,842,802,782,762,1094,1842, 1,1,1,1,1,1,1,1,1,1, - 1,1,61,1,1,1,1822,189,2016,1822, - 2000,66,1999,1022,1075,2033,2034,2035,2140,1401, - 2141,1983,87,1374,1830,246,1984,1982,2036,1985, - 1981,1,1,1,1,1,1,1280,1435,1424, - 1413,1392,208,1822,2001,68,2002,1988,1993,1992, - 1990,1991,1989,1994,1995,1987,1996,1997,1998,1822, - 1186,1125,987,1,1839,1563,1840,1472,1825,1, - 1816,1155,1360,540,1827,575,698,1542,1535,1556, - 1460,60,553,1280,64,1528,1205,631,1832,1833, - 1834,1835,1403,641,2130,2131,2132,504,424,414, - 523,1822,1839,1563,1840,1514,1825,1,317,1296, - 1822,997,1827,958,1372,1542,1535,1556,1247,1826, - 553,1807,1824,1528,1205,631,1832,1833,1834,1835, - 1403,641,2130,2131,2132,504,424,414,59,1, - 1839,1563,1840,1549,27,1435,1424,1413,1392,1, - 2045,1444,47,1542,1535,1556,1581,1826,252,1822, - 1824,1528,1205,631,1832,1833,1834,1835,1403,641, - 2130,2131,2132,504,424,414,1594,1,127,258, - 2045,1155,1822,1,2033,2034,2035,2140,1401,2141, - 1983,70,553,1822,27,1984,1982,2036,1985,1981, - 1822,1822,1435,1424,1413,1392,2033,2034,2035,2140, - 1401,2141,1188,62,1574,1565,1988,1993,1992,1990, - 1991,1989,1994,1995,1987,1996,1997,1998,1822,1839, - 1563,1840,1549,1825,264,2045,1155,2076,1462,1822, - 1822,186,1542,1535,1556,205,2001,553,2002,1822, - 1528,1205,631,1832,1833,1834,1835,1403,641,2130, - 2131,2132,504,424,414,1218,1822,1839,1563,1840, - 1507,1825,261,264,1296,1296,1,1462,1487,185, - 1542,1535,1556,1360,540,553,553,1824,1528,1205, - 631,1832,1833,1834,1835,1403,641,2130,2131,2132, - 504,424,414,247,1822,1,1,1,1,1, - 1,1,1,1,1,187,1591,1103,1,1, - 1,1822,2001,1822,2002,1824,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1822,1839,1563,1840,1549,1822,2045,1444,1, - 1462,1822,1593,1822,89,1542,1535,1556,1461,1822, - 2129,199,1822,1528,1205,631,1832,1833,1834,1835, - 1403,641,2130,2131,2132,504,424,414,1311,1, - 1839,1563,1840,1549,1822,1822,1822,217,1822,1827, - 1827,1822,608,1542,1535,1556,1,2045,1444,89, - 553,1528,1205,631,1832,1833,1834,1835,1403,641, - 2130,2131,2132,504,424,414,1594,1822,1839,1563, - 1840,1549,52,1,1822,2001,1822,2002,1827,1084, - 1822,1542,1535,1556,1826,1826,1172,511,1655,1528, - 1205,631,1832,1833,1834,1835,1403,641,2130,2131, - 2132,504,424,414,1594,1822,1839,1563,1840,1549, - 51,1822,204,1355,1050,1355,1822,1822,1822,1542, - 1535,1556,49,1826,1172,511,1581,1528,1205,631, - 1832,1833,1834,1835,1403,641,2130,2131,2132,504, - 424,414,1822,1839,1564,1840,1549,1822,1822,1822, - 1822,1822,1822,1822,1822,1822,1542,1535,1556,1, - 1822,1822,1822,1372,1528,1205,631,1832,1833,1834, - 1835,1403,641,2130,2131,2132,504,424,414,1, - 1839,1563,1840,1549,1574,1565,1822,1822,1822,1822, - 1822,1822,1822,1542,1535,1556,1822,1822,1822,28, - 1822,1528,1205,631,1832,1833,1834,1835,1403,641, - 2130,2131,2132,504,424,414,17,1822,1810,2076, - 1810,1810,178,178,178,178,178,178,178,1810, - 978,1,1819,178,178,178,178,178,18,31, - 1813,1636,1813,1813,177,177,177,177,177,177, - 177,1813,1755,484,1,177,177,177,177,177, - 48,1846,1847,245,1581,28,1810,284,1822,2033, - 2034,2035,2140,1401,2141,248,204,1822,1227,1822, - 1031,2033,2034,2035,2140,1401,2141,249,1813,1822, - 1822,2076,1822,2033,2034,2035,2140,1401,2141,1822, - 1071,1822,1822,1822,1831,1822,1825,1829,1822,1822, - 1822,1822,1822,1822,2075,603,1822,1822,1822,1849, - 1822,1822,1574,1565,1822,1822,1822,1822,1239,1822, - 2971,1822,1822,1822,1822,1822,1822,1822,1822,1822, - 1822,1822,1822,1822,1822,1822,1822,1822,1822,1822, - 1822,1822,1822,1310,1822,1822,1822,1828,1822,1822, - 1824,1822,1822,1822,1822,1822,1822,1822,1822,1822, - 1822,1822,1822,1822,1830 + 1,1,1826,189,1,1,1,1842,2036,1842, + 1,742,1,50,189,1,1,1,1,1, + 1,69,31,1,1737,1528,1490,58,1,1, + 1,1,1767,1,49,1842,60,1366,1617,1866, + 1867,2053,2054,2055,2163,542,2164,1,1,1, + 1,1,1,1,1,1,1,1,1,1842, + 189,1,1,1,1842,2036,1842,1,1842,1, + 1842,188,1,1,1,1,1,1,48,1022, + 1,53,1617,465,59,1,1,1,1,61, + 1,1456,1445,1433,1422,1176,1610,1601,387,1842, + 1456,1445,1433,1422,1,1,1,1,1,1, + 1,1,1,1,1,1,1842,188,1,1, + 1,287,2036,1842,1,1156,1,57,189,1, + 1,1,1,1,1,62,1075,1,1066,1119, + 1610,1601,1,1,1,1,247,1,1456,1445, + 1433,1422,1,1,1,1,1,1,56,1391, + 1379,1,1,1,1,1,1,1,1,1, + 1,1,1,55,189,1,1,1,1842,2036, + 1842,2020,1646,2019,1066,1119,2053,2054,2055,2163, + 542,2164,1842,264,2003,1222,1323,1407,1842,2004, + 2002,2056,2005,245,2001,1391,1379,65,558,2053, + 2054,2055,2163,542,2164,1066,1119,1842,2008,2013, + 2012,2010,2011,2009,2014,2015,2007,2016,2017,2018, + 1066,1119,1031,511,510,1,1859,1599,1860,647, + 1845,1,1836,1199,267,1842,1847,1578,1571,580, + 1849,1592,1536,1353,205,2021,558,2022,1250,558, + 1852,1853,1854,1855,1467,417,2153,2154,2155,1216, + 443,428,1842,1859,1599,1860,1550,1845,1,1309, + 1222,1842,208,1847,1578,1571,1002,71,1592,1536, + 1353,1846,1842,558,1844,1250,1848,1852,1853,1854, + 1855,1467,417,2153,2154,2155,1216,443,428,1, + 1859,1599,1860,1585,27,258,2065,1199,219,1, + 1713,1578,1571,1842,1,1592,1536,1353,1846,89, + 558,1844,1250,558,1852,1853,1854,1855,1467,417, + 2153,2154,2155,1216,443,428,2769,127,264,2065, + 1199,1041,1407,2053,2054,2055,2163,542,2164,1842, + 27,2003,1842,558,514,1628,2004,2002,2056,2005, + 248,2001,1842,2021,89,2022,2053,2054,2055,2163, + 542,2164,1,2065,1465,2008,2013,2012,2010,2011, + 2009,2014,2015,2007,2016,2017,2018,1842,1859,1599, + 1860,1585,1845,1842,2021,63,2022,280,1842,1578, + 1571,1842,1559,1592,1536,1353,1842,2021,66,2022, + 1250,1340,1852,1853,1854,1855,1467,417,2153,2154, + 2155,1216,443,428,1842,1859,1599,1860,1543,1845, + 1367,1842,2021,1842,2022,70,1578,1571,1214,67, + 1592,1536,1353,1368,1842,2077,1844,1250,1559,1852, + 1853,1854,1855,1467,417,2153,2154,2155,1216,443, + 428,1842,1,1,1,1,1,1842,1404,52, + 1842,1851,1851,1,1,1847,1842,1,1,1, + 1309,1528,1490,1844,1,1842,1,1,1,1, + 1,1,1,1,1,1,1,1,1842,1859, + 1599,1860,1585,1842,2065,1465,51,1407,1,1176, + 1578,1571,1275,1847,1592,1536,1353,2152,1528,1490, + 1846,1250,1324,1852,1853,1854,1855,1467,417,2153, + 2154,2155,1216,443,428,1214,1,1859,1599,1860, + 1585,1850,1850,204,607,186,607,68,1578,1571, + 1842,1842,1592,1536,1353,199,185,1842,1846,1250, + 54,1852,1853,1854,1855,1467,417,2153,2154,2155, + 1216,443,428,2769,1842,1859,1599,1860,1585,320, + 64,1842,1513,217,187,1842,1578,1571,1842,1842, + 1592,1536,1353,1557,1827,1,1340,1250,558,1852, + 1853,1854,1855,1467,417,2153,2154,2155,1216,443, + 428,2769,1,1859,1599,1860,1585,1066,1119,1147, + 1275,1558,1629,1128,1578,1571,613,1842,1592,1536, + 1353,1842,1,1,1842,1250,1323,1852,1853,1854, + 1855,1467,417,2153,2154,2155,1216,443,428,2769, + 1842,1859,1599,1860,1585,2096,1842,1842,1842,1842, + 1842,1847,1578,1571,1842,1842,1592,1536,1353,1842, + 1842,1842,1842,1250,28,1852,1853,1854,1855,1467, + 417,2153,2154,2155,1216,443,428,1842,1859,1600, + 1860,1585,2096,2095,1842,1842,1842,1842,1842,1578, + 1571,1842,1842,1592,1536,1353,1846,28,1842,204, + 1250,1627,1852,1853,1854,1855,1467,417,2153,2154, + 2155,1216,443,428,1,1859,1599,1860,1585,488, + 1842,1842,1842,1842,1842,1842,1578,1571,1842,1842, + 1592,1536,1353,1845,1842,1842,1842,1250,1842,1852, + 1853,1854,1855,1467,417,2153,2154,2155,1216,443, + 428,17,1869,1830,2915,1830,1830,178,178,178, + 178,178,178,1842,1842,178,1830,1842,1842,1842, + 178,178,178,178,18,178,1833,1842,1833,1833, + 177,177,177,177,177,177,1842,1844,177,1833, + 1842,1842,1842,177,177,177,177,128,177,1842, + 1842,1830,1842,2053,2054,2055,2163,542,2164,1842, + 1842,2003,1842,1842,1842,1842,2004,2002,2056,2005, + 129,2001,1842,1842,1833,1842,2053,2054,2055,2163, + 542,2164,1842,1842,2003,1842,1842,1842,1842,2004, + 2002,2056,2005,130,2001,1842,1842,1842,1842,2053, + 2054,2055,2163,542,2164,1842,1842,2003,1842,1842, + 1842,1842,2004,2002,2056,2005,131,2001,1842,1842, + 1842,1842,2053,2054,2055,2163,542,2164,1842,1842, + 2003,1842,1842,1842,1842,2004,2002,2056,2005,249, + 2001,1842,1842,1842,1842,2053,2054,2055,2163,542, + 2164 }; }; public final static char termAction[] = TermAction.termAction; @@ -646,28 +662,28 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 476,1,113,41,113,113,113,113,113,113, - 113,113,113,113,113,113,3,324,51,48, - 55,53,61,59,63,62,65,64,10,113, - 324,247,247,451,113,185,185,278,324,113, - 113,113,113,113,113,113,113,113,113,113, - 113,113,113,113,113,113,113,113,113,113, - 113,113,113,113,113,113,113,113,113,185, - 185,45,80,282,104,214,183,182,250,317, - 262,262,100,100,262,100,262,344,136,136, - 48,48,53,53,53,53,51,51,59,55, - 55,62,61,401,64,63,102,78,278,270, - 107,45,367,189,185,414,217,189,380,284, - 380,284,374,380,113,78,270,367,367,45, - 188,104,185,276,344,184,219,45,189,284, - 284,284,284,374,374,376,404,78,367,270, - 113,113,45,189,214,396,395,282,219,185, - 284,314,407,284,284,314,376,446,376,374, - 314,76,449,247,113,403,78,270,45,45, - 185,414,217,276,314,409,314,314,113,247, - 376,80,45,247,113,376,219,72,113,71, - 132,282,314,45,314,185,184,409,113,132, - 248 + 451,1,170,41,170,170,170,170,170,170, + 170,170,170,170,170,170,3,111,79,76, + 83,81,89,87,91,90,93,92,10,170, + 111,304,304,475,170,268,268,372,111,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,268, + 268,45,52,376,161,271,266,265,344,104, + 356,356,72,72,356,72,356,131,219,219, + 76,76,81,81,81,81,79,79,87,83, + 83,90,89,412,92,91,74,50,372,364, + 164,45,154,194,268,419,274,194,391,311, + 391,311,378,391,170,50,364,154,154,45, + 193,161,268,370,131,267,276,45,194,311, + 311,311,311,378,378,380,308,341,74,154, + 364,170,170,45,194,271,407,406,376,276, + 268,311,341,384,311,311,341,380,414,380, + 378,341,48,417,304,170,307,341,50,364, + 45,45,268,419,274,370,341,386,341,341, + 170,304,380,52,45,304,170,50,276,100, + 170,99,189,376,341,45,380,268,267,386, + 170,189,341,305,380 }; }; public final static char asb[] = Asb.asb; @@ -675,56 +691,56 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 89,0,75,13,2,61,76,22,23,16, - 4,14,15,62,63,57,58,64,65,66, - 67,70,71,72,73,74,77,78,55,69, + 89,0,75,15,2,61,76,17,18,16, + 4,12,13,62,63,57,58,64,65,66, + 67,70,71,72,73,74,77,78,51,69, 79,80,81,82,83,85,84,86,87,88, - 68,50,89,54,59,5,0,4,62,63, - 14,15,58,57,64,65,66,67,70,71, - 16,72,73,74,59,50,55,89,77,78, - 68,75,5,54,0,5,55,13,61,22, - 23,16,4,14,15,29,30,24,34,35, - 36,2,25,26,27,28,31,32,33,1, - 3,37,0,59,5,12,6,7,8,9, - 10,11,25,26,27,28,31,32,33,3, - 22,23,16,14,15,29,30,24,34,35, - 36,4,2,1,0,7,12,21,8,20, - 19,18,6,17,9,10,11,61,76,22, - 23,16,14,15,62,63,57,58,64,65, - 66,67,70,71,72,73,74,77,78,69, - 79,80,81,82,83,84,85,86,87,88, - 4,2,13,54,50,5,0,12,59,5, - 22,23,16,4,14,15,29,30,24,34, - 35,36,2,1,3,25,26,27,28,31, - 32,33,0,4,2,13,50,5,17,38, - 6,39,51,18,40,19,41,42,20,7, - 43,44,12,52,21,53,45,46,8,47, - 48,49,9,10,11,60,3,1,0,46, - 38,43,41,42,40,39,44,45,47,48, - 49,68,75,21,18,12,17,20,19,6, - 7,8,9,10,11,54,1,5,50,2, - 13,4,0,17,38,6,39,51,18,40, - 19,41,42,20,7,43,44,12,52,21, - 53,45,46,8,47,48,49,1,3,9, - 10,11,56,55,5,0,5,68,54,59, - 50,75,13,24,25,26,27,28,2,22, - 23,16,4,14,15,29,30,31,32,33, - 34,35,36,3,1,51,52,53,46,38, - 43,41,42,40,39,44,45,47,48,49, - 21,18,12,17,20,19,6,7,8,10, - 9,11,0,1,3,5,55,54,0,17, - 6,18,19,20,7,12,21,8,1,4, - 9,10,11,37,2,5,54,50,75,13, - 68,0,69,13,61,0,75,5,4,1, - 2,68,0,17,38,6,39,51,18,40, - 19,41,42,20,7,43,44,12,52,21, - 53,45,46,8,47,48,49,1,3,9, - 10,11,60,4,0,5,54,55,69,0, - 5,50,24,25,26,27,28,1,3,2, - 22,23,16,4,14,15,29,30,31,32, - 33,34,35,36,0,24,25,26,27,28, - 1,3,2,22,23,16,4,14,15,29, - 30,31,32,33,34,35,36,56,0 + 68,50,89,55,59,5,0,5,51,15, + 61,17,18,16,4,12,13,29,30,23, + 34,35,36,2,25,26,27,28,31,32, + 33,1,3,37,0,4,62,63,12,13, + 58,57,64,65,66,67,70,71,16,72, + 73,74,59,50,51,89,77,78,68,75, + 5,55,0,5,68,55,59,50,75,15, + 23,25,26,27,28,2,17,18,16,4, + 12,13,29,30,31,32,33,34,35,36, + 3,1,52,53,54,46,38,43,41,42, + 40,39,44,45,47,48,49,24,20,14, + 19,22,21,6,7,8,10,9,11,0, + 59,5,14,6,7,8,9,10,11,25, + 26,27,28,31,32,33,3,17,18,16, + 12,13,29,30,23,34,35,36,4,2, + 1,0,14,59,5,17,18,16,4,12, + 13,29,30,23,34,35,36,2,1,3, + 25,26,27,28,31,32,33,0,7,14, + 24,8,22,21,20,6,19,9,10,11, + 61,76,17,18,16,12,13,62,63,57, + 58,64,65,66,67,70,71,72,73,74, + 77,78,69,79,80,81,82,83,84,85, + 86,87,88,4,2,15,55,50,5,0, + 4,2,15,50,5,19,38,6,39,52, + 20,40,21,41,42,22,7,43,44,14, + 53,24,54,45,46,8,47,48,49,9, + 10,11,60,3,1,0,69,15,61,0, + 19,38,6,39,52,20,40,21,41,42, + 22,7,43,44,14,53,24,54,45,46, + 8,47,48,49,1,3,9,10,11,56, + 5,51,0,46,38,43,41,42,40,39, + 44,45,47,48,49,68,75,24,20,14, + 19,22,21,6,7,8,9,10,11,55, + 1,5,50,2,15,4,0,1,3,5, + 51,55,0,75,5,4,1,2,68,0, + 19,6,20,21,22,7,14,24,8,1, + 4,9,10,11,37,2,5,55,50,75, + 15,68,0,5,55,51,69,0,19,38, + 6,39,52,20,40,21,41,42,22,7, + 43,44,14,53,24,54,45,46,8,47, + 48,49,1,3,9,10,11,60,4,0, + 23,25,26,27,28,1,3,2,17,18, + 16,4,12,13,29,30,31,32,33,34, + 35,36,56,0,5,50,23,25,26,27, + 28,1,3,2,17,18,16,4,12,13, + 29,30,31,32,33,34,35,36,0 }; }; public final static byte asr[] = Asr.asr; @@ -732,28 +748,28 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static byte nasb[] = {0, - 81,8,13,8,13,13,13,13,13,13, - 13,13,13,13,13,13,8,59,8,8, - 8,8,8,8,8,8,8,8,8,13, - 59,19,19,78,60,35,35,51,1,13, - 13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,60,13,13,13,13, - 13,13,13,13,13,13,13,13,13,35, - 35,17,13,72,15,50,9,9,43,55, - 44,44,25,25,44,25,44,39,8,8, + 78,8,14,8,14,14,14,14,14,14, + 14,14,14,14,14,14,8,70,8,8, + 8,8,8,8,8,8,8,8,8,14, + 70,9,9,91,71,47,47,50,1,14, + 14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,71,14,14,14,14, + 14,14,14,14,14,14,14,14,14,47, + 47,24,14,76,22,49,29,29,58,20, + 59,59,16,16,59,16,59,54,8,8, 8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,86,52,86, - 12,17,68,16,35,70,34,16,8,86, - 8,86,86,8,13,12,86,68,68,17, - 16,57,35,28,2,8,85,17,16,86, - 74,86,74,25,86,23,21,86,68,57, - 13,13,17,16,27,9,9,72,85,35, - 74,37,65,88,74,37,23,8,8,25, - 37,11,8,25,13,63,12,57,17,17, - 35,70,34,29,37,46,37,37,13,25, - 23,13,17,25,13,23,84,66,13,8, - 46,72,37,17,37,35,35,46,13,31, - 8 + 8,8,8,8,8,8,8,87,51,87, + 26,24,37,23,47,74,46,23,8,87, + 8,87,87,8,14,12,87,37,37,24, + 23,89,47,40,2,8,86,24,23,87, + 81,87,81,16,87,31,18,87,8,37, + 89,14,14,24,23,39,29,29,76,86, + 47,81,35,67,94,81,35,31,8,8, + 16,35,11,8,16,14,61,35,87,89, + 24,24,47,74,46,41,35,63,35,35, + 14,16,31,13,24,16,14,12,85,68, + 14,8,63,76,35,24,31,47,47,63, + 14,43,35,8,33 }; }; public final static byte nasb[] = Nasb.nasb; @@ -761,16 +777,16 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 4,79,78,77,76,75,74,0,27,0, - 68,9,4,0,9,4,20,0,70,0, - 91,0,53,0,29,0,25,9,46,45, - 38,36,0,9,25,0,28,0,63,64, - 65,66,54,30,0,9,38,36,0,25, - 9,46,45,0,94,0,21,0,34,9, - 48,0,93,0,9,69,0,60,0,9, - 26,51,0,58,9,34,0,9,86,0, - 9,85,0,88,26,9,0,9,34,50, - 0 + 4,80,79,78,77,76,75,0,71,0, + 69,9,63,4,0,29,0,93,0,96, + 0,9,4,20,0,4,9,0,27,0, + 53,0,91,0,28,0,60,0,25,9, + 46,45,38,36,0,9,25,0,25,9, + 46,45,0,64,65,66,67,54,30,0, + 95,0,9,38,36,0,9,70,0,34, + 9,48,0,9,26,51,0,9,86,0, + 58,9,34,0,89,26,9,0,21,0, + 9,87,0,9,34,50,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -779,11 +795,11 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, 85,2,86,9,87,48,64,76,96,97, - 98,69,1,10,11,8,44,55,60,63, - 72,6,7,68,81,82,83,84,12,13, + 98,10,11,69,1,8,6,7,44,55, + 60,63,68,72,81,82,83,84,12,13, 93,94,95,100,101,102,3,47,52,56, 61,62,66,67,74,75,78,79,80,90, - 54,70,73,42,91,107,16,17,89,30, + 91,54,70,73,42,107,16,17,89,30, 4,14,15,18,19,20,21,29,31,22, 23,24,25,26,92,5,27,28,32,33, 34,35,36,37,38,39,40,41,108,45, @@ -802,12 +818,13 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,154,159,161,0,162,0,0, 0,0,134,172,173,174,0,114,151,153, 160,169,0,145,150,0,0,152,164,167, - 168,171,146,147,148,149,158,175,113,116, - 117,118,133,137,138,139,140,141,144,156, - 0,0,157,166,109,0,155,165,170,176, - 177,0,178,179,0,0,0,0,0,0, + 168,171,0,146,147,148,149,158,175,113, + 116,117,118,133,137,138,139,140,141,144, + 156,0,0,157,166,109,0,155,165,170, + 0,176,177,0,178,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,0,0,0,0 + 0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -815,11 +832,11 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 198,106,45,55,113,133,139,176,12,19, - 73,91,145,150,61,26,69,38,123,213, - 217,38,38,185,38,1,1,1,30,33, - 78,101,33,221,6,127,192,167,192,119, - 155,155,155,155,155,81,81,81 + 202,108,47,57,117,137,143,12,180,21, + 75,93,149,154,63,28,71,40,127,217, + 221,40,40,189,40,1,1,1,32,35, + 80,103,35,225,6,131,196,171,196,123, + 159,159,159,159,159,83,83,83 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -827,11 +844,11 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 17,17,4,4,17,17,17,182,17,24, - 4,24,17,17,66,24,4,4,121,24, - 4,42,66,189,51,4,4,4,24,36, - 4,24,104,24,9,130,195,170,206,121, - 157,159,161,163,165,88,83,96 + 115,115,4,4,115,115,115,18,186,26, + 4,26,115,115,68,26,4,4,125,26, + 4,44,68,193,53,4,4,4,26,38, + 4,26,106,26,9,134,199,174,210,125, + 161,163,165,167,169,90,85,98 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -839,11 +856,11 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 4,65,27,27,65,63,63,101,55,47, - 27,41,63,63,27,47,27,27,50,4, - 4,27,27,18,27,94,93,92,45,62, - 27,38,49,2,68,50,6,102,4,50, - 78,77,76,75,74,41,39,41 + 4,66,27,27,66,64,64,55,103,47, + 27,41,64,64,27,47,27,27,50,4, + 4,27,27,18,27,96,95,94,45,62, + 27,38,49,2,69,50,6,104,4,50, + 79,78,77,76,75,41,39,41 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -851,11 +868,11 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 55,55,59,59,55,55,55,95,55,50, - 59,50,55,55,25,50,59,59,75,50, - 59,4,25,68,12,59,59,59,50,2, + 51,51,59,59,51,51,51,51,95,50, + 59,50,51,51,25,50,59,59,75,50, + 59,4,25,68,14,59,59,59,50,2, 59,50,1,50,69,1,50,101,50,75, - 3,51,52,52,46,2,2,2 + 3,52,53,53,46,2,2,2 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -863,7 +880,7 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static byte scopeStateSet[] = { - 36,21,25,25,21,21,21,-1,96,29, + 36,21,25,25,21,21,21,96,-1,29, 25,11,21,21,25,29,25,25,5,36, 36,25,25,70,25,19,1,3,29,31, 25,11,13,36,97,5,42,-1,36,5, @@ -875,29 +892,29 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 150,13,0,110,0,197,116,0,31,150, - 0,160,179,116,37,0,112,0,166,116, - 2,152,0,111,0,166,116,2,0,169, - 2,0,158,116,0,172,0,191,116,13, - 0,9,110,0,126,12,191,116,13,0, - 69,132,110,0,126,191,116,12,13,0, - 191,116,12,13,0,132,110,0,126,12, - 13,0,126,191,116,13,0,126,13,0, - 145,0,2,0,165,111,0,2,111,0, - 166,116,2,145,0,2,0,164,111,0, - 156,2,0,159,0,160,189,116,37,136, - 51,0,160,189,116,37,51,0,141,0, - 113,0,194,116,141,0,116,141,0,155, - 113,0,164,116,37,136,53,0,164,116, - 37,136,52,0,164,116,37,53,0,164, - 116,37,52,0,186,0,149,0,148,0, - 147,0,146,0,145,0,204,94,0,77, - 2,114,111,113,0,204,132,155,2,98, - 0,53,0,0,155,78,124,0,29,131, - 0,178,2,0,111,120,0,160,179,116, - 37,132,178,2,0,111,3,0,118,0, - 112,0,193,2,111,0,155,13,111,0, - 155,2,0 + 150,15,0,110,0,199,116,0,31,150, + 0,160,180,116,37,170,0,112,0,0, + 166,116,2,152,0,111,0,166,116,2, + 0,169,2,0,158,116,0,172,0,192, + 116,15,0,9,110,0,126,14,192,116, + 15,0,69,132,110,0,126,192,116,14, + 15,0,192,116,14,15,0,132,110,0, + 126,14,15,0,126,192,116,15,0,126, + 15,0,145,0,2,0,165,111,0,2, + 111,0,166,116,2,145,0,2,0,164, + 111,0,156,2,0,159,0,160,190,116, + 37,136,52,0,112,0,160,190,116,37, + 52,0,141,0,113,0,195,116,141,0, + 116,141,0,155,113,0,164,116,37,136, + 54,0,164,116,37,136,53,0,164,116, + 37,54,0,164,116,37,53,0,187,0, + 149,0,148,0,147,0,146,0,145,0, + 206,94,0,77,2,114,111,113,0,206, + 132,155,2,98,0,53,0,0,155,78, + 124,0,29,131,0,179,2,0,111,120, + 0,160,180,116,37,132,179,2,0,111, + 3,0,118,0,112,0,194,2,111,0, + 155,15,111,0,155,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -905,16 +922,16 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1592,0,927,0,1642,1719,1639,1637,1624,0, - 1411,1262,1310,1444,1295,1155,1122,0,1401,0, - 1213,574,357,0,1677,1643,602,385,1262,1666, - 1155,1122,1296,1459,0,1528,1205,631,504,424, - 414,1514,1507,1472,1613,1218,1132,1280,1247,1360, - 540,523,1075,1022,1435,1424,1413,1392,1581,1574, - 1565,1172,511,1556,1549,1542,1535,1403,641,1084, - 1050,1031,997,978,958,938,675,1103,654,575, - 553,918,898,878,858,838,818,798,778,758, - 738,718,357,698,437,608,464,484,391,0 + 1242,0,512,0,1678,1752,1674,1668,1635,0, + 509,415,1324,1465,1290,1199,1166,0,542,0, + 1241,579,360,0,1663,1232,1230,637,415,508, + 1199,1166,1222,1480,0,1536,1353,1250,1216,443, + 428,1550,1543,647,1649,1176,514,1309,1275,1391, + 1379,1340,1119,1066,1456,1445,1433,1422,1617,1610, + 1601,1528,1490,1592,1585,1578,1571,1467,417,1128, + 1094,1075,1041,1022,1002,982,718,1147,697,580, + 558,962,942,922,902,882,862,842,822,802, + 782,762,360,742,677,613,468,488,394,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -922,28 +939,28 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,192,116,180,36,35,34,24,30,29, - 15,14,4,16,23,22,111,2,115,114, - 118,117,120,119,122,121,124,123,112,54, - 2,76,61,2,13,178,155,141,116,15, - 14,63,62,4,67,66,65,64,57,58, + 0,193,116,181,36,35,34,23,30,29, + 13,12,4,16,18,17,111,2,115,114, + 118,117,120,119,122,121,124,123,112,55, + 2,76,61,2,15,179,155,141,116,13, + 12,63,62,4,67,66,65,64,57,58, 16,71,70,73,72,78,77,74,88,87, - 86,84,85,83,82,81,80,79,69,178, - 193,155,132,116,13,2,153,152,181,10, - 182,183,53,52,184,51,185,186,1,3, + 86,84,85,83,82,81,80,79,69,179, + 194,155,132,116,15,2,153,152,182,10, + 183,184,54,53,185,52,186,187,1,3, 114,114,117,117,117,117,115,115,119,118, 118,121,120,155,123,122,132,37,158,4, - 12,126,116,4,169,116,2,13,136,37, + 14,126,116,4,169,116,2,15,136,37, 136,37,37,136,68,116,4,116,116,126, - 191,167,166,133,116,168,116,150,4,37, - 116,37,116,116,37,179,116,37,116,167, - 191,12,126,4,2,143,145,116,54,166, - 116,164,141,165,116,164,189,136,190,116, - 160,54,197,61,13,198,116,167,126,126, - 156,116,2,158,164,116,164,160,69,54, - 189,69,150,61,13,179,116,194,68,156, - 2,116,160,150,160,166,195,54,68,158, - 54 + 192,167,166,133,116,168,116,150,4,37, + 116,37,116,116,37,180,116,37,170,116, + 167,192,14,126,4,2,143,145,116,55, + 166,116,164,141,165,116,164,190,136,191, + 116,160,55,199,61,15,200,116,37,167, + 126,126,156,116,2,158,164,116,164,160, + 69,55,190,69,150,61,15,116,116,195, + 68,156,2,116,160,150,180,166,196,55, + 68,158,160,55,135 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1153,20 +1170,20 @@ public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 211, + NUM_STATES = 215, NT_OFFSET = 107, - LA_STATE_OFFSET = 2178, + LA_STATE_OFFSET = 2201, MAX_LA = 2, - NUM_RULES = 356, - NUM_NONTERMINALS = 120, - NUM_SYMBOLS = 227, + NUM_RULES = 359, + NUM_NONTERMINALS = 122, + NUM_SYMBOLS = 229, SEGMENT_SIZE = 8192, - START_STATE = 1638, + START_STATE = 1631, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, - ACCEPT_ACTION = 1806, - ERROR_ACTION = 1822; + ACCEPT_ACTION = 1826, + ERROR_ACTION = 1842; public final static boolean BACKTRACK = true; diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java index 62f3c15c294..aec960a5dee 100644 --- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java +++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java @@ -15,7 +15,7 @@ package org.eclipse.cdt.internal.core.dom.parser.upc; public interface UPCSizeofExpressionParsersym { public final static int - TK_auto = 17, + TK_auto = 19, TK_break = 90, TK_case = 91, TK_char = 38, @@ -25,26 +25,26 @@ public interface UPCSizeofExpressionParsersym { TK_do = 94, TK_double = 39, TK_else = 95, - TK_enum = 51, - TK_extern = 18, + TK_enum = 52, + TK_extern = 20, TK_float = 40, TK_for = 96, TK_goto = 97, TK_if = 98, - TK_inline = 19, + TK_inline = 21, TK_int = 41, TK_long = 42, - TK_register = 20, + TK_register = 22, TK_restrict = 7, TK_return = 99, TK_short = 43, TK_signed = 44, - TK_sizeof = 24, - TK_static = 12, - TK_struct = 52, + TK_sizeof = 23, + TK_static = 14, + TK_struct = 53, TK_switch = 100, - TK_typedef = 21, - TK_union = 53, + TK_typedef = 24, + TK_union = 54, TK_unsigned = 45, TK_void = 46, TK_volatile = 8, @@ -60,17 +60,17 @@ public interface UPCSizeofExpressionParsersym { TK_Completion = 3, TK_EndOfCompletion = 5, TK_Invalid = 102, - TK_LeftBracket = 13, + TK_LeftBracket = 15, TK_LeftParen = 2, TK_LeftBrace = 37, TK_Dot = 61, TK_Arrow = 76, - TK_PlusPlus = 22, - TK_MinusMinus = 23, + TK_PlusPlus = 17, + TK_MinusMinus = 18, TK_And = 16, TK_Star = 4, - TK_Plus = 14, - TK_Minus = 15, + TK_Plus = 12, + TK_Minus = 13, TK_Tilde = 29, TK_Bang = 30, TK_Slash = 62, @@ -101,10 +101,10 @@ public interface UPCSizeofExpressionParsersym { TK_AndAssign = 86, TK_CaretAssign = 87, TK_OrAssign = 88, - TK_Comma = 54, + TK_Comma = 55, TK_RightBracket = 59, TK_RightParen = 50, - TK_RightBrace = 55, + TK_RightBrace = 51, TK_SemiColon = 75, TK_MYTHREAD = 31, TK_THREADS = 32, @@ -136,19 +136,19 @@ public interface UPCSizeofExpressionParsersym { "relaxed", "shared", "strict", - "static", - "LeftBracket", "Plus", "Minus", + "static", + "LeftBracket", "And", + "PlusPlus", + "MinusMinus", "auto", "extern", "inline", "register", - "typedef", - "PlusPlus", - "MinusMinus", "sizeof", + "typedef", "integer", "floating", "charconst", @@ -175,11 +175,11 @@ public interface UPCSizeofExpressionParsersym { "_Complex", "_Imaginary", "RightParen", + "RightBrace", "enum", "struct", "union", "Comma", - "RightBrace", "ERROR_TOKEN", "RightShift", "LeftShift", |