diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/c99/C99DigraphTrigraphTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/c99/C99DigraphTrigraphTests.java index 9065c0ab3d6..3d06256c29f 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/c99/C99DigraphTrigraphTests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/c99/C99DigraphTrigraphTests.java @@ -170,6 +170,6 @@ public class C99DigraphTrigraphTests extends TestCase { assertEquals("ab", declarator2.getName().toString()); IASTLiteralExpression expr2 = (IASTLiteralExpression)((IASTInitializerExpression)declarator2.getInitializer()).getExpression(); assertEquals(IASTLiteralExpression.lk_string_literal, expr2.getKind()); - assertEquals("its still good", expr2.toString()); + assertEquals("\"its still good\"", expr2.toString()); } } 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 841ec45e80f..d6e7d15b6b9 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 @@ -48,6 +48,7 @@ import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IASTNullStatement; +import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.dom.ast.IASTPointerOperator; import org.eclipse.cdt.core.dom.ast.IASTProblem; import org.eclipse.cdt.core.dom.ast.IASTProblemHolder; @@ -61,6 +62,7 @@ import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression; import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression; import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator; import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier; +import org.eclipse.cdt.core.dom.ast.c.ICASTPointer; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeclSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression; @@ -749,6 +751,109 @@ public abstract class BuildASTParserAction { } + /** + * declarator + * ::= ptr_operator_seq direct_declarator + * + * abstract_declarator + * ::= ptr_operator_seq + * | ptr_operator_seq direct_declarator + */ + public void consumeDeclaratorWithPointer(boolean hasDeclarator) { + if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); + + IASTDeclarator decl; + if(hasDeclarator) + decl = (IASTDeclarator) astStack.pop(); + else + decl = nodeFactory.newDeclarator(nodeFactory.newName()); + + for(Object pointer : astStack.closeScope()) + decl.addPointerOperator((ICASTPointer)pointer); + + setOffsetAndLength(decl); + astStack.push(decl); + + if(TRACE_AST_STACK) System.out.println(astStack); + } + + + + /** + * init_declarator + * ::= declarator initializer + * + * @param hasDeclarator in C++ its possible for a parameter declaration to specifiy + * a default value without also specifying a named declarator + */ + public void consumeDeclaratorWithInitializer(boolean hasDeclarator) { + if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); + + IASTInitializer initializer = (IASTInitializer) astStack.pop(); + + IASTDeclarator declarator; + if(hasDeclarator) { + declarator = (IASTDeclarator) astStack.peek(); + } + else { + IASTName emptyName = nodeFactory.newName(); + declarator = nodeFactory.newDeclarator(emptyName); + setOffsetAndLength(emptyName); + astStack.push(declarator); + } + + declarator.setInitializer(initializer); + setOffsetAndLength(declarator); // adjust the length to include the initializer + + if(TRACE_AST_STACK) System.out.println(astStack); + } + + + + /** + * parameter_declaration ::= declaration_specifiers declarator + * | declaration_specifiers abstract_declarator + */ + public void consumeParameterDeclaration() { + if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); + + IASTDeclarator declarator = (IASTDeclarator) astStack.pop(); + IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop(); + IASTParameterDeclaration declaration = nodeFactory.newParameterDeclaration(declSpec, declarator); + setOffsetAndLength(declaration); + astStack.push(declaration); + + if(TRACE_AST_STACK) System.out.println(astStack); + } + + + /** + * parameter_declaration ::= declaration_specifiers + */ + public void consumeParameterDeclarationWithoutDeclarator(/*IBinding binding*/) { + if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); + + // offsets need to be calculated differently in this case + final int endOffset = parser.getRightIToken().getEndOffset() + 1; + + IASTName name = nodeFactory.newName(); + setOffsetAndLength(name, endOffset, 0); + //name.setBinding(binding); + + // it appears that a declarator is always required in the AST here + IASTDeclarator declarator = nodeFactory.newDeclarator(name); + setOffsetAndLength(declarator, endOffset, 0); + + IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop(); + IASTParameterDeclaration declaration = nodeFactory.newParameterDeclaration(declSpec, declarator); + + setOffsetAndLength(declaration); + astStack.push(declaration); + + if(TRACE_AST_STACK) System.out.println(astStack); + } + + /** * TODO: do I really want to share declaration rules between the two parsers. * Even if there is potential for reuse it still may be cleaner to leave the @@ -830,7 +935,7 @@ public abstract class BuildASTParserAction { * the additional array modifiers will need to be added to the array declarator. * Special care is taken for nested declarators. */ - protected void consumeDeclaratorArray(IASTArrayModifier arrayModifier) { + protected void addArrayModifier(IASTArrayModifier arrayModifier) { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); IASTDeclarator node = (IASTDeclarator) astStack.pop(); @@ -877,8 +982,9 @@ public abstract class BuildASTParserAction { * Pops a simple declarator from the stack, converts it into * a FunctionDeclator, then pushes it. * TODO: is this the best way of doing this? + * TODO, rename this method, its an accidental overload */ - protected void consumeDirectDeclaratorFunctionDeclarator(IASTFunctionDeclarator declarator, int endOffset) { + protected void addFunctionModifier(IASTFunctionDeclarator declarator, int endOffset) { IASTDeclarator decl = (IASTDeclarator) astStack.pop(); if(decl.getNestedDeclarator() != null) { @@ -910,18 +1016,43 @@ public abstract class BuildASTParserAction { if(TRACE_AST_STACK) System.out.println(astStack); } +// /** +// * direct_declarator ::= direct_declarator array_modifier +// * consume the direct_declarator part and add the array modifier +// */ +// public void consumeDirectDeclaratorArrayDeclarator() { +// if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); +// +// IASTArrayModifier arrayModifier = (IASTArrayModifier) astStack.pop(); +// addArrayModifier(arrayModifier); +// } + /** - * direct_declarator ::= direct_declarator array_modifier - * consume the direct_declarator part and add the array modifier + * direct_abstract_declarator + * ::= array_modifier + * | direct_abstract_declarator array_modifier */ - public void consumeDirectDeclaratorArrayDeclarator() { + public void consumeDirectDeclaratorArrayDeclarator(boolean hasDeclarator) { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); IASTArrayModifier arrayModifier = (IASTArrayModifier) astStack.pop(); - consumeDeclaratorArray(arrayModifier); + + if(hasDeclarator) { + addArrayModifier(arrayModifier); + } + else { + IASTArrayDeclarator decl = nodeFactory.newArrayDeclarator(nodeFactory.newName()); + decl.addArrayModifier(arrayModifier); + setOffsetAndLength(decl); + astStack.push(decl); + + if(TRACE_AST_STACK) System.out.println(astStack); + } } + + /** * enum_specifier ::= 'enum' '{' enumerator_list_opt '}' * | 'enum' enum_identifier '{' enumerator_list_opt '}' diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/IASTNodeFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/IASTNodeFactory.java index 3910661510b..9042d745d14 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/IASTNodeFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/IASTNodeFactory.java @@ -45,6 +45,7 @@ import org.eclipse.cdt.core.dom.ast.IASTLabelStatement; import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNullStatement; +import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.dom.ast.IASTProblem; import org.eclipse.cdt.core.dom.ast.IASTProblemDeclaration; import org.eclipse.cdt.core.dom.ast.IASTProblemExpression; @@ -165,4 +166,6 @@ public interface IASTNodeFactory { public IASTArrayModifier newArrayModifier(IASTExpression expr); public IASTArrayDeclarator newArrayDeclarator(IASTName name); + + public IASTParameterDeclaration newParameterDeclaration(IASTDeclSpecifier declSpec, IASTDeclarator declarator); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java index 69020d7568d..d09bdcf7a3a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java @@ -235,40 +235,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { } - /** - * declarator ::= pointer direct_declarator - * - * abstract_declarator -- a declarator that does not include an identifier - * ::= pointer - * | pointer direct_abstract_declarator - */ - public void consumeDeclaratorWithPointer(boolean hasDeclarator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - IASTDeclarator decl; - if(hasDeclarator) - decl = (IASTDeclarator) astStack.pop(); - else - decl = nodeFactory.newDeclarator(nodeFactory.newName()); - - // add all the pointers to the declarator - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - List scope = astStack.closeScope(); - - for(Object o : scope) { - decl.addPointerOperator((ICASTPointer)o); - } - - setOffsetAndLength(decl); - astStack.push(decl); - - if(TRACE_AST_STACK) System.out.println(astStack); - } - - - - /** * type_qualifier ::= const | restrict | volatile @@ -328,52 +294,13 @@ public class C99BuildASTParserAction extends BuildASTParserAction { if(TRACE_AST_STACK) System.out.println(astStack); } - - - - /** - * init_declarator ::= declarator '=' initializer - */ - public void consumeDeclaratorWithInitializer() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - IASTInitializer initializer = (IASTInitializer) astStack.pop(); - IASTDeclarator declarator = (IASTDeclarator) astStack.peek(); - declarator.setInitializer(initializer); - setOffsetAndLength(declarator); // adjust the length to include the initializer - } - - + @Deprecated public void consumeDeclaratorCompleteField(/*IBinding binding*/) { //IASTDeclarator declarator = (IASTDeclarator) astStack.peek(); //declarator.getName().setBinding(binding); } - /** - * direct_declarator ::= direct_declarator '(' parameter_type_list ')' - * direct_declarator ::= direct_declarator '(' ')' - */ - public void consumeDirectDeclaratorFunctionDeclarator(boolean hasParameters) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - IASTName name = nodeFactory.newName(); - IASTStandardFunctionDeclarator declarator = nodeFactory.newFunctionDeclarator(name); - - if(hasParameters) { - boolean isVarArgs = astStack.pop() == PLACE_HOLDER; - declarator.setVarArgs(isVarArgs); - - for(Object o : astStack.closeScope()) { - declarator.addParameterDeclaration((IASTParameterDeclaration)o); - } - } - - int endOffset = endOffset(parser.getRightIToken()); - consumeDirectDeclaratorFunctionDeclarator(declarator, endOffset); - } - - /** * direct_declarator ::= direct_declarator '(' identifier_list ')' */ @@ -385,7 +312,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { declarator.setParameterNames(names); astStack.closeScope(); int endOffset = endOffset(parser.getRightIToken()); - consumeDirectDeclaratorFunctionDeclarator(declarator, endOffset); + addFunctionModifier(declarator, endOffset); } @@ -402,9 +329,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { } - - - + /** * pointer ::= '*' @@ -448,49 +373,8 @@ public class C99BuildASTParserAction extends BuildASTParserAction { } - /** - * parameter_declaration ::= declaration_specifiers declarator - * | declaration_specifiers abstract_declarator - */ - public void consumeParameterDeclaration() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - IASTDeclarator declarator = (IASTDeclarator) astStack.pop(); - IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop(); - IASTParameterDeclaration declaration = nodeFactory.newParameterDeclaration(declSpec, declarator); - setOffsetAndLength(declaration); - astStack.push(declaration); - - if(TRACE_AST_STACK) System.out.println(astStack); - } - /** - * parameter_declaration ::= declaration_specifiers - */ - public void consumeParameterDeclarationWithoutDeclarator(/*IBinding binding*/) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - // offsets need to be calculated differently in this case - final int endOffset = parser.getRightIToken().getEndOffset() + 1; - - IASTName name = nodeFactory.newName(); - setOffsetAndLength(name, endOffset, 0); - //name.setBinding(binding); - - // it appears that a declarator is always required in the AST here - IASTDeclarator declarator = nodeFactory.newDeclarator(name); - setOffsetAndLength(declarator, endOffset, 0); - - IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop(); - IASTParameterDeclaration declaration = nodeFactory.newParameterDeclaration(declSpec, declarator); - - setOffsetAndLength(declaration); - astStack.push(declaration); - - if(TRACE_AST_STACK) System.out.println(astStack); - } - @Deprecated public void consumeDeclaratorCompleteParameter(/*IBinding binding*/) { //if(DEBUG) DebugUtil.printMethodTrace(); @@ -500,28 +384,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { } - /** - * direct_abstract_declarator - * ::= array_modifier - * | direct_abstract_declarator array_modifier - */ - public void consumeAbstractDeclaratorArrayModifier(boolean hasDeclarator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - IASTArrayModifier arrayModifier = (IASTArrayModifier) astStack.pop(); - - if(hasDeclarator) { - consumeDeclaratorArray(arrayModifier); - } - else { - IASTArrayDeclarator decl = nodeFactory.newArrayDeclarator(nodeFactory.newName()); - decl.addArrayModifier(arrayModifier); - setOffsetAndLength(decl); - astStack.push(decl); - - if(TRACE_AST_STACK) System.out.println(astStack); - } - } + /** @@ -531,27 +394,29 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * | '(' parameter_type_list ')' * | direct_abstract_declarator '(' parameter_type_list ')' */ - public void consumeAbstractDeclaratorFunctionDeclarator(boolean hasDeclarator, boolean hasParameters) { + public void consumeDirectDeclaratorFunctionDeclarator(boolean hasDeclarator, boolean hasParameters) { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStandardFunctionDeclarator declarator = nodeFactory.newFunctionDeclarator(nodeFactory.newName()); + IASTName name = nodeFactory.newName(); + IASTStandardFunctionDeclarator declarator = nodeFactory.newFunctionDeclarator(name); if(hasParameters) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - for(Object o : astStack.closeScope()) { - declarator.addParameterDeclaration((IASTParameterDeclaration)o); - } + boolean isVarArgs = astStack.pop() == PLACE_HOLDER; + declarator.setVarArgs(isVarArgs); + + for(Object param : astStack.closeScope()) + declarator.addParameterDeclaration((IASTParameterDeclaration)param); } if(hasDeclarator) { - consumeDirectDeclaratorFunctionDeclarator(declarator, endOffset(parser.getRightIToken())); + addFunctionModifier(declarator, endOffset(parser.getRightIToken())); } else { setOffsetAndLength(declarator); astStack.push(declarator); - - if(TRACE_AST_STACK) System.out.println(astStack); } + + if(TRACE_AST_STACK) System.out.println(astStack); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/IC99ASTNodeFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/IC99ASTNodeFactory.java index b15d85fd267..83a46368a2e 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/IC99ASTNodeFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/IC99ASTNodeFactory.java @@ -50,8 +50,6 @@ public interface IC99ASTNodeFactory extends IASTNodeFactory { public ICASTPointer newCPointer(); - public IASTParameterDeclaration newParameterDeclaration(IASTDeclSpecifier declSpec, IASTDeclarator declarator); - public ICASTDesignatedInitializer newCDesignatedInitializer(IASTInitializer rhs); public ICASTArrayDesignator newCArrayDesignator(IASTExpression exp); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java index 22ac610ae3c..a13071039b4 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java @@ -46,6 +46,7 @@ import org.eclipse.cdt.core.dom.ast.IASTLabelStatement; import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNullStatement; +import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.dom.ast.IASTPointer; import org.eclipse.cdt.core.dom.ast.IASTProblem; import org.eclipse.cdt.core.dom.ast.IASTProblemDeclaration; @@ -137,6 +138,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNamespaceDefinition; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNewExpression; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNullStatement; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTOperatorName; +import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTParameterDeclaration; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTPointer; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTPointerToMember; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTProblem; @@ -164,12 +166,13 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTUsingDirective; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTVisibilityLabel; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTWhileStatement; -@SuppressWarnings("restriction") // all AST node constructors are internal + /** * Abstract factory implementation that creates C++ AST nodes. * * @author Mike Kucera */ +@SuppressWarnings("restriction") // all AST node constructors are internal public class CPPASTNodeFactory implements ICPPASTNodeFactory { public static final CPPASTNodeFactory DEFAULT_INSTANCE = new CPPASTNodeFactory(); @@ -495,4 +498,9 @@ public class CPPASTNodeFactory implements ICPPASTNodeFactory { return new CPPASTFunctionDeclarator(name); } + public IASTParameterDeclaration newParameterDeclaration( + IASTDeclSpecifier declSpec, IASTDeclarator declarator) { + return new CPPASTParameterDeclaration(declSpec, declarator); + } + } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java index 3fb0a84ced3..e5ec2a6d502 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java @@ -1254,41 +1254,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { } - /** - * declarator - * ::= ptr_operator_seq_opt direct_declarator - */ - public void consumeDeclaratorWithPointer() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - IASTDeclarator declarator = (IASTDeclarator) astStack.pop(); - - for(Object ptr : astStack.closeScope()) { - declarator.addPointerOperator((IASTPointerOperator) ptr); - } - - setOffsetAndLength(declarator); // TODO is it correct to change the offset and length? - astStack.push(declarator); - - if(TRACE_AST_STACK) System.out.println(astStack); - } - - - /** - * init_declarator - * ::= declarator initializer - */ - public void consumeDeclaratorWithInitializer() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - IASTInitializer initializer = (IASTInitializer) astStack.pop(); - IASTDeclarator declarator = (IASTDeclarator) astStack.peek(); - declarator.setInitializer(initializer); - setOffsetAndLength(declarator); // adjust the length to include the initializer - - if(TRACE_AST_STACK) System.out.println(astStack); - } - /** * initializer @@ -1311,7 +1276,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= basic_direct_declarator '(' parameter_declaration_clause ')' * cv_qualifier_seq_opt exception_specification_opt */ - public void consumeDirectDeclaratorFunctionDeclarator() { + public void consumeDirectDeclaratorFunctionDeclarator(boolean hasDeclarator) { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); IASTName name = nodeFactory.newName(); @@ -1320,6 +1285,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { for(Object typeId : astStack.closeScope()) { declarator.addExceptionSpecificationTypeId((IASTTypeId) typeId); } + for(Object token : astStack.closeScope()) { switch(((IToken)token).getKind()) { default: assert false; @@ -1335,8 +1301,14 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { declarator.addParameterDeclaration((IASTParameterDeclaration)o); } - int endOffset = endOffset(parser.getRightIToken()); - consumeDirectDeclaratorFunctionDeclarator(declarator, endOffset); + if(hasDeclarator) { + int endOffset = endOffset(parser.getRightIToken()); + addFunctionModifier(declarator, endOffset); + } + else { + setOffsetAndLength(declarator); + astStack.push(declarator); + } } } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.g b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.g index b7eebfde636..6f07f6b89f0 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.g @@ -685,7 +685,7 @@ init_declarator_list init_declarator ::= complete_declarator | complete_declarator '=' initializer - /. $Build consumeDeclaratorWithInitializer(); $EndBuild ./ + /. $Build consumeDeclaratorWithInitializer(true); $EndBuild ./ complete_declarator @@ -886,7 +886,7 @@ function_specifier declarator ::= direct_declarator - | pointer direct_declarator + | pointer_seq direct_declarator /. $Build consumeDeclaratorWithPointer(true); $EndBuild ./ @@ -916,9 +916,9 @@ declarator_id_name array_direct_declarator ::= basic_direct_declarator array_modifier - /. $Build consumeDirectDeclaratorArrayDeclarator(); $EndBuild ./ + /. $Build consumeDirectDeclaratorArrayDeclarator(true); $EndBuild ./ | array_direct_declarator array_modifier - /. $Build consumeDirectDeclaratorArrayDeclarator(); $EndBuild ./ + /. $Build consumeDirectDeclaratorArrayDeclarator(true); $EndBuild ./ function_prototype_direct_declarator @@ -928,14 +928,14 @@ function_prototype_direct_declarator function_direct_declarator ::= basic_direct_declarator '(' parameter_type_list ')' - /. $Build consumeDirectDeclaratorFunctionDeclarator(true); $EndBuild ./ + /. $Build consumeDirectDeclaratorFunctionDeclarator(true, true); $EndBuild ./ | basic_direct_declarator '(' ')' - /. $Build consumeDirectDeclaratorFunctionDeclarator(false); $EndBuild ./ + /. $Build consumeDirectDeclaratorFunctionDeclarator(true, false); $EndBuild ./ function_declarator ::= function_direct_declarator - | pointer function_direct_declarator + | pointer_seq function_direct_declarator /. $Build consumeDeclaratorWithPointer(true); $EndBuild ./ @@ -953,7 +953,7 @@ knr_direct_declarator knr_function_declarator ::= knr_direct_declarator - | pointer knr_direct_declarator + | pointer_seq knr_direct_declarator /. $Build consumeDeclaratorWithPointer(true); $EndBuild ./ @@ -989,14 +989,14 @@ array_modifier_type_qualifiers ::= type_qualifier_list -pointer +pointer_seq ::= '*' /. $Build consumePointer(); $EndBuild ./ - | pointer '*' + | pointer_seq '*' /. $Build consumePointer(); $EndBuild ./ | '*' type_qualifier_list /. $Build consumePointerTypeQualifierList(); $EndBuild ./ - | pointer '*' type_qualifier_list + | pointer_seq '*' type_qualifier_list /. $Build consumePointerTypeQualifierList(); $EndBuild ./ @@ -1066,29 +1066,41 @@ type_name abstract_declarator -- a declarator that does not include an identifier ::= direct_abstract_declarator - | pointer + | pointer_seq + /. $Build consumeDeclaratorWithPointer(false); $EndBuild ./ + | pointer_seq direct_abstract_declarator /. $Build consumeDeclaratorWithPointer(false); $EndBuild ./ - | pointer direct_abstract_declarator - /. $Build consumeDeclaratorWithPointer(true); $EndBuild ./ --- rewritten to use the more general array_modifier rule direct_abstract_declarator + ::= basic_direct_abstract_declarator + | array_direct_abstract_declarator + | function_direct_abstract_declarator + + +basic_direct_abstract_declarator ::= '(' abstract_declarator ')' /. $Build consumeDirectDeclaratorBracketed(); $EndBuild ./ - | array_modifier - /. $Build consumeAbstractDeclaratorArrayModifier(false); $EndBuild ./ - | direct_abstract_declarator array_modifier - /. $Build consumeAbstractDeclaratorArrayModifier(true); $EndBuild ./ - | '(' ')' - /. $Build consumeAbstractDeclaratorFunctionDeclarator(false, false); $EndBuild ./ - | direct_abstract_declarator '(' ')' - /. $Build consumeAbstractDeclaratorFunctionDeclarator(true, false); $EndBuild ./ + + +array_direct_abstract_declarator + ::= array_modifier + /. $Build consumeDirectDeclaratorArrayDeclarator(false); $EndBuild ./ + | array_direct_abstract_declarator array_modifier + /. $Build consumeDirectDeclaratorArrayDeclarator(true); $EndBuild ./ + | basic_direct_abstract_declarator array_modifier + /. $Build consumeDirectDeclaratorArrayDeclarator(true); $EndBuild ./ + + +function_direct_abstract_declarator + ::= '(' ')' + /. $Build consumeDirectDeclaratorFunctionDeclarator(false, false); $EndBuild ./ + | basic_direct_abstract_declarator '(' ')' + /. $Build consumeDirectDeclaratorFunctionDeclarator(true, false); $EndBuild ./ | '(' parameter_type_list ')' - /. $Build consumeAbstractDeclaratorFunctionDeclarator(false, true); $EndBuild ./ - | direct_abstract_declarator '(' parameter_type_list ')' - /. $Build consumeAbstractDeclaratorFunctionDeclarator(true, true); $EndBuild ./ - + /. $Build consumeDirectDeclaratorFunctionDeclarator(false, true); $EndBuild ./ + | basic_direct_abstract_declarator '(' parameter_type_list ')' + /. $Build consumeDirectDeclaratorFunctionDeclarator(true, true); $EndBuild ./ initializer 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 8ad4d7b4527..f1a88177e3e 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java @@ -27,7 +27,6 @@ import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99TypedefTrackerParserAction; -import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.IC99Scope; import org.eclipse.cdt.core.dom.lrparser.util.DebugUtil; public class C99Parser extends AbstractTrialUndoActionProvider< C99ParserAction , Object > implements IParserActionTokenProvider, IParser { @@ -181,7 +180,7 @@ public int getKind(int i) { // Initialize ruleAction array. // static { - RULE_ACTIONS = new Action[305 + 1]; + RULE_ACTIONS = new Action[309 + 1]; RULE_ACTIONS[0] = null; RULE_ACTIONS[1] = new Action1(); @@ -334,29 +333,30 @@ public int getKind(int i) { RULE_ACTIONS[266] = new Action266(); RULE_ACTIONS[268] = new Action268(); RULE_ACTIONS[269] = new Action269(); - RULE_ACTIONS[270] = new Action270(); - RULE_ACTIONS[271] = new Action271(); - RULE_ACTIONS[272] = new Action272(); RULE_ACTIONS[273] = new Action273(); RULE_ACTIONS[274] = new Action274(); RULE_ACTIONS[275] = new Action275(); RULE_ACTIONS[276] = new Action276(); RULE_ACTIONS[277] = new Action277(); RULE_ACTIONS[278] = new Action278(); - RULE_ACTIONS[283] = new Action283(); + RULE_ACTIONS[279] = new Action279(); + RULE_ACTIONS[280] = new Action280(); + RULE_ACTIONS[281] = new Action281(); + RULE_ACTIONS[282] = new Action282(); RULE_ACTIONS[287] = new Action287(); - RULE_ACTIONS[288] = new Action288(); - RULE_ACTIONS[289] = new Action289(); - RULE_ACTIONS[290] = new Action290(); RULE_ACTIONS[291] = new Action291(); RULE_ACTIONS[292] = new Action292(); - RULE_ACTIONS[297] = new Action297(); - RULE_ACTIONS[298] = new Action298(); + RULE_ACTIONS[293] = new Action293(); + RULE_ACTIONS[294] = new Action294(); + RULE_ACTIONS[295] = new Action295(); + RULE_ACTIONS[296] = new Action296(); RULE_ACTIONS[301] = new Action301(); RULE_ACTIONS[302] = new Action302(); - RULE_ACTIONS[303] = new Action303(); - RULE_ACTIONS[304] = new Action304(); RULE_ACTIONS[305] = new Action305(); + RULE_ACTIONS[306] = new Action306(); + RULE_ACTIONS[307] = new Action307(); + RULE_ACTIONS[308] = new Action308(); + RULE_ACTIONS[309] = new Action309(); // @@ -1345,7 +1345,7 @@ public int getKind(int i) { static final class Action160 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeDeclaratorWithInitializer(); /* action.builder.getASTStack().print();*/ + consumeDeclaratorWithInitializer(true); /* action.builder.getASTStack().print();*/ } } @@ -1701,7 +1701,7 @@ public int getKind(int i) { } // - // Rule 220: declarator ::= pointer direct_declarator + // Rule 220: declarator ::= pointer_seq direct_declarator // static final class Action220 extends DeclaredAction< C99ParserAction , Object > { @@ -1759,7 +1759,7 @@ public int getKind(int i) { static final class Action228 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeDirectDeclaratorArrayDeclarator(); /* action.builder.getASTStack().print();*/ + consumeDirectDeclaratorArrayDeclarator(true); /* action.builder.getASTStack().print();*/ } } @@ -1769,7 +1769,7 @@ public int getKind(int i) { static final class Action229 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeDirectDeclaratorArrayDeclarator(); /* action.builder.getASTStack().print();*/ + consumeDirectDeclaratorArrayDeclarator(true); /* action.builder.getASTStack().print();*/ } } @@ -1795,7 +1795,7 @@ public int getKind(int i) { static final class Action231 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); /* action.builder.getASTStack().print();*/ + consumeDirectDeclaratorFunctionDeclarator(true, true); /* action.builder.getASTStack().print();*/ } } @@ -1805,12 +1805,12 @@ public int getKind(int i) { static final class Action232 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeDirectDeclaratorFunctionDeclarator(false); /* action.builder.getASTStack().print();*/ + consumeDirectDeclaratorFunctionDeclarator(true, false); /* action.builder.getASTStack().print();*/ } } // - // Rule 234: function_declarator ::= pointer function_direct_declarator + // Rule 234: function_declarator ::= pointer_seq function_direct_declarator // static final class Action234 extends DeclaredAction< C99ParserAction , Object > { @@ -1830,7 +1830,7 @@ public int getKind(int i) { } // - // Rule 237: knr_function_declarator ::= pointer knr_direct_declarator + // Rule 237: knr_function_declarator ::= pointer_seq knr_direct_declarator // static final class Action237 extends DeclaredAction< C99ParserAction , Object > { @@ -1950,7 +1950,7 @@ public int getKind(int i) { } // - // Rule 250: pointer ::= * + // Rule 250: pointer_seq ::= * // static final class Action250 extends DeclaredAction< C99ParserAction , Object > { @@ -1960,7 +1960,7 @@ public int getKind(int i) { } // - // Rule 251: pointer ::= pointer * + // Rule 251: pointer_seq ::= pointer_seq * // static final class Action251 extends DeclaredAction< C99ParserAction , Object > { @@ -1970,7 +1970,7 @@ public int getKind(int i) { } // - // Rule 252: pointer ::= * type_qualifier_list + // Rule 252: pointer_seq ::= * type_qualifier_list // static final class Action252 extends DeclaredAction< C99ParserAction , Object > { @@ -1980,7 +1980,7 @@ public int getKind(int i) { } // - // Rule 253: pointer ::= pointer * type_qualifier_list + // Rule 253: pointer_seq ::= pointer_seq * type_qualifier_list // static final class Action253 extends DeclaredAction< C99ParserAction , Object > { @@ -2137,7 +2137,7 @@ public int getKind(int i) { } // - // Rule 268: abstract_declarator ::= pointer + // Rule 268: abstract_declarator ::= pointer_seq // static final class Action268 extends DeclaredAction< C99ParserAction , Object > { @@ -2147,19 +2147,19 @@ public int getKind(int i) { } // - // Rule 269: abstract_declarator ::= pointer direct_abstract_declarator + // Rule 269: abstract_declarator ::= pointer_seq direct_abstract_declarator // static final class Action269 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeDeclaratorWithPointer(true); /* action.builder.getASTStack().print();*/ + consumeDeclaratorWithPointer(false); /* action.builder.getASTStack().print();*/ } } // - // Rule 270: direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - static final class Action270 extends DeclaredAction< C99ParserAction , Object > { + static final class Action273 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. consumeDirectDeclaratorBracketed(); /* action.builder.getASTStack().print();*/ @@ -2167,79 +2167,89 @@ public int getKind(int i) { } // - // Rule 271: direct_abstract_declarator ::= array_modifier - // - static final class Action271 extends DeclaredAction< C99ParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeAbstractDeclaratorArrayModifier(false); /* action.builder.getASTStack().print();*/ - } - } - - // - // Rule 272: direct_abstract_declarator ::= direct_abstract_declarator array_modifier - // - static final class Action272 extends DeclaredAction< C99ParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeAbstractDeclaratorArrayModifier(true); /* action.builder.getASTStack().print();*/ - } - } - - // - // Rule 273: direct_abstract_declarator ::= ( ) - // - static final class Action273 extends DeclaredAction< C99ParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeAbstractDeclaratorFunctionDeclarator(false, false); /* action.builder.getASTStack().print();*/ - } - } - - // - // Rule 274: direct_abstract_declarator ::= direct_abstract_declarator ( ) + // Rule 274: array_direct_abstract_declarator ::= array_modifier // static final class Action274 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeAbstractDeclaratorFunctionDeclarator(true, false); /* action.builder.getASTStack().print();*/ + consumeDirectDeclaratorArrayDeclarator(false); /* action.builder.getASTStack().print();*/ } } // - // Rule 275: direct_abstract_declarator ::= ( parameter_type_list ) + // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // static final class Action275 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeAbstractDeclaratorFunctionDeclarator(false, true); /* action.builder.getASTStack().print();*/ + consumeDirectDeclaratorArrayDeclarator(true); /* action.builder.getASTStack().print();*/ } } // - // Rule 276: direct_abstract_declarator ::= direct_abstract_declarator ( parameter_type_list ) + // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // static final class Action276 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeAbstractDeclaratorFunctionDeclarator(true, true); /* action.builder.getASTStack().print();*/ + consumeDirectDeclaratorArrayDeclarator(true); /* action.builder.getASTStack().print();*/ } } // - // Rule 277: initializer ::= assignment_expression + // Rule 277: function_direct_abstract_declarator ::= ( ) // static final class Action277 extends DeclaredAction< C99ParserAction , Object > { + public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. + consumeDirectDeclaratorFunctionDeclarator(false, false); /* action.builder.getASTStack().print();*/ + } + } + + // + // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // + static final class Action278 extends DeclaredAction< C99ParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true, false); /* action.builder.getASTStack().print();*/ + } + } + + // + // Rule 279: function_direct_abstract_declarator ::= ( parameter_type_list ) + // + static final class Action279 extends DeclaredAction< C99ParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. + consumeDirectDeclaratorFunctionDeclarator(false, true); /* action.builder.getASTStack().print();*/ + } + } + + // + // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) + // + static final class Action280 extends DeclaredAction< C99ParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true, true); /* action.builder.getASTStack().print();*/ + } + } + + // + // Rule 281: initializer ::= assignment_expression + // + static final class Action281 extends DeclaredAction< C99ParserAction , Object > { + public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. consumeInitializer(); /* action.builder.getASTStack().print();*/ } } // - // Rule 278: initializer ::= { initializer_list comma_opt } + // Rule 282: initializer ::= { initializer_list comma_opt } // - static final class Action278 extends DeclaredAction< C99ParserAction , Object > { + static final class Action282 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. consumeInitializerList(); /* action.builder.getASTStack().print();*/ @@ -2247,9 +2257,9 @@ public int getKind(int i) { } // - // Rule 283: designated_initializer ::= designation = initializer + // Rule 287: designated_initializer ::= designation = initializer // - static final class Action283 extends DeclaredAction< C99ParserAction , Object > { + static final class Action287 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. consumeInitializerDesignated(); /* action.builder.getASTStack().print();*/ @@ -2257,59 +2267,59 @@ public int getKind(int i) { } // - // Rule 287: designator_base ::= [ constant_expression ] - // - static final class Action287 extends DeclaredAction< C99ParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeDesignatorArray(); /* action.builder.getASTStack().print();*/ - } - } - - // - // Rule 288: designator_base ::= . identifier_or_typedefname - // - static final class Action288 extends DeclaredAction< C99ParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeDesignatorField(); /* action.builder.getASTStack().print();*/ - } - } - - // - // Rule 289: designator ::= [ constant_expression ] - // - static final class Action289 extends DeclaredAction< C99ParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeDesignatorArray(); /* action.builder.getASTStack().print();*/ - } - } - - // - // Rule 290: designator ::= . identifier_or_typedefname - // - static final class Action290 extends DeclaredAction< C99ParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. - consumeDesignatorField(); /* action.builder.getASTStack().print();*/ - } - } - - // - // Rule 291: translation_unit ::= external_declaration_list + // Rule 291: designator_base ::= [ constant_expression ] // static final class Action291 extends DeclaredAction< C99ParserAction , Object > { + public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. + consumeDesignatorArray(); /* action.builder.getASTStack().print();*/ + } + } + + // + // Rule 292: designator_base ::= . identifier_or_typedefname + // + static final class Action292 extends DeclaredAction< C99ParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. + consumeDesignatorField(); /* action.builder.getASTStack().print();*/ + } + } + + // + // Rule 293: designator ::= [ constant_expression ] + // + static final class Action293 extends DeclaredAction< C99ParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. + consumeDesignatorArray(); /* action.builder.getASTStack().print();*/ + } + } + + // + // Rule 294: designator ::= . identifier_or_typedefname + // + static final class Action294 extends DeclaredAction< C99ParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. + consumeDesignatorField(); /* action.builder.getASTStack().print();*/ + } + } + + // + // Rule 295: translation_unit ::= external_declaration_list + // + static final class Action295 extends DeclaredAction< C99ParserAction , Object > { + public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. consumeTranslationUnit(); /* action.builder.getASTStack().print();*/ } } // - // Rule 292: translation_unit ::= $Empty + // Rule 296: translation_unit ::= $Empty // - static final class Action292 extends DeclaredAction< C99ParserAction , Object > { + static final class Action296 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. consumeTranslationUnit(); /* action.builder.getASTStack().print();*/ @@ -2317,9 +2327,9 @@ public int getKind(int i) { } // - // Rule 297: external_declaration ::= ; + // Rule 301: external_declaration ::= ; // - static final class Action297 extends DeclaredAction< C99ParserAction , Object > { + static final class Action301 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. consumeDeclarationEmpty(); /* action.builder.getASTStack().print();*/ @@ -2327,9 +2337,9 @@ public int getKind(int i) { } // - // Rule 298: external_declaration ::= ERROR_TOKEN + // Rule 302: external_declaration ::= ERROR_TOKEN // - static final class Action298 extends DeclaredAction< C99ParserAction , Object > { + static final class Action302 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. consumeDeclarationProblem(); /* action.builder.getASTStack().print();*/ @@ -2338,9 +2348,9 @@ public int getKind(int i) { // - // Rule 301: function_definition ::= declaration_specifiers function_declarator function_body + // Rule 305: function_definition ::= declaration_specifiers function_declarator function_body // - static final class Action301 extends DeclaredAction< C99ParserAction , Object > { + static final class Action305 extends DeclaredAction< C99ParserAction , Object > { public boolean doTrial(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.resolver. @@ -2348,7 +2358,7 @@ public int getKind(int i) { return hasUndo; } - public Action301() { hasUndo = true; }; + public Action305() { hasUndo = true; }; public void doUndo(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.resolver.undo(); } @@ -2361,9 +2371,9 @@ public int getKind(int i) { // - // Rule 302: function_definition ::= function_declarator function_body + // Rule 306: function_definition ::= function_declarator function_body // - static final class Action302 extends DeclaredAction< C99ParserAction , Object > { + static final class Action306 extends DeclaredAction< C99ParserAction , Object > { public boolean doTrial(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.resolver. @@ -2371,7 +2381,7 @@ public int getKind(int i) { return hasUndo; } - public Action302() { hasUndo = true; }; + public Action306() { hasUndo = true; }; public void doUndo(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.resolver.undo(); } @@ -2384,9 +2394,9 @@ public int getKind(int i) { // - // Rule 303: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // Rule 307: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement // - static final class Action303 extends DeclaredAction< C99ParserAction , Object > { + static final class Action307 extends DeclaredAction< C99ParserAction , Object > { public boolean doTrial(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.resolver. @@ -2394,7 +2404,7 @@ public int getKind(int i) { return hasUndo; } - public Action303() { hasUndo = true; }; + public Action307() { hasUndo = true; }; public void doUndo(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.resolver.undo(); } @@ -2406,9 +2416,9 @@ public int getKind(int i) { } // - // Rule 304: function_body ::= { } + // Rule 308: function_body ::= { } // - static final class Action304 extends DeclaredAction< C99ParserAction , Object > { + static final class Action308 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. consumeStatementCompoundStatement(false); /* action.builder.getASTStack().print();*/ @@ -2416,9 +2426,9 @@ public int getKind(int i) { } // - // Rule 305: function_body ::= { block_item_list } + // Rule 309: function_body ::= { block_item_list } // - static final class Action305 extends DeclaredAction< C99ParserAction , Object > { + static final class Action309 extends DeclaredAction< C99ParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, C99ParserAction action) { action.builder. consumeStatementCompoundStatement(true); /* action.builder.getASTStack().print();*/ 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 3f85d621215..267add9c202 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 @@ -60,196 +60,196 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 6,4,1,3,6,1,3,1,3,2, 4,3,5,4,6,6,3,5,1,1, 2,3,4,1,2,1,3,1,1,3, - 2,1,1,1,1,2,1,2,3,3, - 1,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,4,6,2,4,-6,0,-167,0,0, + 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,4,6,2,4,-6, + 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,-3,0,-2,0, - -260,0,-12,0,0,-113,0,0,0,-163, - -39,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-58, - 0,0,0,0,0,-37,-20,0,-26,-4, - 0,0,0,0,0,0,0,-27,0,0, - 0,0,0,0,-29,-30,0,0,0,0, + -2,-98,0,0,-4,0,-18,0,0,-20, + 0,0,0,-67,-37,0,0,0,0,0, + 0,0,-26,0,-30,0,0,0,0,0, + 0,0,0,-93,0,-61,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-264,0,0,0,0,0,0,0,0, + -58,0,0,0,0,0,0,0,0,0, + 0,0,-177,0,0,-27,0,0,0,0, + 0,0,0,-12,0,-87,0,0,-265,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,-21,0,-160,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-31, - -46,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-33, - -13,0,0,0,0,-44,0,0,0,0, + 0,-249,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -3,0,-46,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-29,-165,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -8,0,-31,0,0,-44,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,-161,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-62,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,-21, + 0,-101,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -32,0,-101,0,0,0,0,0,0,0, + -32,0,-125,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-18,-36,-125,0,0,0,0,0,0, + 0,-33,0,-154,0,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,0,-177,0,-154,0,0,0,0,0, - 0,0,0,0,0,0,-268,0,0,0, + 0,0,0,0,-48,0,-162,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-143,0,0,0,-65, - -24,-185,-48,0,-165,-76,0,0,0,0, + 0,0,-36,0,0,0,-242,0,-41,0, + 0,-13,-236,-28,0,-15,0,-24,-92,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-61, - 0,-28,0,-92,0,-77,0,-118,0,0, - 0,0,0,0,0,-109,0,0,0,-56, - 0,-221,0,0,0,-138,0,-15,0,0, - -87,0,-78,0,0,0,0,0,0,0, + -109,0,0,0,0,0,0,0,0,0, + 0,0,-22,0,0,-145,0,-45,0,0, + -243,0,0,0,0,0,0,0,0,0, + 0,0,-65,0,0,0,0,-143,0,0, + 0,0,0,0,0,-150,-121,0,0,0, + 0,0,0,0,0,-105,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-79,0,0,0,-150,-121,0, - 0,0,0,0,0,0,0,-105,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,-127,-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,-156,-40,0,0,0,0,0,0, - 0,0,0,0,0,0,-240,0,0,0, - 0,0,0,0,0,-72,-80,0,0,0, - 0,0,0,0,0,0,0,0,0,-128, + -156,-23,0,0,0,0,0,0,0,0, + 0,0,-25,-77,0,0,0,-34,0,0, + 0,0,0,0,0,0,-72,-78,0,0, 0,0,0,0,0,0,0,0,0,0, + -128,-79,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,0,0, - 0,0,0,0,0,0,0,0,0,-34, - 0,-130,0,0,0,0,0,0,0,0, + 0,-129,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -35,0,-131,0,0,0,0,0,0,0, + -35,0,-130,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-38,0,-132,0,0,0,0,0,0, + 0,-38,0,-131,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-49,0,-133,0,0,0,0,0, + 0,0,-49,0,-132,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-51,0,-134,0,0,0,0, + 0,0,0,-51,0,-133,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-54,0,-135,0,0,0, + 0,0,0,0,-54,0,-134,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-55,0,-136,0,0, + 0,0,0,0,0,-55,0,-135,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-60,0,-137,0, + 0,0,0,0,0,0,-60,0,-136,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-88,0,-184, + 0,0,0,0,0,0,0,-88,0,-137, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-191,-8, + 0,0,0,0,0,0,0,0,-239,0, + -184,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-191, + -40,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-80,-108, + -163,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,0,0,0,0,0,-81,-22,-155, + 0,0,0,0,0,0,-227,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-82,-186,-83,-192,0,0,0,0,0, + 0,0,0,0,0,-229,0,-160,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-144,-84,-226,0,0,0,0, + 0,-118,-81,-82,0,0,0,-222,0,-94, + 0,0,-95,-83,-74,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-228,0,-162,0,0,0, + 0,0,-231,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-41,0,0,0,0,0,0,0, - 0,-23,-63,-67,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-85, - 0,-157,0,0,0,0,0,0,0,0, - 0,0,-86,-45,0,-90,0,-91,-230,0, + 0,-198,-252,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-251,0, + 0,0,-39,-126,-260,0,-155,-187,0,0, + 0,0,0,0,0,0,0,0,0,-144, + -84,-85,-86,0,0,0,0,0,0,0, + 0,0,0,-113,0,0,0,-90,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-93,0,-126, - -259,0,-158,-187,0,0,0,0,0,0, - 0,0,0,-25,0,-97,0,0,-96,0, - 0,0,-139,0,0,0,0,0,0,-196, - 0,0,0,-117,0,0,0,0,0,0, - 0,0,0,0,-94,-99,0,-159,0,0, - 0,0,0,0,0,0,0,0,-234,-100, - 0,0,0,0,-261,0,0,0,0,0, + -91,-262,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-271,0,0,0,0,0,0, + -63,-271,0,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,-7, - 0,-103,-220,0,-19,0,-108,-140,0,-245, + -75,-199,0,0,0,0,0,-189,0,-97, + 0,-96,-112,0,0,-124,-246,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,-98,0,0,0,0,-95,-104, - -188,0,0,0,0,0,-197,0,0,0, - 0,0,0,0,0,-106,0,0,0,0, - -179,0,0,0,0,0,0,-53,-5,0, + 0,0,0,0,0,-42,0,0,0,0, + 0,-7,0,-146,0,-234,0,0,0,0, + 0,0,0,0,0,-99,0,-186,0,0, + -102,-169,-100,0,-180,0,0,0,0,0, + 0,-138,0,0,0,-1,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,-189,0,0,-102,0,0,0,-169,0, - 0,0,0,0,0,-112,0,0,0,0, - 0,0,0,0,0,-47,-193,0,-199,-114, - -233,0,0,0,0,-152,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-115, - 0,-120,0,0,0,-168,0,0,0,0, - 0,0,0,0,-239,-180,0,-172,0,0, - 0,0,0,0,0,0,0,0,-253,0, - 0,0,0,-170,-64,0,0,-151,0,0, - 0,0,0,0,0,0,0,0,0,-200, - 0,0,0,0,0,-255,0,0,0,-145, + -258,0,-139,0,0,0,0,-253,-103,-104, + 0,0,-193,-185,-164,0,0,-179,0,0, + 0,0,0,0,0,-182,0,0,0,-170, + -183,0,0,0,0,0,0,0,0,0, + -106,0,0,0,-254,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-175,0,0,0,0,-182,-110,-183,0, - 0,0,-256,0,-75,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-202, - 0,0,0,-201,0,-146,0,0,0,-280, - 0,0,0,0,-238,0,-176,-250,0,0, - 0,0,0,0,0,0,-178,0,0,0, - 0,0,0,0,0,0,-286,0,0,0, - -116,-17,0,-219,-222,0,0,0,0,0, - 0,0,-229,-190,-203,0,0,-224,-204,-205, - 0,0,0,-288,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-122, - 0,0,0,0,-236,-225,-257,0,0,0, - 0,0,0,0,0,-181,0,-232,-252,0, + 0,-114,0,0,0,0,-115,-275,0,0, + 0,-256,0,-120,0,0,0,-168,0,-110, + 0,0,0,0,0,0,0,0,-172,0, + 0,0,-188,-203,0,0,0,0,-257,0, + 0,0,0,-56,-196,-53,-175,0,0,0, + 0,0,0,0,-235,-176,0,0,0,-233, + 0,-281,0,0,0,-280,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-178,0,0,0,-200,-221,0,-201, + 0,0,-286,0,0,0,-116,-17,-190,0, + -202,0,0,0,0,0,0,0,-204,0, + 0,0,0,0,-119,-251,0,0,0,-288, 0,0,0,0,0,0,0,0,0,0, - -241,-263,0,0,0,0,0,0,0,-43, - 0,0,0,0,0,-206,-237,-207,0,0, - 0,0,-265,-208,0,0,-209,0,-123,-276, - -210,-57,0,0,0,-211,0,0,-164,0, - 0,0,0,0,0,0,0,0,0,-1, - 0,-9,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-10,0,0,0, + 0,0,0,-230,0,0,0,0,0,0, + 0,-122,0,-220,0,0,0,0,0,0, + 0,0,0,-248,0,0,0,0,-181,0, + -205,0,-259,0,0,0,0,0,0,0, + 0,-223,0,0,0,0,0,0,-274,0, + -264,0,0,0,0,0,0,0,0,0, + 0,0,-270,0,-225,0,-226,0,-276,-43, + 0,0,0,0,0,-64,-206,-207,-208,-209, + 0,0,0,0,-283,-261,0,0,0,-210, + 0,0,0,0,0,0,0,0,0,-211, + 0,0,0,0,0,-212,-171,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -47,0,0,0,-19,0,0,-237,0,0, + 0,0,-213,0,0,0,-157,0,0,0, + 0,0,0,0,0,0,0,-241,0,0, + 0,0,0,0,-266,0,0,0,-272,-238, + -214,0,-215,0,0,0,0,0,0,0, + 0,0,-140,0,0,-216,0,-217,0,0, + 0,-158,0,0,0,0,0,0,0,0, + 0,0,-159,0,0,0,0,0,0,0, + 0,0,0,-151,-218,0,0,0,0,0, + 0,0,0,-197,0,-66,0,-277,-57,0, + -152,-279,0,0,0,0,0,0,0,-282, + 0,0,0,0,-269,0,0,0,0,-219, + 0,0,0,-284,-224,-278,0,-232,0,0, + 0,0,-123,-244,-245,-141,0,-173,0,-287, + 0,0,0,0,0,-142,0,0,0,0, -247,0,0,0,0,0,0,0,0,0, - 0,-212,0,-59,0,0,0,0,0,0, - 0,-269,-213,-267,-272,-214,0,0,0,-66, - 0,-215,-258,0,0,0,0,0,0,0, - 0,0,0,0,0,-141,0,0,0,0, - 0,0,0,-142,0,0,0,0,0,-270, - -274,0,-279,-282,0,0,0,-216,0,-10, - -217,-218,0,0,0,-223,0,-231,-277,0, - 0,0,0,0,0,-243,0,0,-153,0, + 0,0,0,0,0,0,0,0,0,-250, + 0,-153,0,0,0,0,0,0,0,0, + -194,-5,0,0,0,0,0,0,-11,0, + -273,0,-228,0,-14,0,0,0,0,0, + 0,0,0,-263,0,0,-16,-50,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-227,0,-11,-194,0,0,0, - 0,0,0,0,-14,-50,-235,0,0,0, - 0,-16,0,0,0,0,0,-278,-284,-287, - 0,-244,-246,0,0,-249,0,0,0,0, - 0,-273,0,0,0,-52,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-283, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-68,0,0,0,0, - 0,0,0,0,0,-69,-107,0,0,0, - 0,0,0,0,0,0,0,0,-70,0, + 0,0,0,-240,0,0,0,0,0,0, + 0,0,-52,0,0,0,-68,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -69,0,0,0,0,0,0,0,0,0, + 0,0,0,-70,0,0,0,0,0,0, 0,0,0,0,0,-71,0,0,0,0, - 0,0,0,-73,0,0,0,0,0,0, - 0,-89,0,0,0,0,0,0,0,-111, - 0,0,0,0,0,0,-147,0,0,0, - 0,0,0,0,0,0,-166,0,0,0, - 0,-148,0,0,0,0,0,0,0,-149, - 0,0,0,0,0,0,0,0,-195,0, - 0,0,0,0,0,0,-198,0,-242,0, - 0,-262,0,0,-42,0,0,0,0,-119, - 0,0,-266,0,-275,0,0,0,0,0, + 0,0,0,-107,0,-73,0,0,0,0, + 0,0,0,0,0,-89,-111,0,0,0, + 0,0,0,0,0,-147,0,0,0,0, + 0,0,0,-166,0,0,0,0,-148,0, + 0,0,0,0,0,0,-149,0,0,0, + 0,0,0,0,0,-59,0,0,-195,0, + 0,0,0,0,0,0,-117,0,-267,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-285,0,0,0,0,0,0,0, + 0,0,-174,0,0,0,-255,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-281,0,-285,0, - -171,0,-173,0,-174,0,-254,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,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; @@ -259,224 +259,224 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface BaseAction { public final static char baseAction[] = { - 100,1,26,21,34,34,24,24,35,35, + 103,1,26,21,34,34,24,24,35,35, 19,19,2,2,2,2,3,3,3,4, - 4,5,5,5,5,5,5,5,5,64, - 64,81,81,81,6,6,6,6,6,6, + 4,5,5,5,5,5,5,5,5,67, + 67,84,84,84,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,17,17,18,18,22,22,22, 22,22,22,22,22,22,22,22,22,36, - 27,20,101,101,102,102,56,37,37,37, - 37,37,37,37,38,38,38,30,30,83, - 83,65,65,39,39,40,40,40,59,59, + 27,20,104,104,105,105,56,37,37,37, + 37,37,37,37,38,38,38,30,30,86, + 86,68,68,39,39,40,40,40,62,62, 41,41,41,41,42,42,42,42,42,48, - 48,23,23,23,23,23,49,49,49,90, - 90,85,85,85,85,86,86,86,87,87, - 87,88,88,88,89,89,89,84,84,77, - 77,78,50,53,53,53,53,53,66,67, - 67,67,67,67,67,67,67,67,67,67, - 67,76,76,25,25,25,73,73,73,73, - 74,74,74,68,68,69,69,61,61,54, - 103,103,91,92,92,92,75,75,93,93, - 94,94,79,79,28,29,29,29,51,52, + 48,23,23,23,23,23,49,49,49,93, + 93,88,88,88,88,89,89,89,90,90, + 90,91,91,91,92,92,92,87,87,80, + 80,81,50,53,53,53,53,53,69,70, + 70,70,70,70,70,70,70,70,70,70, + 70,79,79,25,25,25,76,76,76,76, + 77,77,77,71,71,72,72,64,64,54, + 106,106,94,95,95,95,78,78,96,96, + 97,97,82,82,28,29,29,29,51,52, 52,43,43,43,43,31,31,32,44,44, - 45,33,33,95,95,46,105,105,104,104, - 47,47,47,47,47,47,47,47,47,96, - 55,55,55,55,70,70,62,62,62,63, - 63,57,57,106,106,72,72,71,71,71, - 58,58,58,58,58,58,58,60,60,82, - 82,82,82,80,107,108,108,109,109,110, - 110,100,100,111,111,97,97,97,97,112, - 112,98,98,98,99,99,772,562,1075,672, - 16,21,17,626,620,47,656,704,683,1048, - 787,1064,1062,1150,1085,1163,77,104,306,43, - 277,751,764,1210,137,214,809,367,225,233, - 1170,890,16,21,17,626,45,47,656,704, - 683,1048,787,1064,1798,139,136,138,460,162, - 1296,2030,1224,225,230,226,310,585,279,844, - 1295,1320,141,168,219,621,222,224,625,145, - 148,151,154,1808,232,1211,837,623,280,129, - 1323,1722,1800,1836,1845,1852,1592,367,225,234, - 1529,1030,1075,672,16,21,17,626,620,47, - 656,704,683,1048,787,1064,1062,1150,1085,1163, - 77,304,201,202,277,987,672,16,21,17, - 626,620,47,656,704,683,1048,787,1064,1062, - 1150,1085,1163,77,104,2025,1170,277,16,21, - 17,626,45,47,656,704,683,1048,787,1753, - 628,966,279,16,21,17,626,620,47,656, - 704,683,1048,787,1064,1062,1150,1085,1163,77, - 667,1220,280,277,1700,281,920,1485,16,21, - 17,626,620,47,656,704,683,1048,787,1064, - 1062,1150,1085,1163,77,282,480,1170,1133,16, - 21,17,626,45,47,656,704,683,1048,1756, - 240,160,1113,1699,16,21,17,626,620,47, - 656,704,683,1048,787,1064,1062,1150,1085,1163, - 77,104,1846,1170,1349,16,21,17,626,620, - 47,656,704,683,1048,787,1064,1062,1150,1085, - 1163,77,178,899,945,94,16,21,17,626, - 620,47,656,704,683,1048,787,1064,1062,1150, - 1085,1163,77,837,1105,1170,1427,16,21,17, - 626,45,47,656,704,683,1688,966,241,16, - 21,17,626,620,47,656,704,683,1048,787, - 1064,1062,1150,1085,1163,77,1249,366,107,277, - 309,423,1238,184,543,1170,1208,16,21,17, - 626,45,47,656,704,683,1048,787,1064,1062, - 1150,1802,113,89,987,1522,650,1430,1376,1322, - 1295,1630,178,98,1,543,1213,283,1237,1405, - 111,97,99,100,101,102,1295,1646,229,129, - 1223,112,1279,113,89,987,890,650,1228,1376, - 1322,1296,1987,804,98,198,255,214,109,305, - 1405,111,97,99,100,101,102,25,254,214, - 2009,211,112,563,584,232,654,1426,1170,827, - 16,21,17,626,45,47,656,1605,1170,110, - 16,21,17,626,45,47,656,704,683,1048, - 787,1064,1062,1150,1085,1163,96,137,214,1170, - 658,16,21,17,626,620,47,656,704,683, - 1048,787,1064,1062,1150,1085,1163,77,139,136, - 138,88,162,1170,178,16,21,17,626,45, - 47,656,704,1697,1577,141,168,1296,2033,1866, - 1649,285,145,148,151,154,1012,298,16,21, - 17,626,45,38,1722,1800,1836,1845,1852,1592, - 1170,274,16,21,17,626,620,47,656,704, - 683,1048,787,1064,1062,1150,1085,1163,77,1702, - 247,1170,87,16,21,17,626,620,47,656, - 704,683,1048,787,1064,1062,1150,1085,1163,77, - 104,1876,1170,86,16,21,17,626,620,47, - 656,704,683,1048,787,1064,1062,1150,1085,1163, - 77,104,1388,1170,85,16,21,17,626,620, - 47,656,704,683,1048,787,1064,1062,1150,1085, - 1163,77,985,670,1170,84,16,21,17,626, - 620,47,656,704,683,1048,787,1064,1062,1150, - 1085,1163,77,104,1917,1170,83,16,21,17, - 626,620,47,656,704,683,1048,787,1064,1062, - 1150,1085,1163,77,104,1970,1170,82,16,21, - 17,626,620,47,656,704,683,1048,787,1064, - 1062,1150,1085,1163,77,104,1591,1170,81,16, - 21,17,626,620,47,656,704,683,1048,787, - 1064,1062,1150,1085,1163,77,1010,1244,1170,80, - 16,21,17,626,620,47,656,704,683,1048, - 787,1064,1062,1150,1085,1163,77,104,709,1170, - 79,16,21,17,626,620,47,656,704,683, - 1048,787,1064,1062,1150,1085,1163,77,104,308, - 1170,78,16,21,17,626,45,47,656,704, - 683,1048,787,1064,1062,1150,1085,1163,96,1170, - 583,16,21,17,626,620,47,656,704,683, - 1048,787,1064,1062,1150,1085,1163,77,789,583, - 1170,1635,16,21,17,626,45,47,656,704, - 683,1694,593,809,776,1170,213,16,21,17, - 626,620,47,656,704,683,1048,787,1064,1062, - 1150,1085,1163,77,1249,239,1170,1687,16,21, - 17,626,620,47,656,704,683,1048,787,1064, - 1062,1150,1085,1163,77,243,543,1170,95,16, - 21,17,626,45,47,656,704,683,1048,787, - 1064,1062,1762,165,113,89,987,1648,650,302, - 1376,1322,1232,797,1151,98,16,21,17,626, - 43,1405,111,97,99,100,101,102,301,360, - 338,130,1170,112,16,21,17,626,45,47, - 656,704,1701,544,165,24,1221,242,1062,1170, - 109,16,21,17,626,45,47,656,704,683, - 1048,787,1064,1062,1150,1085,1163,96,1211,1170, - 681,16,21,17,626,45,47,656,704,683, - 1048,787,1064,1062,1150,1085,1163,96,1295,543, - 1242,123,543,1170,1248,16,21,17,626,45, - 47,656,704,1706,378,204,709,127,90,1238, - 113,89,987,890,650,1409,1376,1322,255,214, - 178,98,255,214,1223,1752,108,1405,111,97, - 99,100,101,102,1484,1300,813,18,1170,112, - 16,21,17,626,45,47,656,704,1742,178, - 964,228,254,214,126,1170,110,16,21,17, - 626,45,47,656,704,683,1048,787,1064,1062, - 1150,1085,1163,96,1170,1465,16,21,17,626, - 45,47,656,704,683,1048,787,1064,1062,1150, - 1085,1163,96,1189,1214,16,21,17,626,36, - 367,652,754,1313,1672,367,764,1116,501,1240, - 1170,205,16,21,17,626,45,47,656,704, - 683,1048,787,1064,1062,1150,1085,1163,76,797, - 1858,1224,225,378,436,543,1224,225,230,1300, - 226,890,187,219,621,222,385,421,219,621, - 222,224,161,113,89,271,1277,341,125,1376, - 1322,478,543,244,98,231,1367,1731,370,361, - 1405,1468,97,99,100,101,102,157,369,266, - 113,89,315,1269,1132,1300,1376,1322,297,1300, - 327,98,370,1430,272,1049,1116,1405,104,97, - 99,100,101,102,114,444,310,797,128,890, - 845,805,2022,1224,225,230,1170,296,16,21, - 17,626,45,47,1610,219,621,222,224,271, - 1236,186,1063,1816,263,273,62,1224,225,1168, - 1367,243,1224,225,230,546,1116,210,467,220, - 621,222,1166,264,219,621,222,224,271,520, - 543,336,1450,341,1300,1223,294,295,1170,1367, - 16,21,17,626,45,47,656,1609,113,89, - 890,189,1671,124,1376,1322,562,543,261,98, - 1301,543,271,254,214,1405,121,97,99,100, - 101,102,1306,1693,1862,113,89,1116,1135,1116, - 92,1376,1322,604,543,1189,98,16,21,17, - 626,35,1405,117,97,99,100,101,102,987, - 797,199,113,89,890,1210,104,543,1376,1322, - 646,543,188,98,206,104,402,1034,1238,1405, - 1872,97,99,100,101,102,90,1307,23,113, - 89,564,666,1550,22,1376,1322,688,543,196, - 98,370,827,288,1253,890,1405,116,97,99, - 100,101,102,1285,1309,668,113,89,890,711, - 1274,1554,1376,1322,730,543,1430,98,235,1479, - 137,214,197,1405,123,97,99,100,101,102, - 367,764,1506,113,89,797,890,1290,543,1376, - 1322,140,136,138,98,162,751,764,1116,1286, - 1405,122,97,99,100,101,102,90,142,168, - 1533,1224,225,230,118,146,149,152,155,245, - 210,890,458,219,621,222,224,1224,225,230, - 367,764,161,207,1063,1450,1280,797,831,219, - 621,222,224,507,869,270,1791,1009,1808,1223, - 1313,1255,310,1224,225,230,1261,157,369,104, - 543,1224,225,230,1132,220,621,222,224,271, - 302,246,865,219,621,222,224,254,214,90, - 1693,1116,161,1224,225,230,1801,200,202,297, - 272,327,1267,370,1060,220,621,222,224,1603, - 137,214,797,1065,890,890,466,158,369,286, - 1132,543,431,1300,1890,987,278,650,296,1210, - 1452,144,136,138,303,162,1132,543,275,1793, - 90,987,2035,199,1132,543,287,1233,143,168, - 1238,1300,300,1300,1300,1029,90,987,635,199, - 313,1312,551,1233,90,987,1038,199,1316,890, - 2097,1233,120,2099,1328,290,1064,293,295,1170, - 329,16,21,17,626,45,47,1686,137,214, - 1328,1389,676,276,1041,543,403,1012,1328,16, - 21,17,626,45,38,757,1037,1272,1429,147, - 136,138,812,162,90,987,1500,650,797,890, - 890,118,1317,759,137,214,1322,987,987,199, - 1402,248,377,137,214,2177,1037,2177,2177,2177, - 137,214,1637,1587,1614,150,136,138,2177,162, - 1116,2177,289,1763,153,136,138,987,162,199, - 666,156,136,138,260,162,1170,195,16,21, - 17,626,45,42,1327,1528,1170,1037,16,21, - 17,626,45,41,2177,28,2177,2177,2177,1170, - 666,16,21,17,626,45,40,195,987,2177, - 199,2177,2177,2177,1416,1528,1170,2177,16,21, - 17,626,45,39,1170,2177,16,21,17,626, - 45,37,1170,2177,16,21,17,626,45,38, - 1037,666,2177,2177,2177,2177,2177,1170,195,16, - 21,17,626,45,50,1466,1528,790,2177,2177, - 2177,987,1170,199,16,21,17,626,45,49, - 1170,2177,16,21,17,626,45,48,987,1094, - 1402,16,21,17,626,45,46,714,2019,56, - 2177,2177,56,2177,666,308,2177,2177,2177,2177, - 1262,195,2177,1262,2177,1290,543,2177,1527,1528, - 987,273,1402,987,259,1402,987,2177,650,1361, - 1604,987,2177,1402,987,90,1402,2177,2177,2177, - 2177,2177,118,2177,271,2177,2177,2177,2177,2177, - 2177,2177,2177,299,1465,1367,259,1672,2177,259, - 2177,1754,1604,2177,1754,1604,2177,259,1671,2177, - 259,1594,1361,1604,1794,1809,1604,1290,543,1290, - 543,104,543,104,543,104,543,104,543,2177, - 2177,2177,2177,2177,2177,2177,2177,90,2177,90, - 2177,90,2177,90,118,90,118,90,1595,2177, - 1608,2177,1636,2177,1755,2177,2177,1744,2177,2177, - 2177,2177,2177,2177,2177,2177,2177,2177,2177,2177, - 2177,2177,2177,2177,2177,2177,1859,2177,1860,2177, - 0,2186,1,0,3,1,2362,0,3,1, - 0,9,11,0,115,1560,0 + 45,33,33,98,98,46,108,108,107,107, + 47,47,47,47,47,47,47,47,47,99, + 55,55,55,55,73,73,65,65,65,66, + 66,57,57,109,109,75,75,74,74,74, + 58,58,58,59,60,60,60,61,61,61, + 61,63,63,85,85,85,85,83,110,111, + 111,112,112,113,113,103,103,114,114,100, + 100,100,100,115,115,101,101,101,102,102, + 772,337,1075,1138,16,21,17,748,703,47, + 784,812,798,1133,1059,1144,1134,1222,1221,1223, + 77,43,436,552,281,1295,1332,178,137,214, + 507,340,225,233,1151,310,16,21,17,748, + 43,113,89,844,129,837,625,1431,1399,139, + 136,138,98,162,1295,552,1295,1602,1351,1479, + 97,99,100,101,102,283,340,225,234,141, + 168,1296,1565,127,90,129,145,148,151,154, + 308,1352,345,837,1116,284,625,1538,1373,1587, + 1899,1905,1917,1548,1210,232,1296,2044,491,1075, + 1138,16,21,17,748,703,47,784,812,798, + 1133,1059,1144,1134,1222,1221,1223,77,107,493, + 232,281,987,1138,16,21,17,748,703,47, + 784,812,798,1133,1059,1144,1134,1222,1221,1223, + 77,104,310,966,281,16,21,17,748,703, + 47,784,812,798,1133,1059,1144,1134,1222,1221, + 1223,77,283,1211,1170,281,16,21,17,748, + 45,47,784,812,798,1133,1059,1144,1134,1222, + 1830,583,284,628,1659,285,920,1666,16,21, + 17,748,703,47,784,812,798,1133,1059,1144, + 1134,1222,1221,1223,77,286,160,1170,1271,16, + 21,17,748,45,47,784,812,798,1133,1753, + 240,1113,1843,16,21,17,748,703,47,784, + 812,798,1133,1059,1144,1134,1222,1221,1223,77, + 104,1326,1170,1306,16,21,17,748,703,47, + 784,812,798,1133,1059,1144,1134,1222,1221,1223, + 77,104,1918,945,94,16,21,17,748,703, + 47,784,812,798,1133,1059,1144,1134,1222,1221, + 1223,77,667,306,1170,1403,16,21,17,748, + 45,47,784,812,798,1669,966,241,16,21, + 17,748,703,47,784,812,798,1133,1059,1144, + 1134,1222,1221,1223,77,184,552,1170,281,16, + 21,17,748,45,47,784,812,798,1133,1059, + 1144,1134,1766,899,113,89,977,56,366,165, + 1431,1399,1220,1316,178,98,1228,1497,423,1, + 552,1351,111,97,99,100,101,102,977,287, + 1298,1295,1619,112,977,381,1298,592,113,89, + 977,643,366,583,1431,1399,1301,552,165,98, + 198,1296,2079,109,309,1351,111,97,99,100, + 101,102,1944,309,259,229,92,112,1249,1711, + 260,659,1745,1549,406,278,1170,827,16,21, + 17,748,45,47,784,1559,1170,110,16,21, + 17,748,45,47,784,812,798,1133,1059,1144, + 1134,1222,1221,1223,96,137,214,1170,1208,16, + 21,17,748,703,47,784,812,798,1133,1059, + 1144,1134,1222,1221,1223,77,139,136,138,88, + 162,1170,1232,16,21,17,748,45,47,784, + 812,1680,1533,378,1213,305,141,168,104,1953, + 1551,130,25,145,148,151,154,1012,804,16, + 21,17,748,45,38,1373,1587,1899,1905,1917, + 1548,1170,584,16,21,17,748,703,47,784, + 812,798,1133,1059,1144,1134,1222,1221,1223,77, + 228,247,1170,87,16,21,17,748,703,47, + 784,812,798,1133,1059,1144,1134,1222,1221,1223, + 77,104,1496,1170,86,16,21,17,748,703, + 47,784,812,798,1133,1059,1144,1134,1222,1221, + 1223,77,985,1494,1170,85,16,21,17,748, + 703,47,784,812,798,1133,1059,1144,1134,1222, + 1221,1223,77,104,2014,1170,84,16,21,17, + 748,703,47,784,812,798,1133,1059,1144,1134, + 1222,1221,1223,77,104,2027,1170,83,16,21, + 17,748,703,47,784,812,798,1133,1059,1144, + 1134,1222,1221,1223,77,104,1547,1170,82,16, + 21,17,748,703,47,784,812,798,1133,1059, + 1144,1134,1222,1221,1223,77,1010,2077,1170,81, + 16,21,17,748,703,47,784,812,798,1133, + 1059,1144,1134,1222,1221,1223,77,104,717,1170, + 80,16,21,17,748,703,47,784,812,798, + 1133,1059,1144,1134,1222,1221,1223,77,104,312, + 1170,79,16,21,17,748,703,47,784,812, + 798,1133,1059,1144,1134,1222,1221,1223,77,104, + 409,1170,78,16,21,17,748,45,47,784, + 812,798,1133,1059,1144,1134,1222,1221,1223,96, + 1170,178,16,21,17,748,703,47,784,812, + 798,1133,1059,1144,1134,1222,1221,1223,77,298, + 1116,1170,1718,16,21,17,748,45,47,784, + 812,798,1133,1059,1144,1768,1170,213,16,21, + 17,748,703,47,784,812,798,1133,1059,1144, + 1134,1222,1221,1223,77,187,1809,1170,1750,16, + 21,17,748,703,47,784,812,798,1133,1059, + 1144,1134,1222,1221,1223,77,243,552,1170,95, + 16,21,17,748,45,47,784,812,798,1133, + 1059,1751,1237,789,509,113,89,977,1279,366, + 1300,1431,1399,1300,776,1189,98,16,21,17, + 748,36,1351,111,97,99,100,101,102,126, + 255,214,125,1170,112,16,21,17,748,45, + 47,784,812,798,1133,1059,1144,1134,1222,1221, + 1223,96,551,1170,109,16,21,17,748,45, + 47,784,812,798,1133,1059,1144,1134,1222,1221, + 1223,96,1205,890,1242,123,552,1170,1248,16, + 21,17,748,45,47,784,812,798,1670,204, + 1249,239,338,544,113,89,977,226,366,275, + 1431,1399,255,214,809,98,255,214,1221,1825, + 108,1351,111,97,99,100,101,102,1880,1398, + 289,1062,1170,112,16,21,17,748,45,47, + 784,812,798,1133,1059,1144,1134,1222,1221,1223, + 96,797,1170,110,16,21,17,748,45,47, + 784,812,798,1133,1059,1144,1134,1222,1221,1223, + 96,1189,421,16,21,17,748,35,315,1505, + 669,1421,1238,1116,24,242,797,1170,205,16, + 21,17,748,45,47,784,812,798,1133,1059, + 1144,1134,1222,1221,1223,76,308,1420,1836,783, + 225,230,367,654,104,552,805,1914,186,276, + 244,219,658,222,224,274,709,977,809,366, + 263,1300,1300,813,90,1116,267,1292,1182,272, + 277,1484,890,783,225,396,302,783,225,230, + 114,128,264,865,303,219,658,222,473,219, + 658,222,224,274,161,301,2069,451,1203,335, + 189,1290,552,890,267,1292,1182,272,1286,754, + 226,137,214,797,1238,104,552,261,478,552, + 1738,90,157,353,300,1510,1116,18,118,772, + 1300,1116,144,136,138,90,162,113,89,1452, + 683,1277,1795,1431,1399,520,552,243,98,124, + 550,2066,143,168,1351,104,97,99,100,101, + 102,188,845,1639,113,89,206,1236,1290,552, + 1431,1399,562,552,1063,98,297,299,62,331, + 1135,1351,121,97,99,100,101,102,90,467, + 1892,113,89,890,797,118,211,1431,1399,604, + 552,977,98,199,1223,178,370,1262,1351,117, + 97,99,100,101,102,178,1034,231,113,89, + 1116,290,1290,552,1431,1399,646,552,22,98, + 1820,1452,254,214,671,1351,1901,97,99,100, + 101,102,90,1302,196,113,89,890,1312,118, + 890,1431,1399,688,552,207,98,370,827,1272, + 1944,890,1351,116,97,99,100,101,102,668, + 1641,1844,113,89,1845,900,1238,1132,1431,1399, + 730,552,1452,98,1834,23,137,214,210,1351, + 123,97,99,100,101,102,977,313,1298,113, + 89,292,1234,1457,1285,1431,1399,140,136,138, + 98,162,367,1041,1253,1614,1351,122,97,99, + 100,101,102,197,1116,137,214,142,168,751, + 1041,711,259,1300,146,149,152,155,235,210, + 1483,1549,890,783,225,230,147,136,138,1300, + 162,458,1458,1348,1457,219,658,222,224,282, + 783,225,230,1238,161,890,1435,890,1512,1312, + 367,1041,219,658,222,224,1223,1274,1280,831, + 869,1838,783,225,230,1116,751,1041,294,1462, + 1009,1489,157,353,220,658,222,224,274,772, + 1255,783,225,230,254,214,1261,104,552,269, + 1292,1182,272,219,658,222,224,783,225,230, + 28,310,161,200,202,367,1041,90,797,219, + 658,222,224,1267,1632,1594,1675,1170,1838,16, + 21,17,748,45,47,784,812,1690,890,1204, + 158,353,783,225,1251,890,783,225,230,890, + 797,1065,245,466,220,658,222,1238,219,658, + 222,224,273,501,1495,573,1306,1203,635,279, + 201,202,1170,1812,16,21,17,748,45,47, + 784,812,1696,1170,246,16,21,17,748,45, + 47,784,812,1723,1170,1307,16,21,17,748, + 45,47,784,1621,714,647,1132,552,890,310, + 274,1170,1300,16,21,17,748,45,47,1667, + 1300,267,1292,1182,272,797,90,977,277,199, + 1309,120,280,1393,890,1038,797,266,1313,2093, + 783,225,230,1223,1064,1323,1132,552,104,552, + 890,274,220,658,222,224,1132,552,1543,291, + 1763,759,267,1292,1182,272,90,977,90,199, + 293,254,214,1393,1570,1655,90,977,1738,199, + 1332,1362,1170,1393,16,21,17,748,45,47, + 1668,1012,361,16,21,17,748,45,38,403, + 1763,377,2174,1041,552,757,2174,2174,2174,2174, + 1763,301,2174,451,56,335,1204,812,1037,2174, + 2174,1537,2174,90,977,248,366,137,214,2174, + 118,1540,2174,137,214,977,2174,1298,2174,977, + 300,199,1040,2174,546,137,214,2174,150,136, + 138,1391,162,1037,153,136,138,1170,162,16, + 21,17,748,45,42,1623,156,136,138,1641, + 162,259,671,2174,977,2174,199,2174,2174,1745, + 1549,1170,195,16,21,17,748,45,41,1060, + 1470,274,298,299,1170,2174,16,21,17,748, + 45,40,269,1292,1182,272,1170,671,16,21, + 17,748,45,39,1037,2174,1170,195,16,21, + 17,748,45,37,1303,1470,1170,1037,16,21, + 17,748,45,38,2174,977,1170,199,16,21, + 17,748,45,50,790,2174,2174,2174,977,1170, + 199,16,21,17,748,45,49,1170,2174,16, + 21,17,748,45,48,977,1060,1298,671,1094, + 2174,16,21,17,748,45,46,1223,195,900, + 2174,671,2174,2174,2174,1355,1470,977,2174,366, + 2174,195,1464,1290,552,2174,307,2174,1416,1470, + 977,259,1298,104,552,254,214,104,552,1483, + 1549,2174,2174,90,304,2174,2174,2174,2174,2174, + 118,2174,2174,90,2174,2174,2174,90,2174,2174, + 1657,2174,2174,2174,1749,2174,259,2174,2174,2174, + 2174,2174,2174,2174,1808,1549,2174,2174,2174,2174, + 1208,1604,2174,2174,2174,1850,2174,0,2183,1, + 0,3,1,2359,0,3,1,0,9,11, + 0,115,1516,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -536,23 +536,23 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 35,36,37,38,39,40,41,0,1,2, 3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,32,42, - 0,1,25,0,4,28,0,1,78,32, + 0,1,25,0,4,28,0,1,0,32, 33,34,35,36,37,38,39,40,41,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, - 75,76,42,0,25,0,1,28,42,4, + 75,76,42,0,25,0,1,28,0,4, 0,32,33,34,35,36,37,38,39,40, 41,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17,18, - 19,20,0,0,0,1,25,42,6,28, - 7,8,0,32,33,34,35,36,37,38, + 19,20,0,0,0,77,25,42,6,28, + 7,8,42,32,33,34,35,36,37,38, 39,40,41,0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,0,82,83,0,25,79, + 17,18,19,20,0,82,83,0,25,0, 6,28,0,6,0,32,33,34,35,36, 37,38,39,40,41,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,0,0,0,77, + 15,16,17,18,19,20,0,0,0,1, 25,0,6,28,7,8,0,32,33,34, 35,36,37,38,39,40,41,0,1,2, 3,4,5,6,7,8,9,10,11,12, @@ -582,7 +582,7 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 11,12,13,14,15,16,17,18,70,71, 72,73,0,24,0,1,2,3,4,5, 61,7,8,9,10,11,12,13,14,15, - 16,17,18,0,1,0,1,2,24,4, + 16,17,18,0,65,0,1,2,24,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,0,66,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, @@ -617,18 +617,18 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 68,69,62,4,0,0,55,3,81,0, 55,0,3,2,0,0,5,3,3,0, 0,0,3,3,20,0,0,55,0,20, - 19,0,0,61,20,0,0,63,64,20, - 42,0,6,63,64,0,65,42,0,63, - 64,0,0,0,0,59,65,0,0,55, + 19,0,0,61,20,0,55,63,64,20, + 42,0,0,63,64,0,55,42,6,63, + 64,0,0,0,0,59,0,0,0,55, 0,68,69,0,0,67,0,68,69,0, 61,0,67,0,0,0,61,0,0,0, - 55,61,0,55,0,59,0,55,0,0, - 59,0,0,0,59,0,0,0,0,0, - 0,0,0,62,59,0,0,59,0,0, - 59,0,0,0,0,0,0,0,0,0, + 59,61,0,0,0,59,55,0,0,0, + 0,59,0,0,0,0,0,0,0,0, + 65,0,0,78,59,0,0,79,0,0, + 0,59,59,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,0, - 0,0,0,0,0,0 + 0,0,0,0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -636,146 +636,146 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface TermAction { public final static char termAction[] = {0, - 2177,1,3811,1456,1,2164,2,1,1,1, - 1,1,1,1,1,1,1,1,1,3808, - 2187,3,3,3,3,2280,3,3,2,3, - 3,3,1226,1255,718,1359,1360,1354,1229,1270, - 1208,1256,2177,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,882, - 2185,9,2171,2171,2171,2171,2171,2171,2171,2171, - 2171,2171,2171,2171,2171,2171,2171,2171,2171,2171, - 2171,2171,2171,2171,2171,2171,2171,2171,2171,2171, - 2171,2171,2171,2171,2171,2171,2171,2171,2171,2171, - 2171,2171,2171,1,2171,2171,2171,2171,2171,2171, - 2171,2171,2171,2171,2171,2171,2160,2171,2171,2171, - 2435,2171,2177,1,3811,1456,1,2164,2,1, + 2174,1,3816,1468,1,2161,2,1,1,1, + 1,1,1,1,1,1,1,1,1,3809, + 2184,3,3,3,3,2277,3,3,2,3, + 3,3,1300,1140,726,1143,1400,332,1302,1353, + 364,1346,2174,3,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,3,872, + 2182,9,2168,2168,2168,2168,2168,2168,2168,2168, + 2168,2168,2168,2168,2168,2168,2168,2168,2168,2168, + 2168,2168,2168,2168,2168,2168,2168,2168,2168,2168, + 2168,2168,2168,2168,2168,2168,2168,2168,2168,2168, + 2168,2168,2168,1,2168,2168,2168,2168,2168,2168, + 2168,2168,2168,2168,2168,2168,2157,2168,2168,2168, + 2432,2168,2174,1,3816,1468,1,2161,2,1, 1,1,1,1,1,1,1,1,1,1, - 1,3808,2187,3,3,3,3,2280,3,3, - 2,3,3,3,1226,1255,718,1359,1360,1354, - 1229,1270,1208,1256,2,3,3,3,3,3, - 3,3,3,3,3,3,3,2177,3,3, - 3,882,2185,2177,1,3811,2188,1,2164,2, + 1,3809,2184,3,3,3,3,2277,3,3, + 2,3,3,3,1300,1140,726,1143,1400,332, + 1302,1353,364,1346,2,3,3,3,3,3, + 3,3,3,3,3,3,3,2174,3,3, + 3,872,2182,2174,1,3816,2185,1,2161,2, 1,1,1,1,1,1,1,1,1,1, - 1,1,3808,2187,3,3,3,3,2280,3, - 3,2,3,3,3,1226,1255,718,1359,1360, - 1354,1229,1270,1208,1256,2177,3,3,3,3, + 1,1,3809,2184,3,3,3,3,2277,3, + 3,2,3,3,3,1300,1140,726,1143,1400, + 332,1302,1353,364,1346,2174,3,3,3,3, 3,3,3,3,3,3,3,3,73,3, - 3,3,2177,1,3811,2188,1,2164,2,1, + 3,3,2174,1,3816,2185,1,2161,2,1, 1,1,1,1,1,1,1,1,1,1, - 1,3808,2187,3,3,3,3,2280,3,3, - 2,3,3,3,1226,1255,718,1359,1360,1354, - 1229,1270,1208,1256,2283,3,3,3,3,3, + 1,3809,2184,3,3,3,3,2277,3,3, + 2,3,3,3,1300,1140,726,1143,1400,332, + 1302,1353,364,1346,2280,3,3,3,3,3, 3,3,3,3,3,3,3,65,3,3, - 3,2177,3,3,2188,3,3,3,45,2177, - 1325,2404,132,966,262,1431,2404,1107,1,2177, - 3,2187,3,3,3,3,2475,3,3,2177, - 3,3,3,2392,2393,2394,2342,71,2343,2341, - 2177,2395,2344,2340,3,3,3,3,3,3, - 3,3,3,3,3,3,486,3,3,3, - 2177,3,3,2188,3,3,1,1325,2404,209, - 989,2360,1050,585,2362,292,115,223,1164,3, - 2187,3,3,3,3,2475,3,3,2361,3, - 3,3,968,947,926,905,884,842,863,821, - 800,739,133,3,3,3,3,3,3,3, - 3,3,3,3,3,340,3,3,3,486, - 267,777,221,2392,2393,2394,2342,2177,2343,2341, - 72,2395,2344,2340,291,2177,1,3811,2188,1, - 3814,2,1,1,1,1,1,1,1,1, - 1,1,1,1,2361,2187,2174,268,1431,2404, - 2280,966,486,2,486,66,2177,1226,1255,718, - 1359,1360,1354,1229,1270,1208,1256,2177,1,3811, - 2188,1,3814,2,1,1,1,1,1,1, - 1,1,1,1,1,1,2361,2187,1806,486, - 265,2017,2280,2177,1,2,269,777,340,1226, - 1255,718,1359,1360,1354,1229,1270,1208,1256,2177, - 1,3811,2188,1,3814,2,1,1,1,1, - 1,1,1,1,1,1,1,1,2361,2187, - 1050,585,486,75,2280,268,2017,2,486,966, - 74,1226,1255,718,1359,1360,1354,1229,1270,1208, - 1256,2177,1,3811,2188,1,3814,2,1,1, + 3,2174,3,3,2185,3,3,3,45,2174, + 1715,2401,132,956,262,1336,2401,627,1,2174, + 3,2184,3,3,3,3,2476,3,3,2174, + 3,3,3,2389,2390,2391,2339,71,2340,2338, + 2174,2392,2341,2337,3,3,3,3,3,3, + 3,3,3,3,3,3,496,3,3,3, + 2174,3,3,2185,3,3,1,1715,2401,209, + 1000,2357,1207,594,2359,296,115,223,688,3, + 2184,3,3,3,3,2476,3,3,2358,3, + 3,3,979,958,937,916,895,853,874,832, + 811,747,133,3,3,3,3,3,3,3, + 3,3,3,3,3,1061,3,3,3,496, + 270,691,221,2389,2390,2391,2339,2174,2340,2338, + 2174,2392,2341,2337,295,2174,1,3816,2185,1, + 3817,2,1,1,1,1,1,1,1,1, + 1,1,1,1,2358,2184,2171,268,1336,2401, + 2277,956,496,2,496,66,2174,1300,1140,726, + 1143,1400,332,1302,1353,364,1346,2174,1,3816, + 2185,1,3817,2,1,1,1,1,1,1, + 1,1,1,1,1,1,2358,2184,1835,496, + 265,1804,2277,2174,1,2,2174,649,69,1300, + 1140,726,1143,1400,332,1302,1353,364,1346,2174, + 1,3816,2185,1,3817,2,1,1,1,1, + 1,1,1,1,1,1,1,1,2358,2184, + 1207,594,496,75,2277,268,1804,2,2174,956, + 271,1300,1140,726,1143,1400,332,1302,1353,364, + 1346,2174,1,3816,2185,1,3817,2,1,1, 1,1,1,1,1,1,1,1,1,1, - 2361,2187,2177,54,2177,1123,2280,486,386,2, - 1819,1436,69,1226,1255,718,1359,1360,1354,1229, - 1270,1208,1256,2177,1,3811,2188,1,3814,2, + 2358,2184,2174,54,2174,1118,2277,496,355,2, + 1882,1811,496,1300,1140,726,1143,1400,332,1302, + 1353,364,1346,2174,1,3816,2185,1,3817,2, 1,1,1,1,1,1,1,1,1,1, - 1,1,2361,2187,230,625,1709,191,2280,1107, - 233,2,2177,903,70,1226,1255,718,1359,1360, - 1354,1229,1270,1208,1256,2177,1,3811,2188,1, - 3814,2,1,1,1,1,1,1,1,1, - 1,1,1,1,2361,2187,190,56,2177,446, - 2280,2177,924,2,1819,1436,2177,1226,1255,718, - 1359,1360,1354,1229,1270,1208,1256,2177,1,3811, - 2188,1,3814,2,1,1,1,1,1,1, - 1,1,1,1,1,1,2361,2187,2177,2101, - 55,446,2280,1,2017,2,2184,1819,1436,1226, - 1255,718,1359,1360,1354,1229,1270,1208,1256,2177, - 1,3811,2188,1,3814,2,1,1,1,1, - 1,1,1,1,1,1,1,1,2361,2187, - 1,1325,2404,2177,2280,486,134,2,2177,583, - 2416,1226,1255,718,1359,1360,1354,1229,1270,1208, - 1256,1,1325,2404,2183,67,2359,2392,2393,2394, - 2342,1567,2343,2341,507,2395,2344,2340,62,3, - 2358,2415,2392,2393,2394,2342,2177,2343,2341,2182, - 2395,2344,2340,57,1,1431,2404,2184,30,1169, - 2177,135,2177,2103,2347,2352,2351,2349,2350,2348, - 2353,2354,2346,2355,2356,2357,2177,678,481,333, - 64,2359,2392,2393,2394,2342,1,2343,2341,2161, - 2395,2344,2340,159,212,2358,486,2392,2393,2394, - 2342,2177,2343,2341,2435,2395,2344,2340,1258,1213, - 1152,763,2181,2206,131,2183,708,1488,63,2347, - 2352,2351,2349,2350,2348,2353,2354,2346,2355,2356, - 2357,2177,678,481,333,2392,2393,2394,2342,2177, - 2343,2341,2184,2395,2344,2340,2185,2177,192,2177, - 1258,1213,1152,763,945,461,1010,2347,2352,2351, - 2349,2350,2348,2353,2354,2346,2355,2356,2357,1, - 1760,2196,2182,786,2197,2177,1946,1929,1954,1535, - 1313,1134,2189,2190,2191,2192,1916,1906,1258,1213, - 1152,763,2177,522,2177,1760,2196,2182,1837,2197, - 2183,1946,1929,1954,1535,1313,1134,2189,2190,2191, - 2192,1916,1906,2177,2105,2177,1760,2196,1065,1962, - 2197,1008,1946,1929,1954,1535,1313,1134,2189,2190, - 2191,2192,1916,1906,250,2181,1,1760,2196,29, - 1962,2197,1008,1946,1929,1954,1535,1313,1134,2189, - 2190,2191,2192,1916,1906,1,1,1,61,251, - 2181,2177,1760,2196,2182,1962,2197,2177,1946,1929, - 1954,1535,1313,1134,2189,2190,2191,2192,1916,1906, - 1,1,1,2177,1834,2177,3,2177,2107,194, - 3,1,1,119,1,2168,29,1,1,1, + 1,1,2358,2184,230,474,1405,191,2277,2174, + 233,2,2174,893,70,1300,1140,726,1143,1400, + 332,1302,1353,364,1346,2174,1,3816,2185,1, + 3817,2,1,1,1,1,1,1,1,1, + 1,1,1,1,2358,2184,190,56,2174,1697, + 2277,2174,914,2,1882,1811,2174,1300,1140,726, + 1143,1400,332,1302,1353,364,1346,2174,1,3816, + 2185,1,3817,2,1,1,1,1,1,1, + 1,1,1,1,1,1,2358,2184,2174,1848, + 55,1118,2277,1,1804,2,2181,1882,1811,1300, + 1140,726,1143,1400,332,1302,1353,364,1346,2174, + 1,3816,2185,1,3817,2,1,1,1,1, + 1,1,1,1,1,1,1,1,2358,2184, + 1,1715,2401,2174,2277,496,134,2,2174,393, + 2413,1300,1140,726,1143,1400,332,1302,1353,364, + 1346,1,1715,2401,2180,67,2356,2389,2390,2391, + 2339,1506,2340,2338,517,2392,2341,2337,62,3, + 2355,2412,2389,2390,2391,2339,2174,2340,2338,2179, + 2392,2341,2337,57,1,1336,2401,2181,30,1163, + 2174,135,2174,2103,2344,2349,2348,2346,2347,2345, + 2350,2351,2343,2352,2353,2354,2174,656,652,404, + 64,2356,2389,2390,2391,2339,1,2340,2338,2158, + 2392,2341,2337,159,212,2355,496,2389,2390,2391, + 2339,2174,2340,2338,2432,2392,2341,2337,1783,1772, + 1727,771,2178,2203,131,2180,716,1794,63,2344, + 2349,2348,2346,2347,2345,2350,2351,2343,2352,2353, + 2354,2174,656,652,404,2389,2390,2391,2339,2174, + 2340,2338,2181,2392,2341,2337,2182,2174,192,3, + 1783,1772,1727,771,935,453,1021,2344,2349,2348, + 2346,2347,2345,2350,2351,2343,2352,2353,2354,1, + 1806,2193,2179,797,2194,2174,2006,1994,2016,1291, + 1145,344,2186,2187,2188,2189,1981,1957,1783,1772, + 1727,771,2174,531,2174,1806,2193,2179,1891,2194, + 2180,2006,1994,2016,1291,1145,344,2186,2187,2188, + 2189,1981,1957,2174,2432,2174,1806,2193,1076,2026, + 2194,998,2006,1994,2016,1291,1145,344,2186,2187, + 2188,2189,1981,1957,250,2178,1,1806,2193,29, + 2026,2194,998,2006,1994,2016,1291,1145,344,2186, + 2187,2188,2189,1981,1957,1,1,1,61,251, + 2178,2174,1806,2193,2179,2026,2194,2174,2006,1994, + 2016,1291,1145,344,2186,2187,2188,2189,1981,1957, + 1,1,1,2174,1903,2174,3,2174,2107,194, + 3,1,1,119,1,2165,29,1,1,1, 1,1,1,1,1,1,1,1,1,3, - 119,230,2177,44,68,2,2177,234,583,1565, - 2177,708,1488,507,1,1760,2196,2181,1962,2197, - 1008,1946,1929,1954,1535,1313,1134,2189,2190,2191, - 2192,1916,1906,2177,1760,2196,194,1962,2197,1565, - 1946,1929,1954,1535,1313,1134,2189,2190,2191,2192, - 1916,1906,1,1760,2196,2177,1962,2197,2186,1946, - 1929,1954,1535,1313,1134,2189,2190,2191,2192,1916, - 1906,3,1,1,3,1,2168,193,1,1, + 119,230,2174,44,68,2,2174,234,393,1019, + 2174,716,1794,517,1,1806,2193,2178,2026,2194, + 998,2006,1994,2016,1291,1145,344,2186,2187,2188, + 2189,1981,1957,2174,1806,2193,194,2026,2194,1019, + 2006,1994,2016,1291,1145,344,2186,2187,2188,2189, + 1981,1957,1,1806,2193,2174,2026,2194,2183,2006, + 1994,2016,1291,1145,344,2186,2187,2188,2189,1981, + 1957,3,1,1,3,1,2165,193,1,1, 1,1,1,1,1,1,1,1,1,1, - 2177,1776,2196,2177,1962,2197,2177,1946,1929,1954, - 1535,1313,1134,2189,2190,2191,2192,1916,1906,2177, - 1760,2196,2177,1962,2197,2185,1946,1929,1954,1535, - 1313,1134,2189,2190,2191,2192,1916,1906,2177,1784, - 2196,2177,1962,2197,193,1946,1929,1954,1535,1313, - 1134,2189,2190,2191,2192,1916,1906,34,1510,2177, - 236,2360,51,224,2362,541,2000,2203,2204,2177, - 237,2360,2177,224,2362,840,2177,2177,2361,2360, - 224,2177,2362,861,2188,208,252,2177,2361,2360, - 224,249,2362,2392,2393,2394,2361,253,2177,1556, - 2208,2187,2177,2210,60,2184,2361,2392,2393,2394, - 59,3,2392,2393,2394,224,58,2209,2392,2393, - 2394,3,224,53,1084,224,2177,2000,2177,52, - 1992,1977,224,2000,2177,284,1680,2188,616,1, - 3774,208,119,622,1,1,622,2188,2184,2177, - 1,2177,2188,93,2187,91,2177,1863,256,119, - 622,2177,30,2183,2187,203,2177,708,1488,2187, - 1189,2177,1565,708,1488,3,2435,1294,1,708, - 1488,1,2177,2177,2177,1381,2434,2177,2177,331, - 2177,1992,1977,2177,2177,1568,2177,1992,1977,2177, - 119,2177,1790,2177,2177,2177,2183,2177,2177,2177, - 1086,93,2177,1847,2177,2282,2177,425,2177,2177, - 1330,2177,2177,2177,1275,2177,2177,2177,2177,2177, - 2177,2177,2177,597,2361,2177,2177,2360,2177,2177, - 2362 + 2174,1846,2193,2174,2026,2194,2174,2006,1994,2016, + 1291,1145,344,2186,2187,2188,2189,1981,1957,2174, + 1806,2193,2174,2026,2194,2182,2006,1994,2016,1291, + 1145,344,2186,2187,2188,2189,1981,1957,2174,1856, + 2193,2174,2026,2194,193,2006,1994,2016,1291,1145, + 344,2186,2187,2188,2189,1981,1957,34,686,2174, + 236,2357,51,224,2359,571,2057,2200,2201,2174, + 237,2357,2174,224,2359,788,2174,2174,2358,2357, + 224,2174,2359,851,2185,208,252,2174,2358,2357, + 224,249,2359,2389,2390,2391,2358,253,2174,1334, + 2205,2184,2174,2207,60,2181,2358,2389,2390,2391, + 59,91,2389,2390,2391,224,58,2206,2389,2390, + 2391,256,224,53,1220,224,2174,2057,2174,52, + 2049,2036,224,2057,2174,288,1660,2185,708,1, + 3775,208,119,1404,1,1,1404,2185,2181,2174, + 1,2174,2185,93,2184,72,2174,1861,74,119, + 1404,30,203,2180,2184,3,1097,716,1794,2184, + 1183,2174,2174,716,1794,3,653,1272,1019,716, + 1794,2174,1,1,2174,1408,2174,2174,2174,1676, + 2174,2049,2036,2174,2174,1566,2174,2049,2036,2174, + 119,2174,1653,2174,2174,2174,2180,2174,2174,2174, + 2279,93,2174,2174,2174,1307,432,2174,2174,2174, + 2174,1252,2174,2174,2174,2174,2174,2174,2174,2174, + 2431,2174,2174,1061,2358,2174,2174,627,2174,2174, + 2174,2357,2359,606 }; }; public final static char termAction[] = TermAction.termAction; @@ -783,35 +783,35 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Asb { public final static char asb[] = {0, - 410,1,355,438,410,355,440,501,444,456, - 456,3,3,456,3,456,358,569,440,284, - 358,501,193,236,235,537,536,569,8,327, - 61,124,61,124,197,61,440,464,472,569, - 295,358,440,81,204,43,440,328,124,124, - 124,124,197,197,464,381,440,295,475,358, - 438,104,101,381,159,343,269,269,269,269, - 269,85,269,269,269,153,170,175,173,181, - 177,184,183,186,185,187,204,41,269,8, - 536,327,267,194,194,231,284,253,284,284, - 269,194,244,79,269,79,124,150,74,124, - 124,150,200,286,200,197,381,464,297,501, - 358,440,381,101,84,81,269,269,269,269, - 269,269,269,269,269,269,269,472,472,247, - 343,343,231,231,387,269,269,269,269,269, - 269,269,269,269,269,269,269,269,269,269, - 269,269,269,269,269,206,41,325,194,194, - 269,385,269,269,190,284,327,79,253,150, - 76,150,150,269,231,200,464,472,467,471, - 269,269,101,85,43,569,469,292,472,472, - 472,101,173,173,170,170,177,177,175,175, - 175,175,183,181,185,184,79,186,471,200, - 407,472,284,472,472,269,341,328,193,269, - 192,150,291,569,297,101,101,41,247,295, - 472,542,503,501,269,442,150,39,540,231, - 269,406,253,269,253,253,267,194,327,76, - 269,542,467,41,469,297,472,43,101,231, - 269,472,326,194,267,200,472,101,194,253, - 387,194,150,472,387,253,472,253 + 359,1,466,387,359,466,389,569,393,405, + 405,36,36,405,36,405,469,213,389,34, + 469,569,305,310,309,538,537,213,63,438, + 94,157,94,157,318,94,389,413,421,213, + 329,469,389,114,234,45,389,439,157,157, + 157,157,318,318,413,492,389,329,543,469, + 387,137,134,492,271,454,19,19,19,19, + 19,118,19,19,19,265,282,287,285,293, + 289,296,295,298,297,299,234,43,19,63, + 537,438,17,306,306,261,34,3,34,34, + 19,306,428,112,19,112,157,183,107,157, + 157,183,321,431,321,318,492,413,331,569, + 469,389,492,134,117,114,19,19,19,19, + 19,19,19,19,19,19,19,421,421,498, + 454,454,261,261,215,19,19,19,19,19, + 19,19,19,19,19,19,19,19,19,19, + 19,19,19,19,19,236,43,436,306,306, + 19,496,19,19,302,34,438,112,3,183, + 109,183,183,19,261,321,413,421,416,420, + 19,19,134,118,45,213,326,419,418,421, + 421,421,134,285,285,282,282,289,289,287, + 287,287,287,295,293,297,296,112,298,420, + 321,425,421,34,421,421,19,452,439,305, + 19,304,183,325,213,331,134,134,43,498, + 421,186,329,504,569,19,391,183,41,541, + 261,19,424,3,19,3,3,17,306,438, + 109,19,186,416,43,421,331,45,134,261, + 19,421,437,306,17,321,421,134,306,3, + 215,306,183,421,215,3,421,3 }; }; public final static char asb[] = Asb.asb; @@ -819,63 +819,63 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Asr { public final static byte asr[] = {0, - 74,0,2,19,5,6,0,26,43,21, - 44,56,27,45,29,46,47,30,22,48, - 49,24,57,31,58,50,51,23,52,53, - 54,19,5,3,62,55,20,0,3,60, - 42,67,1,13,14,15,16,2,5,10, - 11,9,4,7,8,17,18,12,6,0, - 26,21,27,29,30,22,24,31,23,42, - 55,61,6,20,3,4,2,1,59,0, - 21,22,23,24,10,11,9,4,7,8, - 17,18,12,1,2,5,13,14,15,16, - 66,3,0,21,22,23,10,11,9,4, - 7,8,17,18,12,1,2,5,13,14, - 15,16,0,26,43,21,44,56,27,45, - 29,46,47,30,22,48,49,24,57,31, - 58,50,51,23,52,53,54,19,5,60, - 3,0,42,1,67,81,10,11,62,84, - 85,86,87,88,90,89,91,92,93,4, - 68,69,7,8,64,63,70,71,72,73, - 75,76,9,77,78,79,60,82,83,66, - 61,59,55,20,3,0,2,19,5,3, - 60,55,0,3,61,26,43,21,44,56, - 27,45,29,46,47,30,22,48,49,24, - 57,31,58,50,51,23,52,53,54,65, - 2,19,5,0,1,3,59,62,55,61, - 20,42,0,6,28,0,3,61,4,1, - 42,0,28,6,34,36,19,39,41,37, + 74,0,28,6,34,36,19,39,41,37, 32,38,35,33,40,25,20,3,13,14, 15,16,2,5,10,11,9,4,7,8, - 17,18,12,1,0,3,55,60,62,0, - 2,4,1,42,3,61,26,43,21,44, + 17,18,12,1,0,2,19,5,6,0, + 3,60,42,67,1,13,14,15,16,2, + 5,10,11,9,4,7,8,17,18,12, + 6,0,26,43,21,44,56,27,45,29, + 46,47,30,22,48,49,24,57,31,58, + 50,51,23,52,53,54,19,5,3,62, + 55,20,0,26,21,27,29,30,22,24, + 31,23,42,55,61,6,20,3,4,2, + 1,59,0,21,22,23,24,10,11,9, + 4,7,8,17,18,12,1,2,5,13, + 14,15,16,66,3,0,21,22,23,10, + 11,9,4,7,8,17,18,12,1,2, + 5,13,14,15,16,0,26,43,21,44, 56,27,45,29,46,47,30,22,48,49, 24,57,31,58,50,51,23,52,53,54, - 19,5,65,0,74,80,60,28,6,34, - 36,39,41,37,32,38,35,33,40,25, - 20,3,13,14,15,16,12,10,11,9, - 7,8,17,18,2,1,4,19,5,56, - 57,58,51,43,48,46,47,45,44,49, - 50,52,53,54,31,27,24,26,30,29, - 21,22,23,0,32,0,3,61,12,13, - 14,15,16,2,5,1,10,11,9,4, - 7,8,17,18,0,62,42,67,0,74, + 19,5,60,3,0,26,43,21,44,56, + 27,45,29,46,47,30,22,48,49,24, + 57,31,58,50,51,23,52,53,54,19, + 5,65,4,0,3,61,12,13,14,15, + 16,2,5,1,10,11,9,4,7,8, + 17,18,0,3,61,26,43,21,44,56, + 27,45,29,46,47,30,22,48,49,24, + 57,31,58,50,51,23,52,53,54,65, + 2,19,5,0,42,1,67,81,10,11, + 62,84,85,86,87,88,90,89,91,92, + 93,4,68,69,7,8,64,63,70,71, + 72,73,75,76,9,77,78,79,60,82, + 83,66,61,59,55,20,3,0,1,3, + 59,62,55,61,20,42,0,2,19,5, + 3,60,55,0,2,4,1,42,3,61, 26,43,21,44,56,27,45,29,46,47, 30,22,48,49,24,57,31,58,50,51, - 23,52,53,54,19,5,25,20,3,4, - 1,2,0,51,43,48,46,47,45,44, - 49,50,52,53,54,59,20,31,27,24, - 26,30,29,21,22,23,4,2,42,1, - 55,61,3,0,26,43,21,44,56,27, - 45,29,46,47,30,22,48,49,24,57, - 31,58,50,51,23,52,53,54,19,5, - 6,0,9,4,7,8,68,69,63,64, - 70,71,72,73,75,76,77,78,79,82, - 83,59,84,85,86,87,88,89,90,91, - 92,93,66,61,60,6,3,55,20,62, - 0,26,43,21,44,56,27,45,29,46, - 47,30,22,48,49,24,57,31,58,50, - 51,23,52,53,54,19,5,65,4,0 + 23,52,53,54,19,5,65,0,74,26, + 43,21,44,56,27,45,29,46,47,30, + 22,48,49,24,57,31,58,50,51,23, + 52,53,54,19,5,25,20,3,4,1, + 2,0,51,43,48,46,47,45,44,49, + 50,52,53,54,59,20,31,27,24,26, + 30,29,21,22,23,4,2,1,42,55, + 61,3,0,62,42,67,0,6,28,0, + 3,55,60,62,0,74,80,60,28,6, + 34,36,39,41,37,32,38,35,33,40, + 25,20,3,13,14,15,16,12,10,11, + 9,7,8,17,18,2,1,4,19,5, + 56,57,58,51,43,48,46,47,45,44, + 49,50,52,53,54,31,27,24,26,30, + 29,21,22,23,0,32,0,3,61,4, + 1,42,0,9,4,7,8,68,69,63, + 64,70,71,72,73,75,76,77,78,79, + 82,83,59,84,85,86,87,88,89,90, + 91,92,93,66,61,60,6,3,55,20, + 62,0,26,43,21,44,56,27,45,29, + 46,47,30,22,48,49,24,57,31,58, + 50,51,23,52,53,54,19,5,6,0 }; }; public final static byte asr[] = Asr.asr; @@ -883,35 +883,35 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Nasb { public final static char nasb[] = {0, - 102,10,121,57,76,1,60,54,97,98, - 98,74,74,98,74,98,93,137,66,10, - 121,54,58,29,29,10,10,137,10,16, - 10,121,10,121,121,10,63,121,14,137, - 37,139,66,23,37,21,61,31,121,123, - 121,123,74,121,121,50,83,13,106,121, - 57,20,25,50,10,112,21,21,21,21, - 21,24,21,21,21,10,10,10,10,10, - 10,10,10,10,10,10,13,121,21,10, - 10,39,56,58,58,74,10,70,10,10, - 21,58,10,10,21,10,123,17,57,89, - 123,17,11,10,10,74,50,48,45,10, - 4,66,50,25,24,48,21,21,21,21, - 21,21,21,21,21,21,21,14,14,132, - 112,112,27,27,86,114,21,21,21,21, - 21,21,21,21,21,21,21,21,21,21, - 21,21,21,114,21,127,20,10,58,58, - 114,10,114,114,10,10,16,10,70,17, - 66,17,17,21,74,11,48,14,81,10, - 21,21,25,24,21,137,29,131,14,14, - 14,25,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,14,11, - 52,14,10,14,14,21,117,31,58,21, - 10,17,80,137,45,25,25,121,133,13, - 14,135,10,10,21,10,17,19,10,74, - 21,100,70,114,70,70,120,58,39,66, - 21,135,82,20,29,45,14,21,25,74, - 21,14,10,58,120,11,14,25,58,70, - 120,58,17,14,120,70,14,70 + 91,10,132,24,124,1,78,34,107,108, + 108,15,15,108,15,108,103,50,110,10, + 132,34,25,52,52,10,10,50,10,20, + 10,132,10,132,132,10,17,132,28,50, + 46,74,110,36,46,32,79,40,132,134, + 132,134,15,132,132,101,81,27,142,132, + 24,31,38,101,10,119,32,32,32,32, + 32,37,32,32,32,10,10,10,10,10, + 10,10,10,10,10,10,27,132,32,10, + 10,54,23,25,25,15,10,11,10,10, + 32,25,10,10,32,10,134,21,24,97, + 134,21,72,10,10,15,101,68,60,10, + 4,110,101,38,37,68,32,32,32,32, + 32,32,32,32,32,32,32,28,28,115, + 119,119,66,66,63,121,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32, + 32,32,32,121,32,138,31,10,25,25, + 121,10,121,121,10,10,20,10,11,21, + 110,21,21,32,15,72,68,28,85,10, + 32,32,38,37,32,50,114,52,52,28, + 28,28,38,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,28, + 72,70,28,10,28,28,32,128,40,25, + 32,10,21,84,50,60,38,38,132,88, + 28,48,27,10,10,32,10,21,30,10, + 15,32,95,11,121,11,11,131,25,54, + 110,32,48,86,31,28,60,32,38,15, + 32,28,10,25,131,72,28,38,25,11, + 131,25,21,28,131,11,28,11 }; }; public final static char nasb[] = Nasb.nasb; @@ -919,21 +919,21 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface Nasr { public final static char nasr[] = {0, - 31,1,95,90,89,88,87,86,85,0, - 64,0,1,24,0,1,35,0,80,1, - 5,0,1,5,34,0,81,0,47,0, - 21,23,25,36,1,83,26,0,26,1, - 36,25,65,35,21,23,0,28,0,70, - 0,108,0,99,0,27,1,19,0,1, - 44,46,31,33,0,44,31,1,0,26, - 36,1,37,25,0,23,21,97,0,24, - 1,58,31,44,0,1,101,0,21,54, - 61,0,73,74,75,76,66,49,0,110, - 0,111,23,21,0,26,21,23,48,30, - 0,21,54,1,27,0,21,23,48,59, - 1,0,69,21,54,0,104,21,23,0, - 24,1,58,0,21,23,55,0,23,21, - 112,0 + 31,1,98,93,92,91,90,89,88,0, + 26,36,1,37,25,0,31,33,0,1, + 35,0,27,1,19,0,1,24,0,83, + 1,5,0,102,0,1,5,34,0,21, + 23,25,36,1,86,26,0,21,23,55, + 0,47,0,26,1,36,25,68,35,21, + 23,0,1,104,0,84,0,28,0,111, + 0,67,0,23,21,115,0,1,33,46, + 31,44,0,24,1,31,44,60,59,0, + 114,23,21,0,113,0,21,54,64,0, + 73,0,76,77,78,79,69,49,0,44, + 31,1,0,24,59,60,1,0,21,54, + 1,27,0,23,21,100,0,21,23,48, + 62,1,0,72,21,54,0,107,21,23, + 0,26,21,23,48,30,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -963,13 +963,13 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym 0,118,128,97,124,0,100,136,0,123, 157,0,160,96,98,119,122,0,0,0, 0,0,154,156,0,158,159,127,135,0, - 0,146,0,149,155,121,168,171,0,145, - 148,161,167,0,126,138,0,0,147,166, - 170,103,139,140,141,142,143,144,153,172, - 102,104,125,129,130,131,132,133,134,137, - 151,0,0,152,162,165,177,0,179,0, - 0,120,150,163,164,169,173,174,0,175, - 176,178,0 + 0,146,0,149,155,121,168,171,172,173, + 0,0,145,148,161,167,0,126,138,0, + 0,147,166,170,103,139,140,141,142,143, + 144,153,174,102,104,125,129,130,131,132, + 133,134,137,151,0,0,152,162,165,179, + 0,181,0,0,120,150,163,164,169,175, + 176,0,177,178,180,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -999,10 +999,10 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 5,75,47,47,33,75,73,73,40,60, - 58,47,73,73,30,58,47,61,6,5, - 5,18,110,109,58,47,31,3,80,61, - 7,41,5,61,33,46,33 + 5,78,47,47,33,78,76,76,40,63, + 61,47,76,76,30,61,47,64,6,5, + 5,18,113,112,59,47,31,3,83,64, + 7,41,5,64,33,46,33 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -1032,25 +1032,25 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 150,42,0,96,0,201,95,0,31,145, - 0,158,176,95,6,0,98,0,156,95, - 1,152,0,97,0,156,95,1,0,165, - 1,0,116,24,190,95,42,0,116,190, - 95,24,42,0,116,24,42,0,116,190, + 150,42,0,96,0,204,95,0,31,145, + 0,161,179,95,6,0,98,0,159,95, + 1,153,0,97,0,159,95,1,0,168, + 1,0,116,24,193,95,42,0,116,193, + 95,24,42,0,116,24,42,0,116,193, 95,42,0,116,42,0,125,0,2,0, - 0,163,97,0,2,0,97,0,156,95, + 0,163,97,0,2,0,97,0,159,95, 120,1,125,0,2,0,0,161,97,0, - 146,1,0,158,187,95,6,119,56,0, - 158,187,95,6,56,0,148,0,99,0, - 197,95,148,0,95,148,0,150,99,0, - 162,95,6,119,58,0,162,95,6,119, - 57,0,162,95,6,58,0,162,95,6, + 146,1,0,161,190,95,6,119,56,0, + 161,190,95,6,56,0,148,0,99,0, + 200,95,148,0,95,148,0,150,99,0, + 165,95,6,119,58,0,165,95,6,119, + 57,0,165,95,6,58,0,165,95,6, 57,0,131,37,0,77,2,100,97,99, 0,131,118,121,1,39,0,53,122,0, - 177,95,6,120,0,121,83,111,0,29, - 117,0,166,1,0,97,106,0,166,1, - 12,0,158,176,95,6,118,166,1,0, - 97,3,0,104,0,98,0,195,1,99, + 180,95,6,120,0,121,83,111,0,29, + 117,0,169,1,0,97,106,0,169,1, + 12,0,161,179,95,6,118,169,1,0, + 97,3,0,104,0,98,0,198,1,99, 0,121,42,99,0,121,1,0 }; }; @@ -1059,18 +1059,18 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface ScopeState { public final static char scopeState[] = {0, - 1649,0,672,0,1970,1528,1917,1876,1846,0, - 1744,1614,1587,1560,1211,1533,1506,1479,1105,1381, - 1354,654,623,0,1535,1313,1134,2009,1837,625, - 340,1107,507,446,1258,1213,1152,763,1050,585, - 1819,1436,1488,708,2000,1992,1977,1962,1954,786, - 1946,1929,1916,1906,1294,1275,1189,1330,1169,1086, - 1065,1029,1010,989,968,947,926,905,884,863, - 842,821,800,739,564,718,543,522,486,597, - 461,402,425,308,0,1693,1367,1224,621,1672, - 1465,1431,2017,1402,1328,0,366,306,1672,331, - 1431,1402,1646,1630,1702,1426,1680,1325,1320,0, - 709,1592,306,0 + 1398,0,1138,0,2027,1470,2014,1953,1918,0, + 2066,1570,1543,1516,1205,1489,1462,1435,1116,1408, + 332,659,625,0,1291,1145,344,2069,1891,474, + 1061,627,517,1118,1783,1772,1727,771,1207,594, + 1882,1811,1794,716,2057,2049,2036,2026,2016,797, + 2006,1994,1981,1957,1272,1252,1183,1307,1163,1097, + 1076,1040,1021,1000,979,958,937,916,895,874, + 853,832,811,747,573,726,552,531,496,606, + 453,409,432,312,0,1292,1182,783,658,1641, + 1944,1336,1804,1298,1763,0,345,310,1641,1676, + 1336,1298,1619,1602,1809,1711,1660,1715,1332,0, + 717,1548,310,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -1078,35 +1078,35 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public interface InSymb { public final static char inSymb[] = {0, - 0,194,115,117,205,95,95,189,179,180, - 181,58,57,182,56,183,184,95,1,125, - 199,189,178,138,125,172,127,95,140,6, + 0,197,115,117,208,95,95,192,182,183, + 184,58,57,185,56,186,187,95,1,125, + 202,192,181,138,125,175,127,95,140,6, 119,6,119,6,6,119,149,4,146,95, 1,95,55,42,1,62,149,95,6,95, - 6,95,95,6,4,95,149,120,206,115, + 6,95,95,6,4,95,149,120,209,115, 117,24,116,95,100,1,12,18,17,8, 7,4,9,11,10,99,102,104,103,106, 105,108,107,110,109,111,120,6,4,140, - 127,177,40,33,35,38,32,37,41,39, - 95,130,120,36,34,119,95,162,148,163, - 95,162,187,119,188,95,95,164,95,120, - 95,95,95,116,190,164,93,92,91,89, - 90,88,87,86,85,84,62,166,121,148, + 127,180,40,33,35,38,32,37,41,39, + 95,130,120,36,34,119,95,165,148,166, + 95,165,190,119,191,95,95,167,95,120, + 95,95,95,116,193,167,93,92,91,89, + 90,88,87,86,85,84,62,169,121,148, 1,1,81,67,1,42,69,68,4,63, 64,8,7,76,75,73,72,71,70,77, 9,79,78,83,82,95,95,3,121,119, - 1,131,1,1,196,28,6,150,59,162, - 95,162,158,62,55,187,164,156,117,157, - 190,24,116,4,118,95,152,1,166,166, - 195,121,103,103,102,102,105,105,104,104, - 104,104,107,106,109,108,121,110,198,176, - 95,121,32,121,121,55,1,95,197,59, - 146,158,1,95,55,116,116,6,149,1, - 165,95,118,118,59,55,158,55,201,67, - 42,202,118,1,118,118,142,153,177,55, - 59,95,149,95,152,95,156,62,150,67, - 42,121,131,153,113,176,156,150,118,80, - 113,153,158,153,113,118,153,118 + 1,131,1,1,199,28,6,150,59,165, + 95,165,161,62,55,190,167,159,117,160, + 193,24,116,4,118,95,1,154,153,169, + 169,198,121,103,103,102,102,105,105,104, + 104,104,104,107,106,109,108,121,110,201, + 179,95,121,32,121,121,55,1,95,200, + 59,146,161,1,95,55,116,116,6,149, + 168,95,1,118,118,59,55,161,55,204, + 67,42,205,118,1,118,118,142,156,180, + 55,59,95,149,95,159,95,62,150,67, + 42,121,131,156,113,179,159,150,118,80, + 113,156,161,156,113,118,156,118 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -1272,7 +1272,7 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym "enumerator_list", "enumerator", "direct_declarator", - "pointer", + "pointer_seq", "array_direct_declarator", "basic_direct_declarator", "knr_direct_declarator", @@ -1289,6 +1289,10 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym "complete_parameter_declarator", "abstract_declarator", "direct_abstract_declarator", + "basic_direct_abstract_declarat" + + "or", + "array_direct_abstract_declarat" + + "or", "designated_initializer", "designation", "designator_list", @@ -1316,18 +1320,18 @@ public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym public final static int NUM_STATES = 288, NT_OFFSET = 94, - LA_STATE_OFFSET = 2482, + LA_STATE_OFFSET = 2483, MAX_LA = 2147483647, - NUM_RULES = 305, - NUM_NONTERMINALS = 113, - NUM_SYMBOLS = 207, + NUM_RULES = 309, + NUM_NONTERMINALS = 116, + NUM_SYMBOLS = 210, SEGMENT_SIZE = 8192, - START_STATE = 1720, + START_STATE = 1366, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 74, EOLT_SYMBOL = 74, - ACCEPT_ACTION = 2160, - ERROR_ACTION = 2177; + ACCEPT_ACTION = 2157, + ERROR_ACTION = 2174; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.g b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.g index 260c67b706e..3fe2164dfa7 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.g @@ -923,6 +923,7 @@ declaration_specifiers_opt no_type_declaration_specifier ::= storage_class_specifier | function_specifier + | cv_qualifier | 'friend' /. $Build consumeDeclSpecToken(); $EndBuild ./ | 'typedef' @@ -998,13 +999,12 @@ typedef_name ::= 'identifier' -type_specifier - ::= simple_type_specifier -- int, void etc... - | class_specifier -- structs, unions, classes - | enum_specifier -- enums - | elaborated_type_specifier -- its elaborated, but this is different than c, includes typename - | cv_qualifier -- the const and volatile keywords (separated because they can be applied to pointer modifiers) - +--type_specifier +-- ::= simple_type_specifier -- int, void etc... +-- | class_specifier -- structs, unions, classes +-- | enum_specifier -- enums +-- | elaborated_type_specifier -- its elaborated, but this is different than c, includes typename +-- | cv_qualifier -- the const and volatile keywords (separated because they can be applied to pointer modifiers) --simple_type_specifier @@ -1191,12 +1191,13 @@ init_declarator_list_opt init_declarator ::= declarator | declarator initializer - /. $Build consumeDeclaratorWithInitializer(); $EndBuild ./ + /. $Build consumeDeclaratorWithInitializer(true); $EndBuild ./ declarator - ::= ptr_operator_seq_opt direct_declarator - /. $Build consumeDeclaratorWithPointer(); $EndBuild ./ + ::= direct_declarator + | ptr_operator_seq direct_declarator + /. $Build consumeDeclaratorWithPointer(true); $EndBuild ./ direct_declarator @@ -1214,13 +1215,14 @@ basic_direct_declarator function_direct_declarator ::= basic_direct_declarator '(' parameter_declaration_clause ')' cv_qualifier_seq_opt exception_specification_opt - /. $Build consumeDirectDeclaratorFunctionDeclarator(); $EndBuild ./ + /. $Build consumeDirectDeclaratorFunctionDeclarator(true); $EndBuild ./ + array_direct_declarator ::= array_direct_declarator array_modifier - /. $Build consumeDirectDeclaratorArrayDeclarator(); $EndBuild ./ + /. $Build consumeDirectDeclaratorArrayDeclarator(true); $EndBuild ./ | basic_direct_declarator array_modifier - /. $Build consumeDirectDeclaratorArrayDeclarator(); $EndBuild ./ + /. $Build consumeDirectDeclaratorArrayDeclarator(true); $EndBuild ./ array_modifier @@ -1278,32 +1280,53 @@ type_id /. $Build consumeTypeId(true); $EndBuild ./ +--type_specifier_seq +-- ::= type_specifier +-- | type_specifier_seq type_specifier + + +-- more lenient than spec, but easier to deal with type_specifier_seq - ::= type_specifier - | type_specifier_seq type_specifier + ::= declaration_specifiers + abstract_declarator - ::= ptr_operator abstract_declarator_opt - | direct_abstract_declarator - - -abstract_declarator_opt - ::= abstract_declarator - | $empty + ::= direct_abstract_declarator + | ptr_operator_seq + /. $Build consumeDeclaratorWithPointer(false); $EndBuild ./ + | ptr_operator_seq direct_abstract_declarator + /. $Build consumeDeclaratorWithPointer(true); $EndBuild ./ + - direct_abstract_declarator - ::= direct_abstract_declarator_opt '(' parameter_declaration_clause ')' cv_qualifier_seq_opt exception_specification_opt - | direct_abstract_declarator_opt '[' constant_expression_opt ']' - | '(' abstract_declarator ')' - - -direct_abstract_declarator_opt - ::= direct_abstract_declarator - | $empty + ::= basic_direct_abstract_declarator + | array_direct_abstract_declarator + | function_direct_abstract_declarator +basic_direct_abstract_declarator + ::= '(' abstract_declarator ')' + /. $Build consumeDirectDeclaratorBracketed(); $EndBuild ./ + + +array_direct_abstract_declarator + ::= array_modifier + /. $Build consumeDirectDeclaratorArrayDeclarator(false); $EndBuild ./ + | array_direct_abstract_declarator array_modifier + /. $Build consumeDirectDeclaratorArrayDeclarator(true); $EndBuild ./ + | basic_direct_abstract_declarator array_modifier + /. $Build consumeDirectDeclaratorArrayDeclarator(true); $EndBuild ./ + + +function_direct_abstract_declarator + ::= basic_direct_abstract_declarator '(' parameter_declaration_clause ')' cv_qualifier_seq_opt exception_specification_opt + /. $Build consumeDirectDeclaratorFunctionDeclarator(true); $EndBuild ./ + | '(' parameter_declaration_clause ')' cv_qualifier_seq_opt exception_specification_opt + /. $Build consumeDirectDeclaratorFunctionDeclarator(false); $EndBuild ./ + + +-- actions just place a marker indicating if '...' was parsed parameter_declaration_clause ::= parameter_declaration_list_opt '...' /. $Build consumePlaceHolder(); $EndBuild ./ @@ -1317,15 +1340,47 @@ parameter_declaration_list ::= parameter_declaration | parameter_declaration_list ',' parameter_declaration + parameter_declaration_list_opt ::= parameter_declaration_list | $empty + +-- its just a declarator with an initializer +--parameter_declaration +-- ::= declaration_specifiers declarator +-- | declaration_specifiers declarator = assignment_expression +-- | declaration_specifiers abstract_declarator_opt +-- | declaration_specifiers abstract_declarator_opt = assignment_expression + + +abstract_declarator_opt + ::= abstract_declarator + | $empty + /. $Build consumeEmpty(); $EndBuild ./ + + parameter_declaration - ::= declaration_specifiers declarator - | declaration_specifiers declarator = assignment_expression - | declaration_specifiers abstract_declarator_opt - | declaration_specifiers abstract_declarator_opt = assignment_expression + ::= declaration_specifiers parameter_init_declarator + /. $Build consumeParameterDeclaration(); $EndBuild ./ + | declaration_specifiers + /. $Build consumeParameterDeclarationWithoutDeclarator(); $EndBuild ./ + + +parameter_init_declarator + ::= declarator + | declarator '=' parameter_initializer + /. $Build consumeDeclaratorWithInitializer(true); $EndBuild ./ + | abstract_declarator + | abstract_declarator '=' parameter_initializer + /. $Build consumeDeclaratorWithInitializer(true); $EndBuild ./ + | '=' parameter_initializer + /. $Build consumeDeclaratorWithInitializer(false); $EndBuild ./ + + +parameter_initializer + ::= assignment_expression + /. $Build consumeInitializer(); $EndBuild ./ function_definition 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 2edf09a6d12..11f1d5edf44 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 @@ -200,7 +200,7 @@ public int getKind(int i) { // Initialize ruleAction array. // static { - RULE_ACTIONS = new Action[521 + 1]; + RULE_ACTIONS = new Action[526 + 1]; RULE_ACTIONS[0] = null; RULE_ACTIONS[1] = new Action1(); @@ -344,33 +344,36 @@ public int getKind(int i) { RULE_ACTIONS[218] = new Action218(); RULE_ACTIONS[219] = new Action219(); RULE_ACTIONS[221] = new Action221(); - RULE_ACTIONS[224] = new Action224(); RULE_ACTIONS[225] = new Action225(); - RULE_ACTIONS[258] = new Action258(); + RULE_ACTIONS[226] = new Action226(); + RULE_ACTIONS[254] = new Action254(); + RULE_ACTIONS[270] = new Action270(); + RULE_ACTIONS[271] = new Action271(); + RULE_ACTIONS[272] = new Action272(); + RULE_ACTIONS[273] = new Action273(); RULE_ACTIONS[274] = new Action274(); RULE_ACTIONS[275] = new Action275(); RULE_ACTIONS[276] = new Action276(); - RULE_ACTIONS[277] = new Action277(); RULE_ACTIONS[278] = new Action278(); RULE_ACTIONS[279] = new Action279(); - RULE_ACTIONS[280] = new Action280(); - RULE_ACTIONS[282] = new Action282(); - RULE_ACTIONS[283] = new Action283(); - RULE_ACTIONS[288] = new Action288(); - RULE_ACTIONS[289] = new Action289(); + RULE_ACTIONS[284] = new Action284(); + RULE_ACTIONS[285] = new Action285(); + RULE_ACTIONS[294] = new Action294(); + RULE_ACTIONS[295] = new Action295(); + RULE_ACTIONS[296] = new Action296(); RULE_ACTIONS[298] = new Action298(); RULE_ACTIONS[299] = new Action299(); RULE_ACTIONS[300] = new Action300(); + RULE_ACTIONS[301] = new Action301(); RULE_ACTIONS[302] = new Action302(); RULE_ACTIONS[303] = new Action303(); RULE_ACTIONS[304] = new Action304(); RULE_ACTIONS[305] = new Action305(); - RULE_ACTIONS[306] = new Action306(); - RULE_ACTIONS[307] = new Action307(); - RULE_ACTIONS[308] = new Action308(); - RULE_ACTIONS[309] = new Action309(); - RULE_ACTIONS[315] = new Action315(); - RULE_ACTIONS[316] = new Action316(); + RULE_ACTIONS[311] = new Action311(); + RULE_ACTIONS[313] = new Action313(); + RULE_ACTIONS[317] = new Action317(); + RULE_ACTIONS[318] = new Action318(); + RULE_ACTIONS[319] = new Action319(); RULE_ACTIONS[320] = new Action320(); RULE_ACTIONS[321] = new Action321(); RULE_ACTIONS[322] = new Action322(); @@ -378,45 +381,57 @@ public int getKind(int i) { RULE_ACTIONS[324] = new Action324(); RULE_ACTIONS[325] = new Action325(); RULE_ACTIONS[326] = new Action326(); - RULE_ACTIONS[327] = new Action327(); - RULE_ACTIONS[328] = new Action328(); - RULE_ACTIONS[329] = new Action329(); + RULE_ACTIONS[334] = new Action334(); + RULE_ACTIONS[335] = new Action335(); RULE_ACTIONS[337] = new Action337(); RULE_ACTIONS[338] = new Action338(); - RULE_ACTIONS[340] = new Action340(); - RULE_ACTIONS[341] = new Action341(); + RULE_ACTIONS[339] = new Action339(); RULE_ACTIONS[342] = new Action342(); + RULE_ACTIONS[343] = new Action343(); + RULE_ACTIONS[347] = new Action347(); + RULE_ACTIONS[348] = new Action348(); + RULE_ACTIONS[349] = new Action349(); + RULE_ACTIONS[350] = new Action350(); + RULE_ACTIONS[351] = new Action351(); + RULE_ACTIONS[352] = new Action352(); + RULE_ACTIONS[353] = new Action353(); RULE_ACTIONS[354] = new Action354(); RULE_ACTIONS[355] = new Action355(); - RULE_ACTIONS[356] = new Action356(); + RULE_ACTIONS[361] = new Action361(); + RULE_ACTIONS[362] = new Action362(); + RULE_ACTIONS[363] = new Action363(); + RULE_ACTIONS[365] = new Action365(); + RULE_ACTIONS[367] = new Action367(); + RULE_ACTIONS[368] = new Action368(); RULE_ACTIONS[369] = new Action369(); - RULE_ACTIONS[370] = new Action370(); - RULE_ACTIONS[371] = new Action371(); - RULE_ACTIONS[372] = new Action372(); - RULE_ACTIONS[373] = new Action373(); + RULE_ACTIONS[374] = new Action374(); + RULE_ACTIONS[375] = new Action375(); + RULE_ACTIONS[376] = new Action376(); + RULE_ACTIONS[377] = new Action377(); RULE_ACTIONS[378] = new Action378(); - RULE_ACTIONS[379] = new Action379(); - RULE_ACTIONS[380] = new Action380(); - RULE_ACTIONS[381] = new Action381(); - RULE_ACTIONS[382] = new Action382(); + RULE_ACTIONS[383] = new Action383(); + RULE_ACTIONS[384] = new Action384(); + RULE_ACTIONS[385] = new Action385(); RULE_ACTIONS[386] = new Action386(); - RULE_ACTIONS[390] = new Action390(); - RULE_ACTIONS[416] = new Action416(); - RULE_ACTIONS[417] = new Action417(); - RULE_ACTIONS[418] = new Action418(); - RULE_ACTIONS[419] = new Action419(); - RULE_ACTIONS[425] = new Action425(); - RULE_ACTIONS[439] = new Action439(); - RULE_ACTIONS[440] = new Action440(); - RULE_ACTIONS[483] = new Action483(); - RULE_ACTIONS[484] = new Action484(); - RULE_ACTIONS[485] = new Action485(); - RULE_ACTIONS[496] = new Action496(); - RULE_ACTIONS[505] = new Action505(); - RULE_ACTIONS[506] = new Action506(); - RULE_ACTIONS[507] = new Action507(); + RULE_ACTIONS[387] = new Action387(); + RULE_ACTIONS[391] = new Action391(); + RULE_ACTIONS[395] = new Action395(); + RULE_ACTIONS[421] = new Action421(); + RULE_ACTIONS[422] = new Action422(); + RULE_ACTIONS[423] = new Action423(); + RULE_ACTIONS[424] = new Action424(); + RULE_ACTIONS[430] = new Action430(); + RULE_ACTIONS[444] = new Action444(); + RULE_ACTIONS[445] = new Action445(); + RULE_ACTIONS[488] = new Action488(); + RULE_ACTIONS[489] = new Action489(); + RULE_ACTIONS[490] = new Action490(); + RULE_ACTIONS[501] = new Action501(); + RULE_ACTIONS[510] = new Action510(); RULE_ACTIONS[511] = new Action511(); RULE_ACTIONS[512] = new Action512(); + RULE_ACTIONS[516] = new Action516(); + RULE_ACTIONS[517] = new Action517(); // @@ -1840,17 +1855,7 @@ public int getKind(int i) { } // - // Rule 224: no_type_declaration_specifier ::= friend - // - static final class Action224 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclSpecToken(); - } - } - - // - // Rule 225: no_type_declaration_specifier ::= typedef + // Rule 225: no_type_declaration_specifier ::= friend // static final class Action225 extends DeclaredAction< CPPParserAction , Object > { @@ -1860,9 +1865,9 @@ public int getKind(int i) { } // - // Rule 258: simple_type_specifier ::= simple_type_specifier_token + // Rule 226: no_type_declaration_specifier ::= typedef // - static final class Action258 extends DeclaredAction< CPPParserAction , Object > { + static final class Action226 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeDeclSpecToken(); @@ -1870,9 +1875,19 @@ public int getKind(int i) { } // - // Rule 274: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 254: simple_type_specifier ::= simple_type_specifier_token // - static final class Action274 extends DeclaredAction< CPPParserAction , Object > { + static final class Action254 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDeclSpecToken(); + } + } + + // + // Rule 270: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // + static final class Action270 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeQualifiedId(false); @@ -1880,9 +1895,9 @@ public int getKind(int i) { } // - // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 271: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - static final class Action275 extends DeclaredAction< CPPParserAction , Object > { + static final class Action271 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeQualifiedId(false); @@ -1890,9 +1905,9 @@ public int getKind(int i) { } // - // Rule 276: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 272: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - static final class Action276 extends DeclaredAction< CPPParserAction , Object > { + static final class Action272 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeQualifiedId(false); @@ -1900,9 +1915,9 @@ public int getKind(int i) { } // - // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 273: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - static final class Action277 extends DeclaredAction< CPPParserAction , Object > { + static final class Action273 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeQualifiedId(true); @@ -1910,9 +1925,9 @@ public int getKind(int i) { } // - // Rule 278: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 274: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - static final class Action278 extends DeclaredAction< CPPParserAction , Object > { + static final class Action274 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTypeSpecifierElaborated(false); @@ -1920,9 +1935,9 @@ public int getKind(int i) { } // - // Rule 279: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 275: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - static final class Action279 extends DeclaredAction< CPPParserAction , Object > { + static final class Action275 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTypeSpecifierElaborated(true); @@ -1930,9 +1945,9 @@ public int getKind(int i) { } // - // Rule 280: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 276: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - static final class Action280 extends DeclaredAction< CPPParserAction , Object > { + static final class Action276 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTypeSpecifierElaborated(false); @@ -1940,9 +1955,9 @@ public int getKind(int i) { } // - // Rule 282: enum_specifier ::= enum { enumerator_list_opt } + // Rule 278: enum_specifier ::= enum { enumerator_list_opt } // - static final class Action282 extends DeclaredAction< CPPParserAction , Object > { + static final class Action278 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTypeSpecifierEnumeration(false); @@ -1950,9 +1965,9 @@ public int getKind(int i) { } // - // Rule 283: enum_specifier ::= enum identifier { enumerator_list_opt } + // Rule 279: enum_specifier ::= enum identifier { enumerator_list_opt } // - static final class Action283 extends DeclaredAction< CPPParserAction , Object > { + static final class Action279 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTypeSpecifierEnumeration(true); @@ -1960,9 +1975,9 @@ public int getKind(int i) { } // - // Rule 288: enumerator_definition ::= enumerator + // Rule 284: enumerator_definition ::= enumerator // - static final class Action288 extends DeclaredAction< CPPParserAction , Object > { + static final class Action284 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeEnumerator(false); @@ -1970,9 +1985,9 @@ public int getKind(int i) { } // - // Rule 289: enumerator_definition ::= enumerator = constant_expression + // Rule 285: enumerator_definition ::= enumerator = constant_expression // - static final class Action289 extends DeclaredAction< CPPParserAction , Object > { + static final class Action285 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeEnumerator(true); @@ -1980,9 +1995,9 @@ public int getKind(int i) { } // - // Rule 298: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } + // Rule 294: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } // - static final class Action298 extends DeclaredAction< CPPParserAction , Object > { + static final class Action294 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeNamespaceDefinition(true); @@ -1990,9 +2005,9 @@ public int getKind(int i) { } // - // Rule 299: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // Rule 295: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } // - static final class Action299 extends DeclaredAction< CPPParserAction , Object > { + static final class Action295 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeNamespaceDefinition(true); @@ -2000,9 +2015,9 @@ public int getKind(int i) { } // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 296: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - static final class Action300 extends DeclaredAction< CPPParserAction , Object > { + static final class Action296 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeNamespaceDefinition(false); @@ -2010,9 +2025,9 @@ public int getKind(int i) { } // - // Rule 302: namespace_alias_definition ::= namespace identifier = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 298: namespace_alias_definition ::= namespace identifier = dcolon_opt nested_name_specifier_opt namespace_name ; // - static final class Action302 extends DeclaredAction< CPPParserAction , Object > { + static final class Action298 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeNamespaceAliasDefinition(); @@ -2020,9 +2035,9 @@ public int getKind(int i) { } // - // Rule 303: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 299: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - static final class Action303 extends DeclaredAction< CPPParserAction , Object > { + static final class Action299 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeUsingDeclaration(); @@ -2030,9 +2045,9 @@ public int getKind(int i) { } // - // Rule 304: typename_opt ::= typename + // Rule 300: typename_opt ::= typename // - static final class Action304 extends DeclaredAction< CPPParserAction , Object > { + static final class Action300 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumePlaceHolder(); @@ -2040,9 +2055,9 @@ public int getKind(int i) { } // - // Rule 305: typename_opt ::= $Empty + // Rule 301: typename_opt ::= $Empty // - static final class Action305 extends DeclaredAction< CPPParserAction , Object > { + static final class Action301 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeEmpty(); @@ -2050,9 +2065,9 @@ public int getKind(int i) { } // - // Rule 306: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 302: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - static final class Action306 extends DeclaredAction< CPPParserAction , Object > { + static final class Action302 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeUsingDirective(); @@ -2060,9 +2075,9 @@ public int getKind(int i) { } // - // Rule 307: asm_definition ::= asm ( stringlit ) ; + // Rule 303: asm_definition ::= asm ( stringlit ) ; // - static final class Action307 extends DeclaredAction< CPPParserAction , Object > { + static final class Action303 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeDeclarationASM(); @@ -2070,9 +2085,9 @@ public int getKind(int i) { } // - // Rule 308: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 304: linkage_specification ::= extern stringlit { declaration_seq_opt } // - static final class Action308 extends DeclaredAction< CPPParserAction , Object > { + static final class Action304 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeLinkageSpecification(); @@ -2080,9 +2095,9 @@ public int getKind(int i) { } // - // Rule 309: linkage_specification ::= extern stringlit declaration + // Rule 305: linkage_specification ::= extern stringlit declaration // - static final class Action309 extends DeclaredAction< CPPParserAction , Object > { + static final class Action305 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeLinkageSpecification(); @@ -2090,29 +2105,29 @@ public int getKind(int i) { } // - // Rule 315: init_declarator ::= declarator initializer + // Rule 311: init_declarator ::= declarator initializer // - static final class Action315 extends DeclaredAction< CPPParserAction , Object > { + static final class Action311 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclaratorWithInitializer(); + consumeDeclaratorWithInitializer(true); } } // - // Rule 316: declarator ::= ptr_operator_seq_opt direct_declarator + // Rule 313: declarator ::= ptr_operator_seq direct_declarator // - static final class Action316 extends DeclaredAction< CPPParserAction , Object > { + static final class Action313 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclaratorWithPointer(); + consumeDeclaratorWithPointer(true); } } // - // Rule 320: basic_direct_declarator ::= declarator_id_name + // Rule 317: basic_direct_declarator ::= declarator_id_name // - static final class Action320 extends DeclaredAction< CPPParserAction , Object > { + static final class Action317 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeDirectDeclaratorIdentifier(); @@ -2120,9 +2135,9 @@ public int getKind(int i) { } // - // Rule 321: basic_direct_declarator ::= ( declarator ) + // Rule 318: basic_direct_declarator ::= ( declarator ) // - static final class Action321 extends DeclaredAction< CPPParserAction , Object > { + static final class Action318 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeDirectDeclaratorBracketed(); @@ -2130,49 +2145,49 @@ public int getKind(int i) { } // - // Rule 322: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 319: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + static final class Action319 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); + } + } + + // + // Rule 320: array_direct_declarator ::= array_direct_declarator array_modifier + // + static final class Action320 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); + } + } + + // + // Rule 321: array_direct_declarator ::= basic_direct_declarator array_modifier + // + static final class Action321 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); + } + } + + // + // Rule 322: array_modifier ::= [ constant_expression ] // static final class Action322 extends DeclaredAction< CPPParserAction , Object > { - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorFunctionDeclarator(); - } - } - - // - // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier - // - static final class Action323 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorArrayDeclarator(); - } - } - - // - // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier - // - static final class Action324 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorArrayDeclarator(); - } - } - - // - // Rule 325: array_modifier ::= [ constant_expression ] - // - static final class Action325 extends DeclaredAction< CPPParserAction , Object > { - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeDirectDeclaratorArrayModifier(true); } } // - // Rule 326: array_modifier ::= [ ] + // Rule 323: array_modifier ::= [ ] // - static final class Action326 extends DeclaredAction< CPPParserAction , Object > { + static final class Action323 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeDirectDeclaratorArrayModifier(false); @@ -2180,9 +2195,9 @@ public int getKind(int i) { } // - // Rule 327: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 324: ptr_operator ::= * cv_qualifier_seq_opt // - static final class Action327 extends DeclaredAction< CPPParserAction , Object > { + static final class Action324 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumePointer(); @@ -2190,9 +2205,9 @@ public int getKind(int i) { } // - // Rule 328: ptr_operator ::= & + // Rule 325: ptr_operator ::= & // - static final class Action328 extends DeclaredAction< CPPParserAction , Object > { + static final class Action325 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeReferenceOperator(); @@ -2200,9 +2215,9 @@ public int getKind(int i) { } // - // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 326: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - static final class Action329 extends DeclaredAction< CPPParserAction , Object > { + static final class Action326 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumePointerToMember(); @@ -2210,39 +2225,39 @@ public int getKind(int i) { } // - // Rule 337: cv_qualifier ::= const + // Rule 334: cv_qualifier ::= const + // + static final class Action334 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDeclSpecToken(); + } + } + + // + // Rule 335: cv_qualifier ::= volatile + // + static final class Action335 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDeclSpecToken(); + } + } + + // + // Rule 337: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // static final class Action337 extends DeclaredAction< CPPParserAction , Object > { - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclSpecToken(); - } - } - - // - // Rule 338: cv_qualifier ::= volatile - // - static final class Action338 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclSpecToken(); - } - } - - // - // Rule 340: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name - // - static final class Action340 extends DeclaredAction< CPPParserAction , Object > { - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeQualifiedId(false); } } // - // Rule 341: type_id ::= type_specifier_seq + // Rule 338: type_id ::= type_specifier_seq // - static final class Action341 extends DeclaredAction< CPPParserAction , Object > { + static final class Action338 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTypeId(false); @@ -2250,9 +2265,9 @@ public int getKind(int i) { } // - // Rule 342: type_id ::= type_specifier_seq abstract_declarator + // Rule 339: type_id ::= type_specifier_seq abstract_declarator // - static final class Action342 extends DeclaredAction< CPPParserAction , Object > { + static final class Action339 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTypeId(true); @@ -2260,9 +2275,89 @@ public int getKind(int i) { } // - // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 342: abstract_declarator ::= ptr_operator_seq // - static final class Action354 extends DeclaredAction< CPPParserAction , Object > { + static final class Action342 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDeclaratorWithPointer(false); + } + } + + // + // Rule 343: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // + static final class Action343 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDeclaratorWithPointer(true); + } + } + + // + // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + static final class Action347 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDirectDeclaratorBracketed(); + } + } + + // + // Rule 348: array_direct_abstract_declarator ::= array_modifier + // + static final class Action348 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDirectDeclaratorArrayDeclarator(false); + } + } + + // + // Rule 349: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + static final class Action349 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); + } + } + + // + // Rule 350: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + static final class Action350 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); + } + } + + // + // Rule 351: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + static final class Action351 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); + } + } + + // + // Rule 352: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + static final class Action352 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDirectDeclaratorFunctionDeclarator(false); + } + } + + // + // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + static final class Action353 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumePlaceHolder(); @@ -2270,9 +2365,9 @@ public int getKind(int i) { } // - // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt // - static final class Action355 extends DeclaredAction< CPPParserAction , Object > { + static final class Action354 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeEmpty(); @@ -2280,9 +2375,9 @@ public int getKind(int i) { } // - // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 355: parameter_declaration_clause ::= parameter_declaration_list , ... // - static final class Action356 extends DeclaredAction< CPPParserAction , Object > { + static final class Action355 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumePlaceHolder(); @@ -2290,19 +2385,69 @@ public int getKind(int i) { } // - // Rule 369: initializer ::= ( expression_list ) + // Rule 361: abstract_declarator_opt ::= $Empty // - static final class Action369 extends DeclaredAction< CPPParserAction , Object > { + static final class Action361 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeInitializerConstructor(); + consumeEmpty(); } } // - // Rule 370: initializer_clause ::= assignment_expression + // Rule 362: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - static final class Action370 extends DeclaredAction< CPPParserAction , Object > { + static final class Action362 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeParameterDeclaration(); + } + } + + // + // Rule 363: parameter_declaration ::= declaration_specifiers + // + static final class Action363 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeParameterDeclarationWithoutDeclarator(); + } + } + + // + // Rule 365: parameter_init_declarator ::= declarator = parameter_initializer + // + static final class Action365 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDeclaratorWithInitializer(true); + } + } + + // + // Rule 367: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + static final class Action367 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDeclaratorWithInitializer(true); + } + } + + // + // Rule 368: parameter_init_declarator ::= = parameter_initializer + // + static final class Action368 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeDeclaratorWithInitializer(false); + } + } + + // + // Rule 369: parameter_initializer ::= assignment_expression + // + static final class Action369 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeInitializer(); @@ -2310,9 +2455,29 @@ public int getKind(int i) { } // - // Rule 371: initializer_clause ::= { initializer_list , } + // Rule 374: initializer ::= ( expression_list ) // - static final class Action371 extends DeclaredAction< CPPParserAction , Object > { + static final class Action374 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeInitializerConstructor(); + } + } + + // + // Rule 375: initializer_clause ::= assignment_expression + // + static final class Action375 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeInitializer(); + } + } + + // + // Rule 376: initializer_clause ::= { initializer_list , } + // + static final class Action376 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeInitializerList(); @@ -2320,9 +2485,9 @@ public int getKind(int i) { } // - // Rule 372: initializer_clause ::= { initializer_list } + // Rule 377: initializer_clause ::= { initializer_list } // - static final class Action372 extends DeclaredAction< CPPParserAction , Object > { + static final class Action377 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeInitializerList(); @@ -2330,29 +2495,29 @@ public int getKind(int i) { } // - // Rule 373: initializer_clause ::= { } - // - static final class Action373 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeInitializerList(); - } - } - - // - // Rule 378: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 378: initializer_clause ::= { } // static final class Action378 extends DeclaredAction< CPPParserAction , Object > { + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeInitializerList(); + } + } + + // + // Rule 383: class_specifier ::= class_head { member_declaration_list_opt } + // + static final class Action383 extends DeclaredAction< CPPParserAction , Object > { + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeClassSpecifier(); } } // - // Rule 379: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 384: class_head ::= class_keyword identifier_name_opt base_clause_opt // - static final class Action379 extends DeclaredAction< CPPParserAction , Object > { + static final class Action384 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeClassHead(false); @@ -2360,9 +2525,9 @@ public int getKind(int i) { } // - // Rule 380: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 385: class_head ::= class_keyword template_id_name base_clause_opt // - static final class Action380 extends DeclaredAction< CPPParserAction , Object > { + static final class Action385 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeClassHead(false); @@ -2370,39 +2535,39 @@ public int getKind(int i) { } // - // Rule 381: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - static final class Action381 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeClassHead(true); - } - } - - // - // Rule 382: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt - // - static final class Action382 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeClassHead(true); - } - } - - // - // Rule 386: identifier_name_opt ::= $Empty + // Rule 386: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // static final class Action386 extends DeclaredAction< CPPParserAction , Object > { + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeClassHead(true); + } + } + + // + // Rule 387: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // + static final class Action387 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumeClassHead(true); + } + } + + // + // Rule 391: identifier_name_opt ::= $Empty + // + static final class Action391 extends DeclaredAction< CPPParserAction , Object > { + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeEmpty(); } } // - // Rule 390: visibility_label ::= access_specifier_keyword : + // Rule 395: visibility_label ::= access_specifier_keyword : // - static final class Action390 extends DeclaredAction< CPPParserAction , Object > { + static final class Action395 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeVisibilityLabel(); @@ -2410,9 +2575,9 @@ public int getKind(int i) { } // - // Rule 416: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 421: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - static final class Action416 extends DeclaredAction< CPPParserAction , Object > { + static final class Action421 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeBaseSpecifier(false); @@ -2420,9 +2585,9 @@ public int getKind(int i) { } // - // Rule 417: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 422: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name // - static final class Action417 extends DeclaredAction< CPPParserAction , Object > { + static final class Action422 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeBaseSpecifier(true); @@ -2430,9 +2595,9 @@ public int getKind(int i) { } // - // Rule 418: virtual_opt ::= virtual + // Rule 423: virtual_opt ::= virtual // - static final class Action418 extends DeclaredAction< CPPParserAction , Object > { + static final class Action423 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumePlaceHolder(); @@ -2440,9 +2605,9 @@ public int getKind(int i) { } // - // Rule 419: virtual_opt ::= $Empty + // Rule 424: virtual_opt ::= $Empty // - static final class Action419 extends DeclaredAction< CPPParserAction , Object > { + static final class Action424 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeEmpty(); @@ -2450,9 +2615,9 @@ public int getKind(int i) { } // - // Rule 425: conversion_function_id_name ::= operator conversion_type_id + // Rule 430: conversion_function_id_name ::= operator conversion_type_id // - static final class Action425 extends DeclaredAction< CPPParserAction , Object > { + static final class Action430 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeConversionName(); @@ -2460,9 +2625,9 @@ public int getKind(int i) { } // - // Rule 439: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 444: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - static final class Action439 extends DeclaredAction< CPPParserAction , Object > { + static final class Action444 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTemplateId(); @@ -2470,9 +2635,9 @@ public int getKind(int i) { } // - // Rule 440: operator_id_name ::= operator overloadable_operator + // Rule 445: operator_id_name ::= operator overloadable_operator // - static final class Action440 extends DeclaredAction< CPPParserAction , Object > { + static final class Action445 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeOperatorName(); @@ -2480,9 +2645,9 @@ public int getKind(int i) { } // - // Rule 483: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 488: template_declaration ::= export_opt template < template_parameter_list > declaration // - static final class Action483 extends DeclaredAction< CPPParserAction , Object > { + static final class Action488 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTemplateDeclaration(); @@ -2490,9 +2655,9 @@ public int getKind(int i) { } // - // Rule 484: export_opt ::= export + // Rule 489: export_opt ::= export // - static final class Action484 extends DeclaredAction< CPPParserAction , Object > { + static final class Action489 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumePlaceHolder(); @@ -2500,9 +2665,9 @@ public int getKind(int i) { } // - // Rule 485: export_opt ::= $Empty + // Rule 490: export_opt ::= $Empty // - static final class Action485 extends DeclaredAction< CPPParserAction , Object > { + static final class Action490 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeEmpty(); @@ -2510,9 +2675,9 @@ public int getKind(int i) { } // - // Rule 496: template_id_name ::= template_identifier < template_argument_list_opt > + // Rule 501: template_id_name ::= template_identifier < template_argument_list_opt > // - static final class Action496 extends DeclaredAction< CPPParserAction , Object > { + static final class Action501 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTemplateId(); @@ -2520,9 +2685,9 @@ public int getKind(int i) { } // - // Rule 505: explicit_instantiation ::= template declaration + // Rule 510: explicit_instantiation ::= template declaration // - static final class Action505 extends DeclaredAction< CPPParserAction , Object > { + static final class Action510 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTemplateExplicitInstantiation(); @@ -2530,9 +2695,9 @@ public int getKind(int i) { } // - // Rule 506: explicit_specialization ::= template < > declaration + // Rule 511: explicit_specialization ::= template < > declaration // - static final class Action506 extends DeclaredAction< CPPParserAction , Object > { + static final class Action511 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeTemplateExplicitSpecialization(); @@ -2540,9 +2705,9 @@ public int getKind(int i) { } // - // Rule 507: try_block ::= try compound_statement handler_seq + // Rule 512: try_block ::= try compound_statement handler_seq // - static final class Action507 extends DeclaredAction< CPPParserAction , Object > { + static final class Action512 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeStatementTryBlock(); @@ -2550,9 +2715,9 @@ public int getKind(int i) { } // - // Rule 511: handler ::= catch ( exception_declaration ) compound_statement + // Rule 516: handler ::= catch ( exception_declaration ) compound_statement // - static final class Action511 extends DeclaredAction< CPPParserAction , Object > { + static final class Action516 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeStatementCatchHandler(false); @@ -2560,9 +2725,9 @@ public int getKind(int i) { } // - // Rule 512: handler ::= catch ( ... ) compound_statement + // Rule 517: handler ::= catch ( ... ) compound_statement // - static final class Action512 extends DeclaredAction< CPPParserAction , Object > { + static final class Action517 extends DeclaredAction< CPPParserAction , Object > { public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. consumeStatementCatchHandler(true); 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 aad6ab5d68d..ac41b220f19 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 @@ -59,489 +59,475 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 8,2,2,3,2,3,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 2,1,0,4,2,2,2,2,2,1, - 0,1,1,1,1,1,2,1,2,2, - 2,1,2,2,1,2,2,1,2,2, - 1,2,2,1,1,1,1,1,1,1, + 0,1,1,1,1,1,1,2,1,2, + 2,2,1,2,2,1,2,2,1,2, + 2,1,2,2,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3,4,4,5,4,5,4, - 1,5,6,1,3,1,0,1,3,1, - 1,1,1,1,1,1,1,6,6,5, - 1,7,6,1,0,6,5,6,4,1, - 3,1,0,1,2,3,1,1,1,1, - 3,9,2,2,3,2,3,1,5,1, - 2,1,0,2,1,0,1,1,1,3, - 1,2,1,2,2,1,1,0,9,4, - 3,1,0,2,1,3,1,3,1,0, - 2,4,2,4,4,3,1,2,3,1, - 5,4,3,1,3,1,1,5,4,4, - 5,5,1,0,1,0,1,1,1,2, - 3,2,2,1,5,1,1,1,1,2, - 1,0,1,3,1,2,2,3,2,2, - 2,1,0,1,3,3,6,1,0,1, - 1,1,1,0,2,2,2,1,0,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,3, + 4,4,5,4,5,4,1,5,6,1, + 3,1,0,1,3,1,1,1,1,1, + 1,1,1,6,6,5,1,7,6,1, + 0,6,5,6,4,1,3,1,0,1, + 2,1,3,1,1,1,1,3,9,2, + 2,3,2,3,1,5,1,2,1,0, + 2,1,0,1,1,1,3,1,2,1, + 1,2,3,1,1,1,3,1,2,2, + 9,8,2,1,3,1,3,1,0,1, + 0,2,1,1,3,1,3,2,1,4, + 3,1,2,3,1,5,4,3,1,3, + 1,1,5,4,4,5,5,1,0,1, + 0,1,1,1,2,3,2,2,1,5, + 1,1,1,1,2,1,0,1,3,1, + 2,2,3,2,2,2,1,0,1,3, + 3,6,1,0,1,1,1,1,0,2, + 2,2,1,0,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, - 2,2,6,1,0,1,3,1,1,2, - 4,2,4,6,8,5,1,1,3,1, - 0,1,1,1,2,4,4,4,1,2, - 5,5,2,2,1,4,3,1,0,1, - 3,-237,0,0,0,0,-77,0,0,0, + 1,1,1,1,1,2,2,6,1,0, + 1,3,1,1,2,4,2,4,6,8, + 5,1,1,3,1,0,1,1,1,2, + 4,4,4,1,2,5,5,2,2,1, + 4,3,1,0,1,3,-221,0,0,0, + -2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-162,0,0, + 0,0,0,-110,0,0,0,-3,0,0, + 0,0,0,-446,-462,0,0,-117,0,0, + 0,-5,-33,0,0,0,0,0,-242,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-41,0,0, - 0,0,-2,0,0,0,0,-53,0,0, - 0,0,0,0,0,0,-3,0,0,-111, - 0,0,-405,0,0,0,0,-118,0,0, + 0,0,0,0,0,0,0,0,0,-52, + 0,0,0,0,0,-8,0,-293,0,0, + 0,0,0,-13,0,0,0,0,0,0, + 0,-127,0,0,0,-10,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,-10,0,0,0,0,0,0,-447,0, - 0,0,0,0,0,0,-5,-67,0,0, - -65,0,0,0,-23,-6,0,0,0,0, - 0,0,0,-357,0,0,0,0,0,-8, - -107,0,0,0,0,0,0,-121,0,0, - -13,0,0,0,0,0,0,0,0,-109, + 0,0,-14,0,0,0,0,0,-19,-21, + 0,-76,0,0,0,0,0,0,-57,0, 0,0,0,0,0,0,0,0,0,0, + 0,-53,0,0,0,0,0,0,-111,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -140,0,0,0,0,0,-244,0,-189,0, - 0,0,0,0,0,0,0,-12,-198,0, - 0,0,0,0,0,-250,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-50,0,0,0,0, + 0,0,0,0,0,0,0,0,-160,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,-85,0,0,0, - 0,0,0,0,-14,0,0,0,0,0, - 0,0,0,-119,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-210,0,0, - 0,0,-102,0,-253,0,0,0,0,-86, 0,0,0,0,0,0,0,0,0,0, + -12,0,-326,0,0,0,0,0,0,0, + 0,-364,0,0,-18,0,0,0,-72,0, + 0,0,0,-233,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -18,0,0,-19,0,-26,0,0,0,0, - 0,0,0,-94,-27,0,0,0,0,0, - 0,0,-269,0,0,0,0,0,0,-264, - 0,0,0,0,0,0,0,0,-43,0, - 0,-136,-317,0,0,0,0,-20,0,0, + 0,0,0,0,-22,0,0,0,0,-299, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-248,0,0,0,0,0,0, + 0,0,0,0,0,0,-60,0,-65,0, + -153,0,0,0,0,0,0,0,0,0, + 0,-256,0,0,-215,0,0,0,-206,0, + 0,0,0,0,0,0,-288,0,0,0, + 0,0,-238,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-404,0,0,0,-30,0,0,-95,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,0,0,0,0, - 0,0,0,0,0,0,0,-32,0,0, - 0,0,0,0,-92,0,0,0,-146,0, - 0,0,0,0,0,0,-9,-28,0,0, - 0,0,0,0,-195,0,0,0,0,-150, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-29,0,-54,0,0,0,0, + 0,0,0,-476,-9,0,0,0,-23,0, + 0,0,-25,0,0,0,-429,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-33,0,0,0,0, - -17,0,0,0,0,0,0,0,-93,0, - -46,-22,0,0,-24,0,0,0,0,-137, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-36,0,0,0,-26,0,0, + 0,0,0,0,0,0,0,-100,-261,0, + 0,0,-239,0,0,0,-39,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-98,0,0,-184,0, - -305,0,0,0,0,-181,0,0,0,0, - -141,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-41, + 0,0,0,0,0,0,0,-106,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,0,0,0,0,0, - 0,0,0,0,0,-31,0,-78,0,0, - 0,0,0,0,0,0,0,0,0,-217, + 0,0,0,0,-218,-43,0,0,0,0, + -175,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-64,0,-56, + 0,0,0,0,0,0,0,0,-61,0, + 0,-188,0,0,0,-113,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-38,0,0,-34,0, - 0,0,0,0,0,0,0,-45,0,0, - 0,0,-207,0,0,0,0,-218,0,0, - 0,0,-48,0,0,0,0,0,0,0, + 0,0,-104,0,0,0,0,0,-40,0, + -114,0,0,0,0,0,0,0,-118,-37, + 0,0,-241,-393,0,0,0,0,-271,0, + 0,0,-66,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,-410,0,0,-35,-468,-434,-58, - 0,0,0,0,0,-220,0,0,0,0, - -265,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,-439,0,0,0, - 0,-292,0,0,0,0,-59,0,0,0, + 0,0,0,0,0,-67,0,0,0,-272, 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,-105,-84,0, - -422,-359,0,0,0,0,-60,0,0,0, - 0,0,0,0,0,-293,0,0,0,0, + -70,0,0,0,0,0,-155,0,0,0, + -97,0,0,0,0,0,0,-71,0,0, + -44,-216,0,0,0,0,0,0,0,0, + 0,0,0,-116,-80,0,-45,-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,-250,0,0,0, + 0,0,0,0,-190,0,0,0,-81,0, 0,0,0,0,0,0,0,0,0,0, - 0,-36,0,-454,-246,0,0,0,-66,0, - 0,0,0,-294,0,0,0,0,-482,0, + 0,0,0,0,0,-161,0,0,0,0, + 0,0,0,-86,0,0,0,0,0,0, + 0,-109,0,0,0,-399,0,0,0,0, + 0,-328,0,0,0,0,0,0,0,0, + 0,0,0,0,-300,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-413,0,0,0,0, + 0,0,0,-186,0,-87,0,0,0,0, + 0,0,0,0,0,-301,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-50,0,0,0,0,0, - -75,0,-321,-52,0,0,-76,0,0,0, - 0,-295,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,-54,0,0, - 0,0,0,0,0,0,0,-57,0,-83, - -89,0,0,0,0,0,0,0,0,-296, - 0,0,0,0,-490,0,0,0,0,0, + 0,0,-47,0,-296,0,0,0,0,0, + 0,0,-459,-95,0,0,-302,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-192,0,0,-193,0, - -61,0,0,0,0,0,-63,0,-90,0, - -71,0,0,0,0,0,0,-297,0,0, + 0,0,0,0,0,0,0,-96,0,0, + 0,0,0,-59,0,-425,0,0,0,0, + 0,0,0,-101,-368,0,0,-303,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,-62,0,0,0,0,0, + 0,0,0,0,-129,-130,0,0,-304,0, + 0,0,-131,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,-69,0, - 0,0,0,0,-70,0,-435,0,0,0, - 0,0,-112,0,0,-298,0,0,0,0, - -469,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-68,0,0,0,0, + 0,0,0,0,0,-132,0,0,0,-305, + 0,0,0,-133,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-100,0,0,-97,0,0,0,0,0, - 0,0,0,0,-437,0,0,-451,0,0, - -124,0,0,-299,0,0,0,0,0,0, + 0,0,0,0,0,0,-74,0,-135,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,0,0,0,0,-460, - 0,0,-106,-138,-125,0,0,0,0,0, - 0,-300,0,0,0,0,0,0,0,0, + -306,0,0,0,-136,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-113,0,0, - -126,0,-127,0,0,0,0,0,-144,0, - -151,-187,-157,0,-129,0,0,0,0,-301, - 0,0,0,0,-148,0,0,0,0,0, + 0,-138,0,0,0,0,0,-75,0,-139, + 0,0,0,0,0,0,0,-140,0,0, + 0,-307,0,0,0,-141,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-120,0,0,-130,0, - 0,0,0,0,0,0,-183,-211,-142,-213, - -333,0,-149,0,0,0,0,-302,0,0, - 0,0,-219,0,0,0,0,0,0,0, + 0,0,-142,0,0,0,0,0,-77,0, + -143,0,0,0,0,0,0,0,-144,-145, + 0,0,-308,0,0,0,-146,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-147,0,0,0,0,0,-79, + 0,-148,0,0,0,0,0,0,0,-173, + -174,0,0,-309,0,0,0,-176,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-221,-226,-424,-234,-143,0, - 0,0,-235,0,0,-342,0,0,0,0, - -249,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-177,0,0,0,0,0, + -82,0,-191,0,0,0,0,0,0,0, + -192,-195,0,0,-310,0,0,0,-197,0, 0,0,0,0,0,0,0,0,0,0, - 0,-185,0,0,0,0,0,0,0,0, - 0,0,-236,-307,-336,-242,-152,0,-241,0, - -147,0,0,-420,0,0,0,0,-311,0, + 0,0,0,0,0,-198,0,0,0,0, + 0,-89,0,-199,0,0,0,0,0,0, + 0,-200,-203,0,0,-386,0,0,0,-204, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-244,0,0,0, + 0,0,-90,0,-245,0,0,0,0,0, + 0,0,-249,-259,0,0,-406,0,0,0, + -260,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-266,0,0, + 0,0,0,-151,0,-268,0,0,0,0, + 0,0,0,-278,-98,0,0,-481,0,0, + 0,-280,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-317,0, + 0,0,0,0,-152,0,-282,0,0,0, + 0,0,0,0,-283,-284,0,0,-279,0, + 0,0,-286,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-287, + 0,0,0,0,0,-156,0,-292,0,0, + 0,0,0,0,0,-367,0,0,0,-294, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-438,0,0,0,0,0, - -403,-318,-153,-329,-154,0,-261,0,-386,0, - 0,-455,0,0,0,0,-262,0,0,0, + 0,0,0,0,0,0,-297,0,0,0, + 0,0,0,0,-298,0,0,0,0,0, + 0,0,-410,0,0,0,-322,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-155,-330, - -411,-394,-103,0,-156,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,0,0,0, - 0,0,0,0,0,-315,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,0,0,0,0,0, - 0,-453,0,0,0,0,-421,-170,-171,0, - 0,0,0,0,0,-110,-172,-350,0,-383, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-173,0, - -338,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,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-251,0,0,0,-381,0,0,0,0, - 0,0,0,0,0,0,0,-306,-199,-486, - 0,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,-175,0, - 0,0,0,0,0,-304,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-208,0,0,0,0,0,0,0,-161, - 0,0,0,0,-388,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-291, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-414,0,0,-176,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,-209,0, - 0,-314,0,-290,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, - 0,0,-7,0,0,0,0,-343,0,0, - -163,0,0,0,0,-178,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-51,-398,0,-419,0,0,-179,0, - -180,-430,0,0,0,0,0,-286,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,-270,0,0,0,0, - 0,-188,-196,0,0,0,0,0,0,-320, - -436,0,0,0,0,0,0,-42,-200,-448, - 0,0,0,0,0,-201,-458,-202,-287,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,-1,0,0,-15, - -204,0,-280,0,0,0,0,-104,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-68,-426,0, - -205,0,0,0,0,-87,0,0,0,-385, - -353,-96,-361,0,0,-206,0,0,-344,0, - -345,-135,0,0,0,0,0,0,-16,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-351,0,0,0,0,0,0,0, - 0,0,0,-212,0,-214,-356,0,0,0, - 0,0,0,0,0,0,-134,0,0,0, - -74,-355,-233,0,0,0,0,0,0,0, - -133,0,-360,-480,0,0,0,0,-309,0, - -223,0,0,0,-393,0,-487,0,0,0, - -313,-49,0,0,0,-389,0,0,0,0, - 0,0,-47,0,-115,0,0,0,0,0, - 0,0,0,0,-225,0,0,0,0,0, - 0,0,0,0,0,0,0,-227,-228,-495, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-229,0,0,-231,-116,0, - 0,0,0,0,0,0,-232,0,0,0, - 0,0,0,0,-390,0,0,0,0,0, - 0,-238,-392,-240,0,0,0,0,0,0, - 0,0,0,0,-243,-245,0,-21,0,0, - 0,0,-252,0,-267,0,0,0,-268,0, - -308,0,0,0,0,0,0,0,0,-396, - 0,0,0,0,0,0,0,-310,0,0, - 0,0,0,0,0,0,0,-319,-322,0, - 0,0,0,0,0,-327,0,0,-461,0, - 0,0,-332,0,0,-335,0,0,0,-281, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-282,0,0,0,0,-339, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-283, - 0,0,0,0,-400,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-132,-387,0,0,0,0, - -340,-341,-128,-346,-401,0,0,-416,-145,0, - 0,0,-418,0,0,0,-347,-476,-446,-348, - 0,-391,0,-459,0,-349,0,0,0,-362, - -363,0,0,0,-222,0,-462,0,0,0, - -364,0,0,0,-247,0,-365,0,0,0, - 0,0,0,0,0,-463,0,0,-464,-366, - 0,0,0,0,0,0,0,0,-367,-368, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-369,-370,0,0,0,-371,0, - 0,0,0,0,-372,-373,0,0,0,0, - 0,0,0,0,0,0,0,-374,-375,0, - -376,-377,0,-378,0,0,0,0,0,0, - 0,0,-284,0,0,0,0,-379,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-285,0,0,0, - 0,-380,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -4,0,-395,-406,-407,0,-275,0,0,0, - 0,-465,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-431, - -478,-11,0,0,0,-194,0,-483,0,0, - -408,-409,0,-423,-425,-428,-472,-444,0,-484, - 0,0,-492,0,-494,0,0,0,0,0, - -445,0,-37,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-450,0,0,0,0,-457,0,0,0, - 0,0,-456,-39,0,0,0,-470,0,-499, - 0,0,0,0,0,0,0,0,0,0, - 0,-473,0,0,0,0,-474,-479,0,0, - 0,0,0,0,-114,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-481,0,0,-489,0,-493,0,0, - 0,0,0,0,0,-122,0,0,0,0, - 0,-399,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -230,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-402,0,0,-260,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-449,0,0,0,0,0,0,0, - -271,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-190,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-276,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-323,0,0,0,-331,0,0,0,0, - 0,-272,0,0,0,0,0,0,0,0, - 0,0,0,0,-466,0,0,0,0,0, - 0,0,-475,0,0,0,0,0,0,0, - 0,-427,-488,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -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,-40,0,0,0, - 0,0,-123,0,-429,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-433,0,0,0,0,0, - 0,0,0,-467,-485,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,-88,0, - 0,0,0,0,0,0,0,-477,0,-79, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-491,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,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -497,0,0,0,-432,0,0,0,0,0, - 0,-64,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-440, - 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,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-277,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -278,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-279,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,-162,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-164, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -165,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 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,0,0,0,0,0,0, - 0,-167,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-168,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-169,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-263,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-273,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-274,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-352,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-412,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-44, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-159,0,0,0,0,0,0, - 0,0,-442,0,0,0,0,0,0,0, - 0,0,0,0,0,-254,0,0,0,0, - 0,0,0,0,0,0,0,-443,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-197,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-266,0,0,0,0,0,0,0,0, - 0,0,0,-471,0,0,0,0,0,0, + 0,0,0,-15,0,0,0,0,0,0, + 0,-323,0,-463,0,0,0,0,0,-411, 0,0,0,-324,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-325,0, + -325,0,0,0,0,0,0,0,-334,0, + -337,0,0,0,0,0,-487,0,0,0, + -338,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-497,0,0, + 0,0,0,0,0,-339,0,-340,0,0, + 0,0,0,-240,0,0,0,-341,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-342,0,0,0,0,0, + 0,0,-343,0,-344,0,-7,0,0,0, + 0,0,-55,-460,-187,0,-91,0,0,0, + -415,0,-99,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-248,-169, + 0,-237,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -328,0,0,0,0,0,0,0,0,0, + 0,0,-168,0,0,0,0,-345,0,0, + 0,0,0,0,0,0,0,0,-185,-51, + -431,0,0,0,0,0,0,0,0,0, + 0,0,-330,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-253,-134,0,0, + 0,0,0,0,0,0,0,0,0,0, + -461,-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,-231,0, + 0,0,-346,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-254, + 0,0,0,0,0,0,-362,-347,0,-409, + 0,0,0,0,0,0,0,0,0,0, + 0,-232,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-207,0,0,0,0,0,-1,0, + 0,-178,0,-478,0,0,0,-348,0,0, + 0,0,0,0,0,-184,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-433, + -183,-349,-49,0,-88,0,0,0,0,-158, + 0,0,0,0,0,0,-350,-179,0,0, + 0,0,-351,0,-352,0,0,0,0,-332, + 0,-196,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-94,0, + 0,0,0,0,0,0,0,0,0,-408, + 0,0,0,0,0,0,0,0,0,0, + 0,-353,-358,0,0,0,0,0,0,0, + 0,0,0,0,-441,0,0,0,0,0, + -157,0,-257,0,-354,0,0,0,0,0, + 0,0,-24,0,0,0,-355,0,0,0, + 0,-164,-421,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-105,-167,0,0,0,0,0, + 0,-189,0,0,0,0,0,-181,0,0, + 0,-165,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-360,0,0,0,-412, + 0,0,0,0,0,0,0,0,0,-246, + -361,0,0,0,0,0,0,0,0,0, + -414,0,0,0,0,-27,0,-400,0,-363, + 0,0,0,0,0,0,-264,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,-99,0,0,0,0,0, - 0,0,0,0,0,0,-496,0,0,0, - -139,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-131,0,0,0, - 0,-498,0,0,0,0,0,0,0,-191, + -180,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-443,0,0,-319,0,-370,-373,0, + 0,-234,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -378,0,0,0,0,0,-475,0,0,0, + 0,0,0,0,-383,-121,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -395,-396,0,-235,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-397,0,0,0,0,-236, + 0,0,0,-258,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -398,0,0,0,0,-428,0,0,0,0, + 0,0,0,0,0,0,0,-16,0,0, + 0,0,0,0,0,0,0,0,0,-227, + 0,0,0,-423,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-495,0,0,0,-434,-193, + -456,-219,0,0,0,-220,0,0,0,0, + 0,-30,-318,-182,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-38,0, + 0,0,0,0,0,0,0,0,-437,-315, + 0,0,0,0,0,-438,-201,0,0,0, + 0,0,0,-243,-440,-447,0,0,0,0, + 0,0,-449,0,0,0,0,0,0,0, + 0,-453,0,-273,0,0,0,0,-291,-464, + -154,0,0,0,0,0,-159,0,0,0, + 0,-473,0,0,0,0,0,0,0,0, + 0,-262,0,0,0,0,0,0,-228,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,-274,-194,-6,0,0,0, + 0,0,0,0,0,0,0,0,0,-170, + 0,-474,-482,0,0,-265,0,-69,0,0, + 0,-85,0,0,0,0,0,0,0,-492, + 0,-505,0,-311,0,0,0,0,0,0, + 0,0,0,-4,0,-172,0,0,0,0, + 0,0,0,0,0,-493,0,0,0,0, + 0,0,0,-357,0,0,0,0,-494,0, + 0,0,0,0,0,0,0,-63,-442,-11, + 0,0,0,0,0,0,0,-267,0,0, + 0,0,-32,0,0,0,0,-295,0,0, + 0,0,0,0,0,-263,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-46,0,0,0,0,0,0, + 0,0,0,-281,-34,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-48, + 0,-214,-312,0,-432,0,0,0,0,0, + 0,0,0,0,0,0,0,-316,0,0, + 0,0,0,0,0,0,0,-217,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-163,0,-488,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,-171, + -335,0,0,0,-112,0,0,-210,0,0, + 0,0,0,0,0,0,0,-289,0,-290, + 0,0,0,0,0,-448,0,0,0,0, + 0,0,-320,0,0,0,0,0,0,0, + 0,0,0,-255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-313,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-229,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-230,0,0,0,-366,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-251,0,0,0, + 0,0,0,0,0,0,0,0,0,-276, + 0,0,0,0,0,0,0,0,0,0, + 0,-321,-402,0,0,0,-439,0,0,0, + 0,0,0,0,0,-327,-356,-359,0,0, + 0,0,-285,0,0,-369,0,-407,0,0, + -384,0,0,-331,0,0,0,0,0,0, + 0,0,-380,0,-483,0,0,0,0,0, + 0,0,0,0,0,0,0,-149,-387,0, + 0,0,-435,0,0,0,0,0,0,0, + -372,0,0,0,0,0,-451,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -374,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -392,0,-500,-381,0,-394,0,0,-84,0, + 0,0,-506,0,-388,0,0,0,0,0, + 0,0,0,0,-385,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-466,0, + 0,0,0,0,-436,0,0,-452,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-107,0,0,0,-471, + 0,0,-403,0,0,0,-491,0,0,0, + 0,-416,0,0,0,-418,0,0,0,0, + 0,-417,0,-444,0,0,0,0,0,0, + 0,0,0,0,-454,0,0,0,0,0, + -472,0,0,0,0,-503,0,0,0,0, + 0,0,0,0,0,0,-457,0,-405,-420, + 0,0,-128,0,0,0,0,0,0,0, + 0,0,0,-504,0,0,0,0,-450,0, + 0,0,0,0,0,0,0,0,-211,0, + 0,0,0,0,-424,0,0,0,-422,0, + 0,-458,0,0,0,0,0,-486,0,0, + 0,0,-426,-479,0,0,0,0,0,0, + 0,0,0,-465,0,0,0,0,0,-213, + 0,0,0,0,0,0,0,0,0,0, + 0,-445,0,0,0,0,0,-427,0,-430, + 0,0,0,0,0,-212,0,0,0,0, + 0,-467,0,0,0,-455,0,0,-498,0, + 0,0,0,0,-484,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -480,-501,0,-468,0,0,-247,0,0,0, + -469,-470,-485,0,0,0,0,0,0,0, + -489,0,0,0,-490,0,0,0,0,0, + 0,0,-269,0,0,0,0,-499,-502,0, + -496,0,0,0,0,-507,-508,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -509,0,0,-31,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-270,0,-391, + 0,0,0,0,0,0,0,0,0,-511, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-510,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-215,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-216, + 0,-35,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-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,-223,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-224,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-122,0,0,0, + 0,0,0,0,0,0,0,0,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,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, + 0,0,0,0,0,0,0,-125,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-126,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-205, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -225,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-226,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,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,0,0,0,-108,0,0,0,0,0, + 0,0,0,0,0,0,-119,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-17,0,0,0, + 0,0,0,0,0,0,0,0,-419,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-150,0,0,0,0,0,-58,0,0, + 0,-252,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,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-255, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-78,0,0,0,0,0,0,0, + -83,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-92,0,0,0,0,0, + 0,0,0,0,-93,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,-257,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-258,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-337,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-354,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-413,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-415,-29, - 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,-55,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-62,0, - 0,0,0,0,0,0,0,-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,0,0,0,-73,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-82, - 0,0,0,0,0,0,0,0,-91,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-117,0, + 0,0,0,-102,0,0,0,0,0,0, + 0,0,0,-166,0,0,0,0,0,0, + 0,-329,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-371,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -312,0,0,0,0,0,0,0,0,-334, + 0,-336,0,0,0,0,0,0,0,-365, + 0,0,0,-275,0,0,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,0,0,0,0,-358, + 0,-389,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-452,0,0,0,0,0,0,0,0, - -160,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-186,0,0,0,0, + 0,0,-401,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -259,0,0,0,0,0,0,0,0,0, + -404,0,0,0,0,0,0,0,0,0, + -137,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-326,0,0, 0,0,0,0,0,0,0,0,0,0, - -397,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-417,0,0,0,0, + 0,0,0,0,0,-377,0,0,0,0, + -202,0,0,0,0,0,0,-208,-375,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-376,0,0,0, + 0,0,0,0,0,0,0,0,0,-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,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -551,536 +537,521 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseAction { public final static char baseAction[] = { - 169,5,194,195,196,123,79,31,66,39, - 169,169,14,14,14,14,14,14,14,14, - 15,15,15,12,12,10,10,10,10,10, - 3,69,69,4,4,13,13,13,13,60, - 60,124,124,125,67,67,54,54,16,16, + 174,4,194,195,196,137,88,31,67,38, + 174,174,14,14,14,14,14,14,14,14, + 15,15,15,10,10,8,8,8,8,8, + 3,68,68,5,5,11,11,11,11,48, + 48,138,138,139,57,57,46,46,16,16, 16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,126,126, - 126,17,17,17,17,17,17,17,17,17, - 17,17,17,17,18,18,173,170,170,171, - 171,174,128,128,175,175,172,172,129,127, - 127,19,19,20,20,21,21,21,22,22, - 22,22,23,23,23,24,24,24,25,25, - 25,25,25,27,27,27,28,28,30,30, - 32,32,33,33,34,34,35,35,47,47, - 46,46,46,46,46,46,46,46,46,46, - 46,46,46,37,37,26,130,130,96,96, - 99,99,95,176,176,80,80,80,80,80, - 80,80,80,80,81,81,81,82,82,62, - 62,177,177,83,83,83,110,110,84,84, + 16,16,16,16,16,16,16,16,140,140, + 140,17,17,17,17,17,17,17,17,17, + 17,17,17,17,18,18,178,175,175,176, + 176,179,142,142,180,180,177,177,143,141, + 141,19,19,20,20,22,22,22,23,23, + 23,23,24,24,24,25,25,25,26,26, + 26,26,26,28,28,28,30,30,32,32, + 33,33,34,34,35,35,36,36,40,40, + 39,39,39,39,39,39,39,39,39,39, + 39,39,39,37,37,27,144,144,100,100, + 106,106,101,197,197,80,80,80,80,80, + 80,80,80,80,81,81,81,82,82,55, + 55,181,181,83,83,83,116,116,84,84, 84,84,85,85,85,85,85,86,70,70, - 70,70,70,70,70,56,56,56,56,56, - 98,98,106,106,53,38,38,38,38,38, - 48,48,92,92,92,92,137,137,132,132, - 132,132,133,133,133,134,134,134,135,135, - 135,136,136,136,93,93,93,93,93,94, - 94,94,90,45,45,45,45,45,6,7, - 7,7,7,7,7,7,7,7,7,7, - 89,89,89,111,111,111,111,111,41,41, - 41,91,42,42,139,139,138,138,112,112, - 113,50,50,49,74,74,75,75,77,78, - 76,52,58,51,140,140,59,57,73,73, - 141,141,131,131,114,114,88,179,179,179, - 180,180,181,182,182,145,145,68,68,68, - 146,146,142,142,101,100,100,36,36,183, - 183,61,61,55,55,102,102,147,147,103, - 103,103,104,104,143,143,143,149,149,148, - 148,97,97,97,97,63,63,150,178,178, - 116,116,116,116,184,184,29,29,40,44, - 44,44,44,105,105,186,186,43,43,43, - 152,153,153,153,153,153,153,153,153,188, - 188,185,185,187,187,154,154,154,154,155, - 156,108,107,107,189,189,157,157,118,118, - 117,117,117,197,197,11,190,159,158,158, - 119,115,115,160,160,161,162,162,8,8, - 9,164,164,164,164,164,164,164,164,164, - 164,164,164,164,164,164,164,164,164,164, - 164,164,164,164,164,164,164,164,164,164, - 164,164,164,164,164,164,164,164,164,164, - 164,164,164,64,65,65,165,165,120,120, - 121,121,121,121,121,121,1,2,166,166, - 163,163,122,122,122,71,72,87,151,167, - 167,109,109,191,191,191,168,168,144,144, - 192,192,1151,2695,816,2699,4820,1475,2743,258, - 26,1431,23,27,22,24,20,48,1998,103, - 72,73,105,1999,2039,2007,2129,2126,1711,2259, - 2219,270,2319,763,2296,2321,2333,140,1025,1562, - 816,1610,232,235,238,2688,814,49,156,141, - 1609,275,816,2793,28,816,25,4891,1619,1961, - 258,26,1431,23,27,22,24,20,48,1998, - 103,72,73,105,1999,2039,2007,2129,2126,908, - 2259,2219,1673,2319,2825,2296,2321,2333,140,2788, - 367,273,272,271,226,222,223,1009,838,370, - 141,1413,377,816,376,1342,75,291,1718,4669, - 292,2509,1581,241,494,28,816,25,4976,371, - 159,1547,26,1431,23,27,57,24,983,1533, - 270,242,2693,2283,1001,811,858,1012,1015,3785, - 1628,28,816,25,4891,180,2451,258,26,1431, - 23,27,2481,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2129,2126,3530,2259,2219,375, - 2319,135,2296,2321,2333,140,257,135,365,1259, - 254,256,255,2688,814,343,502,141,1554,1547, - 274,272,271,3063,2450,3391,1628,28,816,25, - 4891,503,2451,258,26,1431,23,27,2481,24, - 20,48,1998,103,72,73,105,1999,2039,2007, - 2129,2126,1332,2259,2219,489,2319,1478,2296,2321, - 2333,140,257,284,2379,997,254,256,255,2688, - 814,343,502,141,752,28,816,25,487,488, - 482,3391,26,1431,1720,27,325,503,1619,2099, - 2386,1541,498,410,3098,2721,28,816,25,4891, - 1268,1961,258,26,1431,23,27,22,24,20, - 48,1998,103,72,73,105,1999,2039,2007,2129, - 2126,1762,2259,2219,1618,2319,1138,2296,2321,2333, - 140,284,2379,2388,75,861,2496,291,1862,970, - 292,370,141,888,28,816,25,4850,498,1332, - 1961,26,1431,23,27,55,24,2252,2386,324, - 1723,373,1607,1908,28,816,25,4891,2122,2451, - 258,26,1431,23,27,2481,24,20,48,1998, - 103,72,73,105,1999,2039,2007,2129,2126,2832, - 2259,2219,2496,2319,135,2296,2321,2333,140,257, - 379,412,323,254,256,255,2688,814,343,502, - 141,374,2274,234,222,223,221,2283,3391,2865, - 28,816,25,4891,503,1961,258,26,1431,23, - 27,22,24,20,48,1998,103,72,73,105, - 1999,2039,2007,2129,2126,324,2259,2219,1679,2319, - 3530,2296,2321,2333,140,584,38,816,36,1551, - 237,222,223,37,1431,370,141,1141,330,59, - 996,509,3642,444,1279,1609,279,816,431,2288, - 3056,28,816,25,4891,499,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2129,2126,1681,2259,2219,358, - 2319,3704,2296,2321,2333,140,938,230,258,75, - 4553,907,2197,87,2603,2717,156,141,2082,1816, - 3017,28,816,25,4891,368,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2129,2126,1267,2259,2219,1267, - 2319,1267,2296,2321,2686,162,2677,28,816,25, - 4891,838,1961,258,26,1431,23,27,22,24, - 20,48,1998,103,72,73,105,1999,2039,2007, - 2129,2126,1049,2259,2219,1049,2319,1049,2296,2321, - 2333,140,481,231,222,223,75,1685,1475,326, - 2693,2478,139,141,240,222,223,243,222,223, - 3056,28,816,25,4891,697,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2129,2126,75,2259,2219,1278, - 2319,2561,2296,2321,2333,140,327,335,1699,334, - 335,329,335,1609,277,816,364,141,3056,28, - 816,25,4891,1336,1961,258,26,1431,23,27, - 22,24,20,48,1998,103,72,73,105,1999, - 2039,2007,2129,2126,416,2259,2219,214,2319,315, - 2296,2321,2333,140,1609,3048,816,330,2421,1970, - 1405,4678,276,1625,362,141,3130,28,816,25, - 4891,2269,1961,258,26,1431,23,27,22,24, - 20,48,1998,103,72,73,105,1999,2039,2007, - 2129,2126,1549,2259,2219,280,2319,1267,2296,2321, - 2686,162,3056,28,816,25,4891,1136,1961,258, - 26,1431,23,27,22,24,20,48,1998,103, - 72,73,105,1999,2039,2007,2129,2126,1620,2259, - 2219,1711,2319,1049,2296,2321,2333,140,410,1711, - 2082,2768,494,28,816,25,4976,1713,152,141, - 26,1431,23,27,56,24,3056,28,816,25, - 4891,163,1961,258,26,1431,23,27,22,24, - 20,48,1998,103,72,73,105,1999,2039,2007, - 2129,2126,1911,2259,2219,85,2319,99,2296,2321, - 2333,140,330,1815,1267,1734,4708,2739,335,1487, - 2283,367,151,141,3056,28,816,25,4891,2916, - 1961,258,26,1431,23,27,22,24,20,48, - 1998,103,72,73,105,1999,2039,2007,2129,2126, - 1049,2259,2219,3530,2319,75,2296,2321,2333,140, - 1046,849,2370,1734,75,380,412,1415,2283,4265, - 150,141,3056,28,816,25,4891,1418,1961,258, - 26,1431,23,27,22,24,20,48,1998,103, - 72,73,105,1999,2039,2007,2129,2126,75,2259, - 2219,3530,2319,783,2296,2321,2333,140,502,852, - 496,1480,357,1278,2848,335,406,407,149,141, - 3056,28,816,25,4891,2916,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2129,2126,410,2259,2219,410, - 2319,75,2296,2321,2333,140,641,75,2041,1481, - 357,330,660,2780,2831,4779,148,141,3056,28, - 816,25,4891,322,1961,258,26,1431,23,27, - 22,24,20,48,1998,103,72,73,105,1999, - 2039,2007,2129,2126,1964,2259,2219,518,2319,75, - 2296,2321,2333,140,2605,75,2596,2324,275,816, - 2649,2780,2831,1699,147,141,3056,28,816,25, - 4891,2421,1961,258,26,1431,23,27,22,24, - 20,48,1998,103,72,73,105,1999,2039,2007, - 2129,2126,75,2259,2219,1542,2319,1466,2296,2321, - 2333,140,307,382,412,1711,381,412,2324,3117, - 816,1543,146,141,3056,28,816,25,4891,349, - 1961,258,26,1431,23,27,22,24,20,48, - 1998,103,72,73,105,1999,2039,2007,2129,2126, - 75,2259,2219,518,2319,1469,2296,2321,2333,140, - 1609,3143,816,75,75,1878,285,2379,709,1335, - 145,141,3056,28,816,25,4891,512,1961,258, - 26,1431,23,27,22,24,20,48,1998,103, - 72,73,105,1999,2039,2007,2129,2126,1725,2259, - 2219,1951,2319,1953,2296,2321,2333,140,84,75, - 99,75,1832,330,716,1337,785,4921,144,141, - 3056,28,816,25,4891,838,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2129,2126,1725,2259,2219,1344, - 2319,393,2296,2321,2333,140,321,75,1699,1959, - 1699,330,1051,838,300,4961,143,141,3056,28, - 816,25,4891,838,1961,258,26,1431,23,27, - 22,24,20,48,1998,103,72,73,105,1999, - 2039,2007,2129,2126,369,2259,2219,306,2319,303, - 2296,2321,2333,140,351,75,1699,330,1699,1962, - 1383,4882,308,1699,142,141,3056,28,816,25, - 4891,135,1961,258,26,1431,23,27,22,24, - 20,48,1998,103,72,73,105,1999,2039,2007, - 2129,2126,1725,2259,2219,177,2319,193,2296,2321, - 2333,140,192,75,1794,75,1615,1014,3326,838, - 3162,2905,157,141,3056,28,816,25,4891,760, - 1961,258,26,1431,23,27,22,24,20,48, - 1998,103,72,73,105,1999,2039,2007,2129,2126, - 435,2259,2219,391,2319,1711,2296,2321,2333,140, - 443,75,1699,2121,1699,2123,1237,838,378,2270, - 137,141,3243,28,816,25,4891,838,1961,258, - 26,1431,23,27,22,24,20,48,1998,103, - 72,73,105,1999,2039,2007,2129,2126,4038,2259, - 2219,302,2319,196,2296,2321,2333,140,21,2124, - 1699,1549,1699,1012,3061,2125,278,511,187,141, - 3322,28,816,25,4891,510,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2129,2126,1869,2259,2219,194, - 2319,3030,2296,2321,2686,162,3322,28,816,25, - 4891,1347,1961,258,26,1431,23,27,22,24, - 20,48,1998,103,72,73,105,1999,2039,2007, - 2129,2126,965,2259,2219,440,2319,1767,2296,2321, - 2686,162,580,28,816,25,4976,1699,1736,1616, - 26,1431,23,27,495,24,1482,737,1805,276, - 3322,28,816,25,4891,2729,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2129,2126,395,2259,2219,154, - 2319,838,2296,2321,2686,162,3361,28,816,25, - 4891,289,1961,258,26,1431,23,27,22,24, - 20,48,1998,103,72,73,105,1999,2039,2007, - 2129,2126,1861,2259,2219,1153,2319,1194,2296,2321, - 2686,162,752,28,816,25,752,28,816,25, - 26,1431,35,27,26,1431,1997,27,2269,1725, - 3400,28,816,25,4891,408,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2129,2126,938,2259,2219,668, - 2319,1911,2296,2321,2686,162,3322,28,816,25, - 4891,410,1961,258,26,1431,23,27,22,24, - 20,48,1998,103,72,73,105,1999,2039,2007, - 2129,2126,1725,2259,2219,282,2319,2086,2296,2982, - 3283,28,816,25,4891,1475,1961,258,26,1431, - 23,27,22,24,20,48,1998,82,72,73, - 3322,28,816,25,4891,2630,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2129,2126,75,2259,2219,885, - 2319,609,2944,3322,28,816,25,4891,299,1961, - 258,26,1431,23,27,22,24,20,48,1998, - 103,72,73,105,1999,2039,2007,2129,2126,1725, - 2259,2219,1725,2941,3322,28,816,25,4891,910, - 1961,258,26,1431,23,27,22,24,20,48, - 1998,103,72,73,105,1999,2039,2007,2129,2126, - 3045,2259,2942,3439,377,816,376,4600,1340,228, - 258,3322,2695,816,2699,4891,1728,1961,258,26, - 1431,23,27,22,24,20,48,1998,103,72, - 73,80,270,322,1828,298,1803,2592,283,1733, - 29,1861,1699,232,235,238,2688,814,3322,28, - 816,25,4891,945,1961,258,26,1431,23,27, - 22,24,20,48,1998,103,72,73,105,1999, - 2039,2007,2129,2126,372,2926,1702,28,816,25, - 4850,3087,582,1717,26,1431,23,27,54,24, - 135,1740,273,272,271,226,222,223,328,2173, - 900,331,4740,2082,2592,2082,2194,1699,2196,3322, - 28,816,25,4891,241,1961,258,26,1431,23, - 27,22,24,20,48,1998,103,72,73,105, - 1999,2039,2007,2129,2938,1001,811,858,1012,1015, - 3785,3322,28,816,25,4891,3118,1961,258,26, - 1431,23,27,22,24,20,48,1998,103,72, - 73,105,1999,2039,2007,2129,2939,3980,3047,350, - 1193,1721,2283,3322,28,816,25,4891,1275,1961, - 258,26,1431,23,27,22,24,20,48,1998, - 103,72,73,105,1999,2039,2007,2899,4066,75, - 510,1199,58,2283,1334,220,1025,377,816,376, - 1409,135,75,135,4811,626,2198,2603,208,838, - 205,838,1950,198,206,207,209,970,91,64, - 199,200,617,2592,2603,29,220,210,201,202, - 203,204,294,295,296,297,626,4143,158,208, - 67,205,66,838,198,206,207,209,430,1397, - 1430,199,200,617,1835,3032,1338,838,210,201, - 202,203,204,294,295,296,297,1025,377,816, - 376,4121,75,1977,51,548,2283,970,970,431, - 4059,414,49,838,1699,4740,3125,330,83,1204, - 1011,2193,39,2363,1658,2027,436,135,2838,153, - 970,1622,674,377,816,376,838,1011,1819,220, - 1910,366,195,236,50,4198,311,2592,1829,626, - 2283,153,208,189,205,2199,553,198,206,207, - 209,46,160,310,199,200,617,2479,1836,1852, - 135,210,201,202,203,204,294,295,296,297, - 1148,291,47,220,292,1866,1184,415,1869,4220, - 1163,4080,1565,626,2283,2313,208,1840,205,3125, - 4143,198,206,207,209,838,94,1706,199,200, - 617,330,1873,838,2912,210,201,202,203,204, - 294,295,296,297,2322,1956,1614,220,896,1428, - 816,1200,4645,2200,548,1678,3362,626,431,1793, - 208,2718,205,3125,3425,198,206,207,209,95, - 838,2162,199,200,617,41,2363,46,2767,210, - 201,202,203,204,294,295,296,297,2908,2765, - 366,434,1397,1430,406,407,2171,291,47,75, - 292,3465,1184,1966,1349,4080,2195,3125,558,2313, - 3322,28,816,25,4891,2249,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2900,3322,28,816,25,4891, - 2075,1961,258,26,1431,23,27,22,24,20, - 48,1998,103,72,73,105,1999,2039,2007,2914, - 3322,28,816,25,4891,838,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 105,1999,2039,2007,2915,87,1025,377,816,376, - 522,2770,2780,937,2781,838,1575,2592,838,1413, - 377,816,376,892,377,816,376,2782,75,838, - 2783,153,3929,1445,838,416,2784,2603,253,258, - 499,1617,1766,220,178,1,1855,838,270,86, - 522,1737,270,1813,1418,408,208,1751,205,2592, - 1198,197,206,207,209,2574,838,167,257,838, - 1754,153,254,256,255,2688,814,344,65,1469, - 1538,4297,1766,220,178,181,165,166,168,169, - 170,171,172,1813,1757,1760,208,64,205,1397, - 63,197,206,207,209,1466,1715,167,340,272, - 271,179,3082,272,271,1733,1709,1675,943,946, - 3046,1870,1969,2875,1973,182,165,166,168,169, - 170,171,172,3322,28,816,25,4891,2766,1961, - 258,26,1431,23,27,22,24,20,48,1998, - 103,72,73,105,1999,2039,2919,3322,28,816, - 25,4891,2073,1961,258,26,1431,23,27,22, - 24,20,48,1998,103,72,73,105,1999,2039, - 2925,4037,2865,2072,2190,2248,2283,3322,28,816, - 25,4891,838,1961,258,26,1431,23,27,22, - 24,20,48,1998,103,72,73,105,1999,2860, - 2077,838,4011,427,428,970,1409,2283,838,220, - 4811,2271,2321,62,2906,2785,2786,666,2371,626, - 838,2592,208,838,205,838,153,198,206,207, - 209,2372,3568,4275,199,200,617,160,2283,53, - 220,505,201,202,203,204,294,295,296,297, - 626,52,2272,208,3631,205,98,2127,198,206, - 207,209,970,2671,4295,199,200,617,2789,2283, - 1205,220,211,201,202,203,204,294,295,296, - 297,626,2418,153,208,3047,205,2422,2202,198, - 206,207,209,970,160,4143,199,200,617,2387, - 2283,516,220,309,201,202,203,204,294,295, - 296,297,626,2471,153,208,2468,205,2521,5298, - 198,206,207,209,1829,160,4305,199,200,617, - 5298,2283,1607,220,506,201,202,203,204,294, - 295,296,297,626,5298,93,208,5298,205,5298, - 5298,198,206,207,209,5298,3031,5298,199,200, - 617,5298,5298,414,220,211,201,202,203,204, - 294,295,296,297,626,5298,5298,208,5298,205, - 5298,173,198,206,207,209,522,3053,5298,199, - 200,617,5298,5298,5298,2718,483,201,202,203, - 204,294,295,296,297,5298,3610,153,5298,1950, - 2592,2603,253,258,970,5298,5298,5298,1766,220, - 178,5298,5298,1413,377,816,376,5298,5298,1813, - 5298,1950,208,5298,205,158,970,197,206,207, - 209,509,257,167,5298,5298,254,256,255,2688, - 814,344,270,5298,1676,5298,5298,158,5298,2603, - 5298,2736,165,166,168,169,170,171,172,3322, - 28,816,25,4891,4297,1961,258,26,1431,23, - 27,22,24,20,48,1998,103,72,73,105, - 1999,2861,259,392,513,5298,2913,522,5298,2371, - 5298,2603,2277,5298,5298,2533,5298,970,514,1709, - 1675,5298,70,272,271,1950,5298,5298,153,5298, - 970,5298,5298,1025,377,816,376,2573,153,1766, - 220,178,345,1413,377,816,376,522,5298,2493, - 1813,158,2579,208,5298,205,5298,5298,197,206, - 207,209,417,5298,167,5298,5298,5298,153,2701, - 5298,3685,270,5298,5298,2592,5298,253,258,1766, - 220,178,174,165,166,168,169,170,171,172, - 1813,5298,5298,208,1011,205,5298,983,197,206, - 207,209,2283,1671,167,431,5298,257,2283,5298, - 522,254,256,255,2688,814,344,5298,403,5298, - 310,3038,185,165,166,168,169,170,171,172, - 5298,153,68,272,271,3530,5298,1148,5298,4297, - 5298,3530,1766,220,178,517,5298,1163,5298,5298, - 522,1814,5298,1813,1950,1950,208,5298,205,970, - 970,197,206,207,209,5298,5298,167,5298,5298, - 5298,153,1471,342,1709,1675,5298,2603,5298,5298, - 158,158,1766,220,178,3093,165,166,168,169, - 170,171,172,1813,489,5298,208,5298,205,976, - 489,197,206,207,209,253,258,167,603,5298, - 839,5298,5298,522,2592,2603,5298,486,488,5298, - 5298,5298,5298,486,488,188,165,166,168,169, - 170,171,172,5298,153,257,5298,5298,5298,254, - 256,255,2688,814,343,1766,220,178,689,5298, - 3050,3055,5298,522,4281,5298,1813,5298,5298,208, - 1281,205,1381,5298,197,206,207,209,2546,5298, - 167,2327,5298,5298,153,5298,970,2701,4297,5298, - 5298,5298,5298,5298,5298,1766,220,178,184,165, - 166,168,169,170,171,172,1813,153,1663,208, - 5298,205,5298,5298,197,206,207,209,2958,5298, - 167,775,347,1709,1675,2377,522,5298,5298,5298, - 970,5298,674,377,816,376,404,5298,191,165, - 166,168,169,170,171,172,5298,153,5298,5298, - 2427,153,5298,5298,5298,970,5298,5298,1766,220, - 178,46,2854,2477,5298,5298,5298,1661,970,1813, - 5298,5298,208,440,205,5298,153,197,206,207, - 209,291,47,167,292,5298,1184,2867,5298,153, - 5298,5298,2006,5298,5298,5298,5298,5298,5298,425, - 2886,190,165,166,168,169,170,171,172,3322, - 28,816,25,4891,5298,1961,258,26,1431,23, - 27,22,24,20,48,1998,103,72,73,105, - 2871,3322,28,816,25,4891,5298,1961,258,26, - 1431,23,27,22,24,20,48,1998,103,72, - 73,105,2877,3322,28,816,25,4891,5298,1961, - 258,26,1431,23,27,22,24,20,48,1998, - 103,72,73,105,2890,3461,377,816,376,4600, - 5298,229,258,3322,28,816,25,4891,5298,1961, - 258,26,1431,23,27,22,24,20,48,1998, - 103,72,73,81,270,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,233,236,239,2688,814, - 3322,28,816,25,4891,5298,1961,258,26,1431, - 23,27,22,24,20,48,1998,103,72,73, - 79,3322,28,816,25,4891,5298,1961,258,26, - 1431,23,27,22,24,20,48,1998,103,72, - 73,78,5298,5298,273,272,271,227,222,223, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,3322,28,816,25,4891,242,1961,258,26, - 1431,23,27,22,24,20,48,1998,103,72, - 73,77,3322,28,816,25,4891,5298,1961,258, - 26,1431,23,27,22,24,20,48,1998,103, - 72,73,76,3322,28,816,25,4891,5298,1961, - 258,26,1431,23,27,22,24,20,48,1998, - 103,72,73,75,3322,28,816,25,4891,5298, - 1961,258,26,1431,23,27,22,24,20,48, - 1998,103,72,73,74,3169,28,816,25,4891, - 5298,1961,258,26,1431,23,27,22,24,20, - 48,1998,103,72,73,101,3322,28,816,25, - 4891,5298,1961,258,26,1431,23,27,22,24, - 20,48,1998,103,72,73,107,3322,28,816, - 25,4891,5298,1961,258,26,1431,23,27,22, - 24,20,48,1998,103,72,73,106,3322,28, - 816,25,4891,5298,1961,258,26,1431,23,27, - 22,24,20,48,1998,103,72,73,104,3322, - 28,816,25,4891,5298,1961,258,26,1431,23, - 27,22,24,20,48,1998,103,72,73,102, - 150,28,816,25,4749,5298,5298,5298,26,1431, - 23,27,339,24,1214,5298,5298,5298,5298,970, - 253,258,5298,2527,5298,5298,5298,5298,970,5298, - 5298,5298,5298,5298,5298,5298,1283,5298,5298,5298, - 153,970,253,258,5298,5298,5298,5298,2577,153, - 257,1877,5298,970,254,256,255,2688,814,343, - 2889,5298,153,674,377,816,376,5298,5298,3391, - 5298,5298,257,2501,153,1867,254,256,255,2688, - 814,343,1352,5298,5298,3012,5298,970,253,258, - 5298,3391,46,5298,2627,5298,5298,2499,5298,970, - 5298,5298,5298,5298,1421,5298,5298,5298,153,970, - 253,258,291,47,5298,292,5298,43,257,1877, - 153,5298,254,256,255,2688,814,343,5298,1490, - 153,2587,5298,5298,970,253,258,3391,5298,5298, - 257,186,5298,2547,254,256,255,2688,814,343, - 5298,1559,5298,5298,5298,153,970,253,258,2852, - 5298,5298,5298,5298,5298,257,186,5298,5298,254, - 256,255,2688,814,343,5298,5298,153,5298,316, - 790,318,747,320,2852,1684,5298,257,186,4906, - 2283,254,256,255,2688,814,343,1413,377,816, - 376,3767,5298,5298,5298,2592,2852,253,258,5298, - 5298,5298,5298,5298,2665,5298,5298,870,5298,5298, - 5298,2592,3591,220,5298,5298,270,5298,253,258, - 3958,5298,5298,3284,4906,2283,396,257,5298,2673, - 5298,254,256,255,2688,814,344,5298,1672,397, - 617,5298,5298,517,5298,5298,5298,5298,257,5298, - 5298,2710,254,256,255,2688,814,343,220,2875, - 5298,5298,5298,3889,5298,5298,5298,3391,3284,253, - 258,396,5298,520,5298,4297,69,272,271,5298, - 5298,5298,5298,1672,397,617,5298,5298,5298,5298, - 3889,5298,2362,5298,5298,5298,253,258,5298,257, - 5298,5298,5298,254,256,255,2688,814,343,347, - 1709,1675,5298,5298,5298,5298,5298,5298,3391,5298, - 5298,5298,5298,5298,493,5298,257,398,399,5298, - 254,256,255,2688,814,343,5298,2362,5298,5298, - 3889,5298,5298,5298,5298,3391,253,258,5298,426, - 428,491,5298,5298,345,5298,5298,5298,5298,5298, - 1802,5298,5298,4310,5298,5298,5298,5298,5298,5298, - 5298,3889,398,400,5298,5298,257,253,258,5298, - 254,256,255,2688,814,343,5298,5298,5298,5298, - 5298,5298,5298,3889,5298,3391,5298,5298,5298,253, - 258,2834,5298,5298,3100,5298,5298,257,5298,5298, - 5298,254,256,255,2688,814,343,3889,5298,5298, - 5298,5298,5298,253,258,5298,3391,5298,5298,257, - 5298,5298,2847,254,256,255,2688,814,343,3828, - 5298,5298,5298,5298,5298,253,258,5298,3391,5298, - 5298,5298,5298,257,2850,5298,5298,254,256,255, - 2688,814,343,3847,5298,5298,5298,5298,5298,253, - 258,5298,3391,5298,5298,257,5298,5298,2856,254, - 256,255,2688,814,343,3889,5298,5298,5298,5298, - 5298,253,258,5298,3236,5298,5298,5298,5298,257, - 5298,5298,5298,254,256,255,2688,814,343,3786, - 672,377,816,376,2380,253,258,5298,4599,5298, - 5298,257,5298,5298,5298,254,256,255,2688,814, - 343,3889,5298,5298,5298,5298,5298,253,258,46, - 3391,5298,5298,5298,5298,257,2849,5298,5298,254, - 256,255,2688,814,344,1032,377,816,376,291, - 47,5298,292,5298,1184,5298,5298,257,5298,5298, - 1339,254,256,255,2688,814,343,621,5298,672, - 377,816,376,5298,46,5298,3391,5298,1473,377, - 816,376,521,5298,5298,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,291,47,5298,292,46,1184, - 5298,5298,5298,5298,5298,44,5298,46,1032,377, - 816,376,1913,5298,5298,5298,5298,5298,291,47, - 2835,292,5298,1184,2216,5298,5298,291,47,44, - 292,5298,1184,5298,5298,5298,1232,46,44,5298, - 672,377,816,376,5298,578,5298,5298,5298,672, - 377,816,376,5298,5298,5298,5298,291,47,5298, - 292,5298,1184,5298,5298,5298,5298,5298,44,46, - 5298,5298,5298,90,5298,764,5298,5298,46,1611, - 377,816,376,5298,5298,5298,5298,5298,5298,291, - 47,5298,292,5298,1184,5298,5298,5298,291,47, - 44,292,5298,1184,5298,5298,5298,2557,46,949, - 5298,672,377,816,376,5298,2839,5298,5298,5298, - 1027,377,816,376,5298,5298,5298,5298,291,47, - 5298,292,5298,1184,5298,5298,5298,5298,5298,44, - 46,5298,5298,5298,5298,5298,778,5298,5298,46, - 1032,377,816,376,5298,5298,5298,5298,5298,5298, - 291,47,5298,292,5298,1184,5298,5298,5298,291, - 47,44,292,5298,1184,5298,5298,5298,2826,46, - 2314,5298,672,377,816,376,5298,621,5298,5298, - 5298,886,377,816,376,5298,5298,5298,5298,291, - 47,5298,292,5298,1184,5298,674,377,816,376, - 2316,46,5298,5298,5298,5298,5298,2843,5298,5298, - 46,674,377,816,376,5298,5298,5298,5298,5298, - 5298,291,47,5298,292,46,1184,5298,5298,5298, - 291,47,44,292,5298,1184,5298,5298,1088,3353, - 46,1211,5298,522,5298,291,47,5298,292,5298, - 1184,674,377,816,376,5298,2098,5298,5298,5298, - 291,47,5298,292,153,1184,674,377,816,376, - 5298,2008,5298,5298,5298,160,220,5298,5298,5298, - 46,5298,5298,5298,5298,5298,1813,5298,5298,5298, - 5298,2585,5298,5298,5298,46,5298,5298,5298,5298, - 291,47,5298,292,5298,1184,5298,5298,5298,5298, - 5298,1199,5298,5298,5298,291,47,5298,292,5298, - 1184,5298,5298,5298,5298,5298,1211,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,1912,5298,0, - 485,3001,0,1,221,0,825,34,0,1, - 5626,0,1,1375,0,1,5331,333,0,1, - 333,0,1,34,333,0,1247,34,0,1287, - 34,0,30,281,252,0,30,497,281,252, - 0,1247,45,0,30,293,0,1,527,0, - 1,1098,0,34,5735,0,1479,34,0,5331, - 333,0,34,333,0,5331,332,0,34,332, - 0,30,293,301,0,1,5331,0,1,353, - 2833,0,1,34,0,1624,317,0,438,1669, - 0,30,497,0,1479,33,0,1,5331,221, - 0,1,34,221,0,5328,32,0,40,5329, - 0,40,32,0,353,2833,0,1,221,2615, - 0,5307,221,0,5626,429,0,1375,429,0, - 442,884,0,441,1781,0,44,32,0,1, - 5567,0,1,5566,0,1,5565,0,1,5564, - 0,1,5563,0,1,5562,0,1,5561,0, - 1,5560,0,1,5559,0,1,5558,0,1, - 5557,0,2775,123,0,5307,394,0,1,5681, - 0,3239,253,0,22,504,0,293,301,0, - 154,173,0,2562,88,0,377,28,0,376, - 25,0,34,2486,0,5329,42,0,32,42, - 0,221,161,0,228,3239,0,2775,125,0, - 2775,124,0,1,89,0,13,409,0,5328, - 5,32,0,5795,31,0,183,3528,0,5626, - 92,0,1375,92,0,277,3345,0 + 70,70,70,70,70,50,50,50,50,50, + 105,105,109,109,47,21,21,21,21,21, + 43,43,92,92,92,92,92,151,151,146, + 146,146,146,147,147,147,148,148,148,149, + 149,149,150,150,150,93,93,93,93,93, + 94,94,94,90,12,13,13,13,13,13, + 13,13,13,13,13,13,89,89,89,120, + 120,120,120,120,118,118,118,91,119,119, + 153,153,152,152,122,122,123,42,42,41, + 74,74,75,75,77,78,76,44,52,45, + 154,154,53,51,73,73,155,155,145,145, + 124,124,69,69,61,61,61,62,62,63, + 64,64,79,79,58,58,58,102,102,198, + 198,104,103,103,56,56,65,65,54,54, + 49,107,107,107,96,96,96,97,98,98, + 98,99,99,110,110,110,112,112,111,111, + 199,199,95,95,183,183,183,183,183,126, + 59,59,156,182,182,128,128,128,128,184, + 184,29,29,117,129,129,129,129,108,108, + 186,186,121,121,121,158,159,159,159,159, + 159,159,159,159,188,188,185,185,187,187, + 160,160,160,160,161,162,114,113,113,189, + 189,163,163,131,131,130,130,130,200,200, + 9,190,165,164,164,132,127,127,166,166, + 167,168,168,6,6,7,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,170,170,170,170, + 170,170,170,170,170,170,170,170,60,66, + 66,171,171,133,133,134,134,134,134,134, + 134,1,2,172,172,169,169,135,135,135, + 71,72,87,157,173,173,115,115,191,191, + 191,136,136,125,125,192,192,1445,1813,650, + 1820,1557,4612,26,649,23,27,22,24,2079, + 254,20,48,1615,103,72,73,105,1150,1640, + 1632,1656,1648,1681,1438,1673,266,1690,921,1689, + 1714,1697,1763,140,3438,3480,156,141,1668,28, + 650,25,1173,1515,26,649,35,27,4471,3203, + 28,650,25,224,3633,26,649,23,27,22, + 24,1599,254,20,48,1615,103,72,73,105, + 1170,1640,1632,1656,1648,1681,1372,1673,3046,1690, + 2986,1689,1714,2517,1038,296,269,268,267,227, + 222,223,3203,1813,650,1820,2012,3633,26,649, + 23,27,22,24,1599,254,20,48,1615,103, + 72,73,80,1373,233,236,239,242,3834,1440, + 1489,29,62,1884,650,1925,934,324,332,936, + 28,650,25,3411,4398,26,649,23,27,336, + 24,2005,1650,2606,2620,2862,3083,3125,3932,2030, + 28,650,25,2157,3633,26,649,23,27,1779, + 24,1599,254,20,48,1615,103,72,73,105, + 340,1640,1632,1656,1648,1681,85,1673,99,1690, + 214,1689,1714,1697,1763,140,3046,328,507,141, + 313,988,315,953,317,411,412,1143,2442,2822, + 271,650,436,508,2030,28,650,25,2157,3633, + 26,649,23,27,1779,24,1599,254,20,48, + 1615,103,72,73,105,340,1640,1632,1656,1648, + 1681,1538,1673,2685,1690,3114,1689,1714,1697,1763, + 140,372,919,507,141,148,38,650,36,880, + 1267,37,649,2442,3203,28,650,25,508,3633, + 26,649,23,27,22,24,1599,254,20,48, + 1615,103,72,73,105,1596,1640,1632,1656,2313, + 2510,28,650,25,503,3633,26,649,23,27, + 22,24,1599,254,20,48,1615,103,72,73, + 105,1346,1640,1632,1656,1648,1681,1710,1673,1710, + 1690,2860,1689,1714,1697,1763,140,568,1772,375, + 141,1796,2822,275,650,1660,28,650,25,1709, + 4562,26,649,23,27,55,24,1742,318,503, + 486,1122,370,3203,28,650,25,378,3633,26, + 649,23,27,22,24,1599,254,20,48,1615, + 103,72,73,105,153,1640,1632,1656,1648,1681, + 2608,2433,1386,1804,3494,195,1796,2582,28,650, + 25,2157,3633,26,649,23,27,1779,24,1599, + 254,20,48,1615,103,72,73,105,340,1640, + 1632,1656,1648,1681,1952,1673,1100,1690,379,1689, + 1714,1697,1763,140,2816,1576,507,141,1059,62, + 382,650,381,70,384,417,2442,2626,28,650, + 25,508,3633,26,649,23,27,22,24,1599, + 254,20,48,1615,103,72,73,105,29,1640, + 1632,1656,1648,1681,861,1673,1030,1690,500,1689, + 1714,1697,1763,140,3439,59,375,141,1083,2822, + 273,650,2864,3203,28,650,25,2551,3633,26, + 649,23,27,22,24,1599,254,20,48,1615, + 103,72,73,105,376,1640,1632,1656,1648,1681, + 2690,1673,320,1690,2863,1689,2435,87,2890,28, + 650,25,504,3633,26,649,23,27,22,24, + 1599,254,20,48,1615,103,72,73,105,2784, + 1640,1632,1656,1648,1681,180,1673,321,1690,319, + 1689,1714,1697,1763,140,2098,2624,375,141,1122, + 523,2987,28,650,25,380,3633,26,649,23, + 27,22,24,1599,254,20,48,1615,103,72, + 73,105,153,1640,1632,1656,1648,1681,2027,1673, + 235,1690,2440,1689,1714,1697,1763,140,311,2778, + 369,141,2987,28,650,25,2027,3633,26,649, + 23,27,22,24,1599,254,20,48,1615,103, + 72,73,105,3046,1640,1632,1656,1648,1681,45, + 1673,2027,1690,2415,1689,1714,1697,1763,140,2027, + 412,156,141,2144,498,3499,373,1122,3155,2987, + 28,650,25,1307,3633,26,649,23,27,22, + 24,1599,254,20,48,1615,103,72,73,105, + 153,1640,1632,1656,1648,1681,487,1673,372,1690, + 2505,1689,1714,1697,1763,140,2025,368,369,141, + 2987,28,650,25,449,3633,26,649,23,27, + 22,24,1599,254,20,48,1615,103,72,73, + 105,670,1640,1632,1656,1648,1681,2860,1673,448, + 1690,2572,1689,1714,1697,1763,140,322,871,369, + 141,412,2700,28,650,25,4485,4562,26,649, + 23,27,54,24,1584,1522,2005,412,2948,28, + 650,25,4495,3633,26,649,23,27,22,24, + 1599,254,20,48,1615,103,72,73,105,445, + 1640,1632,1656,1648,1681,367,1673,2834,1690,1394, + 1689,1714,1697,1722,162,2466,28,650,25,3047, + 3633,26,649,23,27,22,24,1599,254,20, + 48,1615,103,72,73,105,1650,1640,1632,1656, + 1648,1681,2897,1673,1662,1690,365,1689,1714,1697, + 1763,140,1553,90,139,141,2822,2889,650,1730, + 385,417,413,28,650,25,323,4683,26,649, + 23,27,57,24,303,2987,28,650,25,1159, + 3633,26,649,23,27,22,24,1599,254,20, + 48,1615,103,72,73,105,2234,1640,1632,1656, + 1648,1681,58,1673,2825,1690,1710,1689,1714,1697, + 1763,140,39,1812,152,141,2987,28,650,25, + 568,3633,26,649,23,27,22,24,1599,254, + 20,48,1615,103,72,73,105,1326,1640,1632, + 1656,1648,1681,45,1673,2827,1690,2459,1689,1714, + 1697,1763,140,3361,1104,151,141,2987,28,650, + 25,1267,3633,26,649,23,27,22,24,1599, + 254,20,48,1615,103,72,73,105,1951,1640, + 1632,1656,1648,1681,45,1673,2825,1690,554,1689, + 1714,1697,1763,140,407,2944,150,141,2987,28, + 650,25,1439,3633,26,649,23,27,22,24, + 1599,254,20,48,1615,103,72,73,105,514, + 1640,1632,1656,1648,1681,45,1673,3256,1690,679, + 1689,1714,1697,1763,140,1488,2781,149,141,2987, + 28,650,25,2872,3633,26,649,23,27,22, + 24,1599,254,20,48,1615,103,72,73,105, + 515,1640,1632,1656,1648,1681,45,1673,515,1690, + 734,1689,1714,1697,1763,140,3043,1435,148,141, + 2987,28,650,25,3044,3633,26,649,23,27, + 22,24,1599,254,20,48,1615,103,72,73, + 105,514,1640,1632,1656,1648,1681,45,1673,1681, + 1690,3438,1689,1714,1697,1763,140,281,1854,147, + 141,2987,28,650,25,2687,3633,26,649,23, + 27,22,24,1599,254,20,48,1615,103,72, + 73,105,837,1640,1632,1656,1648,1681,45,1673, + 1832,1690,4392,1689,1714,1697,1763,140,234,1443, + 146,141,2987,28,650,25,1670,3633,26,649, + 23,27,22,24,1599,254,20,48,1615,103, + 72,73,105,1922,1640,1632,1656,1648,1681,45, + 1673,2737,1690,841,1689,1714,1697,1763,140,2087, + 2672,145,141,2987,28,650,25,2577,3633,26, + 649,23,27,22,24,1599,254,20,48,1615, + 103,72,73,105,2732,1640,1632,1656,1648,1681, + 1301,1673,1575,1690,1237,1689,1714,1697,1763,140, + 875,3038,144,141,2987,28,650,25,3039,3633, + 26,649,23,27,22,24,1599,254,20,48, + 1615,103,72,73,105,3040,1640,1632,1656,1648, + 1681,45,1673,1437,1690,2501,1689,1714,1697,1763, + 140,2856,1167,143,141,2987,28,650,25,1238, + 3633,26,649,23,27,22,24,1599,254,20, + 48,1615,103,72,73,105,3045,1640,1632,1656, + 1648,1681,45,1673,1284,1690,2522,1689,1714,1697, + 1763,140,2705,1512,142,141,2987,28,650,25, + 1627,3633,26,649,23,27,22,24,1599,254, + 20,48,1615,103,72,73,105,2714,1640,1632, + 1656,1648,1681,45,1673,3048,1690,2562,1689,1714, + 1697,1763,140,3041,3050,157,141,2987,28,650, + 25,3053,3633,26,649,23,27,22,24,1599, + 254,20,48,1615,103,72,73,105,3325,1640, + 1632,1656,1648,1681,45,1673,1303,1690,2267,1689, + 1714,1697,1763,140,3042,2572,137,141,3124,28, + 650,25,3052,3633,26,649,23,27,22,24, + 1599,254,20,48,1615,103,72,73,105,2027, + 1640,1632,1656,1648,1681,45,1673,1876,1690,2330, + 1689,1714,1697,1763,140,2186,2230,187,141,3203, + 28,650,25,2276,3633,26,649,23,27,22, + 24,1599,254,20,48,1615,103,72,73,105, + 2858,1640,1632,1656,1648,1681,45,1673,2932,1690, + 2503,1689,1714,1697,1722,162,3203,28,650,25, + 3383,3633,26,649,23,27,22,24,1599,254, + 20,48,1615,103,72,73,105,2322,1640,1632, + 1656,1648,1681,1731,1673,3322,1690,4304,1689,1714, + 1697,1722,162,3203,28,650,25,1288,3633,26, + 649,23,27,22,24,1599,254,20,48,1615, + 103,72,73,105,1033,1640,1632,1656,1648,1681, + 2669,1673,3051,1690,3480,1689,1714,1697,1722,162, + 3242,28,650,25,3355,3633,26,649,23,27, + 22,24,1599,254,20,48,1615,103,72,73, + 105,3381,1640,1632,1656,1648,1681,285,1673,2414, + 1690,2726,1689,1714,1697,1722,162,3281,28,650, + 25,2730,3633,26,649,23,27,22,24,1599, + 254,20,48,1615,103,72,73,105,2816,1640, + 1632,1656,1648,1681,413,1673,2738,1690,1677,1689, + 1714,1697,1722,162,3203,28,650,25,2002,3633, + 26,649,23,27,22,24,1599,254,20,48, + 1615,103,72,73,105,1999,1640,1632,1656,1648, + 1681,415,1673,2001,1690,3424,2482,3320,382,650, + 381,716,2879,756,3046,1710,436,412,3566,229, + 254,2572,4554,1587,28,650,25,2558,2513,26, + 649,23,27,336,24,84,266,99,3616,3324, + 1150,371,3203,28,650,25,374,3633,26,649, + 23,27,22,24,1599,254,20,48,1615,103, + 72,73,105,224,1640,1632,1656,1648,1681,517, + 1673,327,2427,1668,28,650,25,398,3490,26, + 649,3078,27,352,312,988,315,953,317,2857, + 757,3436,1755,1122,523,4544,269,268,267,227, + 222,223,348,413,28,650,25,304,4683,26, + 649,23,27,56,24,659,158,2860,412,341, + 2382,2428,346,3700,233,236,239,242,3834,2913, + 1738,3046,3203,28,650,25,934,3633,26,649, + 23,27,22,24,1599,254,20,48,1615,103, + 72,73,81,2606,2620,2862,3083,3125,3932,3203, + 28,650,25,406,3633,26,649,23,27,22, + 24,1599,254,20,48,1615,103,72,73,105, + 2860,1640,1632,1656,1648,2155,516,1950,578,3088, + 1927,28,650,25,2163,2513,26,649,23,27, + 336,24,3203,28,650,25,362,3633,26,649, + 23,27,22,24,1599,254,20,48,1615,103, + 72,73,105,1786,1640,1632,1656,1648,2228,3454, + 387,417,586,2157,671,28,650,25,819,4683, + 26,649,23,27,500,24,62,382,650,381, + 220,312,988,315,953,317,435,1484,1492,564, + 2190,1236,2751,1649,1122,2791,4544,2157,2044,2157, + 2712,2930,2987,276,208,441,205,2936,3049,198, + 206,207,209,2710,2173,2935,220,153,199,200, + 2027,568,1947,386,417,572,3153,3732,2591,210, + 201,202,203,204,290,291,292,293,2987,3499, + 208,350,205,2157,716,198,206,207,209,436, + 1668,28,650,25,199,200,26,649,3712,27, + 220,572,2842,1786,3070,210,201,202,203,204, + 290,291,292,293,371,3331,3002,650,411,412, + 409,2694,2987,2694,208,3346,205,349,494,198, + 206,207,209,750,382,650,381,2937,199,200, + 3194,348,3589,1788,548,572,2157,1122,49,210, + 201,202,203,204,290,291,292,293,341,2382, + 2428,346,46,220,45,2852,491,493,1122,339, + 153,2470,45,531,287,47,810,288,756,1231, + 160,779,3634,3566,3194,2987,2157,208,2190,205, + 3008,2165,198,206,207,209,1508,439,1484,1492, + 1504,199,200,220,1444,4620,287,3006,572,288, + 1150,3415,210,201,202,203,204,290,291,292, + 293,62,382,650,381,2987,1513,208,2712,205, + 3420,2896,198,206,207,209,327,2852,231,254, + 836,199,200,280,1854,280,1854,3194,572,3736, + 421,2952,210,201,202,203,204,290,291,292, + 293,843,28,650,25,4624,2513,26,649,23, + 27,336,24,2774,1861,3337,1861,383,287,3406, + 3370,288,224,3331,271,650,45,3194,3056,3449, + 1122,3096,3203,28,650,25,224,3633,26,649, + 23,27,22,24,1599,254,20,48,1615,103, + 72,73,105,3496,1640,1632,1656,2338,232,222, + 223,3329,312,988,315,953,317,2822,3046,650, + 837,772,235,222,223,3377,3203,28,650,25, + 348,3633,26,649,23,27,22,24,1599,254, + 20,48,1615,103,72,73,79,341,2382,2428, + 346,2460,2680,420,3203,28,650,25,2985,3633, + 26,649,23,27,22,24,1599,254,20,48, + 1615,103,72,73,105,3035,1640,1632,1656,2388, + 3203,28,650,25,1150,3633,26,649,23,27, + 22,24,1599,254,20,48,1615,103,72,73, + 105,3055,1640,1632,1656,2412,1942,28,650,25, + 2558,2513,26,649,23,27,336,24,893,28, + 650,25,2163,4398,26,649,23,27,336,24, + 3203,28,650,25,3115,3633,26,649,23,27, + 22,24,1599,254,20,48,1615,103,72,73, + 105,278,1640,1632,2118,62,382,650,381,2236, + 45,1834,1710,1122,3024,1122,1710,312,988,315, + 953,317,2028,2368,87,518,327,2157,527,312, + 988,315,953,317,422,348,153,936,153,750, + 382,650,381,4283,340,220,3764,21,160,3326, + 2578,153,341,2382,2428,346,3356,2568,382,650, + 381,3124,178,519,1710,3439,3452,2929,46,208, + 659,205,1164,3453,197,206,207,209,224,167, + 287,47,3467,288,45,1231,46,1334,4578,45, + 3493,2094,306,4027,274,3397,3012,2094,287,47, + 272,288,1418,43,181,165,166,168,169,170, + 171,172,1150,672,238,222,223,3745,2897,3203, + 28,650,25,1110,3633,26,649,23,27,22, + 24,1599,254,20,48,1615,103,72,73,105, + 1,1640,1632,2128,527,1710,1438,155,28,650, + 25,2808,2513,26,649,23,27,336,24,852, + 1649,220,3484,2576,2157,999,1650,153,2552,382, + 650,381,2552,382,650,381,347,3124,178,295, + 2684,2173,3489,2929,1438,208,2157,205,41,1812, + 197,206,207,209,1640,167,2692,266,2157,3491, + 2157,266,2986,340,302,2980,3530,179,312,988, + 315,953,317,522,2938,220,2034,2173,2157,3533, + 182,165,166,168,169,170,171,172,68,3344, + 3468,2442,272,3566,2157,2173,525,2987,1650,208, + 2986,205,5147,2508,198,206,207,209,1710,331, + 332,220,5147,199,200,494,1150,337,268,267, + 572,270,268,267,510,201,202,203,204,290, + 291,292,293,2987,3679,208,299,205,2157,440, + 198,206,207,209,1650,2669,3235,326,332,199, + 200,494,5147,492,493,220,572,2707,5147,224, + 211,201,202,203,204,290,291,292,293,357, + 3708,5147,2857,756,2157,756,1122,2987,3566,208, + 3566,205,177,294,198,206,207,209,1710,491, + 493,220,5147,199,200,241,222,223,2857,158, + 572,224,1122,5147,305,201,202,203,204,290, + 291,292,293,2987,3544,208,2027,205,2157,83, + 198,206,207,209,5147,158,2608,1886,45,199, + 200,327,2157,3529,3831,220,572,244,222,223, + 511,201,202,203,204,290,291,292,293,340, + 3730,412,431,433,2157,68,4701,2987,45,208, + 3566,205,2157,5147,198,206,207,209,1650,5147, + 1650,220,3396,199,200,3505,412,2442,5147,340, + 572,4630,2017,1710,211,201,202,203,204,290, + 291,292,293,2987,1504,208,5147,205,3414,4620, + 198,206,207,209,94,5147,193,2442,192,199, + 200,5147,2042,3235,67,2024,572,91,5147,4642, + 488,201,202,203,204,290,291,292,293,3203, + 28,650,25,5147,3633,26,649,23,27,22, + 24,1599,254,20,48,1615,103,72,73,105, + 5147,1640,2145,3203,28,650,25,1150,3633,26, + 649,23,27,22,24,1599,254,20,48,1615, + 103,72,73,105,5147,1640,2153,2739,28,650, + 25,2163,2513,26,649,23,27,336,24,5147, + 1934,28,650,25,348,4398,26,649,23,27, + 336,24,1710,2092,382,650,381,2552,382,650, + 381,341,2382,2428,346,397,1710,45,3441,432, + 433,3408,2985,173,279,772,1650,527,1438,5147, + 5147,45,266,66,1710,1476,266,5147,312,988, + 315,953,317,1650,220,1880,2337,51,328,1122, + 153,313,988,315,953,317,396,419,946,1637, + 3124,178,2157,2282,298,50,2929,1122,208,348, + 205,1710,153,197,206,207,209,1438,167,2173, + 5147,196,160,2610,2986,2591,343,2382,2428,346, + 153,259,2905,268,267,527,70,268,267,5147, + 3771,5147,3592,2701,165,166,168,169,170,171, + 172,45,220,1955,1650,2241,1710,1122,153,2568, + 382,650,381,2816,5147,2810,377,5147,3124,178, + 3566,3594,332,2986,2929,3357,208,408,205,2157, + 153,197,206,207,209,5147,167,86,46,584, + 160,3798,194,356,3566,2328,340,5147,345,1122, + 287,47,527,288,3398,1231,5147,2937,2904,1837, + 1845,174,165,166,168,169,170,171,172,220, + 3761,332,153,328,2796,153,2568,382,650,381, + 2857,5147,3772,3359,1122,3124,178,2552,382,650, + 381,2929,1710,208,348,205,1710,3529,197,206, + 207,209,45,167,45,46,3457,158,944,3807, + 5147,343,2382,2428,346,431,266,287,47,527, + 288,2857,1231,3649,1771,1122,2027,3538,185,165, + 166,168,169,170,171,172,220,2374,351,3058, + 1710,1122,153,1630,382,650,381,5147,158,523, + 5147,568,3124,178,2552,382,650,381,2929,45, + 208,5147,205,3684,153,197,206,207,209,45, + 167,3605,46,2157,3773,1710,68,268,267,1650, + 3781,93,517,266,287,47,527,288,2857,1231, + 340,2373,1122,1710,1438,3003,165,166,168,169, + 170,171,172,220,2420,5147,3672,568,1122,153, + 2568,382,650,381,95,158,3718,2851,2442,3124, + 178,3785,1650,2054,2164,2929,5147,208,1710,205, + 1710,153,197,206,207,209,45,167,5147,46, + 2157,3196,1710,69,268,267,1650,5147,5147,603, + 2986,287,47,527,288,1650,1231,340,763,2281, + 400,565,188,165,166,168,169,170,171,172, + 220,45,1650,65,1710,2108,153,2568,382,650, + 381,1710,1710,1710,3425,2442,3124,178,3799,5147, + 2071,1710,2929,3493,208,1710,205,3801,332,197, + 206,207,209,45,167,64,46,2157,1710,1710, + 189,45,63,62,3762,3503,689,1710,287,47, + 527,288,53,1231,340,2483,52,5147,5147,184, + 165,166,168,169,170,171,172,220,5147,3806, + 98,2506,5147,153,876,1720,650,1265,3873,4463, + 5147,5147,2442,3124,178,5147,5147,498,45,2929, + 45,208,2157,205,2157,5147,197,206,207,209, + 45,167,521,46,2157,5147,5147,5147,5147,340, + 5147,340,5147,775,5147,287,47,527,288,5147, + 1231,340,652,5147,5147,5147,191,165,166,168, + 169,170,171,172,220,5147,5147,2442,5147,2442, + 153,5147,496,5147,3720,5147,5147,5147,5147,2442, + 3124,178,5147,5147,526,5147,2929,5147,208,5147, + 205,5147,5147,197,206,207,209,5147,167,5147, + 5147,5147,3379,382,650,381,5147,2879,5147,5147, + 5147,5147,5147,5147,230,254,5147,5147,5147,5147, + 5147,5147,5147,190,165,166,168,169,170,171, + 172,266,3203,28,650,25,5147,3633,26,649, + 23,27,22,24,1599,254,20,48,1615,103, + 72,73,105,5147,2081,5147,5147,5147,224,3203, + 28,650,25,5147,3633,26,649,23,27,22, + 24,1599,254,20,48,1615,103,72,73,105, + 5147,2091,5147,5147,5147,5147,5147,5147,5147,5147, + 1679,269,268,267,228,222,223,1651,28,650, + 25,2163,2513,26,649,23,27,336,24,5147, + 5147,5147,5147,5147,5147,5147,5147,5147,5147,234, + 237,240,243,3834,5147,5147,5147,3203,28,650, + 25,934,3633,26,649,23,27,22,24,1599, + 254,20,48,1615,103,72,73,105,5147,2116, + 5147,5147,5147,5147,5147,5147,5147,5147,312,988, + 315,953,317,5147,5147,5147,936,3203,28,650, + 25,5147,3633,26,649,23,27,22,24,1599, + 254,20,48,1615,103,72,73,78,3203,28, + 650,25,5147,3633,26,649,23,27,22,24, + 1599,254,20,48,1615,103,72,73,77,5147, + 5147,5147,5147,5147,5147,5147,5147,3203,28,650, + 25,306,3633,26,649,23,27,22,24,1599, + 254,20,48,1615,103,72,73,76,5147,5147, + 5147,5147,672,5147,5147,5147,5147,5147,3203,28, + 650,25,1110,3633,26,649,23,27,22,24, + 1599,254,20,48,1615,103,72,73,75,3203, + 28,650,25,5147,3633,26,649,23,27,22, + 24,1599,254,20,48,1615,103,72,73,74, + 3062,28,650,25,5147,3633,26,649,23,27, + 22,24,1599,254,20,48,1615,103,72,73, + 101,3203,28,650,25,5147,3633,26,649,23, + 27,22,24,1599,254,20,48,1615,103,72, + 73,107,3203,28,650,25,5147,3633,26,649, + 23,27,22,24,1599,254,20,48,1615,103, + 72,73,106,3203,28,650,25,5147,3633,26, + 649,23,27,22,24,1599,254,20,48,1615, + 103,72,73,104,3203,28,650,25,5147,3633, + 26,649,23,27,22,24,1599,254,20,48, + 1615,103,72,73,102,241,28,650,25,2163, + 2513,26,649,23,27,336,24,3164,28,650, + 25,5147,3633,26,649,23,27,22,24,1599, + 254,20,48,1615,82,72,73,241,28,650, + 25,2163,2513,26,649,23,27,336,24,327, + 28,650,25,2163,2513,26,649,23,27,336, + 24,5147,5147,5147,5147,5147,312,988,315,953, + 317,5147,3347,5147,936,5147,2157,3767,750,382, + 650,381,3407,5147,2666,5147,2157,3767,2157,5147, + 5147,5147,5147,220,5147,5147,5147,5147,312,988, + 315,953,317,220,5147,340,837,46,5147,5147, + 312,988,315,953,317,3357,5147,401,2922,287, + 47,5147,288,5147,1231,3357,1342,401,5147,307, + 5147,2189,402,3068,5147,3008,5147,5147,572,5147, + 5147,2189,402,2565,382,650,381,5147,572,5147, + 5147,750,382,650,381,5147,5147,5147,5147,5147, + 5147,5147,5147,5147,5147,2570,382,650,381,5147, + 5147,5147,46,5147,5147,2565,382,650,381,5147, + 46,5147,5147,5147,287,47,5147,288,5147,1231, + 5147,44,287,47,46,288,5147,1231,5147,44, + 2931,5147,1853,5147,46,5147,287,47,2420,288, + 5147,1231,1853,44,5147,5147,287,47,5147,288, + 5147,1231,2545,44,750,382,650,381,5147,5147, + 403,404,2223,5147,2848,382,650,381,5147,5147, + 403,405,2565,382,650,381,5147,5147,5147,5147, + 5147,5147,5147,46,445,5147,5147,2590,946,5147, + 4402,5147,2157,46,5147,287,47,5147,288,5147, + 1231,46,44,5147,430,287,47,5147,288,2173, + 1231,2396,44,287,47,5147,288,5147,1231,5147, + 3573,2617,2759,382,650,381,5147,5147,5147,3383, + 750,382,650,381,3027,5147,5147,5147,2157,3566, + 750,382,650,381,5147,5147,5147,5147,5147,5147, + 5147,46,3027,5147,5147,2173,2157,3566,5147,46, + 5147,5147,5147,287,47,5147,288,5147,1231,46, + 3629,287,47,2173,288,5147,1231,5147,44,3012, + 5147,287,47,356,288,5147,1231,2601,44,5147, + 5147,5147,327,2568,382,650,381,2845,3582,1837, + 1845,5147,5147,5147,5147,5147,5147,5147,5147,5147, + 327,2568,382,650,381,5147,5147,5147,5147,5147, + 5147,1043,46,5147,5147,527,5147,5147,5147,356, + 5147,5147,5147,5147,287,47,3370,288,5147,1231, + 46,2373,340,5147,3451,1837,1845,356,153,5147, + 5147,5147,287,47,3505,288,976,1231,2856,3069, + 527,1110,3451,1837,1845,527,5147,5147,1177,1244, + 2442,5147,527,527,5147,2852,5147,220,5147,5147, + 5147,5147,340,153,5147,5147,5147,1311,153,340, + 340,527,5147,160,5147,153,153,5147,2856,2929, + 1378,5147,5147,2523,527,3382,186,5147,340,5147, + 2442,5147,5147,5147,153,3168,5147,2442,4369,5147, + 5147,340,3263,5147,186,5147,5147,153,5147,5147, + 5147,5147,5147,5147,5147,5147,4369,186,5147,5147, + 5147,5147,5147,5147,5147,5147,5147,5147,5147,4369, + 5147,5147,5147,5147,5147,5147,5147,5147,5147,5147, + 5147,5147,3669,5147,5147,5147,5147,5147,5147,5147, + 5147,5147,5147,5147,5147,5147,5147,5147,5147,5147, + 5147,5147,5147,5147,5147,3586,5147,5147,5147,5147, + 5147,5147,5147,5147,5147,5147,5147,5147,5147,5147, + 5147,5147,5147,3630,5147,5147,5147,5147,5147,5147, + 5147,5147,5147,5147,5147,5147,3665,5147,0,490, + 3034,0,1,221,0,1,4357,0,1,775, + 0,1,4404,0,1,805,34,0,1,949, + 0,984,34,0,1,5472,0,1,1474,0, + 805,33,0,443,1515,0,30,502,0,1248, + 45,0,1597,314,0,1248,34,0,1309,34, + 0,30,277,253,0,30,502,277,253,0, + 30,289,0,1,1241,0,1,1895,0,34, + 5589,0,805,34,0,5472,434,0,1474,434, + 0,447,1126,0,446,1151,0,30,289,297, + 0,44,32,0,1,2268,0,1,5412,0, + 1,5411,0,1,5410,0,1,5409,0,1, + 5408,0,1,5407,0,1,5406,0,1,5405, + 0,1,5404,0,1,5403,0,1,5402,0, + 40,5178,0,40,32,0,2744,123,0,1, + 5180,221,0,1,34,221,0,5177,32,0, + 1,221,1902,0,5156,221,0,22,509,0, + 382,28,0,381,25,0,2666,88,0,34, + 949,0,5156,399,0,1,2576,34,0,289, + 297,0,1,5180,0,1,34,0,154,173, + 0,5178,42,0,32,42,0,229,3152,0, + 2744,125,0,2744,124,0,30,388,0,221, + 161,0,1,89,0,5649,31,0,5177,5, + 32,0,13,414,0,5472,92,0,1474,92, + 0,183,3739,0,273,3570,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1094,331 +1065,323 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,0,49, + 40,41,42,43,0,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59, - 60,61,62,0,1,2,3,4,5,6, - 7,71,24,73,0,75,76,77,78,79, + 60,0,1,63,64,65,66,0,1,0, + 3,71,5,73,7,75,76,77,78,79, 80,81,82,83,84,85,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,0,49,50,51,52,53, - 54,55,56,57,58,59,60,61,62,0, - 1,2,3,0,0,6,7,4,0,73, - 2,75,76,77,78,79,80,81,82,83, + 61,45,46,47,48,49,50,51,52,53, + 54,55,56,57,58,59,60,0,1,63, + 64,65,66,6,0,1,2,3,4,73, + 6,75,76,77,78,79,80,81,82,83, 84,85,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 0,49,50,51,52,53,54,55,56,57, - 58,59,60,61,62,0,1,0,3,4, - 5,0,89,90,24,73,112,75,76,77, + 38,39,40,41,42,43,0,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,59,60,0,0,63,64,65,66,0, + 0,1,2,3,4,73,6,75,76,77, 78,79,80,81,82,83,84,85,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,65,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 62,0,1,0,3,4,5,0,1,0, - 3,73,3,75,76,77,78,79,80,81, + 42,43,68,45,46,47,48,49,50,51, + 52,53,54,55,56,57,58,59,60,86, + 87,63,64,65,66,0,0,1,2,3, + 4,73,6,75,76,77,78,79,80,81, 82,83,84,85,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,69,49,50,51,52,53,54,55, - 56,57,58,59,60,61,62,0,1,0, - 3,4,5,0,1,0,3,73,3,75, + 36,37,38,39,40,41,42,43,0,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,60,0,0,63,64,65, + 66,0,0,1,3,3,4,73,6,75, 76,77,78,79,80,81,82,83,84,85, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,69,49, + 40,41,42,43,68,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59, - 60,61,62,0,1,0,3,2,0,6, - 7,0,4,73,3,75,76,77,78,79, + 60,86,87,63,64,65,66,0,1,0, + 3,2,5,73,7,75,76,77,78,79, 80,81,82,83,84,85,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,0,49,50,51,52,53, - 54,55,56,57,58,59,60,61,62,0, - 1,0,3,0,1,6,7,89,90,73, + 61,45,46,47,48,49,50,51,52,53, + 54,55,56,57,58,59,60,0,0,63, + 64,65,66,0,1,0,3,2,5,73, 7,75,76,77,78,79,80,81,82,83, 84,85,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 69,49,50,51,52,53,54,55,56,57, - 58,59,60,61,62,0,1,0,3,4, - 5,0,1,0,1,73,0,75,76,77, + 38,39,40,41,42,43,61,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,59,60,86,87,63,64,65,66,0, + 0,1,3,3,4,73,6,75,76,77, 78,79,80,81,82,83,84,85,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,0,49,50,51, - 52,53,54,55,56,57,58,59,60,61, - 62,0,1,86,87,19,20,6,7,0, - 0,73,0,75,76,77,78,79,80,81, + 42,43,0,45,46,47,48,49,50,51, + 52,53,54,55,56,57,58,59,60,0, + 1,63,64,65,66,0,0,1,3,3, + 5,73,7,75,76,77,78,79,80,81, 82,83,84,85,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,0,49,50,51,52,53,54,55, - 56,57,58,59,60,61,62,0,0,1, - 2,3,4,5,6,7,24,73,0,75, + 36,37,38,39,40,41,42,43,0,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,60,0,0,63,64,65, + 66,5,0,1,2,3,4,73,6,75, 76,77,78,79,80,81,82,83,84,85, - 0,1,2,3,4,5,6,7,0,0, - 1,2,3,4,5,116,117,118,0,19, - 20,119,22,23,0,0,1,0,1,5, - 3,0,1,6,7,0,1,6,3,0, - 40,63,3,4,5,45,0,0,2,0, - 50,74,52,65,66,55,56,57,58,59, - 60,61,62,63,64,65,66,42,43,69, - 70,71,63,73,74,48,0,0,2,3, - 4,5,0,48,0,0,86,87,88,89, + 0,1,2,3,4,5,6,7,8,9, + 0,11,12,3,0,0,1,42,3,0, + 1,46,47,48,49,50,51,52,53,54, + 55,56,0,1,2,3,4,5,6,7, + 40,0,42,61,86,87,46,47,48,49, + 50,51,52,53,54,55,56,57,0,44, + 0,61,62,44,0,89,90,67,68,69, + 70,71,62,73,74,0,1,2,3,4, + 5,6,7,69,24,0,86,87,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,114,0,70,2,71,4, - 5,6,0,8,9,10,11,12,13,14, - 15,16,17,18,19,20,0,22,23,63, - 25,64,65,21,95,96,64,65,0,64, - 65,0,1,0,70,2,41,42,43,44, - 0,46,47,41,0,1,0,1,91,92, - 48,0,1,91,92,0,91,92,63,64, - 65,66,67,68,100,70,102,103,104,105, - 106,107,108,109,110,111,48,113,0,48, - 64,86,87,88,89,90,91,92,42,43, - 95,96,97,98,99,100,101,102,103,104, - 105,106,107,108,109,110,111,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,44,45,46,47,0,49,0,3,52, - 0,1,55,56,57,58,59,60,61,62, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 50,41,0,0,44,45,46,47,0,64, - 0,64,52,0,0,55,56,57,58,59, - 60,61,62,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,50,41,42,43,44,0,46, - 47,69,49,65,66,73,0,0,0,2, - 66,3,69,70,0,1,73,0,74,21, - 67,68,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,48,41,42,43,44,50,46,47, - 63,49,64,67,68,0,0,0,2,0, - 0,0,1,0,3,2,0,70,2,67, - 68,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,50,41,42,43,44,0,46,47,63, - 49,66,65,66,0,66,63,3,0,1, - 71,3,0,1,0,19,20,0,67,68, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 52,41,42,43,44,0,46,47,0,49, - 0,1,0,1,0,1,0,0,64,0, - 0,0,1,66,19,20,0,67,68,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,48, - 41,42,43,44,48,46,47,0,49,69, - 63,0,0,64,64,4,0,1,0,1, - 0,1,0,0,86,87,67,68,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,48,41, - 42,43,44,50,46,47,0,49,0,1, - 0,1,70,0,0,0,0,0,0,1, - 4,0,1,86,87,67,68,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,50,41,48, - 0,44,0,46,47,0,1,0,0,2, - 0,4,5,0,1,2,3,4,5,6, - 7,21,65,21,67,68,19,20,0,22, - 23,0,1,88,3,89,90,6,7,94, - 0,41,0,100,0,40,0,40,48,3, - 0,115,2,40,0,53,113,0,50,115, - 50,48,0,0,51,0,0,2,40,0, - 63,64,65,66,69,0,69,70,71,48, - 0,74,69,0,71,72,0,22,23,0, - 50,0,50,86,87,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,114,0,0,2,71,4,5,63,116, - 117,118,0,1,0,1,45,74,6,95, - 96,19,20,52,22,23,55,56,57,58, - 59,60,61,62,88,98,93,0,1,97, - 94,0,40,40,0,0,101,2,88,0, - 1,88,86,87,94,86,87,94,0,114, - 48,0,48,2,115,63,64,65,66,66, - 0,69,70,71,0,0,74,2,0,0, - 2,40,0,1,40,48,0,0,86,87, - 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,114,0,1,2, - 3,4,5,6,7,8,9,10,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,70,41,0, - 0,44,0,46,47,0,0,2,0,99, - 0,0,2,0,1,0,97,2,0,0, - 1,0,0,5,67,68,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,48,42,43, - 70,63,70,74,63,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,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,0,42,43, - 98,0,0,2,0,49,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,0,42,43, - 0,0,0,0,0,49,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,45,93,42,43, - 0,99,0,52,0,49,55,56,57,58, - 59,60,61,62,64,0,64,64,64,0, - 0,2,0,0,0,0,0,0,0,0, - 74,0,1,2,3,4,5,6,7,8, - 9,10,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,45,70,42,43,75,0,0,52,2, - 49,55,56,57,58,59,60,61,62,66, - 65,69,0,66,70,66,0,69,0,0, - 0,0,2,0,3,74,0,1,2,3, - 4,5,6,7,8,9,10,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,48,0,42,43, - 0,52,2,0,1,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,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,93,0,42,43, - 0,0,2,2,0,49,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,0,0,42,43, - 0,0,2,6,3,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,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,0,0,42,43, - 0,0,2,6,0,49,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,0,0,42,43, - 0,0,2,0,0,49,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,0,0,42,43, - 0,0,0,0,0,49,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,0,0,42,43, - 0,0,0,0,0,49,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,0,0,42,43, - 0,0,0,0,0,49,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,0,0,42,43, - 0,1,2,3,4,5,6,7,8,9, - 10,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, - 0,45,0,0,0,0,0,0,52,0, - 50,55,56,57,58,59,60,61,62,0, - 0,0,0,0,0,0,69,0,0,0, - 120,71,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,66,69,69,66,0,70,0,0, - 0,0,50,0,65,65,65,65,65,0, - 63,63,0,64,70,70,0,0,0,0, - 0,0,0,71,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,0,0,2,0,4,5, - 6,0,0,0,50,0,0,0,69,0, - 0,0,0,19,20,0,22,23,0,25, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,40,42,43,41,0, - 0,40,40,0,39,0,0,0,0,0, - 0,0,0,0,0,0,0,63,64,65, - 66,66,0,0,70,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 86,87,88,89,90,91,92,0,0,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,0,1,2,3, - 4,5,6,7,8,9,10,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,0,1,2,3,4, + 110,111,112,113,114,0,1,2,3,4, 5,6,7,8,9,10,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,112,0, - 1,2,3,4,5,6,7,8,9,10, - 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,0,1, - 2,3,4,5,6,7,8,9,10,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,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,0,0,0,0,0,0,0, - 0,112,0,1,2,3,4,5,6,7, + 35,36,37,38,39,40,41,42,43,74, + 45,46,47,48,49,50,51,52,53,54, + 55,56,0,58,116,117,118,0,93,64, + 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,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,0,1,2,3,4,5,6,7, + 38,39,0,41,42,43,0,45,46,47, + 48,49,50,51,52,53,54,55,56,0, + 58,2,70,0,67,73,64,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,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,0, + 41,42,43,71,45,46,47,48,49,50, + 51,52,53,54,55,56,0,58,69,0, + 67,68,0,64,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, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,44,41,42,43, + 71,45,46,47,48,49,50,51,52,53, + 54,55,56,67,58,0,1,0,3,70, + 64,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,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,0,41,42,43,0,45,46, + 47,48,49,50,51,52,53,54,55,56, + 0,58,0,3,67,68,0,64,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,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 67,41,42,43,67,45,46,47,48,49, + 50,51,52,53,54,55,56,61,58,67, + 68,0,0,2,64,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,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,0,41,42, + 43,4,45,46,47,48,49,50,51,52, + 53,54,55,56,62,58,0,0,0,0, + 2,64,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,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,47,48,42,0,0,2, + 46,47,48,49,50,51,52,53,54,55, + 56,62,58,0,1,69,3,0,64,65, + 66,0,0,2,0,1,5,3,7,8, + 9,0,11,12,3,13,14,15,16,17, + 18,19,20,21,22,23,100,0,102,103, + 104,105,106,107,108,109,110,111,112,46, + 62,40,0,1,42,0,0,5,46,47, + 48,49,50,51,52,53,54,55,56,62, + 0,57,61,62,0,0,1,70,67,68, + 69,70,71,0,1,74,0,1,2,3, + 4,5,6,7,57,0,44,86,87,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,114,0,44,2,0, + 1,5,57,7,8,9,0,11,12,0, + 1,2,3,4,5,6,7,61,0,0, + 0,1,2,3,4,69,6,62,10,0, + 1,0,3,4,0,6,40,0,1,0, + 41,4,43,6,100,119,0,8,9,40, + 0,42,2,44,8,9,112,61,62,40, + 40,0,44,67,68,69,70,71,59,60, + 74,62,63,44,68,44,58,71,0,0, + 2,72,86,87,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, + 114,0,1,2,3,4,5,6,7,8, + 9,10,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,74,43,0,45,0,1,2, + 3,4,5,6,7,8,9,10,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,44, + 43,0,45,0,1,2,3,4,5,6, + 7,8,9,10,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,0,43,2,45,0, + 1,2,3,4,5,6,7,8,9,10, + 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,88, + 41,0,43,0,45,94,0,1,2,3, + 4,0,6,0,1,2,3,4,5,6, + 7,0,1,2,3,4,0,6,2,0, + 0,0,0,74,0,1,2,3,4,5, + 6,7,8,9,10,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,61,41,70,43,0,45, + 0,0,61,5,0,5,57,61,57,8, + 9,0,62,67,68,74,95,96,69,70, + 74,10,73,0,0,2,0,0,74,0, + 1,2,3,4,5,6,7,8,9,10, + 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,42, + 41,60,43,46,47,48,49,50,51,52, + 53,54,55,56,61,61,0,89,90,89, + 90,0,1,0,1,4,67,0,1,2, + 3,4,5,6,7,8,9,10,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,44,41,113, + 43,0,45,0,1,2,3,4,5,6, + 7,8,9,10,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,97,41,0,43,2,45,0, + 1,2,3,4,5,6,7,8,9,10, + 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,0, + 41,2,43,0,45,0,1,2,3,4, + 5,6,7,8,9,10,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,0,41,2,43,46, + 45,0,1,2,3,4,5,6,7,8, + 9,10,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,0,41,2,43,0,45,0,1,2, + 3,4,5,6,7,8,9,10,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,0,41,2, + 43,0,45,0,1,2,3,4,5,6, + 7,8,9,10,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,0,41,2,43,0,45,0, + 1,2,3,4,5,6,7,8,9,10, + 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,0, + 41,2,43,0,45,0,1,2,3,4, + 5,6,7,8,9,10,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,0,41,0,43,0, + 1,2,3,4,5,6,7,8,9,10, + 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,42, + 0,0,1,46,47,48,49,50,51,52, + 53,54,55,56,0,1,57,0,1,0, + 1,0,1,68,24,0,0,0,1,74, + 71,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,44,41,0,43,0,1,2,3,4, + 5,6,7,8,9,10,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,0,0,2,0,4, + 5,0,7,8,9,99,11,12,7,0, + 57,2,57,0,0,1,0,4,2,0, + 25,0,69,0,1,120,71,11,12,0, + 1,10,3,4,0,6,41,3,43,0, + 42,0,1,0,46,47,48,49,50,51, + 52,53,54,55,56,0,61,62,44,0, + 0,0,67,68,69,44,0,0,0,1, + 2,3,4,44,6,0,57,61,3,58, + 0,86,87,88,89,90,91,92,0,1, + 95,96,97,98,99,100,101,102,103,104, + 105,106,107,108,109,110,111,0,40,2, + 0,4,5,0,7,8,9,101,11,12, + 0,1,2,3,4,5,6,7,62,41, + 114,43,25,67,95,96,93,62,70,0, + 1,2,3,88,5,0,7,88,41,94, + 43,0,1,94,0,88,0,91,92,98, + 40,94,42,0,44,0,86,87,61,62, + 57,0,62,10,67,68,69,0,1,59, + 60,0,1,63,39,0,0,0,1,0, + 5,71,72,86,87,88,89,90,91,92, + 61,0,95,96,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,0, + 1,2,3,4,5,6,7,8,9,10, + 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,70, + 74,0,1,62,0,0,0,0,97,115, + 0,115,7,0,1,0,57,0,1,2, + 3,4,5,6,7,8,9,10,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,0,1,2,3, + 4,5,6,7,8,9,10,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,0,1,0,3, + 93,5,98,7,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,2,0,1,0, + 113,0,1,2,3,4,5,6,7,8, + 9,10,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, + 74,44,57,57,62,62,69,69,69,61, + 70,70,68,58,0,68,2,67,69,93, + 68,70,61,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,0,1,2,3,4,5,6, + 7,8,9,10,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,0,1,2,3,4,5,6,7, 8,9,10,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, @@ -1430,109 +1393,60 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 10,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,0, - 1,2,3,4,5,6,7,8,9,10, - 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,0,1, - 0,3,0,0,0,0,8,9,10,11, - 12,13,14,15,16,17,18,0,0,21, - 0,1,0,3,0,0,0,0,8,9, - 10,11,12,13,14,15,16,17,18,41, - 0,21,44,45,46,47,0,0,0,0, - 52,0,0,55,56,57,58,59,60,61, - 62,41,0,0,44,45,46,47,0,0, - 0,0,52,0,0,55,56,57,58,59, - 60,61,62,0,1,2,3,4,5,6, - 7,0,0,0,0,0,0,0,0,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,45,0, - 0,0,0,0,0,52,0,0,55,56, - 57,58,59,60,61,62,63,0,65,66, - 0,0,69,70,0,0,0,74,8,9, - 10,11,12,13,14,15,16,17,18,0, - 1,2,3,4,5,0,93,8,9,10, - 11,12,13,14,15,16,17,18,0,0, - 0,41,0,0,44,0,46,47,0,0, - 0,0,0,0,0,0,0,0,0,0, - 41,0,0,44,0,46,47,67,68,0, - 0,0,0,0,74,0,0,0,0,0, - 0,0,63,0,0,0,67,68,0,0, - 0,0,0,74,0,1,2,3,4,5, - 0,0,8,9,10,11,12,13,14,15, - 16,17,18,0,0,0,0,0,0,0, - 0,8,9,10,11,12,13,14,15,16, - 17,18,0,0,0,41,0,0,44,0, - 46,47,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,63,45,0, - 0,67,68,0,0,52,0,0,55,56, - 57,58,59,60,61,62,0,1,0,3, - 4,5,0,0,8,9,10,11,12,13, - 14,15,16,17,18,0,1,0,3,4, - 5,0,0,8,9,10,11,12,13,14, - 15,16,17,18,0,0,0,41,0,0, - 44,0,46,47,0,0,0,0,0,0, - 0,0,0,0,0,0,41,0,0,44, - 0,46,47,67,68,8,9,10,11,12, - 13,14,15,16,17,18,0,0,2,0, - 0,0,67,68,8,9,10,11,12,13, - 14,15,16,17,18,0,0,0,41,0, - 0,44,0,46,47,0,0,0,0,0, - 0,0,0,0,0,0,0,41,0,0, - 44,0,46,47,67,68,8,9,10,11, - 12,13,14,15,16,17,18,0,0,0, - 0,0,0,67,68,0,0,0,0,0, - 93,0,0,0,0,0,0,0,0,41, - 0,0,44,0,46,47,8,9,10,11, - 12,13,14,15,16,17,18,0,0,0, - 0,0,0,0,0,67,68,0,1,2, - 3,4,5,6,7,0,0,0,0,41, - 0,0,44,0,46,47,0,0,0,0, - 1,2,3,4,5,6,7,0,0,0, - 0,0,0,0,0,67,68,40,0,0, - 0,0,0,0,0,48,0,0,51,0, - 0,1,2,3,4,5,6,7,0,40, - 0,0,0,0,45,0,69,48,71,72, - 51,0,53,54,0,0,0,1,2,3, - 4,5,6,7,0,0,0,0,0,0, - 40,72,0,0,0,45,0,0,48,0, - 0,51,0,53,54,0,1,2,3,4, - 5,6,7,116,117,118,40,0,0,0, - 0,45,72,0,48,0,0,51,0,53, - 54,0,0,0,0,0,0,0,119,0, - 64,0,0,0,0,40,0,0,72,0, - 45,0,0,48,0,0,51,0,53,54, - 0,1,2,3,4,5,6,7,0,119, - 0,0,0,0,0,0,71,72,0,0, - 0,0,0,1,2,3,4,5,6,7, - 0,0,0,0,0,0,0,0,0,0, - 40,0,0,0,0,45,0,0,48,0, - 0,51,0,53,54,0,0,0,0,0, - 0,0,40,0,0,0,0,45,0,0, - 48,71,72,51,0,53,54,0,1,2, - 3,4,5,6,7,0,0,0,0,0, - 0,0,0,71,72,0,0,0,0,0, - 1,2,3,4,5,6,7,0,0,0, - 0,0,0,0,0,0,0,40,0,0, - 0,0,45,0,0,48,0,0,51,0, - 53,54,0,0,0,0,0,0,0,40, - 0,0,0,0,45,0,0,48,71,72, - 51,0,53,54,0,1,2,3,4,5, - 6,7,0,0,0,0,0,0,0,0, - 71,72,0,0,0,1,2,3,4,5, - 6,7,0,0,0,1,2,3,4,5, - 6,7,0,0,40,0,0,0,0,45, - 0,0,48,0,0,51,0,53,54,0, - 0,0,0,0,40,0,0,0,0,45, - 0,0,48,0,40,51,72,53,54,45, - 0,0,48,0,0,51,0,53,54,0, - 0,0,0,0,0,0,72,0,0,0, - 0,0,0,0,0,0,72,0,0,0, + 1,0,3,0,0,0,0,2,0,10, + 0,1,13,14,15,16,17,18,19,20, + 21,22,23,0,1,0,0,1,2,3, + 4,5,6,7,0,0,0,2,0,1, + 0,42,4,40,40,46,47,48,49,50, + 51,52,53,54,55,56,0,58,0,1, + 0,3,0,64,65,66,40,44,10,68, + 44,13,14,15,16,17,18,19,20,21, + 22,23,44,75,0,59,0,1,2,3, + 4,5,6,7,0,70,70,71,72,0, + 42,67,40,0,46,47,48,49,50,51, + 52,53,54,55,56,0,58,0,0,0, + 0,3,64,65,66,69,40,67,0,93, + 44,0,0,0,1,2,3,4,5,6, + 7,0,116,117,118,59,0,0,1,2, + 3,4,5,6,7,115,70,71,72,0, + 40,2,0,0,70,62,3,68,0,0, + 67,40,0,40,0,42,61,44,0,1, + 2,3,4,5,6,7,69,40,68,42, + 0,44,59,60,91,92,63,0,70,68, + 0,69,116,117,118,72,59,60,0,0, + 63,2,0,0,2,69,0,0,40,72, + 42,24,44,0,1,2,3,4,5,6, + 7,62,0,61,0,0,67,59,60,0, + 0,63,74,0,0,0,0,0,0,71, + 72,0,119,0,0,0,0,0,0,0, + 91,92,62,40,0,42,119,44,0,1, + 2,3,4,5,6,7,0,0,0,0, + 0,0,59,60,0,0,63,0,0,0, + 0,0,0,0,71,72,0,0,0,0, + 0,0,0,0,0,0,0,0,40,0, + 42,0,44,0,1,2,3,4,5,6, + 7,0,0,0,0,0,0,59,60,0, + 0,63,0,0,0,0,0,0,0,71, + 72,0,0,0,0,0,0,0,0,0, + 0,0,0,40,0,42,0,44,0,1, + 2,3,4,5,6,7,0,0,0,0, + 0,0,59,60,0,0,63,0,0,0, + 0,0,0,0,71,72,0,0,1,2, + 3,4,5,6,7,0,0,0,40,0, + 42,0,44,0,0,0,0,0,0,0, + 1,2,3,4,5,6,7,59,60,0, + 0,63,0,0,0,0,0,40,0,42, + 72,44,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,59,60,0,40, + 63,42,0,44,0,0,0,0,0,72, + 0,0,0,0,0,0,0,0,59,60, + 0,0,63,0,0,0,0,0,0,0, + 0,72,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,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; @@ -1540,444 +1454,387 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5298,5167,5053,5053,5053,5053,5053,5053,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5171,1,1,1,1,1,1,1,5298,2674, - 599,602,1,2672,640,1,1,1,1,1, - 1,1,1,313,5072,5069,5065,5062,5059,5069, - 5069,5306,708,1271,1,2648,1773,1920,1768,2581, - 3211,2645,2657,2629,2563,2628,5298,5167,5053,5053, - 5053,5053,5053,5053,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5171,1,1,1, - 1,1,1,1,5298,2674,599,602,1,2672, - 640,1,1,1,1,1,1,1,1,5298, - 5106,1009,945,112,5298,2486,3519,3763,5298,1271, - 906,2648,1773,1920,1768,2581,3211,2645,2657,2629, - 2563,2628,5298,5167,5053,5053,5053,5053,5053,5053, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5171,1,1,1,1,1,1,1, - 5298,2674,599,602,1,2672,640,1,1,1, - 1,1,1,1,1,333,5112,5298,5109,1375, - 5626,5298,3741,3719,618,1271,5304,2648,1773,1920, - 1768,2581,3211,2645,2657,2629,2563,2628,5298,5167, - 5053,5053,5053,5053,5053,5053,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5171,1, - 1,1,1,1,1,1,3094,2674,599,602, - 1,2672,640,1,1,1,1,1,1,1, - 1,332,5118,432,5115,1375,5626,5298,5103,34, - 5331,1271,5331,2648,1773,1920,1768,2581,3211,2645, - 2657,2629,2563,2628,5298,5167,5053,5053,5053,5053, - 5053,5053,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5171,1,1,1,1,1, - 1,1,2378,2674,599,602,1,2672,640,1, - 1,1,1,1,1,1,1,429,34,413, - 5331,5177,5174,5298,5103,5298,5331,1271,2458,2648, - 1773,1920,1768,2581,3211,2645,2657,2629,2563,2628, - 5298,5167,5053,5053,5053,5053,5053,5053,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5171,1,1,1,1,1,1,1,3036,2674, - 599,602,1,2672,640,1,1,1,1,1, - 1,1,1,5298,5106,5298,945,2502,114,2486, - 3519,1,3763,1271,377,2648,1773,1920,1768,2581, - 3211,2645,2657,2629,2563,2628,5298,5167,5053,5053, - 5053,5053,5053,5053,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5171,1,1,1, - 1,1,1,1,5298,2674,599,602,1,2672, - 640,1,1,1,1,1,1,1,1,5298, - 5106,5298,945,33,5144,2486,3519,3741,3719,1271, - 1821,2648,1773,1920,1768,2581,3211,2645,2657,2629, - 2563,2628,5298,5167,5053,5053,5053,5053,5053,5053, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5171,1,1,1,1,1,1,1, - 5688,2674,599,602,1,2672,640,1,1,1, - 1,1,1,1,1,92,34,118,5331,5292, - 5289,5298,5091,5298,1247,1271,5298,2648,1773,1920, - 1768,2581,3211,2645,2657,2629,2563,2628,5298,5167, - 5053,5053,5053,5053,5053,5053,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5171,1, - 1,1,1,1,1,1,115,2674,599,602, - 1,2672,640,1,1,1,1,1,1,1, - 1,5298,1479,2953,2977,3299,3007,2486,3519,5298, - 5298,1271,5298,2648,1773,1920,1768,2581,3211,2645, - 2657,2629,2563,2628,5298,5167,5053,5053,5053,5053, - 5053,5053,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5171,1,1,1,1,1, - 1,1,1,2674,599,602,1,2672,640,1, - 1,1,1,1,1,1,1,5298,348,5132, - 5128,5125,5062,5059,1,1,567,1271,5298,2648, - 1773,1920,1768,2581,3211,2645,2657,2629,2563,2628, - 5298,5082,5082,5082,5082,5082,5082,5082,5298,348, - 34,5164,5331,1375,5626,5718,5719,5720,5298,5082, - 5082,5049,5082,5082,128,5298,1247,5298,5106,2328, - 945,5298,825,5252,3519,386,5076,3253,5331,34, - 5082,353,5331,1375,5626,5082,314,1,824,126, - 5082,5305,5082,3156,648,5082,5082,5082,5082,5082, - 5082,5082,5082,5082,5086,5082,5082,3975,840,5082, - 5082,5082,353,5082,5082,634,34,123,5164,5331, - 1375,5626,125,34,136,124,5082,5082,5082,5082, - 5082,5082,5082,5082,5082,5082,5082,5082,5082,5082, - 5082,5082,5082,5082,5082,5082,5082,5082,5082,5082, - 5082,5082,5082,5082,5082,5298,909,1061,5306,5745, - 5749,5751,1,5559,5557,5566,5565,5561,5562,5560, - 5563,5564,5567,5558,5743,5744,5298,5774,5775,353, - 5752,2800,5222,5097,2421,2389,2800,5267,5298,2800, - 5270,5298,5155,5298,1728,4116,5685,1719,1769,625, - 5298,5686,5687,5100,5298,1479,5298,5091,2750,2453, - 1387,45,5091,2750,2453,5298,2750,2453,691,5754, - 5755,5776,5635,5636,2136,5753,1680,1632,1584,1536, - 1488,1440,1392,1344,1296,1242,755,3591,5298,5329, - 3417,5765,5764,5777,5746,5747,5770,5771,3975,840, - 5768,5769,5748,5750,5772,5773,5778,5758,5759,5760, - 5756,5757,5766,5767,5762,5761,5763,5298,5053,5053, - 5053,5053,5053,5053,5053,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5261,1,1, - 1,1,1,1,1,30,5452,5298,5121,1, - 5298,1139,1,1,1,1,1,1,1,1, - 34,5056,4094,945,3891,3912,2291,3519,5559,5557, - 5566,5565,5561,5562,5560,5563,5564,5567,5558,3851, - 3830,1721,3954,3933,5314,3793,1863,1915,5316,1865, - 2170,1909,5317,5315,1817,5310,5312,5313,5311,1056, - 1096,5685,432,5298,625,5545,5686,5687,22,497, - 5298,1477,5548,405,5298,5542,5549,5522,5547,5546, - 5543,5544,5523,5298,1,1,1,1,1,1, - 1,5213,5219,5192,5195,5207,5204,5210,5201,5198, - 5189,5216,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,432,5685,1,1,625,305,5686, - 5687,2378,5452,5234,5234,849,336,317,45,5135, - 4621,1247,2378,2046,40,5161,849,5298,5305,5602, - 5635,5636,5298,1,1,1,1,1,1,1, - 5213,5219,5192,5195,5207,5204,5210,5201,5198,5189, - 5216,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5158,5685,1,1,625,5094,5686,5687, - 1020,5452,1247,5635,5636,312,5298,5298,1765,5298, - 5298,5298,5079,346,5331,352,5298,1481,3239,5635, - 5636,5298,1,1,1,1,1,1,1,5213, - 5219,5192,5195,5207,5204,5210,5201,5198,5189,5216, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1471,5685,1,1,625,117,5686,5687,1206, - 5452,2492,2728,648,385,573,352,376,419,34, - 5306,5331,5298,825,5298,3299,3007,433,5635,5636, - 5298,1,1,1,1,1,1,1,5213,5219, - 5192,5195,5207,5204,5210,5201,5198,5189,5216,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5716,5685,1,1,625,116,5686,5687,122,5452, - 1,8669,5298,7088,384,5681,5298,319,3423,438, - 30,5298,9343,2571,3299,3007,44,5635,5636,5298, - 1,1,1,1,1,1,1,5213,5219,5192, - 5195,5207,5204,5210,5201,5198,5189,5216,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5329, - 5685,1,1,625,570,5686,5687,121,5452,384, - 1020,5298,492,5138,5141,1717,287,5588,5298,5328, - 32,5186,5298,1,2953,2977,5635,5636,5298,1, - 1,1,1,1,1,1,5213,5219,5192,5195, - 5207,5204,5210,5201,5198,5189,5216,1,1,1, + 5147,5060,4912,4912,4912,4912,4912,4912,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5329,5685, - 1,1,625,1136,5686,5687,5298,5452,5298,5795, - 5298,7088,4353,136,508,108,113,5298,5298,2544, - 3763,42,5258,2953,2977,5635,5636,34,5106,4094, - 945,3891,3912,2291,3519,5559,5557,5566,5565,5561, - 5562,5560,5563,5564,5567,5558,3851,3830,1673,3954, - 3933,5314,3793,1863,1915,5316,1865,2170,1909,5317, - 5315,1817,5310,5312,5313,5311,1056,1384,5685,5255, - 1,625,305,5686,5687,1,5228,377,5298,5246, - 5298,5246,5246,1,5151,221,5147,221,221,221, - 221,5097,501,5602,5635,5636,5246,5246,5298,5246, - 5246,5298,5106,3996,945,3741,3719,5252,3519,4017, - 5298,5100,5298,2136,127,5307,5298,5246,1387,2591, - 253,2685,5231,221,5298,1197,3591,132,1519,2685, - 1525,485,130,1,699,71,111,3261,5307,507, - 5246,5246,5246,5246,384,5298,5246,5246,5246,1282, - 110,5246,221,109,402,5782,120,5358,5359,119, - 599,216,1623,5246,5246,5246,5246,5246,5246,5246, - 5246,5246,5246,5246,5246,5246,5246,5246,5246,5246, - 5246,5246,5246,5246,5246,5246,5246,5246,5246,5246, - 5246,5246,376,5298,5249,5306,5249,5249,3332,5718, - 5719,5720,32,5186,5298,8609,5545,360,5186,2421, - 2389,5249,5249,5548,5249,5249,5542,5549,5522,5547, - 5546,5543,5544,5523,3996,2223,360,32,5186,2254, - 4017,394,5249,5307,5298,5298,833,4184,3996,5298, - 1864,3996,2953,2977,4017,2953,2977,4017,5298,2356, - 1578,5298,5329,4209,2685,5249,5249,5249,5249,3492, - 134,5249,5249,5249,5298,5298,5249,4948,5298,131, - 4231,5225,5298,2746,5237,1527,5298,490,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,34,5106,4094, - 945,3891,3912,2291,3519,5559,5557,5566,5565,5561, - 5562,5560,5563,5564,5567,5558,3851,3830,1673,3954, - 3933,5314,3793,1863,1915,5316,1865,2170,1909,5317, - 5315,1817,5310,5312,5313,5311,1056,4380,5685,1, - 363,625,361,5686,5687,5298,5298,4529,442,2190, - 88,441,5243,5298,5588,228,2254,5264,129,5298, - 5279,5298,133,2328,5635,5636,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5307,5329,1,1, - 1110,5180,1158,159,5183,5452,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,161,5298,1,1, - 2223,5298,135,3635,355,5452,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,161,5298,1,1, - 5298,217,5298,5298,5298,5452,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5545,5652,1,1, - 5298,2190,288,5548,5298,5452,5542,5549,5522,5547, - 5546,5543,5544,5523,4430,5298,4461,4483,4507,5298, - 5298,3660,5298,286,5298,5298,218,500,5298,155, - 161,5298,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5545,1956,1,1,3003,5298,5298,5548,3673, - 5452,5542,5549,5522,5547,5546,5543,5544,5523,1514, - 5794,5474,5298,853,1481,1776,5298,3322,32,419, - 5298,5298,4103,1,3112,161,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5329,5298,1,1, - 5298,5716,4128,31,5283,5452,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5654,5298,1,1, - 5298,5298,3345,3474,5298,5452,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5298,5298,1,1, - 100,5298,3475,3363,3146,5452,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5298,5298,1,1, - 277,5298,5295,4277,5298,5452,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5298,5298,1,1, - 5298,5298,4302,5298,5298,5452,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5298,5298,1,1, - 5298,5298,5298,5298,5298,5452,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5298,5298,1,1, - 5298,5298,5298,5298,5298,5452,5298,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5298,5298,1,1, - 183,5298,5298,5298,5298,5452,138,5106,4094,945, - 3891,3912,2291,3519,5559,5557,5566,5565,5561,5562, - 5560,5563,5564,5567,5558,3851,3830,1673,3954,3933, - 5314,3793,1863,1915,5316,1865,2170,1909,5317,5315, - 1817,5310,5312,5313,5311,1056,219,5298,34,34, - 34,5106,4094,945,3891,3912,2291,3519,5559,5557, - 5566,5565,5561,5562,5560,5563,5564,5567,5558,3851, - 3830,1673,3954,3933,5314,3793,1863,1915,5316,1865, - 2170,1909,5317,5315,1817,5310,5312,5313,5311,1056, - 5298,5545,5298,5298,5298,5298,411,405,5548,359, - 1671,5542,5549,5522,5547,5546,5543,5544,5523,5298, - 5298,5298,5298,5298,494,5298,2010,97,96,5, - 5286,5306,34,5106,4094,945,3891,3912,2291,3519, - 5559,5557,5566,5565,5561,5562,5560,5563,5564,5567, - 5558,3851,3830,1673,3954,3933,5314,3793,1863,1915, - 5316,1865,2170,1909,5317,5315,1817,5310,5312,5313, - 5311,1056,2490,5473,1824,902,5298,2046,5298,5298, - 5298,5298,1671,5298,5737,3004,3005,3041,3042,1, - 4174,2100,5298,32,1992,1872,5298,5298,5298,5298, - 5298,5298,5298,5306,34,5106,4094,945,3891,3912, - 2291,3519,5559,5557,5566,5565,5561,5562,5560,5563, - 5564,5567,5558,3851,3830,1673,3954,3933,5314,3793, - 1863,1915,5316,1865,2170,1909,5317,5315,1817,5310, - 5312,5313,5311,1056,5298,13,1061,5298,5745,5749, - 5751,173,1,5298,1671,519,5298,5298,5681,5298, - 5298,5298,5298,5743,5744,5298,5774,5775,5298,5752, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5276,1719,1769,2175,5298, - 5298,5240,313,5298,3148,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,691,5754,5755, - 5776,5276,5298,5298,5753,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5765,5764,5777,5746,5747,5770,5771,5298,5298,5768, - 5769,5748,5750,5772,5773,5778,5758,5759,5760,5756, - 5757,5766,5767,5762,5761,5763,34,5106,4094,945, - 3891,3912,2291,3519,5559,5557,5566,5565,5561,5562, - 5560,5563,5564,5567,5558,3851,3830,1673,3954,3933, - 5314,3793,1863,1915,5316,1865,2170,1909,5317,5315, - 1817,5310,5312,5313,5311,34,5106,4094,945,3891, - 3912,2291,3519,5559,5557,5566,5565,5561,5562,5560, - 5563,5564,5567,5558,3851,3830,1673,3954,3933,5314, - 3793,1863,1915,5316,1865,2170,1909,5317,5315,1817, - 5310,5312,5313,5311,1056,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,5298,5304,34, - 5106,4094,945,3891,3912,2291,3519,5559,5557,5566, - 5565,5561,5562,5560,5563,5564,5567,5558,3851,3830, - 1673,3954,3933,5314,3793,1863,1915,5316,1865,2170, - 1909,5317,5315,1817,5310,5312,5313,5311,34,5106, - 4094,945,3891,3912,2291,3519,5559,5557,5566,5565, - 5561,5562,5560,5563,5564,5567,5558,3851,3830,1673, - 3954,3933,5314,3793,1863,1915,5316,1865,2170,1909, - 5317,5315,1817,5310,5312,5313,5311,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,2491,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,164,34,5106,4094,945,3891,3912,2291,3519, - 5559,5557,5566,5565,5561,5562,5560,5563,5564,5567, - 5558,3851,3830,1673,3954,3933,5314,3793,1863,1915, - 5316,1865,2170,1909,5317,5315,1817,5310,5312,5313, - 5311,1056,34,5106,4162,945,3891,3912,2291,3519, - 5559,5557,5566,5565,5561,5562,5560,5563,5564,5567, - 5558,3851,3830,1673,3954,3933,5314,3793,1863,1915, - 5316,1865,2170,1909,5317,5315,1817,5310,5312,5313, - 5311,34,5106,4094,945,3891,3912,2291,3519,5559, - 5557,5566,5565,5561,5562,5560,5563,5564,5567,5558, - 3851,3830,1673,3954,3933,5314,3793,1863,1915,5316, - 1865,2170,1909,5317,5315,1817,5310,5312,5313,5311, - 34,5106,4094,945,3891,3912,2291,3519,5559,5557, - 5566,5565,5561,5562,5560,5563,5564,5567,5558,3851, - 3830,1673,3954,3933,5314,3793,1863,1915,5316,1865, - 2170,1909,5317,5315,1817,5310,5312,5313,3044,34, - 5106,4094,945,3891,3912,2291,3519,5559,5557,5566, - 5565,5561,5562,5560,5563,5564,5567,5558,3851,3830, - 1673,3954,3933,5314,3793,1863,1915,5316,1865,2170, - 1909,5317,5315,1817,5310,5312,5313,5311,5298,5056, - 5298,5331,5298,5298,5298,5298,5559,5557,5566,5565, - 5561,5562,5560,5563,5564,5567,5558,5298,5298,958, - 5298,5056,5298,5331,5298,5298,5298,5298,5559,5557, - 5566,5565,5561,5562,5560,5563,5564,5567,5558,5685, - 5298,958,625,5545,5686,5687,5298,5298,5298,5298, - 5548,5298,5298,5542,5549,5522,5547,5546,5543,5544, - 5523,5685,5298,5298,625,5545,5686,5687,5298,5298, - 5298,5298,5548,5298,5298,5542,5549,5522,5547,5546, - 5543,5544,5523,32,5328,5328,5328,5328,5328,5328, - 5328,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,5298,5298,5328,5298,5298,5298,5298,5328,5298, - 5298,5298,5298,5298,5298,5328,5298,5298,5328,5328, - 5328,5328,5328,5328,5328,5328,5328,5298,5328,5328, - 5298,5298,5328,5328,5298,5298,5298,5328,5559,5557, - 5566,5565,5561,5562,5560,5563,5564,5567,5558,1, - 5132,5128,5125,5062,5059,5298,5328,5559,5557,5566, - 5565,5561,5562,5560,5563,5564,5567,5558,5298,5298, - 5298,5685,5298,5298,625,5298,5686,5687,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 5685,5298,5298,625,5298,5686,5687,5635,5636,5298, - 5298,5298,5298,5298,5305,5298,5298,5298,5298,5298, - 5298,5298,353,5298,5298,5298,5635,5636,5298,5298, - 5298,5298,5298,515,341,34,5164,5331,1375,5626, - 5298,5298,5559,5557,5566,5565,5561,5562,5560,5563, - 5564,5567,5558,215,5298,5298,5298,5298,5298,5298, - 5298,5559,5557,5566,5565,5561,5562,5560,5563,5564, - 5567,5558,5298,5298,5298,5685,5298,5298,625,5298, - 5686,5687,5298,5298,5298,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,353,5545,5298, - 5298,5635,5636,5298,5298,5548,5298,5298,5542,5549, - 5522,5547,5546,5543,5544,5523,429,34,5298,5331, - 5177,5174,5298,5298,5559,5557,5566,5565,5561,5562, - 5560,5563,5564,5567,5558,89,1,5298,1,5273, - 5273,5298,5298,5559,5557,5566,5565,5561,5562,5560, - 5563,5564,5567,5558,5298,5298,5298,5685,5298,5298, - 625,5298,5686,5687,5298,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5685,5298,5298,625, - 5298,5686,5687,5635,5636,5559,5557,5566,5565,5561, - 5562,5560,5563,5564,5567,5558,5298,5298,4575,5298, - 5298,5298,5635,5636,5559,5557,5566,5565,5561,5562, - 5560,5563,5564,5567,5558,5298,5298,5298,5685,5298, - 5298,625,5298,5686,5687,5298,5298,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,5685,5298,5298, - 625,5298,5686,5687,5635,5636,5559,5557,5566,5565, - 5561,5562,5560,5563,5564,5567,5558,5298,5298,5298, - 5298,5298,5298,5635,5636,5298,5298,5298,5298,5298, - 2805,5298,5298,5298,5298,5298,5298,5298,1,5685, - 5298,5298,625,5298,5686,5687,5559,5557,5566,5565, - 5561,5562,5560,5563,5564,5567,5558,5298,5298,5298, - 5298,5298,5298,5298,5298,5635,5636,1,5151,221, - 5147,221,221,221,221,5298,5298,5298,5298,5685, - 5298,5298,625,5298,5686,5687,5298,5298,5298,1, - 5053,221,5053,221,221,221,221,5298,5298,5298, - 5298,5298,5298,5298,5298,5635,5636,221,5298,5298, - 5298,5298,5298,5298,5298,485,5298,5298,699,5298, - 1,5053,221,5053,221,221,221,221,5298,221, - 5298,5298,5298,5298,6642,5298,221,5050,401,5782, - 602,5298,957,640,5298,5298,1,5053,221,5053, - 221,221,221,221,5298,5298,5298,5298,5298,5298, - 221,5782,5298,5298,5298,6642,5298,5298,5050,5298, - 5298,602,5298,957,640,1,5053,221,5053,221, - 221,221,221,5718,5719,5720,221,5298,5298,5298, - 5298,6642,5782,5298,5050,5298,5298,602,5298,957, - 640,5298,5298,5298,5298,5298,5298,5298,11,5298, - 651,5298,5298,5298,5298,221,5298,5298,5782,5298, - 6642,5298,5298,5050,5298,5298,602,5298,957,640, - 1,5053,221,5053,221,221,221,221,5298,10, - 5298,5298,5298,5298,5298,5298,213,5782,5298,5298, - 5298,5298,1,5053,221,5053,221,221,221,221, - 5298,5298,5298,5298,5298,5298,5298,5298,5298,5298, - 221,5298,5298,5298,5298,6642,5298,5298,5050,5298, - 5298,602,5298,957,640,5298,5298,5298,5298,5298, - 5298,5298,221,5298,5298,5298,5298,6642,5298,5298, - 5050,213,5782,602,5298,957,640,1,5053,221, - 5053,221,221,221,221,5298,5298,5298,5298,5298, - 5298,5298,5298,212,5782,5298,5298,5298,5298,1, - 5053,221,5053,221,221,221,221,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5298,221,5298,5298, - 5298,5298,6642,5298,5298,5050,5298,5298,602,5298, - 957,640,5298,5298,5298,5298,5298,5298,5298,221, - 5298,5298,5298,5298,6642,5298,5298,5050,213,5782, - 602,5298,957,640,1,5053,221,5053,221,221, - 221,221,5298,5298,5298,5298,5298,5298,5298,5298, - 213,5782,5298,5298,1,5053,221,5053,221,221, - 221,221,5298,5298,1,5053,221,5053,221,221, - 221,221,5298,5298,221,5298,5298,5298,5298,6642, - 5298,5298,5050,5298,5298,602,5298,957,640,5298, - 5298,5298,5298,5298,221,5298,5298,5298,5298,6642, - 5298,5298,5050,5298,221,602,5782,957,640,6642, - 5298,5298,5050,5298,5298,602,5298,957,640,5298, - 5298,5298,5298,5298,5298,5298,5782,5298,5298,5298, - 5298,5298,5298,5298,5298,5298,5782 + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5064,1,1,1,1,1980,1,1,1,1, + 1,1,1,1,1,1,1,998,1,626, + 1968,5147,805,606,1,1,1,434,34,316, + 5180,5155,4988,608,4985,1943,3250,1939,3248,1894, + 3403,1936,1960,1935,867,1927,5147,5060,4912,4912, + 4912,4912,4912,4912,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5064,1,1,1, + 1268,1980,1,1,1,1,1,1,1,1, + 1,1,1,998,1,626,1968,33,4940,606, + 1,1,1,1119,1,4924,4915,4918,4928,608, + 4921,1943,3250,1939,3248,1894,3403,1936,1960,1935, + 867,1927,5147,5060,4912,4912,4912,4912,4912,4912, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5064,1,1,1,5147,1980,1,1, + 1,1,1,1,1,1,1,1,1,998, + 1,626,1968,118,308,606,1,1,1,5147, + 1,4924,4357,4918,949,608,4404,1943,3250,1939, + 3248,1894,3403,1936,1960,1935,867,1927,5147,5060, + 4912,4912,4912,4912,4912,4912,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5064,1, + 1,1,4325,1980,1,1,1,1,1,1, + 1,1,1,1,1,998,1,626,1968,2820, + 2959,606,1,1,1,5147,1,4924,4357,4918, + 949,608,4404,1943,3250,1939,3248,1894,3403,1936, + 1960,1935,867,1927,5147,5060,4912,4912,4912,4912, + 4912,4912,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5064,1,1,1,5147,1980, + 1,1,1,1,1,1,1,1,1,1, + 1,998,1,626,1968,122,438,606,1,1, + 1,34,5147,4982,5180,775,949,608,4404,1943, + 3250,1939,3248,1894,3403,1936,1960,1935,867,1927, + 5147,5060,4912,4912,4912,4912,4912,4912,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5064,1,1,1,2411,1980,1,1,1,1, + 1,1,1,1,1,1,1,998,1,626, + 1968,2820,2959,606,1,1,1,89,1,314, + 1,4952,5122,608,5122,1943,3250,1939,3248,1894, + 3403,1936,1960,1935,867,1927,5147,5060,4912,4912, + 4912,4912,4912,4912,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5064,1,1,1, + 1268,1980,1,1,1,1,1,1,1,1, + 1,1,1,998,1,626,1968,121,5147,606, + 1,1,1,92,34,344,5180,2924,5138,608, + 5135,1943,3250,1939,3248,1894,3403,1936,1960,1935, + 867,1927,5147,5060,4912,4912,4912,4912,4912,4912, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5064,1,1,1,1268,1980,1,1, + 1,1,1,1,1,1,1,1,1,998, + 1,626,1968,2820,2959,606,1,1,1,5147, + 5147,4982,1264,775,949,608,4404,1943,3250,1939, + 3248,1894,3403,1936,1960,1935,867,1927,5147,5060, + 4912,4912,4912,4912,4912,4912,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5064,1, + 1,1,5147,1980,1,1,1,1,1,1, + 1,1,1,1,1,998,1,626,1968,5147, + 4949,606,1,1,1,34,5147,4979,5180,5180, + 1474,608,5472,1943,3250,1939,3248,1894,3403,1936, + 1960,1935,867,1927,5147,5060,4912,4912,4912,4912, + 4912,4912,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5064,1,1,1,120,1980, + 1,1,1,1,1,1,1,1,1,1, + 1,998,1,626,1968,216,112,606,1,1, + 1,4057,1,4924,2641,4918,949,608,4404,1943, + 3250,1939,3248,1894,3403,1936,1960,1935,867,1927, + 5147,4961,4961,4961,4961,4961,4961,4961,4961,4961, + 30,4961,4961,4997,497,391,4955,5395,5180,32, + 5001,5398,5481,5482,5392,5399,5372,5397,5396,5393, + 5394,5373,309,4924,4357,4918,949,4937,4404,4934, + 4961,5147,4961,1268,2820,2959,4961,4961,4961,4961, + 4961,4961,4961,4961,4961,4961,4961,4961,5147,34, + 5147,4961,4965,5178,5147,3989,3962,4961,4961,4961, + 4961,4961,502,4961,4961,5147,4982,4357,775,949, + 1474,4404,5472,3793,761,1,4961,4961,4961,4961, + 4961,4961,4961,4961,4961,4961,4961,4961,4961,4961, + 4961,4961,4961,4961,4961,4961,4961,4961,4961,4961, + 4961,4961,4961,4961,4961,5147,4912,4912,4912,4912, + 4912,4912,4912,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5119,1,1,1,359, + 5301,1,1,1,1,1,1,1,1,1, + 1,1,437,1,5572,5573,5574,5147,359,1, + 1,1,5147,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5147,5301,1,1, + 1,1,1,1,1,1,1,1,1,310, + 1,2544,2240,5147,3150,600,1,1,1,5147, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5147, + 1,1,1,5155,5301,1,1,1,1,1, + 1,1,1,1,1,1,5147,1,1038,437, + 3230,3000,5147,1,1,1,5147,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,643,1,1,1, + 5155,5301,1,1,1,1,1,1,1,1, + 1,1,1,5591,1,5147,4979,22,5180,2240, + 1,1,1,5147,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5147,1,1,1,5147,5301,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5147,382,5067,5067,447,1,1,1, + 5147,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5648,1,1,1,2741,5301,1,1,1,1, + 1,1,1,1,1,1,1,4991,1,2668, + 3000,5147,5147,1007,1,1,1,5147,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5147,1,1, + 1,3577,5301,1,1,1,1,1,1,1, + 1,1,1,1,2413,1,136,333,5147,443, + 2239,1,1,1,34,4931,4711,775,622,4118, + 4404,4147,4097,2716,3231,4199,4178,5404,5402,5411, + 5410,5406,5407,5405,5408,5409,5412,5403,5163,2282, + 1526,1574,5165,1533,4337,1566,5166,5164,1525,5159, + 5161,5162,5160,1305,5481,5482,5395,5147,5147,4758, + 5398,5481,5482,5392,5399,5372,5397,5396,5393,5394, + 5373,4943,5539,424,34,1775,5180,30,573,5540, + 5541,382,215,5070,5147,4958,5070,5180,5070,5070, + 5070,390,5070,5070,381,5404,5402,5411,5410,5406, + 5407,5405,5408,5409,5412,5403,579,1,1734,1693, + 1652,1611,1570,1529,1488,1447,1406,1365,1163,5570, + 1556,5070,32,5001,5395,5147,5147,2850,5398,5481, + 5482,5392,5399,5372,5397,5396,5393,5394,5373,502, + 5147,1761,5070,5070,136,5147,1076,5116,5070,5070, + 5070,5070,5070,40,5043,5070,363,4924,2641,4918, + 949,1,4404,1,1433,30,5178,5070,5070,5070, + 5070,5070,5070,5070,5070,5070,5070,5070,5070,5070, + 5070,5070,5070,5070,5070,5070,5070,5070,5070,5070, + 5070,5070,5070,5070,5070,5070,381,5040,5073,5147, + 1248,5073,1149,5073,5073,5073,5147,5073,5073,1, + 4912,221,4912,221,221,221,221,1268,1,5147, + 1,4924,4357,4918,949,1081,4404,4946,4973,5147, + 4982,44,775,5079,5147,4404,5073,5147,805,115, + 4220,949,859,4404,579,4908,117,3333,3309,221, + 5147,9191,3152,4909,3333,3309,1163,5073,5073,5156, + 309,5147,1468,5073,5073,5073,5073,5073,626,945, + 5073,614,606,1352,957,729,4976,5155,88,5147, + 5076,5636,5073,5073,5073,5073,5073,5073,5073,5073, + 5073,5073,5073,5073,5073,5073,5073,5073,5073,5073, + 5073,5073,5073,5073,5073,5073,5073,5073,5073,5073, + 5073,5147,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5156,1,5154,1,32,5301,5147,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,161,1,5178, + 1,108,5301,5147,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,161,1,5147,1,4759,5301,5147, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,4241, + 1,126,1,5147,5301,4262,1,5085,4357,4918, + 949,5147,4404,342,4982,2641,775,949,1474,4404, + 5472,1,4924,2641,4918,949,1,4404,3295,410, + 5147,5147,5147,161,5147,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1268,1,389,1,114,5301, + 113,116,1268,4057,5147,4057,437,1268,1638,3333, + 3309,301,3036,338,338,520,2352,2309,2050,2240, + 338,5447,600,1,446,3295,5147,217,161,1, + 4924,4711,4918,622,4118,4404,4147,4097,2716,5004, + 4199,4178,5031,5037,5010,5013,5025,5022,5028,5019, + 5016,5007,5034,5163,2282,1526,1574,5165,1533,4337, + 1566,5166,5164,1525,5159,5161,5162,5160,1305,5395, + 34,1251,34,5398,5481,5482,5392,5399,5372,5397, + 5396,5393,5394,5373,1268,4994,130,3989,3962,3989, + 3962,5147,984,5147,5057,3387,506,5147,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5178,1,5153, + 1,5147,5301,5147,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,2192,1,5147,1,4777,5301,5147, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5147, + 1,4746,1,424,5301,5147,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5147,1,4790,1,5570, + 5301,5147,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5147,1,3515,1,5147,5301,5147,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,3850, + 1,5147,5301,5147,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,229,1,5107,1,5147,5301,5147, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5147, + 1,2410,1,5147,5301,138,4982,4711,775,622, + 4118,4404,4147,4097,2716,2268,4199,4178,5404,5402, + 5411,5410,5406,5407,5405,5408,5409,5412,5403,5163, + 2282,1526,1574,5165,1533,4337,1566,5166,5164,1525, + 5159,5161,5162,5160,1305,5147,34,218,34,34, + 4982,4711,775,622,4118,4404,4147,4097,2716,2268, + 4199,4178,5404,5402,5411,5410,5406,5407,5405,5408, + 5409,5412,5403,5163,2282,1526,1574,5165,1533,4337, + 1566,5166,5164,1525,5159,5161,5162,5160,1305,5395, + 5147,5147,984,5398,5481,5482,5392,5399,5372,5397, + 5396,5393,5394,5373,45,4949,2552,5147,1248,5147, + 8419,389,5535,3860,1396,183,134,42,5104,5154, + 5155,1,4924,4711,4918,622,4118,4404,4147,4097, + 2716,5004,4199,4178,5031,5037,5010,5013,5025,5022, + 5028,5019,5016,5007,5034,5163,2282,1526,1574,5165, + 1533,4337,1566,5166,5164,1525,5159,5161,5162,5160, + 1305,5101,34,5147,34,34,4982,4711,775,622, + 4118,4404,4147,4097,2716,2268,4199,4178,5404,5402, + 5411,5410,5406,5407,5405,5408,5409,5412,5403,5163, + 2282,1526,1574,5165,1533,4337,1566,5166,5164,1525, + 5159,5161,5162,5160,1305,1,5147,839,219,5605, + 5599,128,5603,5597,5598,1003,5628,5629,873,5147, + 4970,2849,2552,5147,5147,9194,71,3644,3178,5147, + 5606,1,2167,283,5433,5141,5155,5207,5208,5147, + 4982,4973,775,5079,5147,4404,1173,2890,1206,127, + 5395,5147,5177,354,5398,5481,5482,5392,5399,5372, + 5397,5396,5393,5394,5373,111,1108,5608,5178,110, + 5147,132,5609,5630,5607,1468,123,109,1,5085, + 4357,4918,949,2253,4404,45,1802,1075,1248,4976, + 119,5619,5618,5631,5600,5601,5624,5625,5147,4949, + 5622,5623,5602,5604,5626,5627,5632,5612,5613,5614, + 5610,5611,5620,5621,5616,5615,5617,5147,5156,839, + 5147,5605,5599,5147,5603,5597,5598,855,5628,5629, + 1,4912,221,4912,221,221,221,221,2770,4220, + 1252,859,5606,5046,2352,2309,5500,1248,389,342, + 34,3295,5180,4241,1474,524,5472,4241,1173,4262, + 1206,5147,5649,4262,5147,4241,513,2672,784,2124, + 221,4262,9191,301,4909,5147,2820,2959,1108,5608, + 1843,131,3208,5447,5609,5630,5607,5147,8419,626, + 945,5147,1878,606,3059,5147,1,5147,3423,418, + 2850,213,5636,5619,5618,5631,5600,5601,5624,5625, + 1268,5147,5622,5623,5602,5604,5626,5627,5632,5612, + 5613,5614,5610,5611,5620,5621,5616,5615,5617,34, + 4982,4711,775,622,4118,4404,4147,4097,2716,2268, + 4199,4178,5404,5402,5411,5410,5406,5407,5405,5408, + 5409,5412,5403,5163,2282,1526,1574,5165,1533,4337, + 1566,5166,5164,1525,5159,5161,5162,5160,1305,3274, + 159,5147,2715,3238,133,129,135,1,2192,1997, + 5147,1997,873,5147,5433,5147,2552,34,4982,4711, + 775,622,4118,4404,4147,4097,2716,2268,4199,4178, + 5404,5402,5411,5410,5406,5407,5405,5408,5409,5412, + 5403,5163,2282,1526,1574,5165,1533,4337,1566,5166, + 5164,1525,5159,5161,5162,5160,34,4982,4711,775, + 622,4118,4404,4147,4097,2716,2268,4199,4178,5404, + 5402,5411,5410,5406,5407,5405,5408,5409,5412,5403, + 5163,2282,1526,1574,5165,1533,4337,1566,5166,5164, + 1525,5159,5161,5162,5160,1305,1,5095,5147,5092, + 5502,1474,2124,5472,5147,1003,3443,495,366,364, + 5147,5147,5147,5147,505,5147,5147,358,345,284, + 5147,5147,282,5147,5147,5147,3535,32,5001,5147, + 5153,34,4982,4711,775,622,4118,4404,4147,4097, + 2716,2268,4199,4178,5404,5402,5411,5410,5406,5407, + 5405,5408,5409,5412,5403,5163,2282,1526,1574,5165, + 1533,4337,1566,5166,5164,1525,5159,5161,5162,5160, + 359,2663,998,1966,3659,3726,3848,1169,1210,1268, + 5542,5323,907,2171,5147,3054,3627,2742,1976,359, + 1485,3471,1919,34,4982,4711,775,622,4118,4404, + 4147,4097,2716,2268,4199,4178,5404,5402,5411,5410, + 5406,5407,5405,5408,5409,5412,5403,5163,2282,1526, + 1574,5165,1533,4337,1566,5166,5164,1525,5159,5161, + 5162,5160,1305,34,4982,4751,775,622,4118,4404, + 4147,4097,2716,2268,4199,4178,5404,5402,5411,5410, + 5406,5407,5405,5408,5409,5412,5403,5163,2282,1526, + 1574,5165,1533,4337,1566,5166,5164,1525,5159,5161, + 5162,5160,34,4982,4711,775,622,4118,4404,4147, + 4097,2716,2268,4199,4178,5404,5402,5411,5410,5406, + 5407,5405,5408,5409,5412,5403,5163,2282,1526,1574, + 5165,1533,4337,1566,5166,5164,1525,5159,5161,5162, + 5160,34,4982,4711,775,622,4118,4404,4147,4097, + 2716,2268,4199,4178,5404,5402,5411,5410,5406,5407, + 5405,5408,5409,5412,5403,5163,2282,1526,1574,5165, + 1533,4337,1566,5166,5164,1525,5159,5161,5162,2906, + 34,4982,4711,775,622,4118,4404,4147,4097,2716, + 2268,4199,4178,5404,5402,5411,5410,5406,5407,5405, + 5408,5409,5412,5403,5163,2282,1526,1574,5165,1533, + 4337,1566,5166,5164,1525,5159,5161,5162,5160,5147, + 4931,155,5180,399,5147,5147,5147,3570,5147,1160, + 31,5125,5404,5402,5411,5410,5406,5407,5405,5408, + 5409,5412,5403,5147,5128,5147,1,5053,221,5049, + 221,221,221,221,5147,5147,1,3611,32,5001, + 512,5395,5001,5082,5089,5398,5481,5482,5392,5399, + 5372,5397,5396,5393,5394,5373,5147,5539,5147,4931, + 5147,5180,173,573,5540,5541,221,5178,1160,1816, + 490,5404,5402,5411,5410,5406,5407,5405,5408,5409, + 5412,5403,2495,2824,5147,1297,1,5053,221,5049, + 221,221,221,221,5147,1857,221,407,5636,416, + 5395,2765,5098,125,5398,5481,5482,5392,5399,5372, + 5397,5396,5393,5394,5373,97,5539,410,5147,5147, + 5147,2942,573,5540,5541,2167,221,2791,5147,3683, + 490,13,499,1,4912,221,4912,221,221,221, + 221,5147,5572,5573,5574,1297,5147,1,4912,221, + 4912,221,221,221,221,1997,221,406,5636,100, + 5156,3678,5147,5147,2013,2770,3020,2580,1,124, + 5110,5132,96,221,5147,9191,3694,4909,1,4912, + 221,4912,221,221,221,221,2050,221,2340,9191, + 5147,4909,626,945,2672,784,606,1,5322,5132, + 5,2384,5572,5573,5574,5636,626,945,5147,273, + 606,5144,5147,5147,3022,1898,5147,5147,221,5636, + 9191,558,4909,1,4912,221,4912,221,221,221, + 221,2770,5147,2087,5147,5147,5113,626,945,5147, + 5147,606,5154,5147,5147,5147,5147,5147,5147,213, + 5636,5147,11,5147,5147,5147,5147,5147,5147,5147, + 2672,784,32,221,5147,9191,10,4909,1,4912, + 221,4912,221,221,221,221,5147,5147,5147,5147, + 5147,5147,626,945,5147,5147,606,5147,5147,5147, + 5147,5147,5147,5147,212,5636,5147,5147,5147,5147, + 5147,5147,5147,5147,5147,5147,5147,5147,221,5147, + 9191,5147,4909,1,4912,221,4912,221,221,221, + 221,5147,5147,5147,5147,5147,5147,626,945,5147, + 5147,606,5147,5147,5147,5147,5147,5147,5147,213, + 5636,5147,5147,5147,5147,5147,5147,5147,5147,5147, + 5147,5147,5147,221,5147,9191,5147,4909,1,4912, + 221,4912,221,221,221,221,5147,5147,5147,5147, + 5147,5147,626,945,5147,5147,606,5147,5147,5147, + 5147,5147,5147,5147,213,5636,5147,1,4912,221, + 4912,221,221,221,221,5147,5147,5147,221,5147, + 9191,5147,4909,5147,5147,5147,5147,5147,5147,1, + 4912,221,4912,221,221,221,221,626,945,5147, + 5147,606,5147,5147,5147,5147,5147,221,5147,9191, + 5636,4909,5147,5147,5147,5147,5147,5147,5147,5147, + 5147,5147,5147,5147,5147,5147,626,945,5147,221, + 606,9191,5147,4909,5147,5147,5147,5147,5147,5636, + 5147,5147,5147,5147,5147,5147,5147,5147,626,945, + 5147,5147,606,5147,5147,5147,5147,5147,5147,5147, + 5147,5636 }; }; public final static char termAction[] = TermAction.termAction; @@ -1985,56 +1842,58 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 630,6,834,744,783,526,321,956,485,42, - 630,8,121,356,671,526,125,136,486,136, - 730,136,484,136,321,356,61,306,411,834, - 309,486,486,350,306,621,310,309,310,320, - 486,306,733,620,257,56,618,256,411,205, - 618,492,411,733,782,307,732,732,353,486, - 361,411,364,411,411,782,160,309,309,309, - 306,411,622,309,120,356,1,1,148,551, - 358,411,956,486,49,49,411,900,211,211, - 411,407,618,584,445,618,533,205,492,733, - 733,733,782,665,733,361,361,411,364,782, - 411,257,1114,309,309,309,411,411,622,1114, - 320,310,320,119,119,156,156,993,955,154, - 150,552,306,411,266,123,162,413,1049,202, - 160,211,211,364,411,780,917,160,160,584, - 444,956,356,356,356,356,306,956,1000,409, - 585,585,585,585,585,585,585,585,585,77, - 1076,1081,1078,1085,1083,1090,1088,1092,1091,1093, - 259,1094,205,204,1114,411,492,871,303,863, - 492,733,733,785,411,307,411,361,1114,626, - 1113,121,873,874,83,120,411,1114,1114,411, - 257,257,257,120,1031,1031,584,584,160,162, - 413,551,871,585,871,257,956,956,956,552, - 956,411,686,257,257,526,570,411,486,550, - 160,488,956,202,1108,413,209,202,202,364, - 622,736,444,1000,1031,1031,1031,1031,411,266, - 160,160,958,1030,780,1000,63,63,779,779, - 266,793,585,585,585,585,585,585,585,585, - 585,585,585,585,585,585,585,585,585,585, - 585,584,584,584,584,584,584,584,584,584, - 584,584,793,585,205,780,256,871,542,358, - 788,411,665,1114,585,411,1001,257,1047,202, - 413,871,552,1000,1000,568,742,1000,257,257, - 526,505,306,409,547,123,1116,160,683,158, - 121,584,1113,160,160,121,121,121,121,782, - 160,585,202,1030,584,160,621,623,621,160, - 202,1078,1078,1076,1076,1076,1083,1083,1083,1083, - 1081,1081,1088,1085,1085,1091,1090,1092,871,1093, - 622,864,585,585,785,346,411,1,160,160, - 1024,160,686,257,956,160,411,780,123,160, - 160,836,535,414,444,956,956,956,956,411, - 411,585,1031,1074,1055,160,411,623,780,584, - 257,545,229,306,119,675,552,547,552,257, - 686,793,552,782,622,549,486,486,535,793, - 793,793,793,956,956,160,1074,530,411,307, - 622,411,621,675,584,550,792,257,160,411, - 537,160,160,160,160,266,266,1075,1075,1074, - 793,1072,624,307,411,677,552,160,792,257, - 516,537,160,160,266,585,202,411,624,677, - 552,160,956,160,202,411,552,844,159,1031 + 553,1,3,851,345,83,457,1056,637,143, + 553,5,1127,202,501,83,418,995,803,1058, + 202,803,486,486,92,92,650,661,638,661, + 1010,661,636,661,457,661,423,486,3,107, + 638,638,104,423,291,108,107,108,315,638, + 423,1013,794,645,421,793,418,486,797,192, + 1088,429,801,244,192,803,803,429,486,424, + 199,43,204,731,302,486,1013,344,1012,1012, + 638,488,486,486,486,344,192,107,107,107, + 423,486,292,107,1126,202,194,194,539,349, + 426,486,1056,638,384,597,486,418,888,797, + 429,801,244,244,429,888,292,244,385,385, + 385,385,385,385,385,385,385,997,1056,202, + 202,202,202,423,1056,679,367,687,685,692, + 690,697,694,700,699,702,701,717,731,302, + 1013,1013,1013,344,1013,488,488,486,344,486, + 794,723,107,107,107,486,486,292,723,315, + 108,315,1125,1125,384,951,951,545,546,725, + 421,350,423,486,253,296,192,384,596,246, + 703,90,797,796,1127,184,811,1126,1127,424, + 486,367,663,663,1016,456,43,367,457,457, + 457,457,486,253,42,42,253,958,192,192, + 368,385,385,385,385,385,385,385,385,385, + 385,385,385,385,385,385,385,385,385,385, + 958,385,192,954,953,723,486,302,941,290, + 933,302,1013,1013,926,486,488,723,491,722, + 486,723,723,486,794,794,794,1126,457,457, + 384,384,731,192,729,539,349,941,385,941, + 794,1056,1056,1056,350,1056,486,48,794,794, + 83,486,638,348,192,298,1056,495,596,384, + 384,384,384,384,384,384,384,384,384,384, + 797,421,727,368,888,192,244,456,384,192, + 192,1127,1127,1127,1127,344,192,291,293,291, + 192,244,385,505,423,997,685,685,685,690, + 690,687,687,694,694,692,692,692,692,699, + 697,701,700,941,702,943,894,43,793,640, + 941,97,426,929,486,723,385,486,794,594, + 731,192,941,350,367,367,366,764,367,794, + 794,83,849,296,894,384,722,184,729,385, + 457,683,150,192,1056,1056,1056,1056,486,486, + 486,293,43,486,43,384,943,292,934,385, + 385,926,484,486,194,192,1001,192,418,192, + 48,794,1056,192,296,192,192,529,596,192, + 683,421,958,958,958,958,1056,1056,486,424, + 292,344,292,945,794,100,766,423,1125,1001, + 1001,350,849,350,794,48,958,350,347,638, + 638,684,684,683,958,150,192,192,192,192, + 253,253,294,424,486,945,486,291,1001,950, + 384,348,957,794,192,253,385,244,192,192, + 486,294,516,1056,486,950,950,350,192,957, + 794,192,244,486,732,950,350,192,191,350, + 457 }; }; public final static char asb[] = Asb.asb; @@ -2042,120 +1901,119 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 65,70,66,1,0,119,0,54,55,8, - 9,41,10,44,56,72,45,11,57,58, - 12,13,59,60,14,15,61,46,48,62, - 47,16,51,52,17,18,2,5,4,40, - 50,7,1,6,3,21,53,0,73,50, - 65,69,93,74,63,66,40,70,2,0, - 73,50,3,6,1,52,62,61,60,7, - 59,58,57,45,56,55,69,93,112,74, - 71,40,63,2,114,94,101,88,22,23, - 5,4,19,20,89,90,86,87,64,91, - 92,95,96,97,98,99,100,113,102,103, - 104,105,106,107,108,109,110,111,70,66, - 65,0,115,0,9,18,8,14,12,13, - 15,16,11,10,17,69,40,55,60,61, - 45,59,58,52,56,57,62,7,6,1, - 3,4,5,63,2,65,70,93,66,74, - 0,42,43,2,21,27,31,29,26,34, - 9,18,8,14,12,13,15,16,11,10, - 17,35,38,36,37,24,33,28,32,3, - 7,6,22,23,5,4,19,20,25,30, - 1,112,0,39,67,7,68,6,1,3, - 73,50,69,93,70,102,103,104,105,106, - 107,108,109,110,111,112,74,71,63,2, - 114,94,101,88,22,23,5,4,19,20, - 89,90,86,87,64,65,91,92,95,96, - 97,98,99,100,113,66,40,0,65,69, - 93,66,112,71,40,74,8,9,26,42, - 10,27,28,11,12,13,43,29,14,15, - 30,31,32,39,33,34,16,17,18,35, - 36,37,24,38,2,22,23,5,4,19, - 20,25,7,6,21,1,3,0,71,7, - 2,5,4,6,40,51,53,54,72,48, - 21,44,41,46,47,9,18,8,14,12, - 13,15,16,11,10,17,55,60,61,45, - 59,58,56,57,62,1,3,52,0,70, - 50,0,50,69,3,64,0,50,66,0, - 1,71,0,8,9,41,67,26,10,27, - 44,28,11,12,13,29,14,15,30,31, - 46,32,39,33,34,21,47,16,17,68, - 18,35,36,37,24,38,2,22,23,5, - 4,19,20,25,65,3,6,7,43,42, - 1,0,74,55,8,9,41,10,44,56, - 45,11,57,58,12,13,59,60,14,15, - 61,46,62,21,47,16,52,17,18,1, - 3,93,0,71,42,43,39,22,23,5, - 4,19,20,6,25,30,2,7,35,38, - 36,37,24,33,28,32,9,18,8,14, - 12,13,15,16,11,10,17,21,27,31, - 29,26,34,3,1,50,0,54,53,119, - 115,41,44,72,116,117,118,46,48,21, - 47,51,69,71,8,9,10,11,12,13, - 14,15,16,17,18,55,56,45,57,58, - 59,60,61,62,52,7,2,6,40,1, - 3,5,4,0,67,68,39,2,65,93, - 74,50,73,69,66,40,70,0,115,120, - 71,73,51,53,54,76,78,84,82,75, - 80,81,83,85,50,77,79,49,40,44, - 41,46,47,55,60,61,45,59,58,52, - 56,57,62,39,42,43,21,27,31,29, - 26,34,9,18,8,14,12,13,15,16, - 11,10,17,35,38,36,37,24,33,28, - 32,22,23,19,20,25,30,4,5,2, - 3,7,1,6,0,66,71,70,0,8, - 9,41,10,44,56,11,57,58,12,13, - 59,60,14,15,61,46,62,21,47,16, - 52,17,18,55,119,2,5,40,51,53, - 54,72,45,3,7,4,6,1,48,0, - 50,73,69,0,67,68,39,63,2,65, - 70,66,74,93,0,8,9,26,42,10, - 27,28,11,12,13,43,7,29,14,15, - 30,31,32,39,33,34,21,16,17,18, - 35,36,37,24,38,1,2,22,23,5, - 4,19,20,6,25,3,40,49,0,48, - 1,3,50,69,0,69,112,74,40,66, - 0,75,0,9,41,10,44,56,11,57, - 58,12,13,59,60,14,15,61,46,62, - 21,47,16,52,17,18,8,55,2,5, - 4,40,51,53,54,72,45,64,3,7, - 6,1,48,0,1,52,3,116,117,118, - 0,74,8,9,26,42,10,27,28,11, - 12,13,43,7,29,14,15,30,31,32, - 39,33,34,21,16,17,18,35,36,37, - 38,1,2,22,23,5,4,19,20,6, - 25,3,49,24,0,7,6,63,1,4, - 5,3,2,74,67,68,44,41,46,47, - 9,18,8,14,12,13,15,16,11,10, - 17,0,40,7,2,5,4,6,3,1, - 69,0,74,8,9,41,67,10,44,11, - 12,13,14,15,46,47,16,17,68,18, - 1,63,5,4,65,3,66,2,0,9, - 18,8,14,12,13,15,16,11,10,17, - 41,46,47,44,67,68,43,42,19,20, - 4,89,90,97,5,98,6,25,70,64, - 65,105,106,102,103,104,110,109,111,87, - 86,107,108,95,96,91,92,99,100,22, - 23,66,88,101,63,2,0,42,43,22, - 23,19,20,6,25,30,7,35,38,36, - 37,24,33,28,32,9,18,8,14,12, - 13,15,16,11,10,17,21,27,31,29, - 26,34,63,1,3,4,5,2,0,49, - 42,43,39,22,23,19,20,25,30,35, - 38,36,37,24,33,28,32,21,27,31, - 29,26,34,7,1,5,4,6,3,2, - 9,18,8,14,12,13,15,16,11,10, - 17,46,47,44,67,68,41,0,73,50, - 114,101,22,23,9,18,8,14,12,13, - 15,16,11,10,17,41,46,47,44,67, - 68,1,3,63,2,94,88,4,89,90, - 19,20,87,86,64,91,92,95,96,5, - 97,98,99,65,93,74,70,102,103,104, - 105,106,107,108,109,110,111,69,112,40, - 100,113,66,71,0,9,18,8,14,12, - 13,15,16,11,10,17,41,46,47,44, - 67,68,93,0 + 119,0,24,0,63,49,13,14,58,47, + 15,64,50,72,42,16,51,52,17,18, + 53,60,54,19,20,55,65,56,10,66, + 21,59,46,22,48,23,2,7,5,40, + 57,3,6,4,44,1,0,13,14,26, + 41,15,27,28,16,17,18,43,29,19, + 20,30,31,32,39,33,34,10,21,22, + 23,35,36,37,24,38,11,12,8,9, + 25,45,7,40,4,1,6,3,2,5, + 0,2,67,93,74,61,57,73,70,68, + 40,69,0,69,57,0,71,14,58,47, + 15,64,50,16,51,52,17,18,53,54, + 19,20,55,65,56,66,21,46,22,48, + 23,13,49,2,7,5,40,59,63,72, + 42,44,6,1,4,3,10,60,0,94, + 88,8,9,89,90,86,87,62,91,92, + 95,96,97,98,99,100,112,70,93,69, + 102,103,104,105,106,107,108,109,110,111, + 113,71,40,67,1,7,5,3,2,61, + 68,74,0,67,69,68,1,0,57,70, + 3,62,0,41,43,2,10,27,31,29, + 26,34,14,23,13,19,17,18,20,21, + 16,15,22,35,38,36,37,24,33,28, + 32,3,6,4,11,12,7,5,8,9, + 25,30,1,113,0,67,70,93,68,113, + 71,40,74,13,14,26,41,15,27,28, + 16,17,18,43,29,19,20,30,31,32, + 39,33,34,21,22,23,35,36,37,24, + 38,2,11,12,7,5,8,9,25,10, + 3,6,1,4,0,115,0,63,60,119, + 115,72,6,116,117,118,59,2,7,5, + 4,70,71,40,49,13,14,47,15,64, + 50,42,16,51,52,17,18,53,54,19, + 20,55,65,56,66,21,46,22,48,23, + 3,58,10,1,44,0,115,120,71,73, + 59,60,63,76,78,84,82,75,80,81, + 83,85,57,77,79,40,45,64,58,65, + 66,49,54,55,42,53,52,46,50,47, + 48,51,56,39,41,43,10,27,31,29, + 26,34,14,23,13,19,17,18,20,21, + 16,15,22,35,38,36,37,24,33,28, + 32,11,12,8,9,25,30,4,6,2, + 5,7,1,3,0,57,68,0,26,41, + 27,28,43,6,29,30,31,32,39,33, + 34,35,36,37,24,38,11,12,7,5, + 8,9,4,25,67,2,10,64,58,65, + 66,14,23,13,19,17,18,20,21,16, + 15,22,49,54,55,42,53,52,50,47, + 48,51,56,3,46,1,0,1,71,0, + 68,71,69,0,70,113,74,40,68,0, + 57,73,70,0,13,14,15,16,17,18, + 19,20,21,22,23,49,47,50,42,51, + 52,53,54,55,56,46,48,40,74,7, + 5,2,61,4,6,1,3,0,7,5, + 6,4,3,1,2,67,93,69,68,74, + 61,0,13,14,47,15,64,50,16,51, + 52,17,18,53,54,19,20,55,65,56, + 10,66,21,46,22,48,23,49,119,6, + 2,7,5,4,40,59,60,63,72,42, + 1,3,44,58,0,71,41,43,39,11, + 12,7,5,8,9,4,25,30,2,6, + 35,38,36,37,24,33,28,32,14,23, + 13,19,17,18,20,21,16,15,22,10, + 27,31,29,26,34,3,1,57,0,62, + 73,61,57,70,68,40,69,2,0,14, + 23,13,19,17,18,20,21,16,15,22, + 73,57,3,4,1,48,46,56,55,54, + 6,53,52,51,42,50,47,49,114,101, + 11,12,61,2,94,88,5,89,90,8, + 9,87,86,62,91,92,95,96,7,97, + 98,99,67,93,74,69,102,103,104,105, + 106,107,108,109,110,111,70,113,40,100, + 112,68,71,0,4,6,2,61,5,7, + 93,49,13,14,58,47,15,64,50,42, + 16,51,52,17,18,53,54,19,20,55, + 65,56,10,66,21,46,22,48,23,1, + 3,74,0,75,0,61,2,114,94,101, + 88,11,12,7,5,8,9,89,90,86, + 87,62,67,91,92,95,96,97,98,99, + 100,112,68,40,0,39,47,6,48,4, + 1,3,73,57,70,93,113,74,71,40, + 61,2,114,94,101,88,11,12,7,5, + 8,9,89,90,86,87,62,91,92,95, + 96,97,98,99,100,112,102,103,104,105, + 106,107,108,109,110,111,67,68,69,0, + 14,58,47,15,64,50,16,51,52,17, + 18,53,54,19,20,55,65,56,10,66, + 21,46,22,48,23,13,49,2,7,40, + 59,60,63,72,42,62,3,6,4,44, + 5,1,0,49,13,14,58,47,15,64, + 50,42,16,51,52,17,18,53,54,19, + 20,55,65,56,10,66,21,46,22,48, + 23,1,3,93,0,1,46,3,116,117, + 118,0,40,7,5,2,6,4,3,1, + 70,0,47,48,73,2,57,70,40,39, + 67,69,68,74,93,0,74,13,14,26, + 15,27,28,16,17,18,29,19,20,30, + 31,32,39,33,34,10,21,22,23,35, + 36,37,24,38,2,11,12,7,5,8, + 9,25,3,45,4,6,1,43,41,0, + 47,39,48,67,93,69,68,74,0,44, + 1,3,57,70,0,41,43,11,12,7, + 5,8,9,4,25,30,6,3,35,38, + 36,37,24,33,28,32,14,23,13,19, + 17,18,20,21,16,15,22,10,27,31, + 29,26,34,61,1,2,0,49,13,14, + 58,47,15,64,50,42,16,51,52,17, + 18,53,54,19,20,55,65,56,10,66, + 21,46,22,48,23,1,3,43,41,8, + 9,5,89,90,97,7,98,4,25,62, + 105,106,102,103,104,110,109,111,87,86, + 107,108,95,96,91,92,99,100,11,12, + 88,101,2,61,69,68,67,0 }; }; public final static byte asr[] = Asr.asr; @@ -2163,56 +2021,58 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasb { public final static char nasb[] = {0, - 104,12,12,162,12,153,90,12,62,20, - 162,160,12,12,109,126,204,205,12,205, - 140,205,98,205,197,12,12,98,238,12, - 160,12,12,12,98,98,162,160,162,184, - 13,100,110,207,133,65,128,12,238,160, - 176,160,142,160,242,12,160,12,12,12, - 160,242,160,238,24,12,231,104,160,160, - 98,242,242,104,12,12,182,182,191,17, - 12,242,12,13,35,35,116,187,12,12, - 238,57,153,45,8,153,12,73,222,160, - 160,37,87,112,37,160,27,60,29,87, - 143,133,43,162,104,104,242,15,10,43, - 184,162,184,12,12,12,12,193,12,12, - 193,146,100,116,123,55,67,160,174,71, - 231,12,12,160,24,79,189,231,231,8, - 160,12,12,12,12,12,98,12,212,238, - 8,8,6,8,8,8,8,8,8,12, - 12,12,12,12,12,12,12,12,12,12, - 8,12,160,73,43,238,133,12,20,179, - 222,37,37,167,143,12,243,27,43,12, - 12,12,173,12,12,12,143,43,43,15, - 133,12,133,12,219,219,8,8,231,8, - 160,156,12,8,12,133,12,12,12,157, - 12,12,131,133,133,160,1,12,81,12, - 231,85,12,71,12,184,176,71,71,29, - 10,12,39,212,219,219,219,219,238,123, - 231,231,8,53,79,212,12,12,48,48, - 123,159,8,8,8,8,8,8,8,8, + 123,12,12,171,12,186,91,12,58,19, + 171,190,12,12,88,143,186,30,12,228, + 12,12,61,130,64,64,218,219,12,219, + 205,219,99,219,211,12,99,130,12,190, + 12,12,12,99,99,171,190,171,238,28, + 112,89,52,54,147,12,194,130,190,169, + 230,190,197,82,169,12,12,190,164,12, + 12,178,78,190,190,207,190,232,190,12, + 12,190,232,130,164,12,169,123,190,190, + 99,232,232,123,12,12,72,72,101,66, + 12,232,12,28,134,8,130,186,178,13, + 21,197,82,82,21,74,10,82,8,8, + 8,8,8,8,8,8,6,130,12,12, + 12,12,12,99,12,12,241,12,12,12, + 12,12,12,12,12,12,12,12,238,221, + 190,190,41,155,41,190,128,33,155,208, + 52,39,171,123,123,232,137,10,39,238, + 171,238,12,12,8,12,12,64,64,101, + 147,150,112,61,109,84,169,8,190,8, + 12,12,190,13,12,105,12,12,12,12, + 233,241,12,12,8,48,178,241,25,25, + 25,25,130,109,43,43,109,161,169,169, + 1,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8, + 161,8,169,12,12,39,130,52,12,19, + 184,221,41,41,180,208,128,39,12,12, + 208,39,39,137,52,12,52,12,25,25, + 8,8,190,169,236,192,158,12,8,12, + 52,12,12,12,159,12,12,50,52,52, + 190,12,17,12,169,86,12,12,35,8, 8,8,8,8,8,8,8,8,8,8, - 8,8,159,8,73,79,133,12,135,12, - 227,242,112,43,8,27,29,133,12,71, - 184,12,157,217,217,246,12,217,133,133, - 153,12,98,238,12,160,219,231,12,12, - 12,8,43,231,231,12,12,12,12,78, - 231,8,71,219,45,231,9,238,9,231, - 71,12,12,12,12,12,12,12,12,12, + 13,147,105,21,74,169,82,25,134,169, + 169,12,12,12,12,177,169,9,130,9, + 169,82,8,12,99,130,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 10,180,8,8,119,121,116,182,231,231, - 151,231,248,133,12,231,238,79,55,231, - 231,171,160,184,39,12,12,12,12,143, - 60,8,219,160,233,231,238,24,79,8, - 133,137,12,98,12,160,157,12,157,133, - 248,159,157,77,143,85,81,81,73,159, - 159,159,159,12,12,231,22,176,24,12, - 143,242,9,73,8,12,248,133,231,143, - 160,231,231,231,231,123,123,75,75,12, - 159,176,12,12,116,160,157,231,248,133, - 12,83,231,231,123,8,71,24,12,83, - 157,231,12,231,71,24,157,229,231,219 + 12,12,12,12,12,190,238,178,52,12, + 12,118,12,226,232,39,8,128,52,12, + 238,169,12,159,250,250,245,12,250,52, + 52,186,12,190,25,8,39,200,236,8, + 25,190,69,169,12,12,12,12,208,33, + 130,164,178,130,178,8,13,10,185,8, + 8,139,141,61,72,169,190,169,186,169, + 247,52,12,169,84,169,169,101,35,169, + 116,197,161,161,161,161,12,12,164,12, + 208,176,208,190,52,120,12,99,12,190, + 13,159,12,159,52,247,161,159,86,17, + 17,15,15,12,161,197,169,169,169,169, + 109,109,12,12,208,56,232,9,13,190, + 8,12,247,52,169,109,8,82,169,169, + 164,12,12,12,61,190,56,159,169,247, + 52,169,82,164,167,56,159,169,169,159, + 25 }; }; public final static char nasb[] = Nasb.nasb; @@ -2220,31 +2080,32 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasr { public final static char nasr[] = {0, - 137,135,43,134,133,3,1,6,4,9, - 2,0,150,0,50,0,5,66,0,140, - 0,175,0,2,89,0,113,0,4,2, - 9,6,43,0,145,0,107,0,6,4, - 9,2,66,0,5,26,0,4,2,9, - 126,0,170,0,167,0,2,9,1,3, - 0,3,49,0,178,0,6,4,9,2, - 79,0,36,0,127,0,3,123,69,0, - 62,0,144,0,109,0,3,69,0,2, - 137,136,135,43,134,133,132,4,0,162, - 4,161,0,98,5,48,65,0,151,115, - 0,69,125,124,0,2,29,0,4,157, - 118,0,5,96,0,5,88,146,4,0, - 5,37,39,0,115,151,155,156,0,4, - 60,3,2,1,0,5,48,37,177,0, - 43,45,5,88,0,66,48,80,37,5, - 0,5,48,65,70,0,4,118,189,0, - 5,88,103,43,45,4,68,0,39,5, - 88,105,0,5,38,0,55,43,164,0, - 5,88,4,103,68,0,2,4,43,40, - 41,42,111,6,92,0,4,9,2,182, - 0,55,43,5,37,0,5,110,55,43, - 0,5,48,65,63,4,117,0,55,43, - 31,0,43,5,174,45,0,54,2,60, - 0,67,2,54,0,48,53,5,99,0 + 151,149,121,148,147,3,1,12,5,7, + 2,0,56,0,141,0,55,0,154,0, + 5,2,7,12,4,49,0,156,0,2, + 7,1,3,0,12,5,7,2,67,0, + 113,0,5,2,7,140,0,175,0,4, + 37,38,0,182,0,125,0,3,41,0, + 2,29,0,79,0,4,67,0,4,179, + 0,108,0,68,139,138,0,12,5,7, + 2,88,0,173,0,115,0,157,127,0, + 2,151,150,149,121,148,147,146,5,0, + 5,7,2,64,97,98,4,0,4,100, + 0,168,5,167,0,180,0,127,157,161, + 162,0,105,4,43,66,0,123,0,48, + 2,46,0,4,27,0,42,0,5,163, + 131,0,4,7,2,64,5,102,0,4, + 43,37,181,0,3,68,0,67,43,80, + 4,37,0,2,89,0,49,4,31,0, + 4,43,66,70,0,3,137,68,0,5, + 131,189,0,38,108,64,5,2,7,4, + 0,98,97,7,2,64,58,5,0,98, + 97,5,58,0,5,48,3,2,1,0, + 2,5,121,117,118,119,120,12,92,0, + 4,43,66,59,5,130,0,4,49,170, + 0,57,2,46,0,5,102,4,21,0, + 4,49,37,0,43,47,4,106,0,4, + 49,116,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2252,18 +2113,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,2,32,11,10,14,81,50,54,62, - 70,76,77,88,89,104,107,109,12,13, - 102,8,9,114,15,57,63,69,86,90, + 115,2,32,14,11,81,10,12,13,102, + 8,9,50,54,62,70,76,77,88,89, + 104,107,109,114,15,57,63,69,86,90, 92,96,99,101,111,112,113,46,97,123, - 55,60,80,65,68,93,103,95,124,3, - 105,106,79,48,49,66,72,75,78,85, - 91,100,1,20,21,45,56,108,31,34, + 60,68,80,95,124,106,56,108,49,66, + 72,75,78,85,91,100,3,55,105,79, + 1,20,48,65,93,103,21,45,34,31, 122,67,98,121,110,51,52,58,59,61, 71,73,74,87,94,18,19,7,16,17, 22,23,33,5,24,25,26,27,28,29, 6,35,36,37,38,39,40,41,42,43, - 44,120,30,4,53,82,83,84,125,64, + 44,30,120,4,53,82,83,84,125,64, 116,117,118,119 }; }; @@ -2272,26 +2133,26 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 136,232,134,0,0,144,0,135,228,133, - 0,132,0,0,0,143,148,0,0,149, - 158,159,160,161,162,151,163,164,137,165, - 127,166,167,168,0,192,131,179,129,187, - 188,189,193,214,191,169,0,0,197,142, - 0,0,176,139,152,0,0,0,0,138, - 146,172,178,0,0,128,0,155,0,177, - 0,0,0,0,0,0,0,0,126,171, - 0,0,0,0,0,0,0,175,147,0, - 0,185,0,0,157,0,209,130,0,0, - 0,206,207,0,0,0,0,0,236,174, - 190,195,196,199,0,212,215,0,0,231, - 0,234,0,140,141,145,0,154,0,170, - 0,180,181,182,183,184,186,0,194,0, - 198,0,0,0,204,205,0,0,208,210, - 211,0,216,219,220,221,223,0,0,225, - 226,227,0,229,230,233,235,0,0,0, - 150,0,0,153,156,0,173,200,201,202, - 0,203,0,213,0,0,217,218,222,224, - 237,238,0,0,0,0,0 + 136,235,134,0,0,135,231,133,0,132, + 0,144,0,0,0,143,148,0,0,149, + 179,158,159,160,161,162,151,163,137,164, + 127,165,166,167,168,0,131,129,169,0, + 196,142,0,0,0,139,176,138,152,0, + 0,0,0,146,172,186,0,155,178,0, + 200,202,0,203,0,0,128,0,175,177, + 0,0,0,0,0,0,0,0,204,171, + 0,0,0,0,0,0,0,126,147,0, + 0,185,0,0,210,206,207,208,0,0, + 157,201,0,0,130,0,205,0,0,0, + 0,209,0,0,239,174,188,189,190,191, + 192,194,195,198,0,212,0,215,217,218, + 0,0,234,0,237,0,0,140,141,145, + 0,154,0,170,0,180,181,182,183,184, + 187,0,193,0,197,213,214,0,219,222, + 223,224,226,0,0,228,229,230,0,232, + 233,236,238,0,0,150,0,0,153,156, + 173,199,211,216,0,0,220,221,225,227, + 240,241,0,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2299,18 +2160,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 539,558,322,490,506,517,528,302,79,207, - 221,243,249,255,232,347,376,428,547,330, + 543,562,322,494,510,521,532,302,79,207, + 221,243,249,255,232,347,385,437,551,330, 30,59,85,118,238,261,272,283,51,213, - 227,458,312,283,566,171,194,1,14,26, - 69,132,147,165,266,279,288,295,394,421, - 451,482,486,576,580,584,92,7,92,132, - 365,372,385,405,37,473,385,437,437,497, - 513,524,535,37,336,64,64,101,139,142, - 162,64,191,199,202,64,299,400,418,425, - 139,599,20,153,159,184,369,412,64,107, - 107,184,64,356,184,99,398,588,595,99, - 588,595,73,125 + 227,462,312,283,570,170,197,1,14,26, + 69,132,150,266,279,288,295,403,430,455, + 486,490,580,584,588,92,7,92,132,365, + 381,394,414,37,477,394,446,501,517,528, + 539,37,160,336,64,64,101,139,142,175, + 178,64,192,202,178,64,299,409,427,434, + 139,603,20,185,369,421,64,107,107,185, + 64,356,185,99,407,592,599,99,99,592, + 599,73,99,375,125 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2319,17 +2180,17 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { 5,5,309,5,5,5,5,309,67,123, - 90,123,123,123,218,353,382,434,75,317, + 90,123,123,123,218,353,391,443,75,317, 35,35,90,123,123,123,277,277,56,218, - 96,463,317,553,571,176,176,5,18,18, - 5,123,151,169,270,270,270,90,123,169, - 5,5,5,5,5,169,597,11,96,136, - 309,309,309,409,47,463,389,441,446,501, - 501,501,501,41,340,67,67,90,5,145, - 5,182,169,5,205,182,90,403,5,169, - 5,5,23,156,156,292,156,415,455,110, - 114,187,477,359,467,90,90,590,590,104, - 592,592,75,127 + 96,467,317,557,575,164,164,5,18,18, + 5,123,154,270,270,270,90,123,195,5, + 5,5,5,5,195,601,11,96,136,309, + 309,309,418,47,467,398,450,505,505,505, + 505,41,164,340,67,67,90,5,145,5, + 181,183,195,5,205,183,90,412,5,195, + 5,5,23,292,372,424,459,110,114,188, + 481,359,471,90,90,594,594,104,147,596, + 596,75,156,377,127 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2337,18 +2198,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 16,16,84,16,16,16,16,84,157,73, - 51,78,77,42,58,84,83,18,16,84, - 1,8,153,40,76,42,41,111,64,59, - 51,126,84,16,16,103,181,168,151,87, - 161,116,63,103,41,41,111,53,62,175, - 17,16,16,16,16,16,13,109,153,116, - 84,83,83,35,121,126,83,18,18,16, - 16,16,16,121,84,162,157,153,178,63, - 103,183,145,180,88,111,85,81,129,175, - 173,15,151,97,97,111,110,20,126,44, - 44,68,126,84,126,153,82,124,60,153, - 124,60,161,40 + 16,16,84,16,16,16,16,84,163,73, + 45,78,77,119,52,84,83,18,16,84, + 1,6,159,117,76,119,118,120,60,53, + 45,140,84,16,16,99,63,136,157,87, + 167,128,59,118,118,120,47,55,180,17, + 16,16,16,16,16,11,115,159,128,84, + 83,83,36,134,140,83,18,16,16,16, + 16,134,99,84,168,163,159,182,59,97, + 107,65,79,62,69,120,85,81,143,180, + 178,15,157,120,116,20,140,129,129,58, + 140,84,140,159,82,138,48,159,59,138, + 48,167,59,116,117 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2358,16 +2219,16 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final static byte scopeLa[] = { 74,74,74,74,74,74,74,74,1,71, 40,71,71,71,1,74,120,74,2,40, - 65,65,40,71,71,71,1,1,65,1, + 67,67,40,71,71,71,1,1,67,1, 1,3,40,1,1,74,74,74,115,115, - 74,71,50,112,1,1,1,40,71,112, - 74,74,74,74,74,112,1,74,1,66, - 74,74,74,69,65,3,74,2,9,65, - 65,65,65,65,40,1,1,40,74,73, - 74,1,112,74,1,1,40,69,74,112, - 74,74,50,70,70,48,70,74,6,1, - 1,4,1,75,48,40,40,3,3,1, - 3,3,2,50 + 74,71,57,1,1,1,40,71,113,74, + 74,74,74,74,113,1,74,1,68,74, + 74,74,70,67,3,74,2,67,67,67, + 67,67,74,40,1,1,40,74,73,74, + 2,1,113,74,1,1,40,70,74,113, + 74,74,57,44,69,74,4,1,1,5, + 1,75,44,40,40,3,3,1,1,3, + 3,2,1,1,57 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2375,18 +2236,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 150,150,268,150,150,150,150,268,18,291, - 279,291,291,215,281,268,268,150,150,268, - 99,140,314,215,291,215,215,241,303,281, - 279,13,268,150,150,90,34,1,96,268, - 36,211,303,90,215,215,241,256,39,7, - 150,150,150,150,150,150,144,21,314,211, - 268,268,268,182,58,13,268,150,150,150, - 150,150,150,58,268,36,18,314,32,303, - 90,34,29,34,245,241,268,268,4,7, - 16,150,96,55,55,241,9,151,13,215, - 215,83,13,268,13,314,268,26,62,314, - 26,62,36,215 + 188,188,265,188,188,188,188,265,14,288, + 276,288,288,106,278,265,265,188,188,265, + 124,166,311,106,288,106,106,106,300,278, + 276,17,265,188,188,59,110,1,103,265, + 32,249,300,106,106,106,253,35,8,188, + 188,188,188,188,188,170,22,311,249,265, + 265,265,220,51,17,265,188,188,188,188, + 188,51,59,265,32,14,311,30,300,59, + 61,110,55,110,112,106,265,265,5,8, + 20,188,103,106,10,189,17,106,106,89, + 17,265,17,311,265,27,67,311,300,27, + 67,32,300,10,106 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2395,66 +2256,66 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, 316,2,39,0,127,0,315,2,115,0, - 127,172,0,274,239,73,0,235,0,239, - 73,0,210,235,0,129,186,73,0,287, - 129,64,126,0,21,0,289,64,48,0, + 127,172,0,280,251,73,0,238,0,251, + 73,0,213,238,0,128,179,73,0,293, + 128,62,126,0,21,0,295,62,44,0, 21,55,0,34,132,0,21,55,0,0, - 289,64,48,189,0,21,177,0,287,129, - 64,133,0,191,128,0,137,0,220,2, - 286,0,286,0,2,0,127,0,191,128, - 242,241,242,0,134,193,184,128,0,129, - 0,193,184,128,0,133,129,0,172,0, - 311,172,0,217,129,0,184,167,0,136, - 0,0,0,134,0,0,0,309,129,50, - 168,0,128,0,168,0,3,0,0,128, - 0,308,129,50,0,45,128,0,150,2, - 0,212,172,0,211,0,239,212,172,0, - 210,0,271,162,0,34,169,0,212,162, - 0,226,2,0,300,63,228,0,126,0, - 267,129,2,228,0,127,0,0,0,0, - 0,147,0,184,128,0,11,0,0,0, - 219,63,0,267,129,2,304,0,212,2, - 0,266,129,0,201,0,230,129,50,24, - 45,0,191,128,53,51,0,142,129,0, - 134,191,128,264,51,0,191,128,264,51, - 0,191,128,70,1,53,0,230,129,50, - 53,0,230,129,50,173,53,0,230,129, - 50,127,53,0,262,129,50,1,44,0, - 262,129,50,44,0,191,128,44,0,134, - 0,193,191,128,167,0,136,0,191,128, - 167,0,193,184,128,21,0,184,128,21, - 0,95,136,0,255,129,172,0,161,84, - 0,223,163,223,177,2,81,0,127,171, - 0,223,177,2,81,0,129,0,127,171, - 0,223,163,223,163,223,2,81,0,223, - 163,223,2,81,0,223,2,81,0,129, + 295,62,44,190,0,21,177,0,293,128, + 62,131,0,181,129,0,137,0,224,2, + 292,0,292,0,2,0,127,0,181,129, + 255,254,255,0,132,192,172,129,0,129, + 0,192,172,129,0,133,129,0,167,0, + 311,167,0,220,129,0,172,245,0,136, + 0,0,0,134,0,0,0,309,128,57, + 253,0,128,0,253,0,3,0,0,128, + 0,308,128,57,0,45,128,0,151,2, + 0,193,167,0,214,0,175,214,0,251, + 193,167,0,213,0,175,0,213,0,234, + 128,2,0,127,0,0,0,0,0,234, + 128,2,221,0,231,2,0,226,128,0, + 206,0,147,0,172,129,0,11,0,0, + 0,225,61,0,126,0,234,128,2,186, + 0,193,2,0,200,0,233,128,57,24, + 42,0,181,129,60,59,0,142,129,0, + 132,181,129,278,59,0,181,129,278,59, + 0,181,129,69,1,60,0,233,128,57, + 60,0,233,128,57,165,60,0,233,128, + 57,127,60,0,276,128,57,1,64,0, + 276,128,57,64,0,181,129,64,0,134, + 0,192,181,129,245,0,136,0,181,129, + 245,0,192,172,129,10,0,172,129,10, + 0,95,136,0,269,128,167,0,161,84, + 0,230,162,230,171,2,81,0,127,171, + 0,230,171,2,81,0,129,0,127,171, + 0,230,162,230,162,230,2,81,0,230, + 162,230,2,81,0,230,2,81,0,129, 0,129,0,127,171,0,161,2,75,204, 80,0,127,129,0,204,80,0,110,2, - 131,127,129,0,234,2,75,0,212,179, - 0,234,2,85,0,204,155,234,2,83, - 0,64,171,0,234,2,83,0,127,171, - 64,171,0,301,129,50,0,161,0,219, - 77,0,31,0,161,113,158,0,31,169, - 0,185,2,0,127,149,0,220,2,0, - 219,63,299,0,161,63,0,185,2,294, - 43,128,0,127,0,0,294,43,128,0, - 2,146,127,0,0,150,0,0,0,0, - 185,2,30,0,14,147,0,125,48,184, - 128,0,32,14,147,0,95,136,32,14, - 147,0,213,191,128,0,147,32,14,147, - 0,185,2,34,0,161,2,34,0,161, - 2,65,185,64,26,0,185,64,26,0, - 21,2,131,127,0,161,2,65,185,64, - 29,0,185,64,29,0,161,2,65,185, - 64,31,0,185,64,31,0,161,2,65, - 185,64,27,0,185,64,27,0,220,2, - 125,193,184,128,21,0,125,193,184,128, - 21,0,136,2,0,127,0,220,2,127, - 247,184,128,21,0,247,184,128,21,0, - 134,2,0,127,0,220,2,130,0,220, - 2,140,0,161,63,140,0,249,0,32, - 0,32,140,0,178,0,133,0,161,2, - 0 + 131,127,129,0,240,2,75,0,193,173, + 0,34,169,0,173,0,175,34,169,0, + 240,2,85,0,204,155,240,2,83,0, + 64,171,0,240,2,83,0,127,171,64, + 171,0,305,128,57,0,161,0,225,77, + 0,31,0,161,112,159,0,31,169,0, + 178,2,0,127,149,0,224,2,0,225, + 61,304,0,161,61,0,178,2,299,43, + 129,0,127,0,0,299,43,129,0,2, + 146,127,0,0,178,2,30,0,14,147, + 0,125,44,172,129,0,32,14,147,0, + 95,136,32,14,147,0,213,181,129,0, + 147,32,14,147,0,178,2,34,0,161, + 2,34,0,161,2,67,178,62,26,0, + 178,62,26,0,21,2,131,127,0,161, + 2,67,178,62,29,0,178,62,29,0, + 161,2,67,178,62,31,0,178,62,31, + 0,161,2,67,178,62,27,0,178,62, + 27,0,224,2,125,192,172,129,10,0, + 125,192,172,129,10,0,136,2,0,127, + 0,224,2,127,261,172,129,10,0,261, + 172,129,10,0,134,2,0,127,0,224, + 2,136,0,224,2,140,0,161,61,140, + 0,263,0,32,0,32,140,0,170,0, + 133,0,161,2,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2462,38 +2323,38 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 1445,1349,0,1541,1198,0,609,0,4231,4209, - 4184,0,2356,833,0,840,0,2490,3036,0, - 2371,3162,1816,852,0,2591,2458,0,790,747, - 0,1011,0,4080,0,2571,2378,0,3631,3568, - 3528,1855,1575,3465,3425,3362,3322,1271,3211,2865, - 2825,1279,548,0,902,1383,1335,3423,648,3417, - 0,4882,4976,4961,4850,4820,4811,4921,4906,4891, - 4779,4749,4740,4708,4678,3642,4669,4645,2592,4600, - 2688,0,3047,2380,2875,4281,2313,2603,2509,3236, - 3391,4297,2833,3530,0,2579,2450,0,4277,3363, - 3353,1620,4882,1578,3253,1527,2843,4976,1194,4961, - 2826,4850,4820,4811,4921,1153,4143,965,4906,4891, - 2839,2557,4779,570,4749,2486,4740,4708,4678,621, - 3642,4669,4645,558,2592,4600,3785,2688,2283,2086, - 2082,764,945,1992,1282,634,2356,833,4080,2170, - 4059,4038,2136,2190,2254,2223,2421,2389,2328,2977, - 2953,2800,2775,2750,2453,3763,3741,3719,3299,3007, - 4017,3996,3975,3954,3933,3912,3891,3851,3830,2291, - 3793,2100,1872,1824,2046,2010,1776,853,1956,1728, - 1680,1632,1584,1536,1488,1440,1392,1344,1296,1242, - 716,522,1920,1206,1158,1110,1056,970,1020,660, - 573,785,909,0,4621,4302,4599,4575,3236,2852, - 4553,4529,4231,4209,4184,853,4162,4507,4483,4461, - 4430,4116,716,4380,4353,3391,4094,4281,660,3519, - 522,3785,2283,0,3236,2852,3492,3326,3284,2492, - 1009,3530,2509,626,0,4948,3156,2649,2605,3125, - 2561,2478,3094,3063,3032,3001,2447,3631,3568,3528, - 3465,3425,3362,3322,3211,2865,2825,0,4310,4265, - 3631,3568,3528,3465,3425,3362,3322,3211,2865,2825, - 3156,2649,2605,3125,2561,2478,3094,3063,3032,3001, - 2447,0,3156,2649,2605,3125,2561,2478,3094,3063, - 3032,3001,2447,4310,4265,0 + 3503,2108,944,0,2044,565,0,2241,0,4790, + 4777,4759,0,2580,3274,0,1252,855,0,859, + 0,1443,1476,1435,1394,0,2890,1264,0,936, + 0,2411,2240,0,3873,3806,3739,2281,2164,3672, + 3605,3538,3471,608,3403,2980,2864,1143,716,0, + 3036,3000,2413,0,2428,2382,988,953,3505,3370, + 2796,3295,2442,2641,2173,0,4630,4701,4683,4620, + 4612,4562,3767,3700,4554,3633,3566,4544,4495,4485, + 3499,4471,4463,4398,2879,3834,2513,0,3529,3155, + 4642,3505,3153,3370,4624,2558,3235,3068,659,2163, + 2808,0,2337,2034,0,527,3932,2157,0,3370, + 659,2796,4369,2340,4027,3357,2641,4325,2173,4357, + 2808,2987,0,3644,2845,3577,4630,2707,2663,2495, + 3387,2601,4701,3383,4683,1346,4620,4612,4562,999, + 852,3767,3700,2897,2396,4554,729,3633,3566,4544, + 4495,4485,3012,3499,4471,4463,652,3008,4398,2879, + 3932,3834,2513,949,2157,2470,2223,568,775,2384, + 2796,4369,2340,4027,2253,1352,3370,3357,1252,855, + 2641,4325,2173,659,4357,2808,2987,4337,4304,4283, + 579,2124,1003,873,2192,2770,2744,2672,784,2352, + 2309,3333,3309,2959,2820,4262,4241,4057,3989,3962, + 4220,622,4199,4178,4147,4118,4097,2716,2282,2087, + 1898,2050,2013,1857,1816,1976,907,1775,1734,1693, + 1652,1611,1570,1529,1488,1447,1406,1365,1939,1210, + 1169,527,1305,1122,1081,734,679,1268,957,810, + 1038,0,4746,3230,2562,2522,3194,2459,2415,3150, + 3114,3070,3034,2379,3873,3806,3739,3672,3605,3538, + 3471,3403,2980,2864,0,4402,4392,3873,3806,3739, + 3672,3605,3538,3471,3403,2980,2864,3230,2562,2522, + 3194,2459,2415,3150,3114,3070,3034,2379,0,3230, + 2562,2522,3194,2459,2415,3150,3114,3070,3034,2379, + 4402,4392,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2501,56 +2362,58 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,293,45,48,189,172,129,54,53,51, - 222,24,64,48,212,129,256,257,168,258, - 167,259,44,260,261,126,1,21,128,2, - 50,173,127,1,53,264,129,50,65,64, - 239,69,73,266,255,212,129,265,128,4, - 270,50,184,310,128,178,125,127,1,1, - 50,128,64,128,191,184,24,129,50,50, - 70,128,128,129,289,48,21,41,162,50, - 285,128,286,239,306,304,6,7,133,1, - 128,3,2,2,70,66,184,129,129,125, - 127,129,191,3,129,50,129,191,129,184, - 48,155,230,222,129,129,128,191,191,230, - 66,65,64,229,229,271,212,2,228,227, - 192,129,66,191,2,274,63,2,179,63, - 2,42,43,64,191,184,7,212,150,129, - 50,34,26,29,31,27,21,130,2,128, - 30,25,6,20,19,4,5,23,22,140, - 145,147,146,149,148,152,151,156,154,157, - 39,158,4,160,309,128,187,241,51,172, - 312,129,129,69,193,249,193,129,262,237, - 263,287,179,130,136,290,193,230,230,191, - 174,1,134,289,70,70,70,70,226,63, - 2,301,79,77,1,161,85,83,81,80, - 75,82,84,78,76,172,129,53,73,49, - 220,291,115,219,158,129,192,63,63,129, - 193,254,129,2,64,64,64,64,128,2, - 185,161,42,43,184,2,125,127,101,114, - 2,63,88,94,20,19,90,89,4,92, - 91,65,64,86,87,5,96,95,98,97, - 99,111,110,109,108,107,106,105,104,103, - 102,70,113,100,129,184,311,229,212,313, - 242,128,3,262,70,66,66,174,65,300, - 129,219,69,2,2,2,204,2,1,161, - 129,130,21,128,1,186,2,267,272,273, - 287,66,308,185,161,185,185,185,185,184, - 220,155,63,294,2,185,48,128,48,220, - 161,146,146,145,145,145,148,148,148,148, - 147,147,151,149,149,154,152,156,161,157, - 193,66,69,70,66,241,191,41,267,234, - 179,234,177,223,75,234,128,184,129,93, - 315,179,155,66,66,65,65,65,65,193, - 247,203,2,295,179,150,128,191,184,69, - 134,212,38,242,229,155,155,212,155,223, - 163,2,155,184,48,291,155,155,129,2, - 2,2,2,125,127,185,129,129,6,213, - 48,128,70,129,70,204,163,223,161,193, - 224,161,161,161,161,2,2,155,296,299, - 63,192,3,125,191,224,120,223,163,155, - 125,129,220,220,2,63,161,6,3,129, - 155,223,39,220,219,6,155,2,316,66 + 0,298,42,44,190,167,128,63,60,59, + 229,24,62,44,193,128,2,3,131,6, + 126,1,4,129,188,186,270,271,253,272, + 245,273,64,274,275,1,10,129,2,57, + 165,127,1,60,278,128,57,67,62,251, + 70,73,269,193,128,279,226,129,5,193, + 6,62,173,61,2,41,43,62,181,170, + 1,172,61,2,57,172,310,129,125,127, + 1,57,129,129,181,172,24,128,57,57, + 69,129,129,128,295,44,10,58,145,57, + 291,129,292,251,2,69,129,68,172,128, + 128,182,61,61,128,3,192,225,30,25, + 9,8,5,7,12,11,4,129,34,26, + 29,31,27,10,136,140,2,147,146,149, + 148,152,150,156,154,158,157,159,128,128, + 125,127,128,181,128,57,128,181,172,44, + 155,233,229,128,128,129,181,181,233,68, + 67,62,232,232,69,231,193,221,222,2, + 128,128,68,181,2,280,151,128,57,39, + 159,172,5,180,293,173,134,296,293,263, + 192,2,125,127,41,43,172,2,62,62, + 62,62,129,2,101,114,2,61,178,161, + 128,90,89,5,88,94,86,87,9,8, + 96,95,92,91,67,62,97,7,99,98, + 112,100,234,235,236,309,129,183,254,59, + 167,312,128,128,70,192,128,276,247,277, + 192,233,233,181,166,1,132,295,69,69, + 69,69,2,231,128,226,305,79,77,1, + 161,85,83,81,80,75,82,84,78,76, + 167,60,73,45,224,297,115,268,128,111, + 110,109,108,107,106,105,104,103,102,69, + 128,128,2,68,3,178,61,299,2,178, + 161,178,178,178,178,172,224,44,129,44, + 224,161,155,136,10,129,146,146,146,148, + 148,147,147,150,150,149,149,149,149,154, + 152,157,156,161,158,155,68,172,311,1, + 232,193,313,255,129,276,69,68,166,67, + 128,234,225,70,2,2,2,204,2,1, + 161,128,1,179,2,68,308,226,128,212, + 2,300,173,151,67,67,67,67,192,261, + 129,181,172,129,172,70,128,192,68,70, + 69,68,254,181,58,234,155,240,173,240, + 171,230,75,240,128,93,315,173,68,178, + 128,128,2,2,2,2,125,127,4,213, + 44,172,44,227,132,193,38,255,232,155, + 128,155,193,155,230,162,2,155,297,155, + 155,155,301,304,61,182,161,161,161,161, + 2,2,3,125,192,128,129,69,128,227, + 69,204,162,230,161,2,61,161,224,224, + 4,3,125,39,181,227,128,120,230,162, + 155,224,225,4,2,128,155,230,316,155, + 68 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2748,13 +2611,12 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "type_name_declaration_specifie" + "rs", "no_type_declaration_specifier", + "cv_qualifier", "no_type_declaration_specifiers", "class_specifier", "elaborated_type_specifier", "enum_specifier", "type_name_specifier", - "type_specifier", - "cv_qualifier", "class_keyword", "enumerator_list", "enumerator_definition", @@ -2764,14 +2626,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "init_declarator", "initializer", "direct_declarator", + "ptr_operator_seq", "basic_direct_declarator", "array_direct_declarator", "array_modifier", - "ptr_operator_seq", "abstract_declarator", "direct_abstract_declarator", + "basic_direct_abstract_declarat" + + "or", + "array_direct_abstract_declarat" + + "or", "parameter_declaration_list", "parameter_declaration", + "parameter_init_declarator", + "parameter_initializer", "function_body", "function_try_block", "initializer_clause", @@ -2807,9 +2675,9 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 49, - SCOPE_UBOUND = 113, - SCOPE_SIZE = 114, + ERROR_SYMBOL = 45, + SCOPE_UBOUND = 114, + SCOPE_SIZE = 115, MAX_NAME_LENGTH = 37; public final int getErrorSymbol() { return ERROR_SYMBOL; } @@ -2818,20 +2686,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 500, + NUM_STATES = 511, NT_OFFSET = 124, - LA_STATE_OFFSET = 5819, + LA_STATE_OFFSET = 5673, MAX_LA = 2147483647, - NUM_RULES = 521, - NUM_NONTERMINALS = 197, - NUM_SYMBOLS = 321, + NUM_RULES = 526, + NUM_NONTERMINALS = 200, + NUM_SYMBOLS = 324, SEGMENT_SIZE = 8192, - START_STATE = 2447, + START_STATE = 2379, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 119, EOLT_SYMBOL = 119, - ACCEPT_ACTION = 5049, - ERROR_ACTION = 5298; + ACCEPT_ACTION = 4908, + ERROR_ACTION = 5147; 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 be7e44fe79a..5f1674bdecd 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java @@ -15,68 +15,68 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPParsersym { public final static int - TK_asm = 54, - TK_auto = 55, - TK_bool = 8, + TK_asm = 63, + TK_auto = 49, + TK_bool = 13, TK_break = 76, TK_case = 77, TK_catch = 115, - TK_char = 9, - TK_class = 41, - TK_const = 67, + TK_char = 14, + TK_class = 58, + TK_const = 47, TK_const_cast = 26, TK_continue = 78, TK_default = 79, - TK_delete = 42, + TK_delete = 41, TK_do = 80, - TK_double = 10, + TK_double = 15, TK_dynamic_cast = 27, TK_else = 120, - TK_enum = 44, - TK_explicit = 56, + TK_enum = 64, + TK_explicit = 50, TK_export = 72, - TK_extern = 45, + TK_extern = 42, TK_false = 28, - TK_float = 11, + TK_float = 16, TK_for = 81, - TK_friend = 57, + TK_friend = 51, TK_goto = 82, TK_if = 83, - TK_inline = 58, - TK_int = 12, - TK_long = 13, - TK_mutable = 59, - TK_namespace = 53, + TK_inline = 52, + TK_int = 17, + TK_long = 18, + TK_mutable = 53, + TK_namespace = 60, TK_new = 43, - TK_operator = 7, + TK_operator = 6, TK_private = 116, TK_protected = 117, TK_public = 118, - TK_register = 60, + TK_register = 54, TK_reinterpret_cast = 29, TK_return = 84, - TK_short = 14, - TK_signed = 15, + TK_short = 19, + TK_signed = 20, TK_sizeof = 30, - TK_static = 61, + TK_static = 55, TK_static_cast = 31, - TK_struct = 46, + TK_struct = 65, TK_switch = 85, - TK_template = 48, + TK_template = 44, TK_this = 32, TK_throw = 39, TK_try = 73, TK_true = 33, - TK_typedef = 62, + TK_typedef = 56, TK_typeid = 34, - TK_typename = 21, - TK_union = 47, - TK_unsigned = 16, - TK_using = 51, - TK_virtual = 52, - TK_void = 17, - TK_volatile = 68, - TK_wchar_t = 18, + TK_typename = 10, + TK_union = 66, + TK_unsigned = 21, + TK_using = 59, + TK_virtual = 46, + TK_void = 22, + TK_volatile = 48, + TK_wchar_t = 23, TK_while = 75, TK_integer = 35, TK_floating = 36, @@ -88,27 +88,27 @@ public interface CPPParsersym { TK_Completion = 122, TK_EndOfCompletion = 123, TK_Invalid = 124, - TK_LeftBracket = 63, + TK_LeftBracket = 61, TK_LeftParen = 2, - TK_LeftBrace = 50, + TK_LeftBrace = 57, TK_Dot = 114, TK_DotStar = 94, TK_Arrow = 101, TK_ArrowStar = 88, - TK_PlusPlus = 22, - TK_MinusMinus = 23, - TK_And = 5, - TK_Star = 4, - TK_Plus = 19, - TK_Minus = 20, - TK_Tilde = 6, + TK_PlusPlus = 11, + TK_MinusMinus = 12, + TK_And = 7, + TK_Star = 5, + TK_Plus = 8, + TK_Minus = 9, + TK_Tilde = 4, TK_Bang = 25, TK_Slash = 89, TK_Percent = 90, TK_RightShift = 86, TK_LeftShift = 87, - TK_LT = 64, - TK_GT = 65, + TK_LT = 62, + TK_GT = 67, TK_LE = 91, TK_GE = 92, TK_EQ = 95, @@ -117,11 +117,11 @@ public interface CPPParsersym { TK_Or = 98, TK_AndAnd = 99, TK_OrOr = 100, - TK_Question = 113, - TK_Colon = 69, + TK_Question = 112, + TK_Colon = 70, TK_ColonColon = 3, TK_DotDotDot = 93, - TK_Assign = 70, + TK_Assign = 69, TK_StarAssign = 102, TK_SlashAssign = 103, TK_PercentAssign = 104, @@ -132,12 +132,12 @@ public interface CPPParsersym { TK_AndAssign = 109, TK_CaretAssign = 110, TK_OrAssign = 111, - TK_Comma = 66, - TK_RightBracket = 112, + TK_Comma = 68, + TK_RightBracket = 113, TK_RightParen = 74, TK_RightBrace = 71, TK_SemiColon = 40, - TK_ERROR_TOKEN = 49, + TK_ERROR_TOKEN = 45, TK_EOF_TOKEN = 119; public final static String orderedTerminalSymbols[] = { @@ -145,10 +145,15 @@ public interface CPPParsersym { "identifier", "LeftParen", "ColonColon", - "Star", - "And", "Tilde", + "Star", "operator", + "And", + "Plus", + "Minus", + "typename", + "PlusPlus", + "MinusMinus", "bool", "char", "double", @@ -160,11 +165,6 @@ public interface CPPParsersym { "unsigned", "void", "wchar_t", - "Plus", - "Minus", - "typename", - "PlusPlus", - "MinusMinus", "stringlit", "Bang", "const_cast", @@ -182,20 +182,14 @@ public interface CPPParsersym { "zero", "throw", "SemiColon", - "class", "delete", - "new", - "enum", "extern", - "struct", - "union", + "new", "template", "ERROR_TOKEN", - "LeftBrace", - "using", "virtual", - "namespace", - "asm", + "const", + "volatile", "auto", "explicit", "friend", @@ -204,14 +198,20 @@ public interface CPPParsersym { "register", "static", "typedef", + "LeftBrace", + "class", + "using", + "namespace", "LeftBracket", "LT", + "asm", + "enum", + "struct", + "union", "GT", "Comma", - "const", - "volatile", - "Colon", "Assign", + "Colon", "RightBrace", "export", "try", @@ -253,8 +253,8 @@ public interface CPPParsersym { "AndAssign", "CaretAssign", "OrAssign", - "RightBracket", "Question", + "RightBracket", "Dot", "catch", "private",